@nlaprell/shipit 1.0.0

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.
Files changed (160) hide show
  1. package/.cursor/commands/create_intent_from_issue.md +28 -0
  2. package/.cursor/commands/create_pr.md +28 -0
  3. package/.cursor/commands/dashboard.md +39 -0
  4. package/.cursor/commands/deploy.md +152 -0
  5. package/.cursor/commands/drift_check.md +36 -0
  6. package/.cursor/commands/fix.md +39 -0
  7. package/.cursor/commands/generate_release_plan.md +31 -0
  8. package/.cursor/commands/generate_roadmap.md +38 -0
  9. package/.cursor/commands/help.md +37 -0
  10. package/.cursor/commands/init_project.md +26 -0
  11. package/.cursor/commands/kill.md +72 -0
  12. package/.cursor/commands/new_intent.md +68 -0
  13. package/.cursor/commands/pr.md +77 -0
  14. package/.cursor/commands/revert-plan.md +58 -0
  15. package/.cursor/commands/risk.md +64 -0
  16. package/.cursor/commands/rollback.md +43 -0
  17. package/.cursor/commands/scope_project.md +53 -0
  18. package/.cursor/commands/ship.md +345 -0
  19. package/.cursor/commands/status.md +71 -0
  20. package/.cursor/commands/suggest.md +44 -0
  21. package/.cursor/commands/test_shipit.md +197 -0
  22. package/.cursor/commands/verify.md +50 -0
  23. package/.cursor/rules/architect.mdc +84 -0
  24. package/.cursor/rules/assumption-extractor.mdc +95 -0
  25. package/.cursor/rules/docs.mdc +66 -0
  26. package/.cursor/rules/implementer.mdc +112 -0
  27. package/.cursor/rules/pm.mdc +136 -0
  28. package/.cursor/rules/qa.mdc +97 -0
  29. package/.cursor/rules/security.mdc +90 -0
  30. package/.cursor/rules/steward.mdc +99 -0
  31. package/.cursor/rules/test-runner.mdc +196 -0
  32. package/AGENTS.md +121 -0
  33. package/README.md +264 -0
  34. package/_system/architecture/CANON.md +159 -0
  35. package/_system/architecture/invariants.yml +87 -0
  36. package/_system/architecture/project-schema.json +98 -0
  37. package/_system/architecture/workflow-state-layout.md +68 -0
  38. package/_system/artifacts/SYSTEM_STATE.md +43 -0
  39. package/_system/artifacts/confidence-calibration.json +16 -0
  40. package/_system/artifacts/dependencies.md +46 -0
  41. package/_system/artifacts/framework-files-manifest.json +179 -0
  42. package/_system/artifacts/usage.json +1 -0
  43. package/_system/behaviors/DO_RELEASE.md +371 -0
  44. package/_system/behaviors/DO_RELEASE_AI.md +329 -0
  45. package/_system/behaviors/PREPARE_RELEASE.md +373 -0
  46. package/_system/behaviors/PREPARE_RELEASE_AI.md +234 -0
  47. package/_system/behaviors/WORK_ROOT_PLATFORM_ISSUES.md +140 -0
  48. package/_system/behaviors/WORK_TEST_PLAN_ISSUES.md +380 -0
  49. package/_system/do-not-repeat/abandoned-designs.md +18 -0
  50. package/_system/do-not-repeat/bad-patterns.md +19 -0
  51. package/_system/do-not-repeat/failed-experiments.md +18 -0
  52. package/_system/do-not-repeat/rejected-libraries.md +19 -0
  53. package/_system/drift/baselines.md +49 -0
  54. package/_system/drift/metrics.md +33 -0
  55. package/_system/golden-data/.gitkeep +0 -0
  56. package/_system/golden-data/README.md +47 -0
  57. package/_system/reports/mutation/mutation.html +492 -0
  58. package/_system/security/audit-allowlist.json +4 -0
  59. package/bin/create-shipit-app +29 -0
  60. package/bin/shipit +183 -0
  61. package/cli/src/commands/check.js +82 -0
  62. package/cli/src/commands/create.js +195 -0
  63. package/cli/src/commands/init.js +267 -0
  64. package/cli/src/commands/upgrade.js +196 -0
  65. package/cli/src/utils/config.js +27 -0
  66. package/cli/src/utils/file-copy.js +144 -0
  67. package/cli/src/utils/gitignore-merge.js +44 -0
  68. package/cli/src/utils/manifest.js +105 -0
  69. package/cli/src/utils/package-json-merge.js +163 -0
  70. package/cli/src/utils/project-json-merge.js +57 -0
  71. package/cli/src/utils/prompts.js +30 -0
  72. package/cli/src/utils/stack-detection.js +56 -0
  73. package/cli/src/utils/stack-files.js +364 -0
  74. package/cli/src/utils/upgrade-backup.js +159 -0
  75. package/cli/src/utils/version.js +64 -0
  76. package/dashboard-app/README.md +73 -0
  77. package/dashboard-app/eslint.config.js +23 -0
  78. package/dashboard-app/index.html +13 -0
  79. package/dashboard-app/package.json +30 -0
  80. package/dashboard-app/pnpm-lock.yaml +2721 -0
  81. package/dashboard-app/public/dashboard.json +66 -0
  82. package/dashboard-app/public/vite.svg +1 -0
  83. package/dashboard-app/src/App.css +141 -0
  84. package/dashboard-app/src/App.tsx +155 -0
  85. package/dashboard-app/src/assets/react.svg +1 -0
  86. package/dashboard-app/src/index.css +68 -0
  87. package/dashboard-app/src/main.tsx +10 -0
  88. package/dashboard-app/tsconfig.app.json +28 -0
  89. package/dashboard-app/tsconfig.json +4 -0
  90. package/dashboard-app/tsconfig.node.json +26 -0
  91. package/dashboard-app/vite.config.ts +7 -0
  92. package/package.json +116 -0
  93. package/scripts/README.md +70 -0
  94. package/scripts/audit-check.sh +125 -0
  95. package/scripts/calibration-report.sh +198 -0
  96. package/scripts/check-readiness.sh +155 -0
  97. package/scripts/collect-metrics.sh +116 -0
  98. package/scripts/command-manifest.yml +131 -0
  99. package/scripts/create-test-plan-issue.sh +110 -0
  100. package/scripts/dashboard-start.sh +16 -0
  101. package/scripts/deploy.sh +170 -0
  102. package/scripts/drift-check.sh +93 -0
  103. package/scripts/execute-rollback.sh +177 -0
  104. package/scripts/export-dashboard-json.js +208 -0
  105. package/scripts/fix-intents.sh +239 -0
  106. package/scripts/generate-dashboard.sh +136 -0
  107. package/scripts/generate-docs.sh +279 -0
  108. package/scripts/generate-project-context.sh +142 -0
  109. package/scripts/generate-release-plan.sh +443 -0
  110. package/scripts/generate-roadmap.sh +189 -0
  111. package/scripts/generate-system-state.sh +95 -0
  112. package/scripts/gh/create-intent-from-issue.sh +82 -0
  113. package/scripts/gh/create-issue-from-intent.sh +59 -0
  114. package/scripts/gh/create-pr.sh +41 -0
  115. package/scripts/gh/link-issue.sh +44 -0
  116. package/scripts/gh/on-ship-update-issue.sh +42 -0
  117. package/scripts/headless/README.md +8 -0
  118. package/scripts/headless/call-llm.js +109 -0
  119. package/scripts/headless/run-phase.sh +99 -0
  120. package/scripts/help.sh +271 -0
  121. package/scripts/init-project.sh +976 -0
  122. package/scripts/kill-intent.sh +125 -0
  123. package/scripts/lib/common.sh +29 -0
  124. package/scripts/lib/intent.sh +61 -0
  125. package/scripts/lib/progress.sh +57 -0
  126. package/scripts/lib/suggest-next.sh +131 -0
  127. package/scripts/lib/validate-intents.sh +240 -0
  128. package/scripts/lib/verify-outputs.sh +55 -0
  129. package/scripts/lib/workflow_state.sh +201 -0
  130. package/scripts/new-intent.sh +271 -0
  131. package/scripts/publish-npm.sh +28 -0
  132. package/scripts/scope-project.sh +380 -0
  133. package/scripts/setup-worktrees.sh +125 -0
  134. package/scripts/status.sh +278 -0
  135. package/scripts/suggest.sh +173 -0
  136. package/scripts/test-headless.sh +47 -0
  137. package/scripts/test-shipit.sh +52 -0
  138. package/scripts/test-workflow-state.sh +49 -0
  139. package/scripts/usage-report.sh +47 -0
  140. package/scripts/usage.sh +58 -0
  141. package/scripts/validate-cursor.sh +151 -0
  142. package/scripts/validate-project.sh +71 -0
  143. package/scripts/validate-vscode.sh +146 -0
  144. package/scripts/verify.sh +153 -0
  145. package/scripts/workflow-orchestrator.sh +97 -0
  146. package/scripts/workflow-templates/01_analysis.md.tpl +25 -0
  147. package/scripts/workflow-templates/02_plan.md.tpl +30 -0
  148. package/scripts/workflow-templates/03_implementation.md.tpl +25 -0
  149. package/scripts/workflow-templates/04_verification.md.tpl +29 -0
  150. package/scripts/workflow-templates/05_release_notes.md.tpl +16 -0
  151. package/scripts/workflow-templates/05_verification_legacy.md.tpl +6 -0
  152. package/scripts/workflow-templates/active.md.tpl +18 -0
  153. package/scripts/workflow-templates/phases.yml +39 -0
  154. package/stryker.conf.json +8 -0
  155. package/work/intent/templates/api-endpoint.md +124 -0
  156. package/work/intent/templates/bugfix.md +116 -0
  157. package/work/intent/templates/frontend-feature.md +115 -0
  158. package/work/intent/templates/generic.md +122 -0
  159. package/work/intent/templates/infra-change.md +121 -0
  160. package/work/intent/templates/refactor.md +116 -0
