← ClaudeAtlas

update-speclisted

Draft an ephemeral ADR for an in-flight architectural decision (--draft), then propagate the accepted decision to SPEC + PRD + phases.yaml + tracker bodies atomically (--apply <slug>) via the apply-decision verb's resumable journal.
firatcand/forge · ★ 9 · Testing & QA · score 75
Install: claude install-skill firatcand/forge
# /update-spec Two modes, one lifecycle (ephemeral ADRs — see `.forge/CONTEXT.md` §Ephemeral ADR workflow): - `--draft` — interview → write `spec/decisions/<YYYY-MM-DD>-<slug>.md` from `templates/adr.template.md`. The user reviews, optionally gets a second opinion, and flips `status: accepted` by hand. - `--apply <slug>` (+ `--yes-all`, `--resume`, `--dry-run`) — author the payload-complete journal, preview every artifact diff, then delegate ALL mutation to `forge orchestrate apply-decision`. On success the skill (not the verb) runs the git commit with the ADR's rationale as the body. Skill ↔ verb contract: this skill owns interviews, diff previews, confirmations, journal authoring (the verb's documented upstream input), and git. The verb owns every artifact mutation, the resumable journal state machine, INDEX.md, and ADR deletion. The skill NEVER edits SPEC/PRD/phases/tracker directly. --- ## Mode `--draft` ### Preflight 1. `templates/adr.template.md` must exist. Missing → stop: "run `forge migrate` (or `forge upgrade`) to restore the bundled scaffold." 2. **One decision at a time.** Scan `spec/decisions/*.md` and classify each file: - `INDEX.md` → ignore (the durable decision index). - ADR frontmatter parses with `status: proposed` or `status: accepted` → refuse: ``` ✗ /update-spec --draft: an active ADR already exists: <file> (status: <status>). Finish it first: /update-spec --apply <slug> (or edit/delete the draft) ``` - `status: re