safeword 0.2.2 → 0.2.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.
Files changed (235) hide show
  1. package/.claude/commands/arch-review.md +32 -0
  2. package/.claude/commands/lint.md +6 -0
  3. package/.claude/commands/quality-review.md +13 -0
  4. package/.claude/commands/setup-linting.md +6 -0
  5. package/.claude/hooks/auto-lint.sh +6 -0
  6. package/.claude/hooks/auto-quality-review.sh +170 -0
  7. package/.claude/hooks/check-linting-sync.sh +17 -0
  8. package/.claude/hooks/inject-timestamp.sh +6 -0
  9. package/.claude/hooks/question-protocol.sh +12 -0
  10. package/.claude/hooks/run-linters.sh +8 -0
  11. package/.claude/hooks/run-quality-review.sh +76 -0
  12. package/.claude/hooks/version-check.sh +10 -0
  13. package/.claude/mcp/README.md +96 -0
  14. package/.claude/mcp/arcade.sample.json +9 -0
  15. package/.claude/mcp/context7.sample.json +7 -0
  16. package/.claude/mcp/playwright.sample.json +7 -0
  17. package/.claude/settings.json +62 -0
  18. package/.claude/skills/quality-reviewer/SKILL.md +190 -0
  19. package/.claude/skills/safeword-quality-reviewer/SKILL.md +13 -0
  20. package/.env.arcade.example +4 -0
  21. package/.env.example +11 -0
  22. package/.gitmodules +4 -0
  23. package/.safeword/SAFEWORD.md +33 -0
  24. package/.safeword/eslint/eslint-base.mjs +101 -0
  25. package/.safeword/guides/architecture-guide.md +404 -0
  26. package/.safeword/guides/code-philosophy.md +174 -0
  27. package/.safeword/guides/context-files-guide.md +405 -0
  28. package/.safeword/guides/data-architecture-guide.md +183 -0
  29. package/.safeword/guides/design-doc-guide.md +165 -0
  30. package/.safeword/guides/learning-extraction.md +515 -0
  31. package/.safeword/guides/llm-instruction-design.md +239 -0
  32. package/.safeword/guides/llm-prompting.md +95 -0
  33. package/.safeword/guides/tdd-best-practices.md +570 -0
  34. package/.safeword/guides/test-definitions-guide.md +243 -0
  35. package/.safeword/guides/testing-methodology.md +573 -0
  36. package/.safeword/guides/user-story-guide.md +237 -0
  37. package/.safeword/guides/zombie-process-cleanup.md +214 -0
  38. package/{templates → .safeword}/hooks/agents-md-check.sh +0 -0
  39. package/{templates → .safeword}/hooks/post-tool.sh +0 -0
  40. package/{templates → .safeword}/hooks/pre-commit.sh +0 -0
  41. package/.safeword/planning/002-user-story-quality-evaluation.md +1840 -0
  42. package/.safeword/planning/003-langsmith-eval-setup-prompt.md +363 -0
  43. package/.safeword/planning/004-llm-eval-test-cases.md +3226 -0
  44. package/.safeword/planning/005-architecture-enforcement-system.md +169 -0
  45. package/.safeword/planning/006-reactive-fix-prevention-research.md +135 -0
  46. package/.safeword/planning/011-cli-ux-vision.md +330 -0
  47. package/.safeword/planning/012-project-structure-cleanup.md +154 -0
  48. package/.safeword/planning/README.md +39 -0
  49. package/.safeword/planning/automation-plan-v2.md +1225 -0
  50. package/.safeword/planning/automation-plan-v3.md +1291 -0
  51. package/.safeword/planning/automation-plan.md +3058 -0
  52. package/.safeword/planning/design/005-cli-implementation.md +343 -0
  53. package/.safeword/planning/design/013-cli-self-contained-templates.md +596 -0
  54. package/.safeword/planning/design/013a-eslint-plugin-suite.md +256 -0
  55. package/.safeword/planning/design/013b-implementation-snippets.md +385 -0
  56. package/.safeword/planning/design/013c-config-isolation-strategy.md +242 -0
  57. package/.safeword/planning/design/code-philosophy-improvements.md +60 -0
  58. package/.safeword/planning/mcp-analysis.md +545 -0
  59. package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +451 -0
  60. package/.safeword/planning/settings-improvements.md +970 -0
  61. package/.safeword/planning/test-definitions/005-cli-implementation.md +1301 -0
  62. package/.safeword/planning/test-definitions/cli-self-contained-templates.md +205 -0
  63. package/.safeword/planning/user-stories/001-guides-review-user-stories.md +1381 -0
  64. package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +132 -0
  65. package/.safeword/planning/user-stories/004-technical-constraints.md +86 -0
  66. package/.safeword/planning/user-stories/005-cli-implementation.md +311 -0
  67. package/.safeword/planning/user-stories/cli-self-contained-templates.md +172 -0
  68. package/.safeword/planning/versioned-distribution.md +740 -0
  69. package/.safeword/prompts/arch-review.md +43 -0
  70. package/.safeword/prompts/quality-review.md +11 -0
  71. package/.safeword/scripts/arch-review.sh +235 -0
  72. package/.safeword/scripts/check-linting-sync.sh +58 -0
  73. package/.safeword/scripts/setup-linting.sh +559 -0
  74. package/.safeword/templates/architecture-template.md +136 -0
  75. package/.safeword/templates/ci/architecture-check.yml +79 -0
  76. package/.safeword/templates/design-doc-template.md +127 -0
  77. package/.safeword/templates/test-definitions-feature.md +100 -0
  78. package/.safeword/templates/ticket-template.md +74 -0
  79. package/.safeword/templates/user-stories-template.md +82 -0
  80. package/.safeword/tickets/001-guides-review-user-stories.md +83 -0
  81. package/.safeword/tickets/002-architecture-enforcement.md +211 -0
  82. package/.safeword/tickets/003-reactive-fix-prevention.md +57 -0
  83. package/.safeword/tickets/004-technical-constraints-in-user-stories.md +39 -0
  84. package/.safeword/tickets/005-cli-implementation.md +248 -0
  85. package/.safeword/tickets/006-flesh-out-skills.md +43 -0
  86. package/.safeword/tickets/007-flesh-out-questioning.md +44 -0
  87. package/.safeword/tickets/008-upgrade-questioning.md +58 -0
  88. package/.safeword/tickets/009-naming-conventions.md +41 -0
  89. package/.safeword/tickets/010-safeword-md-cleanup.md +34 -0
  90. package/.safeword/tickets/011-cursor-setup.md +86 -0
  91. package/.safeword/tickets/README.md +73 -0
  92. package/.safeword/version +1 -0
  93. package/AGENTS.md +59 -0
  94. package/CLAUDE.md +12 -0
  95. package/README.md +347 -0
  96. package/docs/001-cli-implementation-plan.md +856 -0
  97. package/docs/elite-dx-implementation-plan.md +1034 -0
  98. package/framework/README.md +131 -0
  99. package/framework/mcp/README.md +96 -0
  100. package/framework/mcp/arcade.sample.json +8 -0
  101. package/framework/mcp/context7.sample.json +6 -0
  102. package/framework/mcp/playwright.sample.json +6 -0
  103. package/framework/scripts/arch-review.sh +235 -0
  104. package/framework/scripts/check-linting-sync.sh +58 -0
  105. package/framework/scripts/load-env.sh +49 -0
  106. package/framework/scripts/setup-claude.sh +223 -0
  107. package/framework/scripts/setup-linting.sh +559 -0
  108. package/framework/scripts/setup-quality.sh +477 -0
  109. package/framework/scripts/setup-safeword.sh +550 -0
  110. package/framework/templates/ci/architecture-check.yml +78 -0
  111. package/learnings/ai-sdk-v5-breaking-changes.md +178 -0
  112. package/learnings/e2e-test-zombie-processes.md +231 -0
  113. package/learnings/milkdown-crepe-editor-property.md +96 -0
  114. package/learnings/prosemirror-fragment-traversal.md +119 -0
  115. package/package.json +19 -43
  116. package/packages/cli/AGENTS.md +1 -0
  117. package/packages/cli/ARCHITECTURE.md +279 -0
  118. package/packages/cli/package.json +51 -0
  119. package/packages/cli/src/cli.ts +63 -0
  120. package/packages/cli/src/commands/check.ts +166 -0
  121. package/packages/cli/src/commands/diff.ts +209 -0
  122. package/packages/cli/src/commands/reset.ts +190 -0
  123. package/packages/cli/src/commands/setup.ts +325 -0
  124. package/packages/cli/src/commands/upgrade.ts +163 -0
  125. package/packages/cli/src/index.ts +3 -0
  126. package/packages/cli/src/templates/config.ts +58 -0
  127. package/packages/cli/src/templates/content.ts +18 -0
  128. package/packages/cli/src/templates/index.ts +12 -0
  129. package/packages/cli/src/utils/agents-md.ts +66 -0
  130. package/packages/cli/src/utils/fs.ts +179 -0
  131. package/packages/cli/src/utils/git.ts +124 -0
  132. package/packages/cli/src/utils/hooks.ts +29 -0
  133. package/packages/cli/src/utils/output.ts +60 -0
  134. package/packages/cli/src/utils/project-detector.test.ts +185 -0
  135. package/packages/cli/src/utils/project-detector.ts +44 -0
  136. package/packages/cli/src/utils/version.ts +28 -0
  137. package/packages/cli/src/version.ts +6 -0
  138. package/packages/cli/templates/SAFEWORD.md +776 -0
  139. package/packages/cli/templates/doc-templates/architecture-template.md +136 -0
  140. package/packages/cli/templates/doc-templates/design-doc-template.md +134 -0
  141. package/packages/cli/templates/doc-templates/test-definitions-feature.md +131 -0
  142. package/packages/cli/templates/doc-templates/ticket-template.md +82 -0
  143. package/packages/cli/templates/doc-templates/user-stories-template.md +92 -0
  144. package/packages/cli/templates/guides/architecture-guide.md +423 -0
  145. package/packages/cli/templates/guides/code-philosophy.md +195 -0
  146. package/packages/cli/templates/guides/context-files-guide.md +457 -0
  147. package/packages/cli/templates/guides/data-architecture-guide.md +200 -0
  148. package/packages/cli/templates/guides/design-doc-guide.md +171 -0
  149. package/packages/cli/templates/guides/learning-extraction.md +552 -0
  150. package/packages/cli/templates/guides/llm-instruction-design.md +248 -0
  151. package/packages/cli/templates/guides/llm-prompting.md +102 -0
  152. package/packages/cli/templates/guides/tdd-best-practices.md +615 -0
  153. package/packages/cli/templates/guides/test-definitions-guide.md +334 -0
  154. package/packages/cli/templates/guides/testing-methodology.md +618 -0
  155. package/packages/cli/templates/guides/user-story-guide.md +256 -0
  156. package/packages/cli/templates/guides/zombie-process-cleanup.md +219 -0
  157. package/packages/cli/templates/hooks/agents-md-check.sh +27 -0
  158. package/packages/cli/templates/hooks/post-tool.sh +4 -0
  159. package/packages/cli/templates/hooks/pre-commit.sh +10 -0
  160. package/packages/cli/templates/prompts/arch-review.md +43 -0
  161. package/packages/cli/templates/prompts/quality-review.md +10 -0
  162. package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +207 -0
  163. package/packages/cli/tests/commands/check.test.ts +129 -0
  164. package/packages/cli/tests/commands/cli.test.ts +89 -0
  165. package/packages/cli/tests/commands/diff.test.ts +115 -0
  166. package/packages/cli/tests/commands/reset.test.ts +310 -0
  167. package/packages/cli/tests/commands/self-healing.test.ts +170 -0
  168. package/packages/cli/tests/commands/setup-blocking.test.ts +71 -0
  169. package/packages/cli/tests/commands/setup-core.test.ts +135 -0
  170. package/packages/cli/tests/commands/setup-git.test.ts +139 -0
  171. package/packages/cli/tests/commands/setup-hooks.test.ts +334 -0
  172. package/packages/cli/tests/commands/setup-linting.test.ts +189 -0
  173. package/packages/cli/tests/commands/setup-noninteractive.test.ts +80 -0
  174. package/packages/cli/tests/commands/setup-templates.test.ts +181 -0
  175. package/packages/cli/tests/commands/upgrade.test.ts +215 -0
  176. package/packages/cli/tests/helpers.ts +243 -0
  177. package/packages/cli/tests/npm-package.test.ts +83 -0
  178. package/packages/cli/tests/technical-constraints.test.ts +96 -0
  179. package/packages/cli/tsconfig.json +25 -0
  180. package/packages/cli/tsup.config.ts +11 -0
  181. package/packages/cli/vitest.config.ts +23 -0
  182. package/promptfoo.yaml +3270 -0
  183. package/dist/check-M73LGONJ.js +0 -129
  184. package/dist/check-M73LGONJ.js.map +0 -1
  185. package/dist/chunk-2XWIUEQK.js +0 -190
  186. package/dist/chunk-2XWIUEQK.js.map +0 -1
  187. package/dist/chunk-GZRQL3SX.js +0 -146
  188. package/dist/chunk-GZRQL3SX.js.map +0 -1
  189. package/dist/chunk-V5G6BGOK.js +0 -26
  190. package/dist/chunk-V5G6BGOK.js.map +0 -1
  191. package/dist/chunk-W66Z3C5H.js +0 -21
  192. package/dist/chunk-W66Z3C5H.js.map +0 -1
  193. package/dist/cli.d.ts +0 -1
  194. package/dist/cli.js +0 -34
  195. package/dist/cli.js.map +0 -1
  196. package/dist/diff-FSFDCBL5.js +0 -166
  197. package/dist/diff-FSFDCBL5.js.map +0 -1
  198. package/dist/index.d.ts +0 -11
  199. package/dist/index.js +0 -7
  200. package/dist/index.js.map +0 -1
  201. package/dist/reset-3ACTIYYE.js +0 -143
  202. package/dist/reset-3ACTIYYE.js.map +0 -1
  203. package/dist/setup-MKVVQTVA.js +0 -266
  204. package/dist/setup-MKVVQTVA.js.map +0 -1
  205. package/dist/upgrade-FQOL6AF5.js +0 -134
  206. package/dist/upgrade-FQOL6AF5.js.map +0 -1
  207. /package/{templates → framework}/SAFEWORD.md +0 -0
  208. /package/{templates → framework}/guides/architecture-guide.md +0 -0
  209. /package/{templates → framework}/guides/code-philosophy.md +0 -0
  210. /package/{templates → framework}/guides/context-files-guide.md +0 -0
  211. /package/{templates → framework}/guides/data-architecture-guide.md +0 -0
  212. /package/{templates → framework}/guides/design-doc-guide.md +0 -0
  213. /package/{templates → framework}/guides/learning-extraction.md +0 -0
  214. /package/{templates → framework}/guides/llm-instruction-design.md +0 -0
  215. /package/{templates → framework}/guides/llm-prompting.md +0 -0
  216. /package/{templates → framework}/guides/tdd-best-practices.md +0 -0
  217. /package/{templates → framework}/guides/test-definitions-guide.md +0 -0
  218. /package/{templates → framework}/guides/testing-methodology.md +0 -0
  219. /package/{templates → framework}/guides/user-story-guide.md +0 -0
  220. /package/{templates → framework}/guides/zombie-process-cleanup.md +0 -0
  221. /package/{templates → framework}/prompts/arch-review.md +0 -0
  222. /package/{templates → framework}/prompts/quality-review.md +0 -0
  223. /package/{templates/skills/safeword-quality-reviewer → framework/skills/quality-reviewer}/SKILL.md +0 -0
  224. /package/{templates/doc-templates → framework/templates}/architecture-template.md +0 -0
  225. /package/{templates/doc-templates → framework/templates}/design-doc-template.md +0 -0
  226. /package/{templates/doc-templates → framework/templates}/test-definitions-feature.md +0 -0
  227. /package/{templates/doc-templates → framework/templates}/ticket-template.md +0 -0
  228. /package/{templates/doc-templates → framework/templates}/user-stories-template.md +0 -0
  229. /package/{templates → packages/cli/templates}/commands/arch-review.md +0 -0
  230. /package/{templates → packages/cli/templates}/commands/lint.md +0 -0
  231. /package/{templates → packages/cli/templates}/commands/quality-review.md +0 -0
  232. /package/{templates → packages/cli/templates}/hooks/inject-timestamp.sh +0 -0
  233. /package/{templates → packages/cli/templates}/lib/common.sh +0 -0
  234. /package/{templates → packages/cli/templates}/lib/jq-fallback.sh +0 -0
  235. /package/{templates → packages/cli/templates}/markdownlint.jsonc +0 -0
