agentsclimarketplace

Artifact frontmatter

Skill bostonaholic/team/skills/artifact-frontmatter

The artifact schema contract for docs/plans/<id>/ — the artifact inventory, the YAML frontmatter schema and phase enum, the repos.md and prd.md schemas, the topic-consistency invariant, ticketId scope, and the approval check/flip/rejection mechanics. Load when authoring or validating a pipeline artifact's frontmatter, checking approval state, or writing repos.md or prd.md.From its SKILL.md

Install
npx -y skills add bostonaholic/team --skill artifact-frontmatter

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 1 command, including `grep -qE '^approved:[[:space:]]*true[[:space:]]*$' <artifact>`.

SKILL.md

7.4 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Artifact Frontmatter

The single schema contract for the pipeline's durable state: every artifact under docs/plans/<id>/, its YAML frontmatter, and the approval mechanics that gate phase transitions. Phase discipline — what each phase does and when it advances — lives in skills/qrspi-workflow/SKILL.md; this skill owns the schema.

Artifact inventory

All phase artifacts live under docs/plans/<id>/, where <id> is one of:

  • Ticket-prefixed: <TICKET>-<kebab-topic> (e.g., ENG-1234-add-rate-limiting)
  • Date-prefixed: <YYYY-MM-DD>-<kebab-topic> (e.g., 2026-05-01-add-rate-limiting)

The executable definitions of the <id> pattern (ID_RE) and the phase-file list (PHASE_FILES) live in hooks/session-start-recover.mjs — that hook is the canon; reference it rather than forking the pattern here.

ArtifactPathCreated ByRequired?
Taskdocs/plans/<id>/task.mdquestioner agentyes
Questionsdocs/plans/<id>/questions.mdquestioner agentyes
PRDdocs/plans/<id>/prd.mdquestioner agentwhen PRD criteria apply
Reposdocs/plans/<id>/repos.mdquestioner / design-authorwhen topic spans repos
Researchdocs/plans/<id>/research.mdresearcher agentyes
Designdocs/plans/<id>/design.mddesign-author agentyes
Structuredocs/plans/<id>/structure.mdstructure-planner agentyes
Plandocs/plans/<id>/plan.mdplanner agentyes

The <id> slug should match across every artifact for the same feature.

Frontmatter schema (all artifacts)

Every artifact opens with YAML frontmatter. Common fields:

---
topic: <kebab-case>
date: 2026-04-30
phase: design        # task | questions | prd | repos | research | design | structure | plan
---

Per-phase additions:

PhaseExtra frontmatter
taskticketId: <id> (or null)
questions(none)
prd(none — not human-gated; written conditionally by the questioner)
repos(none — written conditionally in multi-repo mode)
research(none)
designapproved: false, approved_at: null, revision: 0
structure(none — not human-gated; advances to PLAN once it exists)
plan(none — derived mechanically from the structure)

Approval check (used by downstream phase entry):

grep -qE '^approved:[[:space:]]*true[[:space:]]*$' <artifact>

Approval flip (orchestrator at human gate): edit the file in place to set approved: true and stamp approved_at: <ISO-8601>.

Rejection: the agent re-drafts the artifact. The orchestrator increments revision: <n+1> in the new draft's frontmatter. Cap at 5; beyond that, escalate to the user for direction.

Topic consistency invariant

Every artifact's topic frontmatter field MUST be identical across all artifacts in the same docs/plans/<id>/ directory. The topic value is the kebab portion of <id> — i.e. <id> minus the <TICKET>- or <YYYY-MM-DD>- prefix:

<id>topic
ENG-9876-cache-invalidationcache-invalidation
2026-05-01-add-rate-limitingadd-rate-limiting

Never use the ticket id, the date, or a re-worded description as the topic. Downstream agents copy the topic verbatim from upstream artifacts; the questioner is the one place where it is chosen.

ticketId scope

ticketId lives only on task.md. It does not appear on questions.md, research.md, design.md, structure.md, or plan.md. The rationale: the directory name <id> already encodes the ticket prefix, and task.md is the canonical intent record. Re- encoding ticketId on every artifact would be duplication that can drift out of sync with the directory name.

Repos artifact (repos.md)

When a topic touches more than one repository, the questioner or design-author writes docs/plans/<id>/repos.md to enumerate the repos involved. The presence of this file switches the pipeline into multi-repo mode (one worktree per listed repo, see skills/worktree-isolation/SKILL.md); the home worktree is created at the leading WORKTREE phase and secondary worktrees after the design gate. Its absence keeps the pipeline in single-repo mode — today's default.

repos.md schema:

---
topic: <kebab-case-topic>
date: <YYYY-MM-DD>
phase: repos
---

# Repos: <topic>

## Home repo
- **name:** <short-slug>
- **path:** <absolute-path>
- **role:** One sentence describing what kind of work happens here.

## Additional repos
- **name:** <short-slug>
  **path:** <absolute-path>
  **role:** One sentence describing what kind of work happens here.
- **name:** <short-slug>
  **path:** <absolute-path>
  **role:** ...

## Worktrees
<written by the orchestrator after the design gate; back-records the home worktree path created at the leading WORKTREE phase plus each secondary path>
- home: <home-worktree-path>
- <repo-name>: <repo-path>/.claude/worktrees/<id>
- ...

Rules:

  • Names are short slugs (e.g. frontend, api, shared-types) used in slice and plan annotations like [repo: api]. Names must be unique across repos.md.
  • Paths are absolute. Each must be a git working tree.
  • The home repo is the one the user invoked /team from. Its docs/plans/<id>/ directory is the canonical artifact location; other repos' worktrees do not carry duplicate artifacts.
  • The ## Worktrees section is written by the orchestrator after the design gate (back-recording the home worktree created at the leading WORKTREE phase plus each secondary worktree), not by the questioner or design-author. Until then, repos.md lists only the repos to be involved.

PRD artifact (prd.md)

Written conditionally by the questioner when the PRD criteria in skills/product-requirements-doc/SKILL.md apply (vague, multi-story, cross-cutting, or behavior-replacing requests), and referenced from task.md. It rides the autonomous Question phase — not human-gated, so no approved/revision fields.

prd.md frontmatter:

---
topic: <kebab-case-topic>
date: <YYYY-MM-DD>
phase: prd
---

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.