---
title: "Artifact-form node metadata lives in frontmatter · Agentic Atlas"
description: "Artifact-form node metadata lives in frontmatter: Artifact-form nodes carry the same four fields as lowercase kind: / path: / status: / hook: keys in their…"
canonical: "https://agentic-atlas.dev/decisions/0011-artifact-node-metadata-in-frontmatter"
last-updated: "2026-08-19"
---

Manifest-selected Decision

Canonical id

0011-artifact-node-metadata-in-frontmatter

Status

accepted

Catalog order

5

Catalog revision `35263c4c415da742953d0462804fb14424e2244dae4c63efd27e468988de70ab`

# 0011: Artifact-form node metadata lives in frontmatter

**Status:** accepted **Date:** 2026-07-20

## Context

The hook hoist (interchange contract v1, D3 — atlas #20) gave every node the four-field header `Kind:`/`Path:`/`Status:`/`Hook:`. Artifact-form example nodes are real runnable `SKILL.md` files shipped in place; the first migration pass put the bold header fields into the skill *body*, which pollutes exactly the prose an agent loads when the skill is installed. Avery's review of scratchpad PR #38: corpus metadata does not belong in the skill body.

## Decision

Artifact-form nodes carry the same four fields as lowercase `kind:` / `path:` / `status:` / `hook:` keys in their existing YAML frontmatter — the artifact's metadata block — never as body lines. Other frontmatter keys (`name`, `description`, …) remain the artifact's own, off-contract. Values may be double-quoted (the breadcrumb's bold final segment would otherwise read as a YAML alias). A `\*\*Field:\*\*` body line in an artifact is an `audit --contract` refusal (H2).

Amended into interchange contract v1 pre-adoption (the corpus pin does not exist yet — atlas #22), with the conforming fixture and an `h2-artifact-body-field` mutation updated in the atlas repo; cross-reference: atlas PR #26 / `interchange/CONTRACT.md` §2.

## Consequences

- Installed skills stay byte-honest: the runnable body is exactly what the corpus teaches with, per §3's "ship the true, installable thing".
- The checker reads frontmatter for `SKILL.md` nodes and body fields for everything else; authors edit hooks in one place either way and `corpus.py sync-hooks` derives the README tail identically.

[Browse all selected Decisions](https://agentic-atlas.dev/decisions)