safeword 0.2.4 → 0.2.5

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/dist/check-3NGQ4NR5.js +129 -0
  2. package/dist/check-3NGQ4NR5.js.map +1 -0
  3. package/dist/chunk-2XWIUEQK.js +190 -0
  4. package/dist/chunk-2XWIUEQK.js.map +1 -0
  5. package/dist/chunk-GZRQL3SX.js +146 -0
  6. package/dist/chunk-GZRQL3SX.js.map +1 -0
  7. package/dist/chunk-ORQHKDT2.js +10 -0
  8. package/dist/chunk-ORQHKDT2.js.map +1 -0
  9. package/dist/chunk-W66Z3C5H.js +21 -0
  10. package/dist/chunk-W66Z3C5H.js.map +1 -0
  11. package/dist/cli.d.ts +1 -0
  12. package/dist/cli.js +34 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/diff-Y6QTAW4O.js +166 -0
  15. package/dist/diff-Y6QTAW4O.js.map +1 -0
  16. package/dist/index.d.ts +11 -0
  17. package/dist/index.js +7 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/reset-3ACTIYYE.js +143 -0
  20. package/dist/reset-3ACTIYYE.js.map +1 -0
  21. package/dist/setup-RR4M334C.js +266 -0
  22. package/dist/setup-RR4M334C.js.map +1 -0
  23. package/dist/upgrade-6AR3DHUV.js +134 -0
  24. package/dist/upgrade-6AR3DHUV.js.map +1 -0
  25. package/package.json +44 -19
  26. package/{.safeword → templates}/hooks/agents-md-check.sh +0 -0
  27. package/{.safeword → templates}/hooks/post-tool.sh +0 -0
  28. package/{.safeword → templates}/hooks/pre-commit.sh +0 -0
  29. package/.claude/commands/arch-review.md +0 -32
  30. package/.claude/commands/lint.md +0 -6
  31. package/.claude/commands/quality-review.md +0 -13
  32. package/.claude/commands/setup-linting.md +0 -6
  33. package/.claude/hooks/auto-lint.sh +0 -6
  34. package/.claude/hooks/auto-quality-review.sh +0 -170
  35. package/.claude/hooks/check-linting-sync.sh +0 -17
  36. package/.claude/hooks/inject-timestamp.sh +0 -6
  37. package/.claude/hooks/question-protocol.sh +0 -12
  38. package/.claude/hooks/run-linters.sh +0 -8
  39. package/.claude/hooks/run-quality-review.sh +0 -76
  40. package/.claude/hooks/version-check.sh +0 -10
  41. package/.claude/mcp/README.md +0 -96
  42. package/.claude/mcp/arcade.sample.json +0 -9
  43. package/.claude/mcp/context7.sample.json +0 -7
  44. package/.claude/mcp/playwright.sample.json +0 -7
  45. package/.claude/settings.json +0 -62
  46. package/.claude/skills/quality-reviewer/SKILL.md +0 -190
  47. package/.claude/skills/safeword-quality-reviewer/SKILL.md +0 -13
  48. package/.env.arcade.example +0 -4
  49. package/.env.example +0 -11
  50. package/.gitmodules +0 -4
  51. package/.safeword/SAFEWORD.md +0 -33
  52. package/.safeword/eslint/eslint-base.mjs +0 -101
  53. package/.safeword/guides/architecture-guide.md +0 -404
  54. package/.safeword/guides/code-philosophy.md +0 -174
  55. package/.safeword/guides/context-files-guide.md +0 -405
  56. package/.safeword/guides/data-architecture-guide.md +0 -183
  57. package/.safeword/guides/design-doc-guide.md +0 -165
  58. package/.safeword/guides/learning-extraction.md +0 -515
  59. package/.safeword/guides/llm-instruction-design.md +0 -239
  60. package/.safeword/guides/llm-prompting.md +0 -95
  61. package/.safeword/guides/tdd-best-practices.md +0 -570
  62. package/.safeword/guides/test-definitions-guide.md +0 -243
  63. package/.safeword/guides/testing-methodology.md +0 -573
  64. package/.safeword/guides/user-story-guide.md +0 -237
  65. package/.safeword/guides/zombie-process-cleanup.md +0 -214
  66. package/.safeword/planning/002-user-story-quality-evaluation.md +0 -1840
  67. package/.safeword/planning/003-langsmith-eval-setup-prompt.md +0 -363
  68. package/.safeword/planning/004-llm-eval-test-cases.md +0 -3226
  69. package/.safeword/planning/005-architecture-enforcement-system.md +0 -169
  70. package/.safeword/planning/006-reactive-fix-prevention-research.md +0 -135
  71. package/.safeword/planning/011-cli-ux-vision.md +0 -330
  72. package/.safeword/planning/012-project-structure-cleanup.md +0 -154
  73. package/.safeword/planning/README.md +0 -39
  74. package/.safeword/planning/automation-plan-v2.md +0 -1225
  75. package/.safeword/planning/automation-plan-v3.md +0 -1291
  76. package/.safeword/planning/automation-plan.md +0 -3058
  77. package/.safeword/planning/design/005-cli-implementation.md +0 -343
  78. package/.safeword/planning/design/013-cli-self-contained-templates.md +0 -596
  79. package/.safeword/planning/design/013a-eslint-plugin-suite.md +0 -256
  80. package/.safeword/planning/design/013b-implementation-snippets.md +0 -385
  81. package/.safeword/planning/design/013c-config-isolation-strategy.md +0 -242
  82. package/.safeword/planning/design/code-philosophy-improvements.md +0 -60
  83. package/.safeword/planning/mcp-analysis.md +0 -545
  84. package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +0 -451
  85. package/.safeword/planning/settings-improvements.md +0 -970
  86. package/.safeword/planning/test-definitions/005-cli-implementation.md +0 -1301
  87. package/.safeword/planning/test-definitions/cli-self-contained-templates.md +0 -205
  88. package/.safeword/planning/user-stories/001-guides-review-user-stories.md +0 -1381
  89. package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +0 -132
  90. package/.safeword/planning/user-stories/004-technical-constraints.md +0 -86
  91. package/.safeword/planning/user-stories/005-cli-implementation.md +0 -311
  92. package/.safeword/planning/user-stories/cli-self-contained-templates.md +0 -172
  93. package/.safeword/planning/versioned-distribution.md +0 -740
  94. package/.safeword/prompts/arch-review.md +0 -43
  95. package/.safeword/prompts/quality-review.md +0 -11
  96. package/.safeword/scripts/arch-review.sh +0 -235
  97. package/.safeword/scripts/check-linting-sync.sh +0 -58
  98. package/.safeword/scripts/setup-linting.sh +0 -559
  99. package/.safeword/templates/architecture-template.md +0 -136
  100. package/.safeword/templates/ci/architecture-check.yml +0 -79
  101. package/.safeword/templates/design-doc-template.md +0 -127
  102. package/.safeword/templates/test-definitions-feature.md +0 -100
  103. package/.safeword/templates/ticket-template.md +0 -74
  104. package/.safeword/templates/user-stories-template.md +0 -82
  105. package/.safeword/tickets/001-guides-review-user-stories.md +0 -83
  106. package/.safeword/tickets/002-architecture-enforcement.md +0 -211
  107. package/.safeword/tickets/003-reactive-fix-prevention.md +0 -57
  108. package/.safeword/tickets/004-technical-constraints-in-user-stories.md +0 -39
  109. package/.safeword/tickets/005-cli-implementation.md +0 -248
  110. package/.safeword/tickets/006-flesh-out-skills.md +0 -43
  111. package/.safeword/tickets/007-flesh-out-questioning.md +0 -44
  112. package/.safeword/tickets/008-upgrade-questioning.md +0 -58
  113. package/.safeword/tickets/009-naming-conventions.md +0 -41
  114. package/.safeword/tickets/010-safeword-md-cleanup.md +0 -34
  115. package/.safeword/tickets/011-cursor-setup.md +0 -86
  116. package/.safeword/tickets/README.md +0 -73
  117. package/.safeword/version +0 -1
  118. package/AGENTS.md +0 -59
  119. package/CLAUDE.md +0 -12
  120. package/README.md +0 -347
  121. package/docs/001-cli-implementation-plan.md +0 -856
  122. package/docs/elite-dx-implementation-plan.md +0 -1034
  123. package/framework/README.md +0 -131
  124. package/framework/mcp/README.md +0 -96
  125. package/framework/mcp/arcade.sample.json +0 -8
  126. package/framework/mcp/context7.sample.json +0 -6
  127. package/framework/mcp/playwright.sample.json +0 -6
  128. package/framework/scripts/arch-review.sh +0 -235
  129. package/framework/scripts/check-linting-sync.sh +0 -58
  130. package/framework/scripts/load-env.sh +0 -49
  131. package/framework/scripts/setup-claude.sh +0 -223
  132. package/framework/scripts/setup-linting.sh +0 -559
  133. package/framework/scripts/setup-quality.sh +0 -477
  134. package/framework/scripts/setup-safeword.sh +0 -550
  135. package/framework/templates/ci/architecture-check.yml +0 -78
  136. package/learnings/ai-sdk-v5-breaking-changes.md +0 -178
  137. package/learnings/e2e-test-zombie-processes.md +0 -231
  138. package/learnings/milkdown-crepe-editor-property.md +0 -96
  139. package/learnings/prosemirror-fragment-traversal.md +0 -119
  140. package/packages/cli/AGENTS.md +0 -1
  141. package/packages/cli/ARCHITECTURE.md +0 -279
  142. package/packages/cli/package.json +0 -51
  143. package/packages/cli/src/cli.ts +0 -63
  144. package/packages/cli/src/commands/check.ts +0 -166
  145. package/packages/cli/src/commands/diff.ts +0 -209
  146. package/packages/cli/src/commands/reset.ts +0 -190
  147. package/packages/cli/src/commands/setup.ts +0 -325
  148. package/packages/cli/src/commands/upgrade.ts +0 -163
  149. package/packages/cli/src/index.ts +0 -3
  150. package/packages/cli/src/templates/config.ts +0 -58
  151. package/packages/cli/src/templates/content.ts +0 -18
  152. package/packages/cli/src/templates/index.ts +0 -12
  153. package/packages/cli/src/utils/agents-md.ts +0 -66
  154. package/packages/cli/src/utils/fs.ts +0 -179
  155. package/packages/cli/src/utils/git.ts +0 -124
  156. package/packages/cli/src/utils/hooks.ts +0 -29
  157. package/packages/cli/src/utils/output.ts +0 -60
  158. package/packages/cli/src/utils/project-detector.test.ts +0 -185
  159. package/packages/cli/src/utils/project-detector.ts +0 -44
  160. package/packages/cli/src/utils/version.ts +0 -28
  161. package/packages/cli/src/version.ts +0 -6
  162. package/packages/cli/templates/SAFEWORD.md +0 -776
  163. package/packages/cli/templates/doc-templates/architecture-template.md +0 -136
  164. package/packages/cli/templates/doc-templates/design-doc-template.md +0 -134
  165. package/packages/cli/templates/doc-templates/test-definitions-feature.md +0 -131
  166. package/packages/cli/templates/doc-templates/ticket-template.md +0 -82
  167. package/packages/cli/templates/doc-templates/user-stories-template.md +0 -92
  168. package/packages/cli/templates/guides/architecture-guide.md +0 -423
  169. package/packages/cli/templates/guides/code-philosophy.md +0 -195
  170. package/packages/cli/templates/guides/context-files-guide.md +0 -457
  171. package/packages/cli/templates/guides/data-architecture-guide.md +0 -200
  172. package/packages/cli/templates/guides/design-doc-guide.md +0 -171
  173. package/packages/cli/templates/guides/learning-extraction.md +0 -552
  174. package/packages/cli/templates/guides/llm-instruction-design.md +0 -248
  175. package/packages/cli/templates/guides/llm-prompting.md +0 -102
  176. package/packages/cli/templates/guides/tdd-best-practices.md +0 -615
  177. package/packages/cli/templates/guides/test-definitions-guide.md +0 -334
  178. package/packages/cli/templates/guides/testing-methodology.md +0 -618
  179. package/packages/cli/templates/guides/user-story-guide.md +0 -256
  180. package/packages/cli/templates/guides/zombie-process-cleanup.md +0 -219
  181. package/packages/cli/templates/hooks/agents-md-check.sh +0 -27
  182. package/packages/cli/templates/hooks/post-tool.sh +0 -4
  183. package/packages/cli/templates/hooks/pre-commit.sh +0 -10
  184. package/packages/cli/templates/prompts/arch-review.md +0 -43
  185. package/packages/cli/templates/prompts/quality-review.md +0 -10
  186. package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +0 -207
  187. package/packages/cli/tests/commands/check.test.ts +0 -129
  188. package/packages/cli/tests/commands/cli.test.ts +0 -89
  189. package/packages/cli/tests/commands/diff.test.ts +0 -115
  190. package/packages/cli/tests/commands/reset.test.ts +0 -310
  191. package/packages/cli/tests/commands/self-healing.test.ts +0 -170
  192. package/packages/cli/tests/commands/setup-blocking.test.ts +0 -71
  193. package/packages/cli/tests/commands/setup-core.test.ts +0 -135
  194. package/packages/cli/tests/commands/setup-git.test.ts +0 -139
  195. package/packages/cli/tests/commands/setup-hooks.test.ts +0 -334
  196. package/packages/cli/tests/commands/setup-linting.test.ts +0 -189
  197. package/packages/cli/tests/commands/setup-noninteractive.test.ts +0 -80
  198. package/packages/cli/tests/commands/setup-templates.test.ts +0 -181
  199. package/packages/cli/tests/commands/upgrade.test.ts +0 -215
  200. package/packages/cli/tests/helpers.ts +0 -243
  201. package/packages/cli/tests/npm-package.test.ts +0 -83
  202. package/packages/cli/tests/technical-constraints.test.ts +0 -96
  203. package/packages/cli/tsconfig.json +0 -25
  204. package/packages/cli/tsup.config.ts +0 -11
  205. package/packages/cli/vitest.config.ts +0 -23
  206. package/promptfoo.yaml +0 -3270
  207. /package/{framework → templates}/SAFEWORD.md +0 -0
  208. /package/{packages/cli/templates → templates}/commands/arch-review.md +0 -0
  209. /package/{packages/cli/templates → templates}/commands/lint.md +0 -0
  210. /package/{packages/cli/templates → templates}/commands/quality-review.md +0 -0
  211. /package/{framework/templates → templates/doc-templates}/architecture-template.md +0 -0
  212. /package/{framework/templates → templates/doc-templates}/design-doc-template.md +0 -0
  213. /package/{framework/templates → templates/doc-templates}/test-definitions-feature.md +0 -0
  214. /package/{framework/templates → templates/doc-templates}/ticket-template.md +0 -0
  215. /package/{framework/templates → templates/doc-templates}/user-stories-template.md +0 -0
  216. /package/{framework → templates}/guides/architecture-guide.md +0 -0
  217. /package/{framework → templates}/guides/code-philosophy.md +0 -0
  218. /package/{framework → templates}/guides/context-files-guide.md +0 -0
  219. /package/{framework → templates}/guides/data-architecture-guide.md +0 -0
  220. /package/{framework → templates}/guides/design-doc-guide.md +0 -0
  221. /package/{framework → templates}/guides/learning-extraction.md +0 -0
  222. /package/{framework → templates}/guides/llm-instruction-design.md +0 -0
  223. /package/{framework → templates}/guides/llm-prompting.md +0 -0
  224. /package/{framework → templates}/guides/tdd-best-practices.md +0 -0
  225. /package/{framework → templates}/guides/test-definitions-guide.md +0 -0
  226. /package/{framework → templates}/guides/testing-methodology.md +0 -0
  227. /package/{framework → templates}/guides/user-story-guide.md +0 -0
  228. /package/{framework → templates}/guides/zombie-process-cleanup.md +0 -0
  229. /package/{packages/cli/templates → templates}/hooks/inject-timestamp.sh +0 -0
  230. /package/{packages/cli/templates → templates}/lib/common.sh +0 -0
  231. /package/{packages/cli/templates → templates}/lib/jq-fallback.sh +0 -0
  232. /package/{packages/cli/templates → templates}/markdownlint.jsonc +0 -0
  233. /package/{framework → templates}/prompts/arch-review.md +0 -0
  234. /package/{framework → templates}/prompts/quality-review.md +0 -0
  235. /package/{framework/skills/quality-reviewer → templates/skills/safeword-quality-reviewer}/SKILL.md +0 -0
