Repository navigation
Expand file tree
/
Copy pathFEATURES.json
More file actions
233 lines (233 loc) · 16.4 KB
/
Copy pathFEATURES.json
File metadata and controls
233 lines (233 loc) · 16.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
{
"project": "Harness Kit",
"updated": "2026-08-29",
"legend": {
"status": [
"FAIL",
"PENDING_REVIEW",
"PASS"
],
"note": "FAIL = not done, broken, or rejected. PENDING_REVIEW = built; VERIFY green; awaiting human/reviewer. PASS = human/reviewer only. The agent may set PENDING_REVIEW; the agent never sets PASS.",
"priority": "lower number = higher priority; agent picks the highest-priority FAIL",
"id_convention": "AREA-NNN, e.g. SEC-001, KIT-001, AUDIT-001",
"verify": "runnable test command or command sequence \u2014 not prose"
},
"features": [
{
"id": "KIT-WORKFLOW-002",
"name": "Publish gates, post-execute review, product-facing create-pull-request skill (v2.6)",
"priority": 1,
"verify": "[ \"$(ls rules/*.mdc | wc -l | tr -d ' ')\" = 9 ] && test -f rules/post-execute-review.mdc && test -f rules/pr-creation.mdc && test -f skills/create-pull-request/SKILL.md && grep -q 'create-pull-request' skills/sprint-contract/SKILL.md && grep -q 'pull_request_template' scripts/setup-harness-kit.sh && grep -q 'Kit v2.6' README.md && ./scripts/verify-harness.sh && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PENDING_REVIEW",
"notes": "Nine rules; create-pull-request skill; sprint contract no longer requires contract paste in PR body; setup installs .github/pull_request_template.md when missing."
},
{
"id": "KIT-ADOPT-001",
"name": "Local contracts, consumer-aware gate, human-read PR review, human commit authorship",
"priority": 1,
"verify": "test -z \"$(git ls-files skills/.harness)\" && git check-ignore -q skills/.harness/contracts && grep -q '2.5.0' scripts/build-bootstrap.sh && grep -q 'Kit version 2.5.0' BOOTSTRAP.md && grep -q '.cursor/rules' scripts/verify-harness.sh && grep -q 'Commit authorship' rules/no-stage-harness-files.mdc && grep -q 'PR body (required)' skills/sprint-contract/templates/SPRINT_CONTRACT.md && ! grep -qi 'cursor\\|co-authored-by' .github/workflows/harness.yml && [ \"$(ls rules/*.mdc | wc -l | tr -d ' ')\" = 6 ] && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null && ./scripts/verify-harness.sh",
"status": "PENDING_REVIEW",
"notes": "Contract: skills/.harness/contracts/KIT-ADOPT-001.md (local, not tracked \u2014 it is in the PR body). EXECUTE+VERIFY 2026-08-29 on feat/kit-adopt-001-local-contracts; gate 10/10, 0 skipped; awaiting human PASS"
},
{
"id": "KIT-GATES-002",
"name": "Gate reads structure not prose: impact-map parse replaces the path heuristic; STATE inbox drift check",
"priority": 2,
"verify": "! grep -q '[*].md|[*].sh' scripts/verify-harness.sh && grep -qi inbox scripts/verify-harness.sh && ./scripts/verify-harness.sh && grep -q '2.4.0' BOOTSTRAP.md && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PENDING_REVIEW",
"notes": "Contract: skills/.harness/contracts/KIT-GATES-002.md; profile: ops-docs; EXECUTE+VERIFY green 2026-08-28 on feat/kit-gates-002-tighten-gate; 4 declared deviations incl. Q2 corrected by the gate itself"
},
{
"id": "KIT-GATES-001",
"name": "Deterministic gates: RED/BASELINE/GREEN artifacts, verify-harness.sh, CI re-running VERIFY",
"priority": 1,
"verify": "test -x scripts/verify-harness.sh && ./scripts/verify-harness.sh && test -f .github/workflows/harness.yml && ! grep -q 'Expected RED output' skills/sprint-contract/templates/SPRINT_CONTRACT.md && grep -q '2.3.0' BOOTSTRAP.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PENDING_REVIEW",
"notes": "Contract: skills/.harness/contracts/KIT-GATES-001.md; profile: ops-docs; EXECUTE+VERIFY green 2026-08-28 on feat/kit-gates-001-deterministic-gates; contracts now tracked; awaiting human PASS"
},
{
"id": "KIT-RULES-001",
"name": "rules/ directory as .mdc with AGENTS.md assembly, plus ERD routing before contract drafting",
"priority": 1,
"verify": "test $(ls rules/*.mdc | wc -l) -eq 6 && test -f rules/README.md && grep -q 'harness-kit:rules:start' scripts/setup-harness-kit.sh && grep -q 'BOOT \u2192 ERD?' skills/harness-onboard/templates/AGENT_PROCESS.md && grep -q '2.2.0' BOOTSTRAP.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PENDING_REVIEW",
"notes": "Contract: skills/.harness/contracts/KIT-RULES-001.md; profile: ops-docs; EXECUTE+VERIFY green 2026-08-28 on feat/kit-rules-001-rules-and-erd-routing; 4 declared deviations; awaiting human PASS"
},
{
"id": "KIT-ERD-001",
"name": "product-erd profile + erd-authoring skill: five human-gated stages producing erd.md + architecture.md and a FEATURES seed",
"priority": 1,
"verify": "test -f skills/erd-authoring/SKILL.md && test -f skills/erd-authoring/templates/ERD.md && test -f skills/erd-authoring/templates/ARCHITECTURE.md && test -f skills/erd-authoring/templates/ERD_CONTRACT.md && grep -q product-erd skills/harness-onboard/templates/AGENT_PROCESS.md && grep -q '2.1.0' BOOTSTRAP.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Merged via PR #18 (ef393c3). PASS set by David 2026-08-27; criteria re-checked against master."
},
{
"id": "KIT-SKILLS-001",
"name": "Templates become skills; adoption moves from single-file BOOTSTRAP to git submodule",
"priority": 1,
"verify": "test -f skills/code-quality-gate/SKILL.md && test -f skills/code-audit/SKILL.md && test -x scripts/setup-harness-kit.sh && grep -q '2.0.0' README.md && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Merged via PR #17 (8d44fbf). PASS set by David 2026-08-27; criteria re-checked against master."
},
{
"id": "KIT-AUDIT-001",
"name": "code-audit profile: periodic whole-project quality audit with behaviour-preservation discipline",
"priority": 1,
"verify": "test -f templates/CODE_AUDIT_CONTRACT.md && test -f templates/CODE_AUDIT_FINDING.md && grep -q code-audit templates/AGENT_PROCESS.md && grep -qi characterization templates/SPRINT_CONTRACT.md && grep -q '1.5.0' BOOTSTRAP.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Merged via PR #16 (3e22a12). PASS set by David 2026-08-27."
},
{
"id": "KIT-QUALITY-001",
"name": "Code-quality gate: deterministic lint-first checklist blocking PENDING_REVIEW on violations",
"priority": 1,
"verify": "test -f templates/CODE_QUALITY.md && grep -qi 'code.quality' templates/SPRINT_CONTRACT.md && grep -qi 'code.quality' templates/REVIEW.md && grep -q '1.4.0' BOOTSTRAP.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Merged via PR #15 (a3af45f). PASS set by David 2026-08-27."
},
{
"id": "KIT-V13-001",
"name": "Universal multi-language spine: PENDING_REVIEW, profiles, REVIEW \u00a70, Solidity audit templates",
"priority": 1,
"verify": "grep -q '1.3.0' BOOTSTRAP.md && grep -q PENDING_REVIEW templates/FEATURES.json && test -f templates/AUDIT_CONTRACT.md && ./scripts/build-bootstrap.sh >/dev/null && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Merged to master via PR #14 (e3b98b1) \u2014 kit v1.3.0 live. Ledger reconciled 2026-08-27 during KIT-QUALITY-001."
},
{
"id": "KIT-PROCESS-RECOVERY-001",
"name": "Recover process compliance for uncommitted harness kit work on master",
"priority": 1,
"verify": "git branch --show-current | grep -qv master && test -f BOOTSTRAP.md && grep -q 'Human confirmed' templates/SPRINT_CONTRACT.md",
"status": "PASS",
"notes": "Approved 2026-06-21; branch feat/kit-single-llm-001 confirmed; verify green 2026-06-21."
},
{
"id": "KIT-SINGLE-LLM-001",
"name": "Single-LLM harness: BOOTSTRAP.md, README user guide, strict TDD, delete legacy",
"priority": 1,
"verify": "test -f BOOTSTRAP.md && ! test -f HARNESS.md && ! test -f SETUP.md && ! test -f install.sh && ! test -f update.sh && ! test -f LOOP.md && ! test -f templates/EXECUTOR_HANDOFF.md && python3 -m json.tool FEATURES.json >/dev/null && grep -q 'Tests first' templates/SPRINT_CONTRACT.md && grep -q 'RED' templates/AGENT_PROCESS.md && grep -q 'skills/.harness/' .gitignore",
"status": "PASS",
"notes": "Approved 2026-06-21; verify updated KIT-V12-CLEANUP-001 \u2014 HARNESS.md removed, Agent process in templates/AGENT_PROCESS.md."
},
{
"id": "KIT-V12-001",
"name": "Harness v1.2: AGENTS.md entrypoint, slim README, brownfield README recovery, legacy cleanup",
"priority": 1,
"verify": "grep -q 'Kit version 1.2.0' BOOTSTRAP.md && grep -q 'version=1.2.0' BOOTSTRAP.md && grep -q 'Brownfield README safety' BOOTSTRAP.md && grep -q '## Agent process' templates/AGENTS.md && ! grep -q 'read \\`HARNESS.md\\`' templates/AGENTS.md && test -f templates/AGENT_PROCESS.md && test -f templates/README_POINTER.md && grep -q 'slim pointer' BOOTSTRAP.md && ! grep -q 'Appendix A \u2014 HARNESS.md' scripts/build-bootstrap.sh && python3 -m json.tool FEATURES.json >/dev/null && ./scripts/build-bootstrap.sh >/dev/null && grep -q 'Kit version 1.2.0' BOOTSTRAP.md",
"status": "PASS",
"notes": "Shipped in tree as v1.2 baseline; superseded as active FAIL by KIT-V13-001. Human may confirm PASS."
},
{
"id": "KIT-V12-CLEANUP-001",
"name": "Delete HARNESS.md, slim README, reconcile KIT-SINGLE-LLM-001 verify",
"priority": 1,
"verify": "! test -f HARNESS.md && grep -q 'Agents \u2192' README.md && ! grep -q 'Operational detail for agents lives in' README.md && grep -q \"grep -q 'RED' templates/AGENT_PROCESS.md\" FEATURES.json && python3 -m json.tool FEATURES.json >/dev/null",
"status": "PASS",
"notes": "Shipped in tree (no HARNESS.md); superseded as active FAIL by KIT-V13-001. Human may confirm PASS."
},
{
"id": "SEC-001",
"name": "Security & production-hardening review pass (checklist + threat-model step)",
"priority": 1,
"verify": "templates/SECURITY_CHECKLIST.md exists; SPRINT_CONTRACT has Threat model section; REVIEW_CHECKLIST has security gate; README lists 6 templates; root FEATURES.json valid",
"status": "PASS",
"notes": "Reviewer approved SEC-001 with SEC-001b as one docs-only unit; stacking rule waived for docs-only changes."
},
{
"id": "SEC-001b",
"name": "Review Packet protocol (ephemeral executor\u2192reviewer context handoff)",
"priority": 1,
"verify": "templates/REVIEW_PACKET.md exists; REVIEW_CHECKLIST split into Tier1/Tier2; EXECUTOR_HANDOFF emits packet; HARNESS.md has 'Review the packet' subsection; .gitignore has .harness/; README lists 7 templates; root FEATURES.json valid",
"status": "PASS",
"notes": "Reviewer verified packet sufficiency from the packet alone; ephemeral packet deleted after PASS."
},
{
"id": "SEC-001d",
"name": "Default-branch field in agent context",
"priority": 1,
"verify": "templates/AGENTS.md has a generic Default branch placeholder under How we work here; no real branch name is hardcoded; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged; reviewer APPROVED."
},
{
"id": "SEC-001e",
"name": "Self-enforcing Review Packet criteria keying",
"priority": 2,
"verify": "templates/REVIEW_PACKET.md has the two-step fill instruction; warns not to substitute handoff verify-steps; per-criterion table columns unchanged; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged in SEC-BUNDLE-001; reviewer APPROVED."
},
{
"id": "SEC-002",
"name": "Harness-workflow safety (prompt-injection defense, human-gated side effects, least-privilege executor)",
"priority": 3,
"verify": "HARNESS.md has Workflow safety after the control audit with observed-content, human-gated side effects, and least-privilege principles; REVIEW_CHECKLIST Tier 2 has Workflow safety checkboxes; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged in SEC-BUNDLE-001; reviewer APPROVED (read cold)."
},
{
"id": "SEC-001f",
"name": "Machine-readable criteria block for contract, handoff, and packet",
"priority": 4,
"verify": "SPRINT_CONTRACT has a canonical criteria fenced block; EXECUTOR_HANDOFF carries a criteria block and tells the Executor to paste it verbatim into the packet; REVIEW_PACKET says to paste the handoff criteria block; table columns unchanged; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged; reviewer APPROVED \u2014 first verbatim-criteria packet."
},
{
"id": "KIT-INSTALL-001",
"name": "One-command kit installer",
"priority": 5,
"verify": "install.sh exists, is executable, POSIX sh, copies HARNESS.md, SETUP.md, LOOP.md, and templates, scaffolds AGENTS.md and FEATURES.json only when absent, writes .harness/VERSION, updates target .gitignore idempotently, runs twice against a throwaway git repo without duplicate lines or overwrites, README has Install section, root FEATURES.json valid",
"status": "PASS",
"notes": "Superseded by KIT-SINGLE-LLM-001 (BOOTSTRAP.md). Marked PASS under KIT-V13-001 cleanup."
},
{
"id": "KIT-BROWNFIELD-001",
"name": "Brownfield adoption detects repo's existing default branch (don't assume main)",
"priority": 5,
"verify": "ADOPTION.md A1 instructs detecting the default branch via git and writing it to the AGENTS.md Default-branch field; ADOPTION.md states the adopt-don't-impose principle; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged; reviewer APPROVED."
},
{
"id": "KIT-LOOP-001",
"name": "Loop-readiness seam (LOOP.md + loop state template)",
"priority": 5,
"verify": "LOOP.md has loop-above-harness framing, primitive mapping, automation-precondition rule, worktree parallelism, trusted-verifier caveat, and loop-ready-not-loop-on statement; templates/STATE.md has loop/triage state sections; README lists both files; root FEATURES.json valid",
"status": "PASS",
"notes": "Merged; reviewer APPROVED after reading the precondition rule in full."
},
{
"id": "KIT-STATE-001",
"name": "Three-state feature status model with manual transition owners",
"priority": 5,
"verify": "templates/FEATURES.json defines FAIL, PENDING_REVIEW, PASS; HARNESS.md documents manual transition owners and post-merge actions; REVIEW_CHECKLIST documents verdict transitions; root FEATURES.json reconciles merged features and remains valid",
"status": "PASS",
"notes": "Intent restored and completed by KIT-V13-001 (FAIL|PENDING_REVIEW|PASS). Historical verify strings obsolete."
},
{
"id": "KIT-UPDATE-001",
"name": "Dedicated kit update script with version bump and drift report",
"priority": 5,
"verify": "update.sh exists, is executable, POSIX sh, refuses non-git or non-installed targets, refreshes only kit-owned files, preserves AGENTS.md and FEATURES.json, writes .harness/VERSION, reports FEATURES.json legend drift without migrating, README documents Update, root FEATURES.json valid",
"status": "PASS",
"notes": "Superseded by KIT-SINGLE-LLM-001. Marked PASS under KIT-V13-001 cleanup."
},
{
"id": "KIT-SETUP-001",
"name": "Runnable setup flow for greenfield, brownfield, and existing AI docs",
"priority": 5,
"verify": "SETUP.md exists as a checklist with Greenfield, Brownfield, and Brownfield-with-existing-AI-docs paths; each step has an actor and done condition; README lists SETUP.md; root FEATURES.json valid",
"status": "PASS",
"notes": "Superseded by KIT-SINGLE-LLM-001 (BOOTSTRAP paths A/B/C). Marked PASS under KIT-V13-001 cleanup."
},
{
"id": "KIT-DEPRECATE-ADOPTION-001",
"name": "Fold adoption concepts into README and delete the legacy adoption doc",
"priority": 5,
"verify": "README has a concise Adoption concepts section; the legacy adoption doc is deleted; live references redirect to SETUP.md or README Adoption concepts; post-deletion grep shows only allowed historical audit strings; root FEATURES.json valid",
"status": "PASS",
"notes": "Superseded by KIT-SINGLE-LLM-001. Marked PASS under KIT-V13-001 cleanup."
}
]
}