@codedrifters/configulator 0.0.263 → 0.0.264

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.mts CHANGED
@@ -2018,11 +2018,13 @@ declare function renderPriorityRulesSection(rules: ReadonlyArray<PriorityRule>):
2018
2018
  /**
2019
2019
  * Requirements-analyst bundle — opt-in via `includeBundles: [\"requirements-analyst\"]`.
2020
2020
  *
2021
- * Provides a 3-phase requirements gap-discovery pipeline (scan → draft → trace)
2022
- * designed for projects using the BCM (Business Capability Model) framework.
2023
- * Ships a sub-agent, a user-invocable skill, and `req:*` phase labels via the
2024
- * bundle `labels` mechanism so consuming projects automatically pick up the
2025
- * label taxonomy through the sync-labels workflow.
2021
+ * Provides a 2-phase requirements gap-discovery pipeline
2022
+ * (scan → draft-trace) designed for projects using the BCM (Business
2023
+ * Capability Model) framework. Ships a sub-agent, a user-invocable
2024
+ * skill, and `req:*` phase labels via the bundle `labels` mechanism so
2025
+ * consuming projects automatically pick up the label taxonomy through
2026
+ * the sync-labels workflow. See ADR-009 for the rationale behind
2027
+ * collapsing the draft and trace phases.
2026
2028
  */
2027
2029
  declare const requirementsAnalystBundle: AgentRuleBundle;
2028
2030
 
package/lib/index.d.ts CHANGED
@@ -2067,11 +2067,13 @@ declare function renderPriorityRulesSection(rules: ReadonlyArray<PriorityRule>):
2067
2067
  /**
2068
2068
  * Requirements-analyst bundle — opt-in via `includeBundles: [\"requirements-analyst\"]`.
2069
2069
  *
2070
- * Provides a 3-phase requirements gap-discovery pipeline (scan → draft → trace)
2071
- * designed for projects using the BCM (Business Capability Model) framework.
2072
- * Ships a sub-agent, a user-invocable skill, and `req:*` phase labels via the
2073
- * bundle `labels` mechanism so consuming projects automatically pick up the
2074
- * label taxonomy through the sync-labels workflow.
2070
+ * Provides a 2-phase requirements gap-discovery pipeline
2071
+ * (scan → draft-trace) designed for projects using the BCM (Business
2072
+ * Capability Model) framework. Ships a sub-agent, a user-invocable
2073
+ * skill, and `req:*` phase labels via the bundle `labels` mechanism so
2074
+ * consuming projects automatically pick up the label taxonomy through
2075
+ * the sync-labels workflow. See ADR-009 for the rationale behind
2076
+ * collapsing the draft and trace phases.
2075
2077
  */
2076
2078
  declare const requirementsAnalystBundle: AgentRuleBundle;
2077
2079
 