package/README.md DELETED
@@ -1,347 +0,0 @@
1
- # SAFEWORD - Claude Code Framework
2
-
3
- **Problem**: AI agents write code without tests, skip design validation, and lack consistency across projects.
4
-
5
- **Solution**: Portable patterns and guides that enforce TDD workflow, quality standards, and best practices across all your projects.
6
-
7
- **Repository**: https://github.com/TheMostlyGreat/safeword (private)
8
-
9
- ---
10
-
11
- ## Quick Start (30 seconds)
12
-
13
- **1. Install in your project:**
14
-
15
- ```bash
16
- cd /path/to/your/project
17
- bash ./framework/scripts/setup-safeword.sh
18
- ```
19
-
20
- **2. Verify installation:**
21
-
22
- ```bash
23
- # Check for SAFEWORD files and hooks
24
- test -f .safeword/SAFEWORD.md && echo ".safeword/SAFEWORD.md ✓"
25
- test -f .claude/settings.json && echo ".claude/settings.json ✓"
26
- ```
27
-
28
- **Result**: Your project now has:
29
-
30
- - `.safeword/SAFEWORD.md` - Global patterns and workflows
31
- - `.safeword/guides/` - TDD methodology, testing, code philosophy
32
- - `.claude/hooks/` - Auto-linting and quality review
33
- - `SAFEWORD.md` or `CLAUDE.md` - Project context with framework reference
34
-
35
- **Commit these to your repo** for team consistency.
36
-
37
- ---
38
-
39
- ## How It Works
40
-
41
- **Project-local framework**: Scripts write to `.safeword/` and `.claude/` in your project (no global install needed)
42
-
43
- **Team consistency**: Teammates get the framework from your project repo (no global install needed)
44
-
45
- **Living documentation**: Update guides as you learn, extract learnings from debugging, archive completed work
46
-
47
- ---
48
-
49
- ## What's Inside
50
-
51
- Key directories created in your project:
52
-
53
- - `.safeword/guides/` - Core methodology and best practices
54
- - `.safeword/templates/` - Fillable document structures
55
- - `.safeword/planning/` - Planning documentation (user-stories, test-definitions, design, issues)
56
- - `.claude/hooks/` - Automation scripts
57
-
58
- ---
59
-
60
- ## Core Guides
61
-
62
- **Purpose**: Reusable methodology applicable to all projects
63
-
64
- | Guide | Purpose | When to Read |
65
- | -------------------------- | --------------------------------------------------------------- | ----------------------- |
66
- | **code-philosophy.md** | Core coding principles, TDD philosophy, self-review checklist | Before writing code |
67
- | **testing-methodology.md** | TDD workflow (RED/GREEN/REFACTOR), test pyramid, decision trees | Starting any feature |
68
- | **tdd-best-practices.md** | User story + test definition patterns and examples | Creating tests/stories |
69
- | **learning-extraction.md** | Extract learnings from debugging, recognition triggers | After complex debugging |
70
-
71
- ---
72
-
73
- ## Documentation Guides
74
-
75
- **Purpose**: Writing effective feature documentation
76
-
77
- | Guide | Purpose | When to Read |
78
- | ------------------------------ | -------------------------------------------------- | ------------------------------ |
79
- | **user-story-guide.md** | Writing effective user stories (INVEST criteria) | Creating user stories |
80
- | **test-definitions-guide.md** | Writing test definitions (unit/integration/E2E) | Planning test suites |
81
- | **design-doc-guide.md** | Design doc structure and best practices | Designing complex features |
82
- | **architecture-guide.md** | Architecture decisions (tech choices, data models) | Making architectural decisions |
83
- | **data-architecture-guide.md** | Data model design (schemas, validation, flows) | Database/schema design |
84
-
85
- ---
86
-
87
- ## Meta Guides
88
-
89
- **Purpose**: Working with LLMs and documentation structure
90
-
91
- | Guide | Purpose | When to Read |
92
- | ----------------------------- | ------------------------------------------------------------------------ | --------------------------- |
93
- | **llm-prompting.md** | Prompt engineering, LLM cost optimization, caching | Building AI features |
94
- | **llm-instruction-design.md** | 13 principles for LLM-consumable docs (MECE, examples) | Creating SAFEWORD.md/guides |
95
- | **context-files-guide.md** | CLAUDE.md/CURSOR.md/AGENTS.md structure, anti-patterns, modular approach | Setting up projects |
96
- | **zombie-process-cleanup.md** | Port-based cleanup, multi-project isolation | Managing dev servers |
97
-
98
- ---
99
-
100
- ## Templates
101
-
102
- **Purpose**: Fillable structures for feature documentation
103
-
104
- | Template | Purpose | Used By |
105
- | ------------------------------- | ------------------------------------------------ | ------------------------- |
106
- | **user-stories-template.md** | User story structure (As a X / Given-When-Then) | user-story-guide.md |
107
- | **test-definitions-feature.md** | Test definition structure (suites, tests, steps) | test-definitions-guide.md |
108
- | **design-doc-template.md** | Design doc structure (architecture, components) | design-doc-guide.md |
109
-
110
- ---
111
-
112
- ## Learnings
113
-
114
- **Purpose**: Extracted knowledge that compounds across sessions
115
-
116
- **Location**: `.safeword/learnings/[concept].md`
117
-
118
- **What goes here**:
119
-
120
- - Debugging discoveries (non-obvious gotchas, integration struggles)
121
- - Trial-and-error findings (tried 3+ approaches before right one)
122
- - Architecture insights (discovered during implementation)
123
- - Testing traps (tests pass but UX broken, or vice versa)
124
-
125
- **How to extract**: Follow `learning-extraction.md` recognition triggers and templates
126
-
127
- **Example learnings**:
128
-
129
- - React hooks async behavior
130
- - Electron IPC patterns
131
- - Browser storage quota quirks
132
- - E2E test zombie processes
133
- - ProseMirror fragment traversal
134
-
135
- ---
136
-
137
- ## Planning
138
-
139
- **Purpose**: Feature planning and design documentation
140
-
141
- **Structure**:
142
-
143
- ```
144
- planning/
145
- ├── user-stories/ User story documents
146
- ├── test-definitions/ Test definition documents
147
- ├── design/ Design docs and research
148
- └── issues/ Issue capture and tracking
149
- ```
150
-
151
- Each directory has an `archive/` subfolder for completed work.
152
-
153
- **What goes here**:
154
-
155
- - User stories for features
156
- - Test definitions for TDD workflow
157
- - Design documents for complex features
158
- - Research and analysis documents
159
- - Issue tracking and capture
160
-
161
- ---
162
-
163
- ## Hooks & Skills
164
-
165
- **Hooks**: Automation scripts triggered by Claude Code events
166
-
167
- - `auto-quality-review.sh` - Automated quality control on responses
168
-
169
- **Skills**: Specialized agent capabilities
170
-
171
- - `quality-reviewer/` - Deep code quality review with web research
172
-
173
- ---
174
-
175
- ## Advanced Setup
176
-
177
- ### Custom Installation Options
178
-
179
- ```bash
180
- cd /path/to/your/project
181
- # SAFEWORD structure + (optionally) Claude Code hooks
182
- bash ./framework/scripts/setup-safeword.sh
183
- # Claude Code hooks only (if SAFEWORD already configured)
184
- bash ./framework/scripts/setup-claude.sh --linting-mode biome
185
- bash ./framework/scripts/setup-claude.sh --skip-linting
186
- ```
187
-
188
- **Auto-detection**: Automatically detects project type from `package.json`:
189
-
190
- - Biome → if `@biomejs/biome` installed
191
- - Next.js → if `next` in dependencies
192
- - Electron → if `electron` in dependencies
193
- - Astro → if `astro` in dependencies
194
- - React → if `react` in dependencies
195
- - TypeScript → if `typescript` in dependencies or `tsconfig.json` exists
196
- - Minimal → otherwise
197
-
198
- ### Reference Guides in Project SAFEWORD.md
199
-
200
- ```markdown
201
- # Import guides from .safeword (SAFEWORD.md)
202
-
203
- @./.safeword/guides/testing-methodology.md
204
- @./.safeword/guides/code-philosophy.md
205
- @./.safeword/guides/user-story-guide.md
206
- @./.safeword/guides/test-definitions-guide.md
207
- @./.safeword/guides/design-doc-guide.md
208
- ```
209
-
210
- Claude Code will auto-load these guides as context.
211
-
212
- ### Check for Existing Learnings
213
-
214
- ```bash
215
- # Project learnings (this repo)
216
- ls .safeword/learnings/
217
- ```
218
-
219
- ### Extract New Learning
220
-
221
- 1. Follow recognition triggers in `learning-extraction.md`
222
- 2. Create `.safeword/learnings/[concept].md`
223
- 3. Use template: Problem → Gotcha → Examples → Testing Trap
224
-
225
- ### Create Planning Documentation
226
-
227
- ```bash
228
- # User stories
229
- mkdir -p .safeword/planning/user-stories && touch .safeword/planning/user-stories/feature-name.md
230
- # Test definitions
231
- mkdir -p .safeword/planning/test-definitions && touch .safeword/planning/test-definitions/feature-name.md
232
- # Design docs
233
- mkdir -p .safeword/planning/design && touch .safeword/planning/design/feature-name.md
234
- ```
235
-
236
- ---
237
-
238
- ## Syncing Across Machines
239
-
240
- Commit `.safeword/` and `.claude/` in your project repo for team consistency.
241
-
242
- ---
243
-
244
- ## Integration with Project Context
245
-
246
- **Project SAFEWORD.md/CLAUDE.md**: Created by `setup-safeword.sh` or manually, references `.safeword/SAFEWORD.md`
247
-
248
- **How it works**:
249
-
250
- 1. Project SAFEWORD.md imports core guides via `@./.safeword/guides/`
251
- 2. Guides reference templates via `@./.safeword/templates/`
252
- 3. Guides cross-reference each other via `@./.safeword/guides/`
253
- 4. Learnings referenced via `ls .safeword/learnings/`
254
-
255
- **Result**: Modular, maintainable documentation with clear separation of concerns
256
-
257
- ---
258
-
259
- ## Principles
260
-
261
- 1. **Guides** - Reusable methodology (test pyramid, TDD workflow)
262
- 2. **Templates** - Fillable structures (user stories, test definitions)
263
- 3. **Learnings** - Extracted knowledge (gotchas, discoveries)
264
- 4. **Planning** - Feature planning and design (user stories, test definitions, design docs)
265
- 5. **Hooks/Skills** - Automation and specialized capabilities
266
-
267
- **Living Documentation**: Update as you learn, archive completed work, consolidate when needed
268
-
269
- **Cross-Agent Compatible**: Works with Claude Code, Cursor, and other AI coding agents
270
-
271
- ---
272
-
273
- ## LLM Eval Testing
274
-
275
- **Purpose**: Validate that guides are effective for LLM consumption using promptfoo.
276
-
277
- ### Running Evals
278
-
279
- ```bash
280
- # Run all eval tests
281
- npm run eval
282
-
283
- # Run without cache (fresh API calls)
284
- npm run eval:no-cache
285
-
286
- # Open web UI to view results
287
- npm run eval:view
288
- ```
289
-
290
- ### What's Tested
291
-
292
- The eval suite tests that LLMs correctly follow guide instructions:
293
-
294
- | Category | Tests | What's Validated |
295
- | ---------------------- | ------- | -------------------------------------------------------------------------------------- |
296
- | Architecture | 21 | Doc type selection, layers, dependencies, ESLint, LLM review, pre-commit, CI, template |
297
- | Code Philosophy | 14 | Bloat avoidance, error handling, TDD, self-review, git workflow |
298
- | Testing Methodology | 13 | Test type selection, TDD phases, test integrity, cost controls |
299
- | Zombie Process | 7 | Port-based cleanup, scripts, tmux isolation, best practices |
300
- | User Stories | 13 | INVEST validation, size guidelines, templates, technical constraints |
301
- | LLM Instruction Design | 15 | MECE trees, tie-breaking, lookup tables, anti-patterns |
302
- | TDD Best Practices | 10 | Template selection, story formats, data builders |
303
- | Design Doc | 10 | Prerequisites, template, components, user flow, decisions |
304
- | Context Files | 11 | File selection, triggers, imports, size, cross-references |
305
- | Data Architecture | 7 | Decision tree, principles, flows, policies, checklist |
306
- | Learning Extraction | 11 | Triggers, templates, precedence, cross-references |
307
- | LLM Prompting | 10 | Caching, structured outputs, LLM-as-judge, costs |
308
- | Test Definitions | 12 | Suites, status, naming, mapping, LLM-friendly |
309
- | **Total** | **154** | |
310
-
311
- ### Adding New Tests
312
-
313
- Edit `promptfoo.yaml` and add a test case:
314
-
315
- ```yaml
316
- - description: 'test-id: Description'
317
- vars:
318
- input: 'User prompt to test'
319
- context: |
320
- Relevant excerpt from guide
321
- assert:
322
- - type: llm-rubric
323
- value: |
324
- EXCELLENT: Best response criteria
325
- ACCEPTABLE: Minimum passing criteria
326
- POOR: Failing criteria
327
- ```
328
-
329
- ### Requirements
330
-
331
- - `ANTHROPIC_API_KEY` environment variable set
332
- - Tests use Claude Sonnet 4 by default
333
-
334
- ### Interpreting Results
335
-
336
- - **PASS**: LLM followed guide correctly
337
- - **FAIL**: Guide may need improvement (clearer instructions, examples, tie-breakers)
338
-
339
- Results saved to `eval-results.json` after each run.
340
-
341
- ---
342
-
343
- ## Getting Help
344
-
345
- - **Claude Code docs**: https://docs.claude.com/en/docs/claude-code
346
- - **Issues**: https://github.com/anthropics/claude-code/issues
347
- - **This repo**: https://github.com/TheMostlyGreat/safeword (private)