story-arcs · git:20260720.eb6e3ed · 2026-07-20 · sha256 2460c4f2082e346f
story-arcs git:20260720.eb6e3edA
Immutable. This exact content is served forever at /api/v1/blob/2460c4f2082e346f.
--- name: story-arcs description: >- Manage developing story arcs tracked across briefs — add, resolve, and list active arcs in .claude-code-hermit/compiled/story-arcs-*.md. Arc Watch keywords drive the feed-brief arc-tagging enrichment. Invoke with /feed-hermit:story-arcs add|resolve|list. --- # Story Arcs Manage the developing-story-arcs file that feeds the `feed-brief` arc-tagging enrichment. ## Usage ``` /story-arcs add "<name>" [--started <YYYY-MM-DD>] [--watch "<keywords>"] [--context "<text>"] /story-arcs resolve "<name>" [--reason "<resolution note>"] /story-arcs list ``` ## Steps ### 1. Find the active arcs file Glob `.claude-code-hermit/compiled/story-arcs-*.md`. Sort by filename date suffix descending (newest first). Read the most recent. If none exists, create `.claude-code-hermit/compiled/story-arcs-<today>.md` with the standard template (frontmatter + `## Active` + `## Recently Resolved` sections). ### 2. Execute subcommand #### add Parse: `name` (required), `--started` (default: today, prefixed with `~`), `--watch` (optional keyword list), `--context` (optional description). 1. Check `## Active` — if an arc with the same name already exists (case-insensitive), say so and stop. 2. Append a new arc block at the end of `## Active`: ``` **<name>** (started: ~<YYYY-MM-DD>) <context text, or "Newly surfaced — add context as it develops."> Watch: <watch keywords separated by semicolons, or "TBD">. ``` 3. Write the file in-place. Reply: `Arc added: **<name>**. Update the Watch clause with /story-arcs if needed.` #### resolve Parse: `name` (required, case-insensitive substring match), `--reason` (optional). 1. Find the arc block in `## Active`. If not found, list close matches and stop. 2. Remove the full arc block (the `**Name** (started:...)` line + context line + Watch line). 3. Insert a one-line entry at the top of `## Recently Resolved`: ``` **<name>** — <reason, or "resolved">. <today's date> ``` 4. Write the file in-place. Reply: `Arc resolved: **<name>**. It will no longer be matched in future briefs.` #### list 1. Display all arcs under `## Active` as a compact table: Name, start date, Watch keywords. 2. Show the count of `## Recently Resolved` entries. 3. If `## Active` is empty, say "No active arcs." ## File format reference ```markdown --- title: Developing Story Arcs type: story-arcs created: <ISO 8601> tags: [brief, foundational] --- Ongoing stories to track across briefs. Updated when arc status changes. ## Active **Arc Name** (started: ~YYYY-MM-DD) Context description. Pattern being tracked. Watch: keyword1; keyword2; keyword3. ## Recently Resolved **Arc Name** — resolution note. YYYY-MM-DD ``` ## Notes - Edit in-place — do not create a new dated file per edit. The brief pipeline picks the newest file by filename date suffix; a new file would drift from the one being actively referenced. - Arc names are matched case-insensitively for `resolve` and `list`. - When an arc is resolved, the `feed-brief` arc cross-reference stops matching items against it automatically (it only reads `## Active`). - Watch keywords drive arc-tagging in briefs — keep them specific (entity + context, not just entity alone).