@@ -0,0 +1,140 @@
1
+ # Root Platform Issue Workflow
2
+
3
+ **Purpose:** Define a consistent, high-quality workflow for resolving root platform issues.
4
+
5
+ **When to use:** Any time you are working a platform issue from GitHub Issues.
6
+
7
+ ## Agent Execution Rule
8
+
9
+ **You must execute the entire workflow yourself.** Do not stop early to "give the user directions" or "let them do the next step." For each step:
10
+
11
+ - **Do it:** Run the commands, create the PR, post the resolution comment, close the issue, add the review comment. Use `gh`, `git`, and your tools.
12
+ - **Only hand off** when the workflow explicitly requires a human (e.g. "Wait for merge approval" or "stop and request approval").
13
+
14
+ If you cannot complete a step (e.g. no `gh` auth, no merge permission), say so and do everything up to that point—do not hand off steps you _can_ do (push, PR create, issue close, PR comment) by telling the user to do them.
15
+
16
+ **Anti-pattern:** Ending with "Next: push the branch and open a PR" or "You can now merge" when you have not yet pushed, created the PR, or posted the resolution comment. That is drift; complete the steps instead.
17
+
18
+ ## Scope and Safety
19
+
20
+ - This behavior applies to the root platform repo (not downstream project repos).
21
+ - **All issues are tracked on GitHub** (not in local files).
22
+ - Read issues from GitHub using MCP tools or GitHub API.
23
+ - After resolving an issue, add a resolution comment and close it on GitHub.
24
+ - If the issue cannot be resolved without changing scope or requirements, stop and report.
25
+ - Update `README.md` if the fix adds or changes user-facing behavior, commands, or workflows.
26
+
27
+ **Note:** As of 2026-01-28, all issues are tracked on GitHub. The previous file-based tracking in `tests/ISSUES.md` is deprecated. See `behaviors/WORK_TEST_PLAN_ISSUES.md` for issue creation rules.
28
+
29
+ ---
30
+
31
+ ## Workflow
32
+
33
+ ### Step 1: Validate the Implementation
34
+
35
+ **Objective:** Confirm the current implementation and issue description still match reality.
36
+
37
+ **Actions:**
38
+
39
+ 1. Ensure the current workspace is clean before starting work.
40
+ 2. Switch to main branch and ensure it's up to date: `git checkout main && git pull origin main`
41
+ 3. Create a new branch for the issue from main: `git checkout -b issue-XXX-description` (where XXX is the GitHub issue number)
42
+ 4. Push the branch: `git push -u origin issue-XXX-description`
43
+ 5. Read the GitHub issue using MCP tools (e.g., `mcp_github-mcp_get_issue`) or GitHub API.
44
+ 6. Verify the described behavior is still reproducible or still missing.
45
+ 7. If the issue description is outdated or incorrect:
46
+ - Add a comment to the GitHub issue with corrected findings before proceeding.
47
+ - If the issue is no longer valid, add a resolution comment explaining why and close the issue.
48
+
49
+ **Stop gate:** If the issue is invalid or not reproducible, do not implement changes.
50
+
51
+ ---
52
+
53
+ ### Step 2: Work the Issue
54
+
55
+ **Objective:** Implement the fix or missing functionality.
56
+
57
+ **Actions:**
58
+
59
+ 1. Identify the smallest set of files required to change.
60
+ 2. Implement the fix.
61
+ 3. Avoid bloat: no unrelated refactors or feature additions.
62
+ 4. Run the narrowest verification that proves the fix.
63
+ 5. Commit any new changes made during validation.
64
+
65
+ **Stop gate:** If the fix requires new scope, stop and request approval.
66
+
67
+ ---
68
+
69
+ ### Step 3: Quality Review
70
+
71
+ **Objective:** Ensure the solution is correct, minimal, and safe.
72
+
73
+ **Actions:**
74
+
75
+ 1. Re-read the changed files for logic errors or regressions.
76
+ 2. Check for unnecessary complexity or duplication.
77
+ 3. Confirm the fix aligns with existing patterns and scripts.
78
+ 4. Verify no unrelated files were modified.
79
+
80
+ ---
81
+
82
+ ### Step 4: Update Issue Records
83
+
84
+ **Objective:** Record resolution and close the GitHub issue.
85
+
86
+ **Actions:**
87
+
88
+ 1. Add a resolution comment to the GitHub issue using `tests/ISSUE_RESOLUTION_COMMENT_TEMPLATE.md`:
89
+ - **Resolution:** How the issue was resolved, what was changed
90
+ - **Validation:** How the fix was validated, tests run, verification steps
91
+ - **Date Resolved:** YYYY-MM-DD
92
+ 2. Close the GitHub issue using MCP tools (e.g., `mcp_github-mcp_update_issue` with `state: "closed"`).
93
+ 3. Update `README.md` if the change affects user-facing docs.
94
+ 4. Commit the final changes when the work is finished.
95
+
96
+ ---
97
+
98
+ ### Step 5: Submit PR and Review Cycle
99
+
100
+ **Objective:** Submit PR and iterate until it's ready to merge.
101
+
102
+ **Actions (you perform these; do not hand off to the user):**
103
+
104
+ 1. Summarize changes and validation performed.
105
+ 2. Report the final status (resolved/blocked/invalid).
106
+ 3. Reference the GitHub issue number in the PR description (e.g., "Resolves #123").
107
+ 4. **Submit the PR yourself:** `git push -u origin <branch>` then `gh pr create` (or equivalent). Do not tell the user to "open a PR" or "push and create a PR."
108
+ 5. **Review the PR yourself** and add comments with findings:
109
+ - Check for bloat, rabbit holes, or unnecessary complexity
110
+ - Verify all requirements are met
111
+ - Check for unrelated changes
112
+ - Verify code quality and consistency
113
+ 6. **If PR is not ready to merge:**
114
+ - Resolve all identified issues
115
+ - Commit the fixes: `git commit -m "Fix: [description of fixes]"`
116
+ - Push the changes: `git push`
117
+ - Add a comment to the PR summarizing the fixes
118
+ - **Review the PR again** and add comments with findings
119
+ - **Repeat** the review/fix cycle until the PR is ready to merge
120
+ 7. **If PR is ready to merge:**
121
+ - Confirm in a PR comment that it's ready.
122
+ - If you can merge (e.g. `gh pr merge` works), merge the PR. Otherwise, the only handoff is: the user merges when ready.
123
+ 8. **After the PR is merged** (by you or the user): Switch back to `main` and pull so the workspace is clean for the next task: `git checkout main && git pull origin main`.
124
+
125
+ **Review Criteria:**
126
+
127
+ - No bloat or unnecessary complexity
128
+ - No rabbit holes (scope creep)
129
+ - All requirements met
130
+ - No unrelated changes
131
+ - Code quality and consistency verified
132
+ - Issue tracking updated correctly
133
+
134
+ ---
135
+
136
+ ## Validation Guidance
137
+
138
+ - Prefer targeted checks over full suites when safe.
139
+ - If there is any uncertainty, run full checks: `pnpm test`, `pnpm lint`, `pnpm typecheck`.
140
+ - Capture the commands run and their outcomes in the issue resolution notes.
@@ -0,0 +1,380 @@
1
+ # Test Plan Issue Management
2
+
3
+ **Purpose:** Define consistent rules for creating, tracking, and archiving issues discovered during test plan execution using GitHub Issues.
4
+
5
+ **When to use:** Any time you are executing test plan steps from `tests/TEST_PLAN.md` and encounter failures, missing functionality, or unexpected behavior.
6
+
7
+ ## Quick Reference: Templates
8
+
9
+ - **Issue body:** Use `tests/ISSUE_TEMPLATE.md` (GitHub issue body)
10
+ - **Research Notes:** Use `tests/ISSUE_RESEARCH_TEMPLATE.md` (GitHub issue body)
11
+ - **Resolution Comments:** Use `tests/ISSUE_RESOLUTION_COMMENT_TEMPLATE.md` (GitHub issue comment)
12
+ - **Issue Title:** Brief descriptive title (e.g., "Missing golden-data directory")
13
+
14
+ Always create issues on GitHub using the templates. Issues are tracked on GitHub, not in local files.
15
+
16
+ ## Scope and Safety
17
+
18
+ - This behavior applies to issues discovered during test plan execution.
19
+ - **All issues are created on GitHub** in the repository where the test is running.
20
+ - Root platform issues: Create in root platform repository (e.g., `NJLaPrell/ShipIt`).
21
+ - Test project issues: Create in test project repository (if it has its own repo) or root platform repository.
22
+ - After resolving an issue, close it on GitHub with a resolution comment.
23
+
24
+ **Note:** This workflow replaces the previous file-based issue tracking in `tests/ISSUES.md`. `tests/ISSUES.md` is for **test run logs only**; issues live on GitHub.
25
+
26
+ ---
27
+
28
+ ## Preflight (Must Pass Before Creating Issues)
29
+
30
+ Before creating any issues, verify `gh` is available and authenticated:
31
+
32
+ ```bash
33
+ gh --version
34
+ gh auth status
35
+ ```
36
+
37
+ If authentication is missing/expired, **STOP** and treat it as a **blocking** test-plan failure (you cannot correctly record issues).
38
+
39
+ ## Repo Resolution (Where to File the Issue)
40
+
41
+ ### Determine the current repo
42
+
43
+ From the workspace where the failure occurred:
44
+
45
+ ```bash
46
+ gh repo view --json nameWithOwner -q .nameWithOwner
47
+ ```
48
+
49
+ If this fails (e.g., not a git repo, no remote), fall back to the **root platform repo** (usually `NJLaPrell/ShipIt`) and note the limitation in the issue body.
50
+
51
+ ### Decision rule
52
+
53
+ - **Root platform issue → file in root platform repo**
54
+ - Missing/broken framework scripts or commands
55
+ - Incorrect framework behaviors/docs/templates
56
+ - CI/lint/test configuration in the framework
57
+ - Anything that would affect _any_ initialized project
58
+
59
+ - **Test project issue → file in test project repo (only if it exists as a real repo), otherwise root platform repo**
60
+ - Failures caused by test-project-specific content or changes _after_ initialization
61
+ - If the test project is just a folder created under `./projects/` (no separate remote), file in the root platform repo and label it as test-project surfaced
62
+
63
+ Rule of thumb: if fixing it requires changing the framework repo → file in the framework repo.
64
+
65
+ ---
66
+
67
+ ## When to Create an Issue
68
+
69
+ Create a GitHub issue when:
70
+
71
+ 1. **Test step fails** (expected behavior doesn't match actual)
72
+ 2. **Missing functionality** (expected feature/script/file doesn't exist)
73
+ 3. **Unexpected behavior** (system behaves differently than documented)
74
+ 4. **Tooling missing** (required scripts, configs, or dependencies are absent)
75
+ 5. **Configuration errors** (invalid or missing configuration causes failures)
76
+
77
+ **Do NOT create issues for:**
78
+
79
+ - Expected failures (tests that are supposed to fail initially)
80
+ - User errors (incorrect input, wrong commands)
81
+ - Transient failures (network issues, temporary outages)
82
+
83
+ ---
84
+
85
+ ## Creating GitHub Issues
86
+
87
+ ### Issue Creation Process
88
+
89
+ 1. **Prepare the issue:**
90
+ - Read the appropriate template (`tests/ISSUE_TEMPLATE.md` or `tests/ISSUE_RESEARCH_TEMPLATE.md`)
91
+ - Fill in all fields with specific, actionable information
92
+ - Remove placeholder text and brackets
93
+
94
+ 2. **Create the issue on GitHub:**
95
+ - Use the GitHub CLI (`gh`) to create the issue
96
+ - **Title:** Brief descriptive title (e.g., "Missing golden-data directory")
97
+ - **Body:** Use the filled-out template content
98
+ - **Labels:** Add appropriate labels (labels must exist before use):
99
+ - Severity: `severity:low`, `severity:medium`, `severity:high`
100
+ - Type: `test-plan-issue`, `research-note` (if applicable)
101
+ - Step: `step:12-1`, `step:UX`, etc. (if applicable)
102
+ - **Repository:** Create in the appropriate repository (root platform or test project)
103
+ - **Label Creation:** Labels must be created via GitHub UI before they can be used. GitHub MCP tools and API cannot create labels—they can only add existing labels to issues. If a label doesn't exist:
104
+ 1. Go to the repository on GitHub
105
+ 2. Navigate to Issues → Labels
106
+ 3. Create the label with the exact name (e.g., `severity:low`, `test-plan-issue`)
107
+ 4. Then use the label when creating the issue
108
+
109
+ 3. **Reference the issue:**
110
+ - Use GitHub issue number (e.g., `#123`) in test run summaries
111
+ - Link to the issue in documentation
112
+
113
+ ### Issue Format
114
+
115
+ **Use the template:** `tests/ISSUE_TEMPLATE.md`
116
+
117
+ The template provides the GitHub issue body format. Fill in:
118
+
119
+ - **Severity:** low | medium | high
120
+ - **Step:** Test step number or phase name
121
+ - **First Seen:** Date when issue was discovered
122
+ - **Expected:** What should happen
123
+ - **Actual:** What actually happened
124
+ - **Error:** Error message or description
125
+ - **Implementation:** Action items
126
+
127
+ ### Severity Levels
128
+
129
+ - **high:** Blocks test execution or core functionality
130
+ - **medium:** Affects functionality but workarounds exist
131
+ - **low:** Minor issues, missing nice-to-haves, UX improvements
132
+
133
+ ### Issue Numbering
134
+
135
+ - GitHub automatically assigns sequential issue numbers (#1, #2, #3, etc.)
136
+ - Reference issues by their GitHub number (e.g., `#123`)
137
+ - No manual numbering required
138
+
139
+ ---
140
+
141
+ ## Issue Categorization
142
+
143
+ ### Active Issues
144
+
145
+ Create regular GitHub issues when:
146
+
147
+ - They need to be resolved
148
+ - They block or affect test execution
149
+ - They represent missing functionality
150
+
151
+ Use `tests/ISSUE_TEMPLATE.md` for the body.
152
+
153
+ ### Research Notes
154
+
155
+ Create GitHub issues with `research-note` label when:
156
+
157
+ - They require research before implementation
158
+ - They are deferred for future work
159
+ - They need architectural decisions
160
+ - They are low priority but worth documenting
161
+
162
+ Use `tests/ISSUE_RESEARCH_TEMPLATE.md` for the body and add `research-note` label.
163
+
164
+ ---
165
+
166
+ ## Test Run Recording
167
+
168
+ ### Test Runs (run logs only)
169
+
170
+ `tests/ISSUES.md` must contain **only the latest run**. Prior runs are archived in `tests/ISSUES_HISTORIC.md`.
171
+
172
+ **When recording a new run:**
173
+
174
+ 1. Append all existing run blocks from `tests/ISSUES.md` to `tests/ISSUES_HISTORIC.md` (under `## Historic Test Runs`).
175
+ 2. Write `tests/ISSUES.md` with header, Counting Conventions, and only the new run block.
176
+
177
+ Format for each run block:
178
+
179
+ ```markdown
180
+ ## Test Runs
181
+
182
+ ### Run: YYYY-MM-DDTHH:MM:SSZ (root-project | test-project)
183
+
184
+ **Steps Total:** [number]
185
+ **Steps Executed:** [number]
186
+ **Steps Skipped:** [number]
187
+ **Steps Passed:** [number]
188
+ **Steps Failed:** [number]
189
+ **Blocking Issues:** [number]
190
+ **Result:** ✅ PASS | ❌ FAIL
191
+
192
+ #### Summary
193
+
194
+ | Step | Name | Status | Severity | Notes |
195
+ | ---- | --------- | ----------------- | -------- | ----- |
196
+ | X-Y | Step name | ✅ PASS / ❌ FAIL | severity | Notes |
197
+
198
+ #### Issues Found This Run
199
+
200
+ - **#123:** [Title] ([severity]) - **RESOLVED** / **ACTIVE**
201
+ - **#124:** [Title] ([severity]) - **RESOLVED** / **ACTIVE**
202
+ ```
203
+
204
+ **Note:** Issues are tracked on GitHub. Only reference GitHub issue numbers here.
205
+
206
+ Definitions:
207
+
208
+ - **Steps Total**: Total steps in the test plan section being run (including those that may be skipped due to blocking failures).
209
+ - **Steps Executed**: Count of steps with status **✅ PASS** or **❌ FAIL** (exclude **⏭️ SKIP**).
210
+ - **Steps Skipped**: Count of steps with status **⏭️ SKIP**.
211
+
212
+ ---
213
+
214
+ ## Archiving Issues
215
+
216
+ ### When to Close an Issue
217
+
218
+ Close a GitHub issue when:
219
+
220
+ - It has been resolved
221
+ - It is no longer valid (e.g., requirements changed)
222
+ - It was a false positive
223
+
224
+ ### Closing Process
225
+
226
+ 1. **Verify the fix:**
227
+ - Confirm the issue is resolved
228
+ - Run verification steps
229
+ - Document validation results
230
+
231
+ 2. **Add resolution comment:**
232
+ - Add a comment to the GitHub issue with:
233
+ - **Resolution:** How the issue was resolved, what was changed
234
+ - **Validation:** How the fix was validated, tests run, verification steps
235
+ - **Date Resolved:** YYYY-MM-DD
236
+
237
+ 3. **Close the issue:**
238
+ - Close the GitHub issue
239
+ - Add appropriate labels if needed (e.g., `resolved`, `fixed`)
240
+
241
+ 4. **Update test run summary:**
242
+ - Mark issue as **RESOLVED** in "Issues Found This Run" section
243
+ - Update with GitHub issue number and link
244
+
245
+ ### Resolution Comment Format
246
+
247
+ **Use the template:** `tests/ISSUE_RESOLUTION_COMMENT_TEMPLATE.md`
248
+
249
+ Copy the template and fill in:
250
+
251
+ - Fill in "Resolution" with specific details about what was changed
252
+ - Fill in "Validation" with specific verification steps and test results
253
+ - Add the date resolved
254
+ - Remove any placeholder text or brackets
255
+
256
+ See `tests/ISSUE_RESOLUTION_COMMENT_TEMPLATE.md` for the complete template.
257
+
258
+ ---
259
+
260
+ ## Location Rules
261
+
262
+ ### Root Platform vs Test Project
263
+
264
+ - **Root platform issues:** Create in root platform repository
265
+ - Missing framework scripts
266
+ - Framework bugs
267
+ - Missing framework files/configs
268
+ - CI/CD issues
269
+ - Documentation issues
270
+
271
+ - **Test project issues:** Create in test project repository (if it has its own repo) or root platform repository
272
+ - Project-specific test failures
273
+ - Project configuration issues
274
+ - Project-specific missing functionality
275
+
276
+ **Rule of thumb:** If the issue affects the framework itself → root platform repo. If it affects only the test project → test project repo (or root if no separate repo).
277
+
278
+ ---
279
+
280
+ ## Workflow
281
+
282
+ ### During Test Execution
283
+
284
+ 1. **When a step fails:**
285
+ - Record the failure in the test run summary table (in `tests/ISSUES.md`)
286
+ - Create a GitHub issue if it's a new issue (use `tests/ISSUE_TEMPLATE.md`)
287
+ - Reference the GitHub issue number in "Issues Found This Run" section
288
+
289
+ 2. **When discovering missing functionality:**
290
+ - Create a GitHub issue immediately (use `tests/ISSUE_TEMPLATE.md` or `tests/ISSUE_RESEARCH_TEMPLATE.md`)
291
+ - Add appropriate labels (severity, type, step)
292
+ - Reference the issue number in test run summary
293
+
294
+ 3. **At end of test run:**
295
+ - Update "Latest Test Run" section in `tests/ISSUES.md` with summary
296
+ - List all GitHub issues found in "Issues Found This Run" (with issue numbers)
297
+ - Update overall validation status if applicable
298
+
299
+ ### After Issue Resolution
300
+
301
+ 1. Add resolution comment to the GitHub issue
302
+ 2. Close the GitHub issue
303
+ 3. Update test run summary in `tests/ISSUES.md` to mark issue as **RESOLVED**
304
+ 4. Update with link to closed issue
305
+
306
+ ---
307
+
308
+ ## Examples
309
+
310
+ The following examples show filled-out templates. Always start from the templates:
311
+
312
+ - Active issues: Use `tests/ISSUE_TEMPLATE.md`
313
+ - Research notes: Use `tests/ISSUE_RESEARCH_TEMPLATE.md`
314
+
315
+ ### Example: Active Issue (GitHub Issue #123)
316
+
317
+ **Title:** Missing golden-data directory
318
+
319
+ **Body (from ISSUE_TEMPLATE.md):**
320
+
321
+ ```markdown
322
+ **Severity:** low
323
+ **Step:** UX
324
+ **First Seen:** 2026-01-27
325
+
326
+ ## Expected
327
+
328
+ `golden-data/` directory exists per plan
329
+
330
+ ## Actual
331
+
332
+ Directory does not exist
333
+
334
+ ## Error
335
+
336
+ Replay validation test data cannot be stored
337
+
338
+ ## Implementation
339
+
340
+ - Add `golden-data/.gitkeep` to track directory
341
+ - Create `golden-data/README.md` with format documentation
342
+ - Update `scripts/init-project.sh` to create directory
343
+ ```
344
+
345
+ **Labels:** `severity:low`, `test-plan-issue`, `step:UX`
346
+
347
+ ### Example: Research Note (GitHub Issue #124)
348
+
349
+ **Title:** Intent subfolders missing
350
+
351
+ **Body (from ISSUE_RESEARCH_TEMPLATE.md):**
352
+
353
+ ```markdown
354
+ **Type:** Research Note
355
+ **Priority:** low
356
+
357
+ ## Best Approach
358
+
359
+ - Create `intent/features/`, `intent/bugs/`, `intent/tech-debt/` subdirectories
360
+ - Update all scripts to read intents recursively
361
+
362
+ ## Integration Points
363
+
364
+ - `scripts/new-intent.sh` - write to subfolders
365
+ - `scripts/generate-release-plan.sh` - read recursively
366
+ - `scripts/generate-roadmap.sh` - read recursively
367
+ - `scripts/init-project.sh` - create subfolders
368
+ ```
369
+
370
+ **Labels:** `research-note`, `severity:low`, `test-plan-issue`
371
+
372
+ ---
373
+
374
+ ## Validation
375
+
376
+ - All issues must be created on GitHub (not in local files)
377
+ - All issues must have clear "Expected" vs "Actual" descriptions
378
+ - Severity must be assigned (low/medium/high) and added as label
379
+ - Issues must be referenced by GitHub issue number in test run summaries
380
+ - Closed issues must have resolution comments with validation details
@@ -0,0 +1,18 @@
1
+ # Abandoned Designs
2
+
3
+ This ledger records design approaches that were considered but rejected. **Do not rediscover these.**
4
+
5
+ ## Format
6
+
7
+ Each entry should include:
8
+
9
+ - **Design:** Brief description
10
+ - **Why abandoned:** Reason for rejection
11
+ - **Date:** When it was abandoned
12
+ - **Intent ID:** Related intent (if any)
13
+
14
+ ---
15
+
16
+ ## Entries
17
+
18
+ (No entries yet. Add entries as designs are abandoned.)
@@ -0,0 +1,19 @@
1
+ # Bad Patterns
2
+
3
+ This ledger records code patterns, architectural approaches, or practices that have been identified as problematic. **Do not repeat these patterns.**
4
+
5
+ ## Format
6
+
7
+ Each entry should include:
8
+
9
+ - **Pattern:** Brief description of the pattern
10
+ - **Why it's bad:** Problems it causes
11
+ - **Date:** When it was identified
12
+ - **Intent ID:** Related intent (if any)
13
+ - **Alternative:** Better approach (if known)
14
+
15
+ ---
16
+
17
+ ## Entries
18
+
19
+ (No entries yet. Add entries as bad patterns are identified.)
@@ -0,0 +1,18 @@
1
+ # Failed Experiments
2
+
3
+ This ledger records experiments that were tried but failed. **Do not repeat these.**
4
+
5
+ ## Format
6
+
7
+ Each entry should include:
8
+
9
+ - **Experiment:** What was tried
10
+ - **Why it failed:** Root cause
11
+ - **Date:** When it failed
12
+ - **Intent ID:** Related intent (if any)
13
+
14
+ ---
15
+
16
+ ## Entries
17
+
18
+ (No entries yet. Add entries as experiments fail.)
@@ -0,0 +1,19 @@
1
+ # Rejected Libraries
2
+
3
+ This ledger records libraries, frameworks, or tools that were evaluated but rejected. **Do not reconsider these without new information.**
4
+
5
+ ## Format
6
+
7
+ Each entry should include:
8
+
9
+ - **Library:** Name and version (if applicable)
10
+ - **Why rejected:** Reason for rejection (performance, licensing, maintenance, etc.)
11
+ - **Date:** When it was rejected
12
+ - **Intent ID:** Related intent (if any)
13
+ - **Alternatives:** Better options (if known)
14
+
15
+ ---
16
+
17
+ ## Entries
18
+
19
+ (No entries yet. Add entries as libraries are rejected.)
@@ -0,0 +1,49 @@
1
+ # Drift Baselines
2
+
3
+ Initial thresholds for drift detection. Update these as the system matures.
4
+
5
+ ## Baseline Metrics (Initial)
6
+
7
+ | Metric | Baseline | Threshold | Action if Exceeded |
8
+ | ------------------------- | ---------- | ---------- | ------------------ |
9
+ | **Avg PR size** | < 10 files | > 15 files | Flag for review |
10
+ | **Test-to-code ratio** | > 0.5 | < 0.3 | Block merge |
11
+ | **Dependency count** | < 50 deps | > 100 deps | Review for bloat |
12
+ | **New files w/o intents** | 0 | > 5 | Flag for review |
13
+ | **CI time-to-green** | < 5 min | > 15 min | Investigate |
14
+
15
+ ## Drift Indicators
16
+
17
+ ### Vocabulary Drift
18
+
19
+ - New terms introduced without documentation
20
+ - Terms used inconsistently across codebase
21
+ - **Detection:** Grep for new domain terms, check consistency
22
+
23
+ ### Dependency Graph Entropy
24
+
25
+ - Circular dependencies introduced
26
+ - Import depth increases
27
+ - **Detection:** ESLint `import/no-cycle`, custom depth checker
28
+
29
+ ### Test Coverage Drift
30
+
31
+ - New code without tests
32
+ - Test-to-code ratio decreases
33
+ - **Detection:** Coverage reports, ratio calculation
34
+
35
+ ### Architecture Drift
36
+
37
+ - Violations of CANON.md
38
+ - New patterns without ADRs
39
+ - **Detection:** ESLint rules, manual review
40
+
41
+ ## Review Schedule
42
+
43
+ - **Weekly:** Automated drift check (CI)
44
+ - **Monthly:** Human review of drift metrics
45
+ - **Quarterly:** Baseline recalibration
46
+
47
+ ---
48
+
49
+ _Last updated: 2026-01-12_
@@ -0,0 +1,33 @@
1
+ # Drift Metrics Report
2
+
3
+ Generated: 2026-02-04T22:05:43Z
4
+
5
+ ## PR Size Trend
6
+
7
+ Avg files changed: 8.625
8
+
9
+ ## Test-to-Code Ratio
10
+
11
+ Test lines: 177
12
+ Code lines: 38
13
+ Ratio: 4.65
14
+
15
+ ## Dependency Growth
16
+
17
+ Dependencies: 0
18
+ DevDependencies: 14
19
+
20
+ ## Untracked New Concepts
21
+
22
+ \_system/architecture/CANON.md
23
+ \_system/drift/metrics.md
24
+ docs/DIRECTORY_STRUCTURE.md
25
+ experimental/README.md
26
+ projects/README.md
27
+ scripts/README.md
28
+ tests/README.md
29
+ work/workflow-state/README.md
30
+
31
+ ## CI Performance
32
+
33
+ (Manually update from CI dashboard)
File without changes