package/lib/index.js CHANGED
@@ -9431,7 +9431,7 @@ var REQ_WRITE_ISSUE_SCHEMA_SECTION = [
9431
9431
  // src/agent/bundles/requirements-analyst.ts
9432
9432
  var requirementsAnalystSubAgent = {
9433
9433
  name: "requirements-analyst",
9434
- description: "Discovers requirement gaps from BCM model docs, competitive analysis, product docs, and meeting extracts. Produces scan reports and proposals for the downstream requirements-writer agent. Runs through a 3-phase pipeline (scan \u2192 draft \u2192 trace), one phase per session, tracked by req:* GitHub issue labels.",
9434
+ description: "Discovers requirement gaps from BCM model docs, competitive analysis, product docs, and meeting extracts. Produces scan reports, proposals, and req:write issues for the downstream requirements-writer agent. Runs through a 2-phase pipeline (scan \u2192 draft-trace), one phase per session, tracked by req:* GitHub issue labels.",
9435
9435
  model: AGENT_MODEL.POWERFUL,
9436
9436
  maxTurns: 80,
9437
9437
  platforms: { cursor: { exclude: true } },
@@ -9472,35 +9472,39 @@ var requirementsAnalystSubAgent = {
9472
9472
  "",
9473
9473
  "## State Machine Overview",
9474
9474
  "",
9475
- "Requirements synthesis flows through **3 phases**:",
9475
+ "Requirements synthesis flows through **2 phases**:",
9476
9476
  "",
9477
9477
  "```",
9478
- "\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
9479
- "\u2502 1. SCAN \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 2. DRAFT \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 3. TRACE \u2502",
9480
- "\u2502 Read docs, \u2502 \u2502 Write gap \u2502 \u2502 Create GH \u2502",
9481
- "\u2502 identify \u2502 \u2502 report with \u2502 \u2502 issues and \u2502",
9482
- "\u2502 gaps, check \u2502 \u2502 requirement \u2502 \u2502 update src \u2502",
9483
- "\u2502 for dupes \u2502 \u2502 proposals \u2502 \u2502 docs with \u2502",
9484
- "\u2502 \u2502 \u2502 \u2502 \u2502 traceability\u2502",
9485
- "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
9478
+ "\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
9479
+ "\u2502 1. SCAN \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 2. DRAFT-TRACE \u2502",
9480
+ "\u2502 Read docs, \u2502 \u2502 Write proposals,\u2502",
9481
+ "\u2502 identify \u2502 \u2502 create req:write\u2502",
9482
+ "\u2502 gaps, check \u2502 \u2502 issues, update \u2502",
9483
+ "\u2502 for dupes \u2502 \u2502 source docs \u2502",
9484
+ "\u2502 \u2502 \u2502 with traceability\u2502",
9485
+ "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
9486
9486
  "```",
9487
9487
  "",
9488
+ "This pipeline matches the `scan \u2192 draft-trace \u2192 write` pattern",
9489
+ "used by the sibling openhi project. Draft and Trace were previously",
9490
+ "separate phases; they were collapsed because the proposals file Draft",
9491
+ "wrote was only ever consumed by Trace (no human review, no async work",
9492
+ "between the two), so the phase boundary added latency without value.",
9493
+ "See ADR-009 for the full reasoning.",
9494
+ "",
9488
9495
  "**Issue labels encode the phase:**",
9489
9496
  "",
9490
9497
  "| Label | Phase | Session work |",
9491
9498
  "|-------|-------|-------------|",
9492
9499
  "| `req:scan` | 1. Scan | Read source docs, identify potential requirement gaps, check against existing requirements and open issues, write deduplicated scan report |",
9493
- "| `req:draft` | 2. Draft | Write gap report with proposed requirements |",
9494
- "| `req:trace` | 3. Trace | Create GitHub issues for each proposed requirement and update source documents with traceability notes |",
9500
+ "| `req:draft-trace` | 2. Draft & Trace | Write proposals, create `req:write` GitHub issues for each proposal, and update source documents with traceability notes \u2014 all in a single session |",
9495
9501
  "",
9496
9502
  "All issues also carry `type:requirement` and a `status:*` label.",
9497
9503
  "",
9498
- "**Issue count per scan cycle:** 1 scan + 1 draft + 1 trace = **3 sessions**.",
9504
+ "**Issue count per scan cycle:** 1 scan + 1 draft-trace = **2 sessions**.",
9499
9505
  "",
9500
9506
  "**Shortened paths:**",
9501
- "- No gaps found after scan \u2192 skip draft and trace \u2192 **1 session**",
9502
- "- No source docs need traceability updates \u2192 still **3 sessions** (trace",
9503
- " handles both issue creation and doc updates)",
9507
+ "- No gaps found after scan \u2192 skip draft-trace \u2192 **1 session**",
9504
9508
  "",
9505
9509
  "---",
9506
9510
  "",
@@ -9529,7 +9533,7 @@ var requirementsAnalystSubAgent = {
9529
9533
  "Run this loop exactly once per session. Never start a second issue.",
9530
9534
  "",
9531
9535
  "1. Claim one open `type:requirement` issue using phase priority:",
9532
- " `req:scan` > `req:draft` > `req:trace`.",
9536
+ " `req:scan` > `req:draft-trace`.",
9533
9537
  "2. Transition `status:ready` \u2192 `status:in-progress` and create the branch",
9534
9538
  " per your project's branch-naming convention.",
9535
9539
  "3. Execute the phase handler that matches the issue's `req:*` label.",
@@ -9630,7 +9634,7 @@ var requirementsAnalystSubAgent = {
9630
9634
  " ```",
9631
9635
  "",
9632
9636
  "7. **Create downstream issues based on findings:**",
9633
- " - If any new gaps were identified \u2192 create `req:draft` issue",
9637
+ " - If any new gaps were identified \u2192 create `req:draft-trace` issue",
9634
9638
  " (blocked on this issue via `Depends on: #N`).",
9635
9639
  " - If **no gaps** were found \u2192 stop (no further phases needed). Comment",
9636
9640
  " on the issue noting that no gaps were identified, and proceed directly",
@@ -9641,12 +9645,54 @@ var requirementsAnalystSubAgent = {
9641
9645
  "",
9642
9646
  "---",
9643
9647
  "",
9644
- "## Phase 2: Draft (`req:draft`)",
9648
+ "## Phase 2: Draft & Trace (`req:draft-trace`)",
9649
+ "",
9650
+ "**Goal:** Expand each identified gap into a requirement proposal, create",
9651
+ "a `req:write` GitHub issue for each proposal so the downstream",
9652
+ "`requirements-writer` bundle picks it up, and backfill source-document",
9653
+ "traceability notes \u2014 all in a single session.",
9654
+ "",
9655
+ "**Budget:** No web searches. Reading + writing proposals + issue creation",
9656
+ "+ minor traceability edits to source documents.",
9657
+ "",
9658
+ "Draft and Trace were previously separate phases. They were collapsed",
9659
+ "because the proposals file written by Draft was only ever consumed by",
9660
+ "Trace \u2014 no human review, no async work, no CI validation sat between",
9661
+ "them. See ADR-009 for the decision record.",
9662
+ "",
9663
+ "### `req:write` issue schema",
9664
+ "",
9665
+ "The `req:write` issues this phase creates are picked up by the",
9666
+ "downstream `requirements-writer` agent, which parses a strict",
9667
+ "schema on intake. The authoritative schema is defined in the",
9668
+ "`requirements-writer` sub-agent prompt under **The `req:write`",
9669
+ "Issue Schema** \u2014 every `req:write` issue this phase opens must",
9670
+ "conform. The same schema is embedded in the",
9671
+ "`requirements-reviewer` follow-up generator so the three",
9672
+ "producers never drift apart.",
9673
+ "",
9674
+ ...REQ_WRITE_ISSUE_SCHEMA_SECTION,
9675
+ "",
9676
+ "**Deriving the three required fields from the proposal.** For",
9677
+ "every `req:write` issue this phase opens, the three fields come",
9678
+ "directly from the proposal entry written earlier in the same",
9679
+ "session:",
9645
9680
  "",
9646
- "**Goal:** Expand each identified gap into a requirement proposal with enough",
9647
- "detail for the requirements-writer to produce a full document.",
9681
+ "- **Category** \u2014 the proposal's `**Category:**` line.",
9682
+ "- **Tier** \u2014 the proposal's `**Tier:**` line.",
9683
+ "- **Output Path** \u2014",
9684
+ " `<REQUIREMENTS_ROOT>/<category-dir>/<PREFIX>-<NNN>-<slug>.md`,",
9685
+ " using the sequence number determined in the proposal step below.",
9648
9686
  "",
9649
- "**Budget:** No web searches. Reading + writing.",
9687
+ "**Validation step \u2014 required before opening the issue.** Before",
9688
+ "calling `gh issue create`, verify all three required fields are",
9689
+ "populated and internally consistent (Category matches title",
9690
+ "prefix, Tier matches `tier:*` label, Output Path filename starts",
9691
+ "with the Category prefix). If any field cannot be derived, open",
9692
+ "the issue with `status:needs-attention` (not `status:ready`) and",
9693
+ "include a `Missing: <field> \u2014 <one-line reason>` line so a human",
9694
+ "triaging the issue only has to supply the remaining value(s)",
9695
+ "before flipping the label to `status:ready`.",
9650
9696
  "",
9651
9697
  "### Steps",
9652
9698
  "",
@@ -9697,61 +9743,7 @@ var requirementsAnalystSubAgent = {
9697
9743
  " directory under `<REQUIREMENTS_ROOT>/<category>/` to find the next",
9698
9744
  " available `NNN` for each proposed requirement.",
9699
9745
  "",
9700
- "5. **Create the `req:trace` issue** blocked on this draft issue.",
9701
- "",
9702
- "6. **Commit and push.**",
9703
- "",
9704
- "---",
9705
- "",
9706
- "## Phase 3: Trace (`req:trace`)",
9707
- "",
9708
- "**Goal:** Create GitHub issues for each proposed requirement and update",
9709
- "source documents with traceability notes indicating that requirement issues",
9710
- "were created.",
9711
- "",
9712
- "**Budget:** No web searches. Issue creation + minor edits to source",
9713
- "documents.",
9714
- "",
9715
- "### `req:write` issue schema",
9716
- "",
9717
- "The `req:write` issues this phase creates are picked up by the",
9718
- "downstream `requirements-writer` agent, which parses a strict",
9719
- "schema on intake. The authoritative schema is defined in the",
9720
- "`requirements-writer` sub-agent prompt under **The `req:write`",
9721
- "Issue Schema** \u2014 every `req:write` issue this phase opens must",
9722
- "conform. The same schema is embedded in the",
9723
- "`requirements-reviewer` follow-up generator so the three",
9724
- "producers never drift apart.",
9725
- "",
9726
- ...REQ_WRITE_ISSUE_SCHEMA_SECTION,
9727
- "",
9728
- "**Deriving the three required fields from the proposal.** For",
9729
- "every `req:write` issue this phase opens, the three fields come",
9730
- "directly from the Phase 2 proposal entry:",
9731
- "",
9732
- "- **Category** \u2014 the proposal's `**Category:**` line.",
9733
- "- **Tier** \u2014 the proposal's `**Tier:**` line (added in Phase 2).",
9734
- " If the proposal omitted the Tier line (older proposals may),",
9735
- " route the issue through `Missing:` rather than guessing.",
9736
- "- **Output Path** \u2014",
9737
- " `<REQUIREMENTS_ROOT>/<category-dir>/<PREFIX>-<NNN>-<slug>.md`,",
9738
- " using the sequence number determined in Phase 2 step 4.",
9739
- "",
9740
- "**Validation step \u2014 required before opening the issue.** Before",
9741
- "calling `gh issue create`, verify all three required fields are",
9742
- "populated and internally consistent (Category matches title",
9743
- "prefix, Tier matches `tier:*` label, Output Path filename starts",
9744
- "with the Category prefix). If any field cannot be derived, open",
9745
- "the issue with `status:needs-attention` (not `status:ready`) and",
9746
- "include a `Missing: <field> \u2014 <one-line reason>` line so a human",
9747
- "triaging the issue only has to supply the remaining value(s)",
9748
- "before flipping the label to `status:ready`.",
9749
- "",
9750
- "### Steps",
9751
- "",
9752
- "1. **Read the proposals** from Phase 2.",
9753
- "",
9754
- "2. **Create requirement issues.** For each proposal:",
9746
+ "5. **Create requirement issues.** For each proposal:",
9755
9747
  "",
9756
9748
  " All `type:requirement` issues default to `priority:medium` (override",
9757
9749
  " only if the proposal's priority was explicitly High or Low). Each",
@@ -9796,7 +9788,7 @@ var requirementsAnalystSubAgent = {
9796
9788
  " whichever of the three fields **could** be derived so a human",
9797
9789
  " triaging the issue has the minimum possible cleanup.",
9798
9790
  "",
9799
- "3. **Update source documents.** In each BCM model doc or competitive",
9791
+ "6. **Update source documents.** In each BCM model doc or competitive",
9800
9792
  " analysis that was scanned, add a note in the project-relevance /",
9801
9793
  " strategic-implications section (whichever heading the source doc uses)",
9802
9794
  " indicating that a requirement issue was created:",
@@ -9806,10 +9798,10 @@ var requirementsAnalystSubAgent = {
9806
9798
  " (issue #<N>)",
9807
9799
  " ```",
9808
9800
  "",
9809
- "4. **Comment on the scan issue** with a summary of all issues created and",
9801
+ "7. **Comment on the scan issue** with a summary of all issues created and",
9810
9802
  " all docs updated.",
9811
9803
  "",
9812
- "5. **Commit and push.**",
9804
+ "8. **Commit and push.**",
9813
9805
  "",
9814
9806
  "---",
9815
9807
  "",
@@ -9887,39 +9879,41 @@ var scanRequirementsSkill = {
9887
9879
  "1. Create a `req:scan` issue with `type:requirement`, `priority:medium`,",
9888
9880
  " and `status:ready`. Body must list the files to read and the scan scope.",
9889
9881
  "2. Execute Phase 1 (Scan) of the requirements-analyst agent.",
9890
- "3. If gaps are found, a `req:draft` issue is created automatically.",
9882
+ "3. If gaps are found, a `req:draft-trace` issue is created automatically.",
9891
9883
  "",
9892
9884
  "## Output",
9893
9885
  "",
9894
9886
  "- A `req-scan-<scope>-<YYYY-MM-DD>.md` file under the project's research",
9895
9887
  " requirements directory.",
9896
- "- A `req:draft` issue if any gaps were identified."
9888
+ "- A `req:draft-trace` issue if any gaps were identified."
9897
9889
  ].join("\n")
9898
9890
  };
9899
9891
  var requirementsAnalystBundle = {
9900
9892
  name: "requirements-analyst",
9901
- description: "Requirements gap-discovery agent bundle for BCM-driven projects. 3-phase pipeline (scan, draft, trace) with req:* phase labels.",
9893
+ description: "Requirements gap-discovery agent bundle for BCM-driven projects. 2-phase pipeline (scan, draft-trace) with req:* phase labels.",
9902
9894
  appliesWhen: () => true,
9903
9895
  rules: [
9904
9896
  {
9905
9897
  name: "requirements-analyst-workflow",
9906
- description: "Describes the 3-phase requirements gap-discovery pipeline, the req:* label taxonomy, and the boundary with the downstream requirements-writer agent.",
9898
+ description: "Describes the 2-phase requirements gap-discovery pipeline, the req:* label taxonomy, and the boundary with the downstream requirements-writer agent.",
9907
9899
  scope: AGENT_RULE_SCOPE.ALWAYS,
9908
9900
  content: [
9909
9901
  "# Requirements Analyst Workflow",
9910
9902
  "",
9911
9903
  "Use `/scan-requirements <scope>` to kick off a requirements gap",
9912
- "discovery cycle. The pipeline runs in 3 phases \u2014 scan, draft, trace \u2014",
9913
- "each tracked by its own GitHub issue labeled `req:scan`, `req:draft`,",
9914
- "or `req:trace`. All issues carry `type:requirement`.",
9915
- "",
9916
- "The requirements-analyst *discovers gaps and drafts proposals*; it",
9917
- "does **not** write final requirement documents. Writing is the job",
9918
- "of the downstream `requirements-writer` agent (a separate bundle).",
9904
+ "discovery cycle. The pipeline runs in 2 phases \u2014 scan and",
9905
+ "draft-trace \u2014 each tracked by its own GitHub issue labeled",
9906
+ "`req:scan` or `req:draft-trace`. All issues carry",
9907
+ "`type:requirement`.",
9908
+ "",
9909
+ "The requirements-analyst *discovers gaps, drafts proposals, and",
9910
+ "opens `req:write` issues for the downstream writer*; it does",
9911
+ "**not** write final requirement documents. Writing is the job of",
9912
+ "the downstream `requirements-writer` agent (a separate bundle).",
9919
9913
  "Keep that boundary clean: proposals land under the research",
9920
9914
  "requirements directory, not under the authoritative requirements",
9921
- "tree. The trace phase tags new issues with `req:write` so the",
9922
- "writer bundle picks them up automatically.",
9915
+ "tree. The draft-trace phase tags new issues with `req:write` so",
9916
+ "the writer bundle picks them up automatically.",
9923
9917
  "",
9924
9918
  "See the `requirements-analyst` agent definition for full workflow",
9925
9919
  "details and phase-by-phase instructions."
@@ -9944,14 +9938,9 @@ var requirementsAnalystBundle = {
9944
9938
  description: "Phase 1: scan source docs for requirement gaps and deduplicate"
9945
9939
  },
9946
9940
  {
9947
- name: "req:draft",
9941
+ name: "req:draft-trace",
9948
9942
  color: "BFDADC",
9949
- description: "Phase 2: draft requirement proposals for the requirements-writer"
9950
- },
9951
- {
9952
- name: "req:trace",
9953
- color: "D4C5F9",
9954
- description: "Phase 3: create requirement issues and backfill traceability on source docs"
9943
+ description: "Phase 2: draft proposals, create req:write issues, and backfill source-doc traceability"
9955
9944
  }
9956
9945
  ]
9957
9946
  };
@@ -11835,8 +11824,8 @@ var requirementsWriterSubAgent = {
11835
11824
  "This agent produces **requirement documents only** \u2014 capability",
11836
11825
  "models are written by the `bcm-writer` agent and requirement-gap",
11837
11826
  "discovery is the responsibility of the `requirements-analyst` agent.",
11838
- "Keep this boundary clean: never open `req:scan`, `req:draft`, or",
11839
- "`bcm:*` issues from this pipeline.",
11827
+ "Keep this boundary clean: never open `req:scan`,",
11828
+ "`req:draft-trace`, or `bcm:*` issues from this pipeline.",
11840
11829
  "",
11841
11830
  "Follow your project's shared agent conventions (`AGENTS.md`,",
11842
11831
  "`CLAUDE.md`, or equivalent) for all commit, branch, and PR rules.",
@@ -12370,7 +12359,7 @@ var requirementsWriterSubAgent = {
12370
12359
  "specialized upstream/downstream agents.",
12371
12360
  "",
12372
12361
  "**Do NOT create:**",
12373
- "- `req:scan`, `req:draft`, or `req:trace` issues \u2014 those belong to",
12362
+ "- `req:scan` or `req:draft-trace` issues \u2014 those belong to",
12374
12363
  " the `requirements-analyst` bundle",
12375
12364
  "- `bcm:*` issues \u2014 those belong to the `bcm-writer` bundle",
12376
12365
  "- `people:*`, `company:*`, `software:*`, `research:*`, or",
@@ -12418,8 +12407,8 @@ var requirementsWriterSubAgent = {
12418
12407
  " exists as a file but is missing from its category index is",
12419
12408
  " invisible to anyone browsing the documentation tree.",
12420
12409
  "- **Write requirements, not capability models or gap reports.**",
12421
- " Never open `req:scan`, `req:draft`, `req:trace`, or `bcm:*` issues",
12422
- " from this pipeline."
12410
+ " Never open `req:scan`, `req:draft-trace`, or `bcm:*` issues from",
12411
+ " this pipeline."
12423
12412
  ].join("\n")
12424
12413
  };
12425
12414
  var writeRequirementSkill = {
@@ -12514,8 +12503,8 @@ var requirementsWriterBundle = {
12514
12503
  "The pipeline produces **requirement documents only** \u2014 capability",
12515
12504
  "models are written by the `bcm-writer` agent and gap discovery is",
12516
12505
  "the responsibility of the `requirements-analyst` agent. The",
12517
- "writer never opens `req:scan`, `req:draft`, `req:trace`, or",
12518
- "`bcm:*` issues.",
12506
+ "writer never opens `req:scan`, `req:draft-trace`, or `bcm:*`",
12507
+ "issues.",
12519
12508
  "",
12520
12509
  "Documents follow the 11-category taxonomy (BR, FR, NFR, TR, ADR,",
12521
12510
  "SEC, DR, INT, OPS, UX, MT) and the four-tier classification",
@@ -12621,8 +12610,8 @@ var requirementsReviewerSubAgent = {
12621
12610
  "`requirements-writer` bundle (requirement docs) and `bcm-writer`",
12622
12611
  "bundle (capability models). Gap discovery belongs to the",
12623
12612
  "`requirements-analyst` bundle. Keep this boundary clean: never open",
12624
- "`req:scan`, `req:draft`, `req:trace`, `req:review`, or `bcm:*`",
12625
- "issues from this pipeline. The only follow-ups you open are the",
12613
+ "`req:scan`, `req:draft-trace`, `req:review`, or `bcm:*` issues",
12614
+ "from this pipeline. The only follow-ups you open are the",
12626
12615
  "`req:write` issues documented below.",
12627
12616
  "",
12628
12617
  "Follow your project's shared agent conventions (`AGENTS.md`,",
@@ -12835,8 +12824,8 @@ var requirementsReviewerSubAgent = {
12835
12824
  "doc and must be rewritten or removed). Route follow-up issues to",
12836
12825
  "`req:write` so the `requirements-writer` \u2014 the only agent scoped",
12837
12826
  "to edit under `<REQUIREMENTS_ROOT>` \u2014 picks them up. Do **not**",
12838
- "route Check 4 findings to `req:trace`; the analyst bundle does",
12839
- "not edit requirement documents and the issue would sit",
12827
+ "route Check 4 findings to `req:draft-trace`; the analyst bundle",
12828
+ "does not edit requirement documents and the issue would sit",
12840
12829
  "unresolved. See the Follow-Up Issues section below for the full",
12841
12830
  "Check 3 vs. Check 4 routing split.",
12842
12831
  "",
@@ -13255,11 +13244,12 @@ var requirementsReviewerSubAgent = {
13255
13244
  " docs, competitive-analysis notes, product-roadmap entries,",
13256
13245
  " meeting extracts \u2014 that should link forward to an existing",
13257
13246
  " requirement (Check 3: orphaned requirements whose fix lives",
13258
- " in the source tree, not the requirement doc) \u2192 `req:trace`",
13247
+ " in the source tree, not the requirement doc) \u2192 `req:draft-trace`",
13259
13248
  " (the `requirements-analyst` agent picks it up to backfill",
13260
- " source-doc traceability). **Do not** route Check 4 broken",
13261
- " cross-references here \u2014 the analyst bundle never writes to",
13262
- " `<REQUIREMENTS_ROOT>` and the issue would sit unresolved.",
13249
+ " source-doc traceability inside its combined draft-trace phase).",
13250
+ " **Do not** route Check 4 broken cross-references here \u2014 the",
13251
+ " analyst bundle never writes to `<REQUIREMENTS_ROOT>` and the",
13252
+ " issue would sit unresolved.",
13263
13253
  " - A new requirement is needed (e.g., a `Proposed` ADR is missing",
13264
13254
  " for a deferred technology choice) \u2192 `req:scan` (the analyst",
13265
13255
  " runs a scoped scan to confirm the gap, then drafts the new",
@@ -13273,7 +13263,7 @@ var requirementsReviewerSubAgent = {
13273
13263
  "",
13274
13264
  "**Check 12 exception \u2014 stale `Proposed` ADR/TR triage.** Check 12",
13275
13265
  "findings are the one case where follow-up flows through a new",
13276
- "`req:review` issue rather than `req:write` / `req:trace` /",
13266
+ "`req:review` issue rather than `req:write` / `req:draft-trace` /",
13277
13267
  "`req:scan`. The finding is a decision a human must make, not an",
13278
13268
  "edit to a requirement document, so:",
13279
13269
  "",
@@ -13713,8 +13703,9 @@ var reviewRequirementsSkill = {
13713
13703
  "- One verification script under `<REVIEW_REPORTS_ROOT>` (only",
13714
13704
  " for audits >10 documents)",
13715
13705
  "- Follow-up GitHub issues for every Critical and Warning finding,",
13716
- " carrying the appropriate phase label (`req:write`, `req:trace`,",
13717
- " or `req:scan`) for the downstream agent that should act",
13706
+ " carrying the appropriate phase label (`req:write`,",
13707
+ " `req:draft-trace`, or `req:scan`) for the downstream agent that",
13708
+ " should act",
13718
13709
  "- An aggregated `req:review` follow-up issue labeled",
13719
13710
  " `status:needs-attention` when Check 12 surfaces stale `Proposed`",
13720
13711
  " ADR/TR documents (one issue per review, not one per document);",
@@ -13869,9 +13860,9 @@ var requirementsReviewerBundle = {
13869
13860
  "The review phase produces **review reports and follow-up issues",
13870
13861
  "only** \u2014 it never edits requirement documents, capability",
13871
13862
  "models, or research notes. It files follow-up issues with the",
13872
- "appropriate phase label (`req:write`, `req:trace`, `req:scan`,",
13873
- "or \u2014 only for Check 12 stale-decision triage \u2014 `req:review`)",
13874
- "for the downstream agent or human to pick up.",
13863
+ "appropriate phase label (`req:write`, `req:draft-trace`,",
13864
+ "`req:scan`, or \u2014 only for Check 12 stale-decision triage \u2014",
13865
+ "`req:review`) for the downstream agent or human to pick up.",
13875
13866
  "",
13876
13867
  "For audits covering more than 10 documents, the reviewer writes",
13877
13868
  "a read-only Python verification script alongside the report and",
@@ -13914,9 +13905,9 @@ var requirementsReviewerBundle = {
13914
13905
  "Authoring remains the responsibility of the `requirements-writer`",
13915
13906
  "(requirement docs) and `bcm-writer` (capability models) bundles.",
13916
13907
  "Gap discovery is the responsibility of the `requirements-analyst`",
13917
- "bundle. The reviewer never opens `req:scan`, `req:draft`,",
13918
- "`req:trace`, `req:review`, or `bcm:*` issues \u2014 only `req:write`",
13919
- "follow-ups from either phase.",
13908
+ "bundle. The reviewer never opens `req:scan`, `req:draft-trace`,",
13909
+ "`req:review`, or `bcm:*` issues \u2014 only `req:write` follow-ups",
13910
+ "from either phase.",
13920
13911
  "",
13921
13912
  "**Soft dependency on the `requirements-writer` bundle.** The",
13922
13913
  "reviewer reads category templates from",