@codedrifters/configulator 0.0.235 → 0.0.237
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.js +140 -16
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +140 -16
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -6713,7 +6713,7 @@ var prReviewBundle = {
|
|
|
6713
6713
|
"",
|
|
6714
6714
|
"human-required:",
|
|
6715
6715
|
" paths:",
|
|
6716
|
-
' - "docs/
|
|
6716
|
+
' - "docs/requirements/architectural-decisions/**"',
|
|
6717
6717
|
' - "docs/project-context.md"',
|
|
6718
6718
|
' - ".github/workflows/**"',
|
|
6719
6719
|
' - ".github/CODEOWNERS"',
|
|
@@ -10510,7 +10510,7 @@ var requirementsWriterBundle = {
|
|
|
10510
10510
|
// src/agent/bundles/requirements-reviewer.ts
|
|
10511
10511
|
var requirementsReviewerSubAgent = {
|
|
10512
10512
|
name: "requirements-reviewer",
|
|
10513
|
-
description: "Audits and deprecates existing requirement documents (BR, FR, NFR, TR, ADR, SEC, DR, INT, OPS, UX, MT). In `req:review` mode, runs the
|
|
10513
|
+
description: "Audits and deprecates existing requirement documents (BR, FR, NFR, TR, ADR, SEC, DR, INT, OPS, UX, MT). In `req:review` mode, runs the 12-check audit (structural compliance, categorization, traceability, cross-reference integrity, sequence integrity, content quality, registry sync, decision-authority compliance, tier classification, cross-referencing conventions, stale `Proposed` ADR/TR decisions) and produces a report grouped by Critical / Warning / Info (plus a dedicated Stale decisions section). In `req:deprecate` mode, transitions target documents to `Deprecated` or `Superseded`, updates the category index row, and files `req:write` follow-ups for every back-reference so the writer can rewrite them. One phase per session.",
|
|
10514
10514
|
model: AGENT_MODEL.POWERFUL,
|
|
10515
10515
|
maxTurns: 80,
|
|
10516
10516
|
platforms: { cursor: { exclude: true } },
|
|
@@ -10637,6 +10637,7 @@ var requirementsReviewerSubAgent = {
|
|
|
10637
10637
|
"| `<REVIEW_REPORTS_ROOT>` | Where review reports are written | `docs/research/reviews/` |",
|
|
10638
10638
|
`| \`<TEMPLATES_ROOT>\` | Where the writer bundle ships category templates (read-only for this agent) | \`${REQUIREMENTS_WRITER_PATHS.templatesRoot}\` |`,
|
|
10639
10639
|
`| \`<STANDARDS_REF>\` | Standards & frameworks reference shipped by the writer bundle | \`${REQUIREMENTS_WRITER_PATHS.standardsRef}\` |`,
|
|
10640
|
+
"| `<STALE_PROPOSED_THRESHOLD_DAYS>` | Age (in days) after which a `Proposed` ADR/TR is flagged as a stale decision by Check 12 | `14` |",
|
|
10640
10641
|
"",
|
|
10641
10642
|
"If `docs/project-context.md` specifies a different requirements",
|
|
10642
10643
|
"tree, prefer that. Otherwise fall back to the defaults above.",
|
|
@@ -10686,7 +10687,7 @@ var requirementsReviewerSubAgent = {
|
|
|
10686
10687
|
"",
|
|
10687
10688
|
"## Review Checklist",
|
|
10688
10689
|
"",
|
|
10689
|
-
"Apply the following
|
|
10690
|
+
"Apply the following 12 checks. Each check produces zero or more",
|
|
10690
10691
|
"findings. Findings are graded Critical / Warning / Info using the",
|
|
10691
10692
|
"severity ladder in the next section.",
|
|
10692
10693
|
"",
|
|
@@ -10931,6 +10932,60 @@ var requirementsReviewerSubAgent = {
|
|
|
10931
10932
|
" reverse-link structure (e.g., a `referencedIn.meetings[]`",
|
|
10932
10933
|
" frontmatter block) and that structure is in active use.",
|
|
10933
10934
|
"",
|
|
10935
|
+
"### 12. Stale Proposed Decisions",
|
|
10936
|
+
"",
|
|
10937
|
+
"ADR and TR documents ship as `Status: Proposed` because they",
|
|
10938
|
+
"encode architectural or technology decisions that require explicit",
|
|
10939
|
+
"human acceptance (see Check 9 and the `requirements-writer`",
|
|
10940
|
+
"decision-authority rules). Once `Proposed`, there is no automatic",
|
|
10941
|
+
"signal that surfaces long-`Proposed` documents for decision \u2014 the",
|
|
10942
|
+
"backlog silently accumulates. Check 12 surfaces them.",
|
|
10943
|
+
"",
|
|
10944
|
+
"For every document under `<REQUIREMENTS_ROOT>` whose category is",
|
|
10945
|
+
"**ADR** or **TR** and whose `Status` is `Proposed`:",
|
|
10946
|
+
"",
|
|
10947
|
+
"- Determine the document's last-touched date. Prefer the YAML",
|
|
10948
|
+
" frontmatter `updated` field when present. If frontmatter does",
|
|
10949
|
+
" not carry an `updated` field, fall back to the most recent entry",
|
|
10950
|
+
" in the `## Revision History` section. If neither exists, fall",
|
|
10951
|
+
" back to `git log -1 --format=%cI -- <path>` for the file.",
|
|
10952
|
+
"- Compare that date to today. If the document has carried",
|
|
10953
|
+
" `Status: Proposed` for longer than",
|
|
10954
|
+
" `<STALE_PROPOSED_THRESHOLD_DAYS>` days (default 14), record a",
|
|
10955
|
+
" **Warning** finding that names the document, the age in days,",
|
|
10956
|
+
" the threshold, and the source used for the last-touched date.",
|
|
10957
|
+
"- Do **not** flag `Proposed` ADRs or TRs that are below the",
|
|
10958
|
+
" threshold \u2014 they are in active decision and not stale.",
|
|
10959
|
+
"- Do **not** auto-transition any status. Deprecation and",
|
|
10960
|
+
" acceptance both remain human decisions: Check 12 only surfaces",
|
|
10961
|
+
" the backlog for the human running `/review-requirements` (or",
|
|
10962
|
+
" for the follow-up issue it files) to act on.",
|
|
10963
|
+
"",
|
|
10964
|
+
"The threshold placeholder `<STALE_PROPOSED_THRESHOLD_DAYS>` is",
|
|
10965
|
+
"configurable \u2014 override it in the `req:review` issue body, in",
|
|
10966
|
+
"`docs/project-context.md`, or via `agentConfig.rules`. The default",
|
|
10967
|
+
"of 14 days sits above the orchestrator's existing 72h / 168h stale",
|
|
10968
|
+
"thresholds for `status:in-progress` / `status:blocked` and fits",
|
|
10969
|
+
"the pace at which architectural decisions are typically ratified.",
|
|
10970
|
+
"",
|
|
10971
|
+
"Findings from Check 12 describe a decision the human must make \u2014",
|
|
10972
|
+
"not an edit to the requirement document itself. Follow-up routing",
|
|
10973
|
+
"is therefore different from Checks 3 and 4:",
|
|
10974
|
+
"",
|
|
10975
|
+
"- Surface every stale `Proposed` ADR/TR in a distinct",
|
|
10976
|
+
" **Stale decisions** section in the review report (see Reporting",
|
|
10977
|
+
" Format below), separate from Critical / Warning / Info.",
|
|
10978
|
+
"- File **one** follow-up issue covering the stale decisions found",
|
|
10979
|
+
" in this review. Title:",
|
|
10980
|
+
" `req(review): decide on stale Proposed ADR/TR documents`.",
|
|
10981
|
+
" Labels: `type:requirement`, `req:review`, `priority:medium`,",
|
|
10982
|
+
" `status:needs-attention`. Body must list each stale document",
|
|
10983
|
+
" path, its age in days, and a link back to the review report.",
|
|
10984
|
+
" Do **not** file one follow-up per document \u2014 humans triage the",
|
|
10985
|
+
" backlog in a single pass.",
|
|
10986
|
+
"- When no stale documents are found, omit the Stale decisions",
|
|
10987
|
+
" section entirely and do not file the follow-up issue.",
|
|
10988
|
+
"",
|
|
10934
10989
|
"---",
|
|
10935
10990
|
"",
|
|
10936
10991
|
"## Severity Ladder",
|
|
@@ -10966,6 +11021,13 @@ var requirementsReviewerSubAgent = {
|
|
|
10966
11021
|
"- Missing cross-tier traceability; missing Implementor / Customer",
|
|
10967
11022
|
" fields on Customer Workflow / Consumer Application requirements",
|
|
10968
11023
|
" when the project tracks those fields",
|
|
11024
|
+
"- Stale `Proposed` ADR/TR documents that have carried the",
|
|
11025
|
+
" `Proposed` status longer than",
|
|
11026
|
+
" `<STALE_PROPOSED_THRESHOLD_DAYS>` (default 14) days. The",
|
|
11027
|
+
" underlying document is valid; only the absence of human",
|
|
11028
|
+
" decision is stale, so these are reported in the report's",
|
|
11029
|
+
" dedicated **Stale decisions** section rather than inline in",
|
|
11030
|
+
" the Warning list.",
|
|
10969
11031
|
"",
|
|
10970
11032
|
"### Info (Consider)",
|
|
10971
11033
|
"",
|
|
@@ -11009,6 +11071,20 @@ var requirementsReviewerSubAgent = {
|
|
|
11009
11071
|
"1. **[<file path>] <short title>** `Info`",
|
|
11010
11072
|
" ...",
|
|
11011
11073
|
"",
|
|
11074
|
+
"## Stale decisions",
|
|
11075
|
+
"",
|
|
11076
|
+
"*Omit this section entirely when Check 12 found no stale",
|
|
11077
|
+
"`Proposed` ADR/TR documents.*",
|
|
11078
|
+
"",
|
|
11079
|
+
"| Document | Age (days) | Threshold | Last-touched source |",
|
|
11080
|
+
"|----------|------------|-----------|---------------------|",
|
|
11081
|
+
"| `<file path>` | N | <STALE_PROPOSED_THRESHOLD_DAYS> | frontmatter `updated` / revision history / git log |",
|
|
11082
|
+
"",
|
|
11083
|
+
"Human decision required for each row. A single follow-up",
|
|
11084
|
+
"`req:review` issue (labels `type:requirement`, `req:review`,",
|
|
11085
|
+
"`priority:medium`, `status:needs-attention`) is filed to",
|
|
11086
|
+
"track triage; see Check 12 for the exact follow-up contract.",
|
|
11087
|
+
"",
|
|
11012
11088
|
"## Review Summary",
|
|
11013
11089
|
"",
|
|
11014
11090
|
"| Severity | Count |",
|
|
@@ -11016,6 +11092,7 @@ var requirementsReviewerSubAgent = {
|
|
|
11016
11092
|
"| Critical | N |",
|
|
11017
11093
|
"| Warning | N |",
|
|
11018
11094
|
"| Info | N |",
|
|
11095
|
+
"| Stale decisions | N |",
|
|
11019
11096
|
"",
|
|
11020
11097
|
"**Categories reviewed:** [list]",
|
|
11021
11098
|
"**Documents reviewed:** N",
|
|
@@ -11077,7 +11154,7 @@ var requirementsReviewerSubAgent = {
|
|
|
11077
11154
|
"1. Read scope from the `req:review` issue.",
|
|
11078
11155
|
"2. Read the matching templates from `<TEMPLATES_ROOT>` for every",
|
|
11079
11156
|
" category in scope.",
|
|
11080
|
-
"3. Run the
|
|
11157
|
+
"3. Run the 12 checks. For audits >10 documents, write the",
|
|
11081
11158
|
" verification script to disk first and run it.",
|
|
11082
11159
|
"4. Write the report to",
|
|
11083
11160
|
" `<REVIEW_REPORTS_ROOT>/review-<scope>-YYYY-MM-DD.md`.",
|
|
@@ -11130,6 +11207,28 @@ var requirementsReviewerSubAgent = {
|
|
|
11130
11207
|
"- Adds `status:ready` (or `status:blocked` when the finding",
|
|
11131
11208
|
" declares a `Depends on: #N` on another open issue)",
|
|
11132
11209
|
"",
|
|
11210
|
+
"**Check 12 exception \u2014 stale `Proposed` ADR/TR triage.** Check 12",
|
|
11211
|
+
"findings are the one case where follow-up flows through a new",
|
|
11212
|
+
"`req:review` issue rather than `req:write` / `req:trace` /",
|
|
11213
|
+
"`req:scan`. The finding is a decision a human must make, not an",
|
|
11214
|
+
"edit to a requirement document, so:",
|
|
11215
|
+
"",
|
|
11216
|
+
"- File **one** aggregated follow-up (not one per document). The",
|
|
11217
|
+
" title is",
|
|
11218
|
+
" `req(review): decide on stale Proposed ADR/TR documents`.",
|
|
11219
|
+
"- Labels: `type:requirement`, `req:review`, `priority:medium`,",
|
|
11220
|
+
" `status:needs-attention`.",
|
|
11221
|
+
"- Body lists every stale document surfaced in this review with",
|
|
11222
|
+
" its path, age in days, and the threshold used, and links back",
|
|
11223
|
+
" to the Stale decisions section of the review report.",
|
|
11224
|
+
"- This is the **only** case in which the reviewer opens a",
|
|
11225
|
+
" `req:review` issue \u2014 it is explicitly not self-referential",
|
|
11226
|
+
" because the new issue triages decisions rather than triggering",
|
|
11227
|
+
" another review.",
|
|
11228
|
+
"- The `req:write` follow-up schema below does **not** apply to",
|
|
11229
|
+
" this Check 12 issue; the schema governs `req:write` payloads,",
|
|
11230
|
+
" and this follow-up is a `req:review` triage item.",
|
|
11231
|
+
"",
|
|
11133
11232
|
"### `req:write` follow-up schema",
|
|
11134
11233
|
"",
|
|
11135
11234
|
"Because this bundle is the second-largest producer of `req:write`",
|
|
@@ -11180,7 +11279,9 @@ var requirementsReviewerSubAgent = {
|
|
|
11180
11279
|
"",
|
|
11181
11280
|
"**Do NOT create:**",
|
|
11182
11281
|
"",
|
|
11183
|
-
"- `req:review` issues
|
|
11282
|
+
"- `req:review` issues for any reason other than the Check 12",
|
|
11283
|
+
" stale-decisions triage documented above \u2014 that would be",
|
|
11284
|
+
" self-referential",
|
|
11184
11285
|
"- `bcm:*`, `people:*`, `company:*`, `software:*`, `research:*`,",
|
|
11185
11286
|
" or `industry:*` issues \u2014 those belong to their respective",
|
|
11186
11287
|
" bundles. If the review surfaces work for one of those bundles,",
|
|
@@ -11461,7 +11562,7 @@ var requirementsReviewerSubAgent = {
|
|
|
11461
11562
|
};
|
|
11462
11563
|
var reviewRequirementsSkill = {
|
|
11463
11564
|
name: "review-requirements",
|
|
11464
|
-
description: "Audit existing requirement documents (BR / FR / NFR / TR / ADR / SEC / DR / INT / OPS / UX / MT) for structural compliance, categorization, traceability, cross-reference integrity, sequence integrity, content quality, registry sync, decision-authority compliance, tier classification,
|
|
11565
|
+
description: "Audit existing requirement documents (BR / FR / NFR / TR / ADR / SEC / DR / INT / OPS / UX / MT) for structural compliance, categorization, traceability, cross-reference integrity, sequence integrity, content quality, registry sync, decision-authority compliance, tier classification, cross-referencing conventions, and stale `Proposed` ADR/TR decisions. Supports four scopes (full audit, category, single document, targeted check) and dispatches the requirements-reviewer agent. Audits documents \u2014 never writes them. Soft dependency: expects requirement templates at `" + REQUIREMENTS_WRITER_PATHS.templatesRoot + "`, shipped by the requirements-writer bundle.",
|
|
11465
11566
|
disableModelInvocation: true,
|
|
11466
11567
|
userInvocable: true,
|
|
11467
11568
|
context: "fork",
|
|
@@ -11493,9 +11594,10 @@ var reviewRequirementsSkill = {
|
|
|
11493
11594
|
"- `category:<slug>` \u2014 audit one category directory (e.g.,",
|
|
11494
11595
|
" `category:functional` audits every FR)",
|
|
11495
11596
|
"- `doc:<path>` \u2014 audit one specific requirement file",
|
|
11496
|
-
"- `check:<n>[,<n>...]` \u2014 run one or more checks (1\
|
|
11597
|
+
"- `check:<n>[,<n>...]` \u2014 run one or more checks (1\u201312) across the",
|
|
11497
11598
|
" documents in scope (e.g., `check:4` runs cross-reference",
|
|
11498
|
-
" integrity only
|
|
11599
|
+
" integrity only, `check:12` runs the stale-proposed-decision",
|
|
11600
|
+
" audit only)",
|
|
11499
11601
|
"",
|
|
11500
11602
|
"Optional extensions in the issue body:",
|
|
11501
11603
|
"",
|
|
@@ -11503,6 +11605,9 @@ var reviewRequirementsSkill = {
|
|
|
11503
11605
|
"- `requirements-root: <path>` \u2014 override `<REQUIREMENTS_ROOT>`",
|
|
11504
11606
|
"- `targets: <glob>` \u2014 restrict the document set with a glob",
|
|
11505
11607
|
" pattern relative to `<REQUIREMENTS_ROOT>`",
|
|
11608
|
+
"- `stale-proposed-threshold-days: <n>` \u2014 override the default",
|
|
11609
|
+
" 14-day threshold used by Check 12 (stale `Proposed` ADR/TR",
|
|
11610
|
+
" decisions) for this review",
|
|
11506
11611
|
"",
|
|
11507
11612
|
"## Default Paths",
|
|
11508
11613
|
"",
|
|
@@ -11521,10 +11626,12 @@ var reviewRequirementsSkill = {
|
|
|
11521
11626
|
" scope, the requirements root (or accept the default), and the",
|
|
11522
11627
|
" output path.",
|
|
11523
11628
|
"2. Execute the review phase of the requirements-reviewer agent.",
|
|
11524
|
-
"3. The agent runs the
|
|
11525
|
-
" grouped by Critical / Warning / Info
|
|
11526
|
-
"
|
|
11527
|
-
"
|
|
11629
|
+
"3. The agent runs the 12-check audit, writes a structured report",
|
|
11630
|
+
" grouped by Critical / Warning / Info (plus a separate",
|
|
11631
|
+
" **Stale decisions** section when Check 12 surfaces stale",
|
|
11632
|
+
" `Proposed` ADR/TR documents), files follow-up issues for",
|
|
11633
|
+
" actionable findings, and comments on the `req:review` issue",
|
|
11634
|
+
" with the summary.",
|
|
11528
11635
|
"",
|
|
11529
11636
|
"## Audits >10 Documents",
|
|
11530
11637
|
"",
|
|
@@ -11544,6 +11651,11 @@ var reviewRequirementsSkill = {
|
|
|
11544
11651
|
"- Follow-up GitHub issues for every Critical and Warning finding,",
|
|
11545
11652
|
" carrying the appropriate phase label (`req:write`, `req:trace`,",
|
|
11546
11653
|
" or `req:scan`) for the downstream agent that should act",
|
|
11654
|
+
"- An aggregated `req:review` follow-up issue labeled",
|
|
11655
|
+
" `status:needs-attention` when Check 12 surfaces stale `Proposed`",
|
|
11656
|
+
" ADR/TR documents (one issue per review, not one per document);",
|
|
11657
|
+
" the review report also includes a dedicated **Stale decisions**",
|
|
11658
|
+
" section in that case",
|
|
11547
11659
|
"- A summary comment on the originating `req:review` issue"
|
|
11548
11660
|
].join("\n")
|
|
11549
11661
|
};
|
|
@@ -11651,7 +11763,7 @@ var deprecateRequirementSkill = {
|
|
|
11651
11763
|
};
|
|
11652
11764
|
var requirementsReviewerBundle = {
|
|
11653
11765
|
name: "requirements-reviewer",
|
|
11654
|
-
description: "Requirements reviewer agent bundle. Audits existing requirement documents (BR, FR, NFR, TR, ADR, SEC, DR, INT, OPS, UX, MT) via the
|
|
11766
|
+
description: "Requirements reviewer agent bundle. Audits existing requirement documents (BR, FR, NFR, TR, ADR, SEC, DR, INT, OPS, UX, MT) via the 12-check review phase (including Check 12: stale `Proposed` ADR/TR decisions), and transitions requirements to `Deprecated` or `Superseded` via the deprecation phase (narrow writes to Status, Revision History, Superseded-by, and category index row, with `req:write` follow-ups for every back-reference). Reads templates from the requirements-writer bundle's reference directory; ships no templates of its own.",
|
|
11655
11767
|
appliesWhen: () => true,
|
|
11656
11768
|
rules: [
|
|
11657
11769
|
{
|
|
@@ -11676,14 +11788,26 @@ var requirementsReviewerBundle = {
|
|
|
11676
11788
|
"Use `/review-requirements <scope>` to audit existing requirement",
|
|
11677
11789
|
"documents. Four scopes are supported: `full` (every document),",
|
|
11678
11790
|
"`category:<slug>` (one category directory), `doc:<path>` (one",
|
|
11679
|
-
"specific document), and `check:<n>` (one or more of the
|
|
11791
|
+
"specific document), and `check:<n>` (one or more of the 12",
|
|
11680
11792
|
"checks across the documents in scope).",
|
|
11681
11793
|
"",
|
|
11794
|
+
"Check 12 flags ADR and TR documents that have carried",
|
|
11795
|
+
"`Status: Proposed` longer than",
|
|
11796
|
+
"`<STALE_PROPOSED_THRESHOLD_DAYS>` days (default 14, configurable",
|
|
11797
|
+
"via the `req:review` issue body, `docs/project-context.md`, or",
|
|
11798
|
+
"`agentConfig.rules`). Stale decisions are reported in a separate",
|
|
11799
|
+
"**Stale decisions** section of the review report and trigger one",
|
|
11800
|
+
"aggregated `req:review` follow-up issue labeled",
|
|
11801
|
+
"`status:needs-attention` so a human can triage the backlog. The",
|
|
11802
|
+
"reviewer never auto-transitions status \u2014 acceptance and",
|
|
11803
|
+
"deprecation both remain human decisions.",
|
|
11804
|
+
"",
|
|
11682
11805
|
"The review phase produces **review reports and follow-up issues",
|
|
11683
11806
|
"only** \u2014 it never edits requirement documents, capability",
|
|
11684
11807
|
"models, or research notes. It files follow-up issues with the",
|
|
11685
|
-
"appropriate phase label (`req:write`, `req:trace`,
|
|
11686
|
-
"
|
|
11808
|
+
"appropriate phase label (`req:write`, `req:trace`, `req:scan`,",
|
|
11809
|
+
"or \u2014 only for Check 12 stale-decision triage \u2014 `req:review`)",
|
|
11810
|
+
"for the downstream agent or human to pick up.",
|
|
11687
11811
|
"",
|
|
11688
11812
|
"For audits covering more than 10 documents, the reviewer writes",
|
|
11689
11813
|
"a read-only Python verification script alongside the report and",
|