codex-genesis-harness 0.1.1 → 0.1.4
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/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
- package/.codebase/CURRENT_STATE.md +2 -0
- package/.codebase/DOMAIN_MODELS.md +5 -3
- package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
- package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
- package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
- package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
- package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
- package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
- package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
- package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
- package/.codebase/README.md +139 -0
- package/.codebase/RECOVERY_POINTS.md +438 -0
- package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
- package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
- package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
- package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
- package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
- package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
- package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
- package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
- package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
- package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
- package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
- package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
- package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
- package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
- package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
- package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
- package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
- package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
- package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
- package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
- package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
- package/.codex/skills/genesis-harness/SKILL.md +734 -82
- package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
- package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
- package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
- package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
- package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
- package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
- package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
- package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
- package/.codex/skills/genesis-harness/scripts/check-architecture-boundaries.sh +23 -23
- package/.codex/skills/genesis-harness/scripts/check-docs-sync.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-no-debug-logs.sh +21 -21
- package/.codex/skills/genesis-harness/scripts/check-required-planning-files.sh +46 -46
- package/.codex/skills/genesis-harness/scripts/check-spec-changelog.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-task-tracking.sh +25 -25
- package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
- package/.codex/skills/genesis-harness/scripts/create-adr.sh +74 -74
- package/.codex/skills/genesis-harness/scripts/create-bug.sh +160 -160
- package/.codex/skills/genesis-harness/scripts/create-feature.sh +217 -217
- package/.codex/skills/genesis-harness/scripts/detect-stack.sh +26 -26
- package/.codex/skills/genesis-harness/scripts/init-planning.sh +750 -719
- package/.codex/skills/genesis-harness/scripts/list-changed-files.sh +12 -12
- package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
- package/.codex/skills/genesis-harness/scripts/run-verification.sh +47 -47
- package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
- package/.codex/skills/genesis-harness/scripts/update-state.sh +33 -33
- package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
- package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
- package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
- package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
- package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
- package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
- package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
- package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
- package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
- package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
- package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
- package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
- package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
- package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
- package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
- package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
- package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
- package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
- package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
- package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
- package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
- package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
- package/.codex/skills/genesis-research-first/SKILL.md +237 -0
- package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-research-first/examples/example.md +85 -0
- package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
- package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
- package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
- package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
- package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
- package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
- package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
- package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
- package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
- package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
- package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
- package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
- package/.codex-plugin/plugin.json +1 -1
- package/README.EN.md +719 -0
- package/README.VI.md +712 -0
- package/README.md +261 -107
- package/VERSION +1 -1
- package/bin/genesis-harness.js +20 -11
- package/package.json +1 -1
- package/scripts/README.md +342 -0
- package/scripts/compact-context.sh +54 -0
- package/scripts/detect-changes.sh +152 -0
- package/scripts/install.sh +50 -41
- package/scripts/offload-log.sh +72 -0
- package/scripts/run-evals.sh +70 -43
- package/scripts/run-verify-loop.sh +75 -0
- package/scripts/uninstall.sh +52 -43
- package/scripts/verify.sh +165 -73
- package/.codex/skills/harness-engineering-skill/SKILL.md +0 -45
- package/.codex/skills/harness-engineering-skill/checklists/checklist.md +0 -8
- package/.codex/skills/harness-engineering-skill/examples/example.md +0 -4
- package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +0 -8
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/SKILL.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/agents/openai.yaml +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/checklists/checklist.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/examples/example.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/templates/provider-contract-template.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/SKILL.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/agents/openai.yaml +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/checklists/checklist.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/examples/example.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/templates/api-contract-template.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/SKILL.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/agents/openai.yaml +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/checklists/checklist.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/examples/example.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/templates/architecture-decision-template.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/SKILL.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/agents/openai.yaml +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/checklists/checklist.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/examples/example.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/templates/map-update-template.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/SKILL.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/agents/openai.yaml +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/checklists/checklist.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/examples/example.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/templates/design-spec-template.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/SKILL.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/agents/openai.yaml +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/checklists/checklist.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/examples/example.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/templates/docs-update-template.md +0 -0
- /package/.codex/skills/{harness-engineering-skill → genesis-harness-engineering}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/SKILL.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/checklists/checklist.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/examples/example.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/templates/orchestration-template.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/SKILL.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/agents/openai.yaml +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/checklists/checklist.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/examples/example.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/templates/plan-template.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/SKILL.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/agents/openai.yaml +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/checklists/checklist.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/examples/example.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/templates/release-checklist-template.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/SKILL.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/agents/openai.yaml +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/checklists/checklist.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/examples/example.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/templates/research-note-template.md +0 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
# Post-Implementation Auto-Update Guide
|
|
2
|
+
|
|
3
|
+
**Purpose**: Automated state synchronization and documentation updates after successful implementation.
|
|
4
|
+
|
|
5
|
+
**Status**: REFERENCE - Use after implementation is verified and tests pass.
|
|
6
|
+
|
|
7
|
+
## Quick Reference: What Updates Automatically
|
|
8
|
+
|
|
9
|
+
After passing all tests and verification:
|
|
10
|
+
|
|
11
|
+
| Change Type | File to Update | Update Trigger |
|
|
12
|
+
|-------------|---|---|
|
|
13
|
+
| Code implementation | `.codebase/MODULE_INDEX.md` | New module/export added |
|
|
14
|
+
| API changes | `.codebase/API_CONTRACTS.md` | Endpoint behavior changed |
|
|
15
|
+
| Database changes | `.codebase/DOMAIN_MODELS.md` | Schema or entity changed |
|
|
16
|
+
| Route changes | `.codebase/UI_ROUTES.md` | Frontend route added/modified |
|
|
17
|
+
| Test coverage | `.codebase/TEST_MATRIX.md` | New test files created |
|
|
18
|
+
| Module dependencies | `.codebase/DEPENDENCY_GRAPH.md` | Import statements changed |
|
|
19
|
+
| Architecture | `.codebase/ARCHITECTURE.md` | System design changed |
|
|
20
|
+
| Status | `.codebase/CURRENT_STATE.md` | Any public-facing change |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Automated Update Workflow
|
|
25
|
+
|
|
26
|
+
### Phase 1: Detection (After Implementation Passes Tests)
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Trigger: All tests pass + Manual review approved
|
|
30
|
+
┌─────────────────────────────────────────────┐
|
|
31
|
+
│ 1. Scan changed files │
|
|
32
|
+
│ 2. Identify type of changes │
|
|
33
|
+
│ 3. Check what docs need updating │
|
|
34
|
+
└─────────────────────────────────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Scan categories:**
|
|
38
|
+
- New files created?
|
|
39
|
+
- Public APIs modified?
|
|
40
|
+
- Database queries changed?
|
|
41
|
+
- Routes added/removed?
|
|
42
|
+
- Configuration changes?
|
|
43
|
+
|
|
44
|
+
### Phase 2: Analysis (Auto-Detect Impact)
|
|
45
|
+
|
|
46
|
+
**For each changed file, check:**
|
|
47
|
+
|
|
48
|
+
```javascript
|
|
49
|
+
if (file in /api || /endpoint) {
|
|
50
|
+
→ Update API_CONTRACTS.md
|
|
51
|
+
→ Run api-contract-skill
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (file contains database/query) {
|
|
55
|
+
→ Update DOMAIN_MODELS.md
|
|
56
|
+
→ Validate schema compatibility
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (file is route/page) {
|
|
60
|
+
→ Update UI_ROUTES.md
|
|
61
|
+
→ Check navigation flow
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (test file added) {
|
|
65
|
+
→ Update TEST_MATRIX.md
|
|
66
|
+
→ Calculate coverage %
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (file in core module) {
|
|
70
|
+
→ Update MODULE_INDEX.md
|
|
71
|
+
→ Check import/export statements
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Phase 3: Documentation Sync
|
|
76
|
+
|
|
77
|
+
**AUTO-SYNC checklist:**
|
|
78
|
+
|
|
79
|
+
- [ ] **Module Inventory** (`MODULE_INDEX.md`)
|
|
80
|
+
```
|
|
81
|
+
When: New file/function/export added
|
|
82
|
+
Auto-Action:
|
|
83
|
+
- Extract new exports
|
|
84
|
+
- Document module purpose
|
|
85
|
+
- Update import paths
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
- [ ] **API Contracts** (`API_CONTRACTS.md`)
|
|
89
|
+
```
|
|
90
|
+
When: API endpoint changed/added
|
|
91
|
+
Auto-Action:
|
|
92
|
+
- Extract request/response schemas
|
|
93
|
+
- Update endpoint paths
|
|
94
|
+
- Document breaking changes
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- [ ] **Domain Models** (`DOMAIN_MODELS.md`)
|
|
98
|
+
```
|
|
99
|
+
When: Database schema changed
|
|
100
|
+
Auto-Action:
|
|
101
|
+
- Extract new tables/fields
|
|
102
|
+
- Document relationships
|
|
103
|
+
- Note migration strategy
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- [ ] **Test Matrix** (`TEST_MATRIX.md`)
|
|
107
|
+
```
|
|
108
|
+
When: Test files added/removed
|
|
109
|
+
Auto-Action:
|
|
110
|
+
- Recalculate coverage %
|
|
111
|
+
- Update test counts
|
|
112
|
+
- Flag coverage gaps
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- [ ] **UI Routes** (`UI_ROUTES.md`)
|
|
116
|
+
```
|
|
117
|
+
When: Frontend routes changed
|
|
118
|
+
Auto-Action:
|
|
119
|
+
- Extract new routes
|
|
120
|
+
- Update navigation flow
|
|
121
|
+
- Document route params
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- [ ] **Current State** (`CURRENT_STATE.md`)
|
|
125
|
+
```
|
|
126
|
+
When: Any significant change
|
|
127
|
+
Auto-Action:
|
|
128
|
+
- Increment version/phase
|
|
129
|
+
- Record what changed
|
|
130
|
+
- Set "Last Updated"
|
|
131
|
+
- List next steps
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Phase 4: Verification
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
After Auto-Sync:
|
|
138
|
+
|
|
139
|
+
✓ All updated docs compile without errors?
|
|
140
|
+
✓ Internal links are valid?
|
|
141
|
+
✓ Examples are still accurate?
|
|
142
|
+
✓ Cross-references consistent?
|
|
143
|
+
✓ No stale information?
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Manual Post-Implementation Checklist
|
|
149
|
+
|
|
150
|
+
**Use this AFTER implementation is complete and tests pass:**
|
|
151
|
+
|
|
152
|
+
- [ ] **Read updated `.codebase/` files**
|
|
153
|
+
- [ ] CURRENT_STATE.md reflects implementation
|
|
154
|
+
- [ ] MODULE_INDEX.md includes new modules
|
|
155
|
+
- [ ] API_CONTRACTS.md has endpoint changes
|
|
156
|
+
- [ ] TEST_MATRIX.md shows new test coverage
|
|
157
|
+
|
|
158
|
+
- [ ] **Verify documentation accuracy**
|
|
159
|
+
- [ ] README examples still work
|
|
160
|
+
- [ ] API docs match implementation
|
|
161
|
+
- [ ] Database docs match schema
|
|
162
|
+
- [ ] UI docs match routing
|
|
163
|
+
|
|
164
|
+
- [ ] **Check for inconsistencies**
|
|
165
|
+
- [ ] API_CONTRACTS.md ← → actual endpoints
|
|
166
|
+
- [ ] DOMAIN_MODELS.md ← → database schema
|
|
167
|
+
- [ ] UI_ROUTES.md ← → frontend routes
|
|
168
|
+
- [ ] TEST_MATRIX.md ← → test files
|
|
169
|
+
|
|
170
|
+
- [ ] **Update derived documents**
|
|
171
|
+
- [ ] EVOLUTION_PLAN.md (next phase?)
|
|
172
|
+
- [ ] DEPENDENCY_GRAPH.md (new deps?)
|
|
173
|
+
- [ ] ARCHITECTURE.md (design impact?)
|
|
174
|
+
- [ ] KNOWN_PROBLEMS.md (issues found?)
|
|
175
|
+
|
|
176
|
+
- [ ] **Release documentation**
|
|
177
|
+
- [ ] Update VERSION file
|
|
178
|
+
- [ ] Add entry to CHANGELOG
|
|
179
|
+
- [ ] Update RELEASE_NOTES
|
|
180
|
+
- [ ] Tag commit appropriately
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Docs Skill Integration
|
|
185
|
+
|
|
186
|
+
### When to invoke `docs-skill` explicitly:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
AFTER implementation when:
|
|
190
|
+
✓ All tests pass
|
|
191
|
+
✓ Code review approved
|
|
192
|
+
✓ No more changes expected
|
|
193
|
+
|
|
194
|
+
RUN: Use docs-skill to:
|
|
195
|
+
- Sync all changed docs
|
|
196
|
+
- Update README examples
|
|
197
|
+
- Verify cross-references
|
|
198
|
+
- Generate changelog entry
|
|
199
|
+
- Validate installation docs
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Command reference:**
|
|
203
|
+
```bash
|
|
204
|
+
# After code implementation:
|
|
205
|
+
invoke docs-skill
|
|
206
|
+
|
|
207
|
+
# Parameters:
|
|
208
|
+
- changed_files: [list of modified files]
|
|
209
|
+
- public_behavior: [what changed from user perspective]
|
|
210
|
+
- verification_results: [test results]
|
|
211
|
+
- affected_users: [who needs to know about changes]
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## State Continuity: Handoff Document
|
|
217
|
+
|
|
218
|
+
### Create after implementation for future resumption:
|
|
219
|
+
|
|
220
|
+
```markdown
|
|
221
|
+
## Implementation Handoff - [Feature/Bug Name]
|
|
222
|
+
|
|
223
|
+
### What Was Done
|
|
224
|
+
- Module X: Created new authentication handler
|
|
225
|
+
- Module Y: Updated request validation
|
|
226
|
+
- Tests: Added 15 new unit tests
|
|
227
|
+
- Docs: Updated API_CONTRACTS.md
|
|
228
|
+
|
|
229
|
+
### Files Changed
|
|
230
|
+
- `src/auth/handler.ts` (new)
|
|
231
|
+
- `src/middleware/validator.ts` (modified)
|
|
232
|
+
- `tests/auth.test.ts` (new)
|
|
233
|
+
- `.codebase/API_CONTRACTS.md` (updated)
|
|
234
|
+
|
|
235
|
+
### Current State
|
|
236
|
+
- All tests passing ✓
|
|
237
|
+
- Code review approved ✓
|
|
238
|
+
- Docs updated ✓
|
|
239
|
+
- Ready for: deployment / next feature
|
|
240
|
+
|
|
241
|
+
### For Continuation
|
|
242
|
+
If this needs more work later:
|
|
243
|
+
1. Start with `.codebase/CURRENT_STATE.md`
|
|
244
|
+
2. Check KNOWN_PROBLEMS.md for blockers
|
|
245
|
+
3. Review this handoff document
|
|
246
|
+
4. Pick up from "Next Steps" below
|
|
247
|
+
|
|
248
|
+
### Next Steps
|
|
249
|
+
- [ ] Deploy to staging
|
|
250
|
+
- [ ] Monitor performance metrics
|
|
251
|
+
- [ ] Gather user feedback
|
|
252
|
+
- [ ] Plan Phase 2 features
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Auto-Update Triggers (Proposed Implementation)
|
|
258
|
+
|
|
259
|
+
### Git Hook: Post-Merge / Post-Commit
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
# .git/hooks/post-commit
|
|
263
|
+
if (tests pass) {
|
|
264
|
+
run-auto-update.sh
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Build Integration: After Successful Build
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# scripts/post-build.sh
|
|
272
|
+
detect_changes.js \
|
|
273
|
+
| analyze_impact.js \
|
|
274
|
+
| update-docs.js
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### CI/CD: After Successful Test Suite
|
|
278
|
+
|
|
279
|
+
```yaml
|
|
280
|
+
# .github/workflows/docs-sync.yml
|
|
281
|
+
on: [push]
|
|
282
|
+
jobs:
|
|
283
|
+
docs-sync:
|
|
284
|
+
if: tests passed
|
|
285
|
+
runs: docs-skill-sync.sh
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Troubleshooting Auto-Updates
|
|
291
|
+
|
|
292
|
+
### Issue: Docs not updating after implementation
|
|
293
|
+
|
|
294
|
+
**Solution:**
|
|
295
|
+
1. Check git has commit all changes
|
|
296
|
+
2. Verify tests actually passing
|
|
297
|
+
3. Run `scripts/detect-changes.sh` manually
|
|
298
|
+
4. Check for errors in auto-update logs
|
|
299
|
+
|
|
300
|
+
### Issue: Docs out of sync with code
|
|
301
|
+
|
|
302
|
+
**Solution:**
|
|
303
|
+
1. Read `.codebase/CURRENT_STATE.md`
|
|
304
|
+
2. Identify what's stale (via TEST_MATRIX.md)
|
|
305
|
+
3. Run `docs-skill` explicitly
|
|
306
|
+
4. Verify all links/examples work
|
|
307
|
+
|
|
308
|
+
### Issue: Can't understand what changed
|
|
309
|
+
|
|
310
|
+
**Solution:**
|
|
311
|
+
1. Read IMPLEMENTATION_HANDOFF.md (created after each feature)
|
|
312
|
+
2. Check git diff with `.codebase/` baseline
|
|
313
|
+
3. Review decision-logs in `observability/`
|
|
314
|
+
4. Read PR description or commit messages
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Continuous State Tracking
|
|
319
|
+
|
|
320
|
+
### Quick State Check Command
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
./scripts/state-check.sh
|
|
324
|
+
# Output:
|
|
325
|
+
# ✓ CURRENT_STATE.md is recent (updated 2 hrs ago)
|
|
326
|
+
# ⚠ TEST_MATRIX.md is 3 days old - may need refresh
|
|
327
|
+
# ✓ API_CONTRACTS.md matches current endpoints
|
|
328
|
+
# ✗ DEPENDENCY_GRAPH.md - 5 new dependencies not documented
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Next Phase: Full Automation
|
|
334
|
+
|
|
335
|
+
When ready to implement:
|
|
336
|
+
|
|
337
|
+
1. **Auto-Detection Script** (detect changes automatically)
|
|
338
|
+
2. **Impact Analysis** (determine what docs to update)
|
|
339
|
+
3. **Docs Regeneration** (auto-update specific sections)
|
|
340
|
+
4. **Validation** (check all links/examples work)
|
|
341
|
+
5. **Notification** (alert team of updates)
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
**Last Updated**: _2026-05-30_
|
|
346
|
+
**Owner**: _Genesis Harness Team_
|
|
347
|
+
**Status**: _Reference - Ready to implement automation_
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
status=0
|
|
8
|
-
for file in .planning/ARCHITECTURE.md .planning/diagrams/system-context.mmd .planning/diagrams/container-architecture.mmd; do
|
|
9
|
-
if [ ! -s "$file" ]; then
|
|
10
|
-
echo "Missing or empty architecture source: $file"
|
|
11
|
-
status=1
|
|
12
|
-
fi
|
|
13
|
-
done
|
|
14
|
-
|
|
15
|
-
if [ -f .planning/ARCHITECTURE.md ]; then
|
|
16
|
-
if ! grep -Eiq 'boundary|boundaries|dependency|forbidden|data flow' .planning/ARCHITECTURE.md; then
|
|
17
|
-
echo "ARCHITECTURE.md should document boundaries, dependency direction, forbidden patterns, or data flow."
|
|
18
|
-
status=1
|
|
19
|
-
fi
|
|
20
|
-
fi
|
|
21
|
-
|
|
22
|
-
exit "$status"
|
|
23
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
status=0
|
|
8
|
+
for file in .planning/ARCHITECTURE.md .planning/diagrams/system-context.mmd .planning/diagrams/container-architecture.mmd; do
|
|
9
|
+
if [ ! -s "$file" ]; then
|
|
10
|
+
echo "Missing or empty architecture source: $file"
|
|
11
|
+
status=1
|
|
12
|
+
fi
|
|
13
|
+
done
|
|
14
|
+
|
|
15
|
+
if [ -f .planning/ARCHITECTURE.md ]; then
|
|
16
|
+
if ! grep -Eiq 'boundary|boundaries|dependency|forbidden|data flow' .planning/ARCHITECTURE.md; then
|
|
17
|
+
echo "ARCHITECTURE.md should document boundaries, dependency direction, forbidden patterns, or data flow."
|
|
18
|
+
status=1
|
|
19
|
+
fi
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
exit "$status"
|
|
23
|
+
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
8
|
-
echo "Not a git repository; docs sync check is limited to required files."
|
|
9
|
-
test -f .planning/SPEC_CHANGELOG.md
|
|
10
|
-
exit $?
|
|
11
|
-
fi
|
|
12
|
-
|
|
13
|
-
changed="$(git diff --name-only HEAD 2>/dev/null || git diff --name-only)"
|
|
14
|
-
docs_changed="$(printf '%s\n' "$changed" | grep -E '^(\.planning/|docs/|README\.md|AGENTS\.md)' || true)"
|
|
15
|
-
code_changed="$(printf '%s\n' "$changed" | grep -Ev '^(\.planning/|docs/|README\.md|AGENTS\.md)$' || true)"
|
|
16
|
-
|
|
17
|
-
if [ -n "$code_changed" ] && [ -z "$docs_changed" ]; then
|
|
18
|
-
echo "Code changed but no planning/docs files changed."
|
|
19
|
-
echo "$code_changed"
|
|
20
|
-
exit 1
|
|
21
|
-
fi
|
|
22
|
-
|
|
23
|
-
echo "Docs sync check passed or no code changes detected."
|
|
24
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
8
|
+
echo "Not a git repository; docs sync check is limited to required files."
|
|
9
|
+
test -f .planning/SPEC_CHANGELOG.md
|
|
10
|
+
exit $?
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
changed="$(git diff --name-only HEAD 2>/dev/null || git diff --name-only)"
|
|
14
|
+
docs_changed="$(printf '%s\n' "$changed" | grep -E '^(\.planning/|docs/|README\.md|AGENTS\.md)' || true)"
|
|
15
|
+
code_changed="$(printf '%s\n' "$changed" | grep -Ev '^(\.planning/|docs/|README\.md|AGENTS\.md)$' || true)"
|
|
16
|
+
|
|
17
|
+
if [ -n "$code_changed" ] && [ -z "$docs_changed" ]; then
|
|
18
|
+
echo "Code changed but no planning/docs files changed."
|
|
19
|
+
echo "$code_changed"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
echo "Docs sync check passed or no code changes detected."
|
|
24
|
+
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
exclude='\.planning/|\.codex/skills/|node_modules/|vendor/|\.git/|build/|dist/|coverage/'
|
|
8
|
-
pattern='console\.log|debugger;|var_dump\(|dd\(|print_r\(|pdb\.set_trace\(|binding\.pry|puts\s+["'\'']DEBUG|System\.out\.println'
|
|
9
|
-
|
|
10
|
-
if command -v rg >/dev/null 2>&1; then
|
|
11
|
-
matches="$(rg -n --hidden -g '!.planning' -g '!.codex/skills' -g '!node_modules' -g '!vendor' -g '!dist' -g '!build' -g '!coverage' "$pattern" . || true)"
|
|
12
|
-
else
|
|
13
|
-
matches="$(grep -RInE "$pattern" . 2>/dev/null | grep -Ev "$exclude" || true)"
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
if [ -n "$matches" ]; then
|
|
17
|
-
echo "$matches"
|
|
18
|
-
exit 1
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
echo "No obvious debug logs found."
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
exclude='\.planning/|\.codex/skills/|node_modules/|vendor/|\.git/|build/|dist/|coverage/'
|
|
8
|
+
pattern='console\.log|debugger;|var_dump\(|dd\(|print_r\(|pdb\.set_trace\(|binding\.pry|puts\s+["'\'']DEBUG|System\.out\.println'
|
|
9
|
+
|
|
10
|
+
if command -v rg >/dev/null 2>&1; then
|
|
11
|
+
matches="$(rg -n --hidden -g '!.planning' -g '!.codex/skills' -g '!node_modules' -g '!vendor' -g '!dist' -g '!build' -g '!coverage' "$pattern" . || true)"
|
|
12
|
+
else
|
|
13
|
+
matches="$(grep -RInE "$pattern" . 2>/dev/null | grep -Ev "$exclude" || true)"
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
if [ -n "$matches" ]; then
|
|
17
|
+
echo "$matches"
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
echo "No obvious debug logs found."
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
required=(
|
|
8
|
-
".planning/PROJECT.md"
|
|
9
|
-
".planning/REQUIREMENTS.md"
|
|
10
|
-
".planning/ROADMAP.md"
|
|
11
|
-
".planning/STATE.md"
|
|
12
|
-
".planning/STACK.md"
|
|
13
|
-
".planning/ARCHITECTURE.md"
|
|
14
|
-
".planning/DESIGN.md"
|
|
15
|
-
".planning/API_DOCS.md"
|
|
16
|
-
".planning/INTEGRATIONS.md"
|
|
17
|
-
".planning/CONVENTIONS.md"
|
|
18
|
-
".planning/PITFALLS.md"
|
|
19
|
-
".planning/LESSONS_LEARNED.md"
|
|
20
|
-
".planning/SPEC_CHANGELOG.md"
|
|
21
|
-
".planning/FEATURE_INDEX.md"
|
|
22
|
-
".planning/CHANGE_IMPACT_MATRIX.md"
|
|
23
|
-
".planning/QUALITY_SCORE.md"
|
|
24
|
-
".planning/ESCALATION.md"
|
|
25
|
-
".planning/OBSERVABILITY.md"
|
|
26
|
-
".planning/SMOKE_TESTS.md"
|
|
27
|
-
".planning/JOURNEYS.md"
|
|
28
|
-
".planning/SUMMARY.md"
|
|
29
|
-
".planning/config.json"
|
|
30
|
-
".planning/diagrams/system-context.mmd"
|
|
31
|
-
".planning/diagrams/container-architecture.mmd"
|
|
32
|
-
".planning/diagrams/database-erd.mmd"
|
|
33
|
-
".planning/diagrams/deployment-flow.mmd"
|
|
34
|
-
".planning/diagrams/roadmap-flow.mmd"
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
missing=0
|
|
38
|
-
for file in "${required[@]}"; do
|
|
39
|
-
if [ ! -f "$file" ]; then
|
|
40
|
-
echo "Missing: $file"
|
|
41
|
-
missing=1
|
|
42
|
-
fi
|
|
43
|
-
done
|
|
44
|
-
|
|
45
|
-
exit "$missing"
|
|
46
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
required=(
|
|
8
|
+
".planning/PROJECT.md"
|
|
9
|
+
".planning/REQUIREMENTS.md"
|
|
10
|
+
".planning/ROADMAP.md"
|
|
11
|
+
".planning/STATE.md"
|
|
12
|
+
".planning/STACK.md"
|
|
13
|
+
".planning/ARCHITECTURE.md"
|
|
14
|
+
".planning/DESIGN.md"
|
|
15
|
+
".planning/API_DOCS.md"
|
|
16
|
+
".planning/INTEGRATIONS.md"
|
|
17
|
+
".planning/CONVENTIONS.md"
|
|
18
|
+
".planning/PITFALLS.md"
|
|
19
|
+
".planning/LESSONS_LEARNED.md"
|
|
20
|
+
".planning/SPEC_CHANGELOG.md"
|
|
21
|
+
".planning/FEATURE_INDEX.md"
|
|
22
|
+
".planning/CHANGE_IMPACT_MATRIX.md"
|
|
23
|
+
".planning/QUALITY_SCORE.md"
|
|
24
|
+
".planning/ESCALATION.md"
|
|
25
|
+
".planning/OBSERVABILITY.md"
|
|
26
|
+
".planning/SMOKE_TESTS.md"
|
|
27
|
+
".planning/JOURNEYS.md"
|
|
28
|
+
".planning/SUMMARY.md"
|
|
29
|
+
".planning/config.json"
|
|
30
|
+
".planning/diagrams/system-context.mmd"
|
|
31
|
+
".planning/diagrams/container-architecture.mmd"
|
|
32
|
+
".planning/diagrams/database-erd.mmd"
|
|
33
|
+
".planning/diagrams/deployment-flow.mmd"
|
|
34
|
+
".planning/diagrams/roadmap-flow.mmd"
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
missing=0
|
|
38
|
+
for file in "${required[@]}"; do
|
|
39
|
+
if [ ! -f "$file" ]; then
|
|
40
|
+
echo "Missing: $file"
|
|
41
|
+
missing=1
|
|
42
|
+
fi
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
exit "$missing"
|
|
46
|
+
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
if [ ! -f .planning/SPEC_CHANGELOG.md ]; then
|
|
8
|
-
echo "Missing .planning/SPEC_CHANGELOG.md"
|
|
9
|
-
exit 1
|
|
10
|
-
fi
|
|
11
|
-
|
|
12
|
-
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
13
|
-
changed="$(git diff --name-only HEAD 2>/dev/null || git diff --name-only)"
|
|
14
|
-
spec_affecting="$(printf '%s\n' "$changed" | grep -E 'api|route|schema|migration|model|ui|component|config|env|auth|security|integration' || true)"
|
|
15
|
-
changelog_changed="$(printf '%s\n' "$changed" | grep -x '.planning/SPEC_CHANGELOG.md' || true)"
|
|
16
|
-
if [ -n "$spec_affecting" ] && [ -z "$changelog_changed" ]; then
|
|
17
|
-
echo "Spec-affecting files changed but SPEC_CHANGELOG.md was not updated:"
|
|
18
|
-
echo "$spec_affecting"
|
|
19
|
-
exit 1
|
|
20
|
-
fi
|
|
21
|
-
fi
|
|
22
|
-
|
|
23
|
-
echo "Spec changelog check passed."
|
|
24
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
if [ ! -f .planning/SPEC_CHANGELOG.md ]; then
|
|
8
|
+
echo "Missing .planning/SPEC_CHANGELOG.md"
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
13
|
+
changed="$(git diff --name-only HEAD 2>/dev/null || git diff --name-only)"
|
|
14
|
+
spec_affecting="$(printf '%s\n' "$changed" | grep -E 'api|route|schema|migration|model|ui|component|config|env|auth|security|integration' || true)"
|
|
15
|
+
changelog_changed="$(printf '%s\n' "$changed" | grep -x '.planning/SPEC_CHANGELOG.md' || true)"
|
|
16
|
+
if [ -n "$spec_affecting" ] && [ -z "$changelog_changed" ]; then
|
|
17
|
+
echo "Spec-affecting files changed but SPEC_CHANGELOG.md was not updated:"
|
|
18
|
+
echo "$spec_affecting"
|
|
19
|
+
exit 1
|
|
20
|
+
fi
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
echo "Spec changelog check passed."
|
|
24
|
+
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
root="${1:-.}"
|
|
5
|
-
cd "$root"
|
|
6
|
-
|
|
7
|
-
if [ ! -d .planning ]; then
|
|
8
|
-
echo "Missing .planning directory."
|
|
9
|
-
exit 1
|
|
10
|
-
fi
|
|
11
|
-
|
|
12
|
-
status=0
|
|
13
|
-
while IFS= read -r file; do
|
|
14
|
-
case "$file" in
|
|
15
|
-
*TASKS.md|*PLAN.md|*REVIEW.md|*VERIFICATION.md|.planning/ROADMAP.md|.planning/STATE.md|.planning/SUMMARY.md)
|
|
16
|
-
if ! grep -Eq '\[( |~|x|!)\]' "$file"; then
|
|
17
|
-
echo "No checkbox tracking found: $file"
|
|
18
|
-
status=1
|
|
19
|
-
fi
|
|
20
|
-
;;
|
|
21
|
-
esac
|
|
22
|
-
done < <(find .planning -type f -name '*.md' | sort)
|
|
23
|
-
|
|
24
|
-
exit "$status"
|
|
25
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="${1:-.}"
|
|
5
|
+
cd "$root"
|
|
6
|
+
|
|
7
|
+
if [ ! -d .planning ]; then
|
|
8
|
+
echo "Missing .planning directory."
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
status=0
|
|
13
|
+
while IFS= read -r file; do
|
|
14
|
+
case "$file" in
|
|
15
|
+
*TASKS.md|*PLAN.md|*REVIEW.md|*VERIFICATION.md|.planning/ROADMAP.md|.planning/STATE.md|.planning/SUMMARY.md)
|
|
16
|
+
if ! grep -Eq '\[( |~|x|!)\]' "$file"; then
|
|
17
|
+
echo "No checkbox tracking found: $file"
|
|
18
|
+
status=1
|
|
19
|
+
fi
|
|
20
|
+
;;
|
|
21
|
+
esac
|
|
22
|
+
done < <(find .planning -type f -name '*.md' | sort)
|
|
23
|
+
|
|
24
|
+
exit "$status"
|
|
25
|
+
|