You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .specsmith/requirements.json
+35Lines changed: 35 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1797,5 +1797,40 @@
1797
1797
"description": "The Kairos Agents > Providers settings page MUST display bucket scores (reasoning, conversational, longform) retrieved from `GET /api/model-intel/scores/{model}` for each configured provider. Scores MUST be shown as compact numeric badges. A Sync button MUST call `POST /api/model-intel/sync`.",
1798
1798
"source": "ARCHITECTURE.md §20–21 [KAI-001]",
1799
1799
"status": "defined"
1800
+
},
1801
+
{
1802
+
"id": "REQ-300",
1803
+
"title": "YAML-First Governance Sync Pipeline",
1804
+
"description": "When `.specsmith/governance-mode` contains `yaml`, `specsmith sync` MUST read docs/requirements/*.yml and docs/tests/*.yml as canonical sources, write .specsmith/requirements.json + testcases.json as JSON caches, and regenerate docs/REQUIREMENTS.md + docs/TESTS.md as derived artifacts. Legacy Markdown mode (governance-mode absent or `markdown`) MUST still work for backward compatibility.",
"title": "Generate Docs Command Renders YAML to Markdown",
1818
+
"description": "`specsmith generate docs` MUST read docs/requirements/*.yml and docs/tests/*.yml in YAML-first mode, render the canonical Markdown artifacts docs/REQUIREMENTS.md and docs/TESTS.md, and also re-sync the JSON machine state. `--check` flag MUST report what would change without writing. Only available when governance-mode is `yaml`.",
"title": "Governance Mode Flag Controls Authority Direction",
1825
+
"description": "`.specsmith/governance-mode` MUST contain `yaml` to activate YAML-first mode. `is_yaml_mode(root)` in `specsmith.governance_yaml` reads this flag. Absence of the file or value `markdown` activates legacy Markdown-primary mode. The flag is written by `scripts/migrate_governance_to_yaml.py`.",
"description": "`scripts/migrate_governance_to_yaml.py` MUST be idempotent and execute the following steps in order: (1) remove duplicate REQs from REQUIREMENTS.md, (2) re-sync .specsmith/ JSON from cleaned MD, (3) export JSON to grouped YAML files under docs/requirements/ and docs/tests/, (4) write .specsmith/governance-mode = yaml. Re-running must not corrupt the governance state.",
"title": "validate --strict Enforces All 8 Schema Checks",
2876
+
"description": "`specsmith validate --strict --json` returns `{ok: true, strict_errors: 0}` on a clean project. When a duplicate REQ ID is injected, strict_errors > 0 and exit code is 1. When an untested REQ exists, strict_warnings > 0 but exit code is still 0. The `validate-strict` CI job runs this gate on every push.",
"title": "generate docs Renders YAML to REQUIREMENTS.md and TESTS.md",
2887
+
"description": "`specsmith generate docs --json` in YAML-first mode exits 0 and returns `{ok: true, reqs: N, tests: M}`. The regenerated docs/REQUIREMENTS.md contains a heading for each REQ in the YAML files. `--check` flag reports changes without writing.",
"title": "governance-mode Flag Controls YAML vs Markdown Authority",
2898
+
"description": "`is_yaml_mode(root)` returns True when `.specsmith/governance-mode` == `yaml` and False when the file is absent or contains `markdown`. `specsmith sync` uses YAML sources when yaml_mode=True and Markdown sources when False. The flag is preserved across specsmith upgrades.",
"description": "Running `scripts/migrate_governance_to_yaml.py` twice produces the same result as running it once. After migration: docs/requirements/ and docs/tests/ contain YAML files, .specsmith/governance-mode == `yaml`, and `specsmith sync --check` exits 0.",
2910
+
"requirement_id": "REQ-304",
2911
+
"type": "integration",
2912
+
"verification_method": "script",
2913
+
"input": "scripts/migrate_governance_to_yaml.py run twice on same project",
2914
+
"expected_behavior": "second run produces no changes; governance-mode=yaml; sync --check exits 0",
0 commit comments