@@ -0,0 +1,205 @@
1
+ # Test Definitions: CLI Self-Contained Templates
2
+
3
+ **Feature**: Bundle all templates into CLI package so `npx safeword` works without external dependencies
4
+
5
+ **Test Files**: `packages/cli/tests/commands/*.test.ts`
6
+ **Total Tests**: 112 (94 passing, 16 failing, 2 skipped)
7
+
8
+ ---
9
+
10
+ ## Implementation Status
11
+
12
+ | Story | Acceptance Criteria | Test Coverage | Status |
13
+ |-------|---------------------|---------------|--------|
14
+ | Story 1: Templates | 7 ACs | 4 failing tests | ❌ Not Implemented |
15
+ | Story 2: Hooks | 8 ACs | 4 failing (lib, MCP, commands) | 🟡 Partial |
16
+ | Story 3: Skills | 3 ACs | Covered | ✅ Implemented |
17
+ | Story 4: Linting | 8 ACs | 3 failing (markdownlint) | 🟡 Partial |
18
+ | Story 5: Upgrade | 6 ACs | Covered | ✅ Implemented |
19
+ | Story 6: Reset | 7 ACs | 3 failing (MCP, commands) | 🟡 Partial |
20
+
21
+ ---
22
+
23
+ ## Failing Tests Summary
24
+
25
+ **14 failing tests** across 4 feature areas:
26
+
27
+ ### Story 1 - Template Bundling (4 tests)
28
+
29
+ | Test | Current | Expected |
30
+ |------|---------|----------|
31
+ | Full SAFEWORD.md | 935 bytes (stub) | >1KB (full ~31KB) |
32
+ | Methodology guides | 0 files in guides/ | 13+ markdown files |
33
+ | Document templates | 0 files in templates/ | 5+ markdown files |
34
+ | Review prompts | No prompts/ dir | 2+ markdown files |
35
+
36
+ ### Story 2 - Hooks (4 tests)
37
+
38
+ | Test | Issue |
39
+ |------|-------|
40
+ | Lib scripts | `.safeword/lib/` not created |
41
+ | MCP server setup | `.mcp.json` not created |
42
+ | MCP server preservation | Merge logic not implemented |
43
+ | Slash commands | `.claude/commands/` not created |
44
+
45
+ ### Story 4 - Linting (3 tests)
46
+
47
+ | Test | Issue |
48
+ |------|-------|
49
+ | markdownlint config | `.markdownlint.jsonc` not created |
50
+ | lint:md script | Script not added to package.json |
51
+ | format:check script | Script not added to package.json |
52
+
53
+ ### Story 6 - Reset (3 tests)
54
+
55
+ | Test | Issue |
56
+ |------|-------|
57
+ | Remove slash commands | Commands not being deleted |
58
+ | Remove MCP servers | MCP cleanup not implemented |
59
+ | Delete empty .mcp.json | Not removing empty config |
60
+
61
+ ---
62
+
63
+ ## Test Coverage by Story
64
+
65
+ ### Story 1: Template Installation
66
+
67
+ **Covered by**: `setup-core.test.ts`, `setup-templates.test.ts`
68
+
69
+ | AC | Test | Status |
70
+ |----|------|--------|
71
+ | Full SAFEWORD.md | `setup-templates.test.ts` | ❌ Failing |
72
+ | 13 guides | `setup-templates.test.ts` | ❌ Failing |
73
+ | 5 doc-templates | `setup-templates.test.ts` | ❌ Failing |
74
+ | 2 prompts | `setup-templates.test.ts` | ❌ Failing |
75
+ | Empty planning dirs | `setup-core.test.ts` | ✅ Passing |
76
+ | AGENTS.md created | `setup-core.test.ts` Test 2.2 | ✅ Passing |
77
+ | Existing AGENTS.md preserved | `setup-core.test.ts` Test 2.3 | ✅ Passing |
78
+ | Idempotent learnings | `setup-templates.test.ts` | ✅ Passing |
79
+
80
+ ### Story 2: Hook System
81
+
82
+ **Covered by**: `setup-hooks.test.ts`
83
+
84
+ | AC | Test | Status |
85
+ |----|------|--------|
86
+ | 7 hook scripts | Test 3.1 | ✅ Passing |
87
+ | 2 lib scripts | Test 3.7 | ❌ Failing |
88
+ | git-pre-commit.sh | `setup-git.test.ts` | ✅ Passing |
89
+ | Hooks in settings.json | Test 3.1 | ✅ Passing |
90
+ | _safeword marker | Implicit (path-based) | ✅ Passing |
91
+ | Preserve user hooks | Test 3.3 | ✅ Passing |
92
+ | MCP servers setup | Test 3.8 | ❌ Failing |
93
+ | MCP servers preservation | Test 3.9 | ❌ Failing |
94
+ | Slash commands | Test 3.10 | ❌ Failing |
95
+ | Idempotent hooks | Implicit | ✅ Passing |
96
+
97
+ ### Story 3: Skills and Commands
98
+
99
+ **Covered by**: `setup-hooks.test.ts`
100
+
101
+ | AC | Test | Status |
102
+ |----|------|--------|
103
+ | quality-reviewer skill | Test 3.2 | ✅ Passing |
104
+ | Slash commands | Test 3.10 | ❌ Failing (same as Story 2) |
105
+ | Skill frontmatter | Test 3.2 | ✅ Passing |
106
+
107
+ ### Story 4: Linting Configuration
108
+
109
+ **Covered by**: `setup-linting.test.ts`, `project-detector.test.ts`
110
+
111
+ | AC | Test | Status |
112
+ |----|------|--------|
113
+ | .safeword/eslint.config.js | Not in .safeword/ | ⚠️ Different impl |
114
+ | .safeword/prettier.config.js | Not in .safeword/ | ⚠️ Different impl |
115
+ | .markdownlint.jsonc | Test 4.9 | ❌ Failing |
116
+ | Root eslint.config | Test 4.4 | ✅ Passing |
117
+ | Root prettier config | Test 4.5 | ✅ Passing |
118
+ | Preserve existing | Test 4.6 | ✅ Passing |
119
+ | lint:md script | Test 4.10 | ❌ Failing |
120
+ | format:check script | Test 4.11 | ❌ Failing |
121
+ | Add lint/format scripts | Test 4.6, 4.7 | ✅ Passing |
122
+
123
+ ### Story 5: Upgrade
124
+
125
+ **Covered by**: `upgrade.test.ts`
126
+
127
+ | AC | Test | Status |
128
+ |----|------|--------|
129
+ | Replace .safeword/ | Test 9.1 | ✅ Passing |
130
+ | Preserve user configs | Implicit | ✅ Passing |
131
+ | Replace _safeword hooks | Test 9.3 | ✅ Passing |
132
+ | Preserve learnings/ | Test 9.8 | ✅ Passing |
133
+ | Backup created | Test 9.9 | ✅ Passing |
134
+ | Backup deleted | Test 9.9 | ✅ Passing |
135
+
136
+ ### Story 6: Reset
137
+
138
+ **Covered by**: `reset.test.ts`
139
+
140
+ | AC | Test | Status |
141
+ |----|------|--------|
142
+ | Delete .safeword/ | Test 11.4 | ✅ Passing |
143
+ | Remove safeword hooks | Test 11.5 | ✅ Passing |
144
+ | Delete skill | Test 11.6 | ✅ Passing |
145
+ | Delete commands | Test 11.11 | ❌ Failing |
146
+ | Remove MCP servers | Test 11.12 | ❌ Failing |
147
+ | Delete empty .mcp.json | Test 11.12 | ❌ Failing |
148
+ | Preserve user hooks | Test 11.5 | ✅ Passing |
149
+ | Preserve lint configs | Test 11.9 | ✅ Passing |
150
+
151
+ ---
152
+
153
+ ## Technical Constraints Coverage
154
+
155
+ | Constraint | Test | Status |
156
+ |------------|------|--------|
157
+ | Setup < 5s | `technical-constraints.test.ts` | ✅ Passing |
158
+ | Upgrade < 3s | `technical-constraints.test.ts` | ✅ Passing |
159
+ | CLI < 500KB | `technical-constraints.test.ts` | ⏭️ Skipped |
160
+ | jq check | `technical-constraints.test.ts` | ✅ Passing |
161
+
162
+ ---
163
+
164
+ ## Gaps Summary
165
+
166
+ All acceptance criteria now have test coverage. The 13 failing tests represent features not yet implemented:
167
+
168
+ **Priority 1 - Story 1 (Template Bundling)**:
169
+ - Full SAFEWORD.md bundling
170
+ - Guides bundling
171
+ - Templates bundling
172
+ - Prompts bundling
173
+
174
+ **Priority 2 - Story 2/6 (Lib, MCP & Commands)**:
175
+ - Lib scripts installation (`.safeword/lib/`)
176
+ - MCP server setup (`.mcp.json` creation)
177
+ - MCP server preservation (merge logic)
178
+ - MCP server cleanup on reset
179
+ - Slash commands installation
180
+ - Slash commands cleanup on reset
181
+
182
+ **Priority 3 - Story 4 (Linting)**:
183
+ - markdownlint config creation
184
+ - lint:md script addition
185
+ - format:check script addition
186
+
187
+ ---
188
+
189
+ ## Test Execution
190
+
191
+ ```bash
192
+ # Run all CLI tests
193
+ cd packages/cli && npm test
194
+
195
+ # Run failing tests only
196
+ cd packages/cli && npm test -- setup-templates
197
+
198
+ # Run with verbose output
199
+ cd packages/cli && npm test -- --reporter=verbose
200
+ ```
201
+
202
+ ---
203
+
204
+ **Last Updated**: 2025-11-29
205
+ **Test Count**: 112 total (94 passing, 16 failing, 2 skipped)