safeword 0.2.3 → 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-3NGQ4NR5.js +0 -129
  184. package/dist/check-3NGQ4NR5.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-ORQHKDT2.js +0 -10
  190. package/dist/chunk-ORQHKDT2.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-Y6QTAW4O.js +0 -166
  197. package/dist/diff-Y6QTAW4O.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-RR4M334C.js +0 -266
  204. package/dist/setup-RR4M334C.js.map +0 -1
  205. package/dist/upgrade-6AR3DHUV.js +0 -134
  206. package/dist/upgrade-6AR3DHUV.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,223 @@
1
+ #!/bin/bash
2
+ ################################################################################
3
+ # Claude Code Hooks Setup
4
+ #
5
+ # Usage:
6
+ # bash setup-claude.sh [options]
7
+ #
8
+ # Options:
9
+ # --skip-linting Skip linting setup
10
+ # --skip-quality Skip quality review setup
11
+ #
12
+ # Examples:
13
+ # bash setup-claude.sh # Full setup (auto-detects project type)
14
+ # bash setup-claude.sh --skip-linting # Quality review only
15
+ #
16
+ # Linting auto-detects from package.json:
17
+ # - TypeScript (tsconfig.json or typescript in deps)
18
+ # - React (react in deps)
19
+ # - Astro (astro in deps)
20
+ ################################################################################
21
+
22
+ set -e # Exit on error
23
+
24
+ VERSION="v1.0.0"
25
+
26
+ echo "================================="
27
+ echo "Claude Code Hooks Setup"
28
+ echo "Version: $VERSION"
29
+ echo "================================="
30
+ echo ""
31
+
32
+ # Find the script's directory (where setup scripts are located)
33
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
34
+
35
+ # Parse arguments
36
+ SKIP_LINTING=false
37
+ SKIP_QUALITY=false
38
+
39
+ while [[ $# -gt 0 ]]; do
40
+ case $1 in
41
+ --skip-linting)
42
+ SKIP_LINTING=true
43
+ shift
44
+ ;;
45
+ --skip-quality)
46
+ SKIP_QUALITY=true
47
+ shift
48
+ ;;
49
+ *)
50
+ echo "Unknown option: $1"
51
+ echo "Usage: bash setup-claude.sh [--skip-linting] [--skip-quality]"
52
+ exit 1
53
+ ;;
54
+ esac
55
+ done
56
+
57
+ # Check for jq (recommended for robust JSON parsing)
58
+ if ! command -v jq &> /dev/null; then
59
+ echo "⚠️ Warning: 'jq' not found. Using grep fallback for JSON parsing (less robust)."
60
+ echo " Install jq for better reliability: brew install jq (macOS) or apt-get install jq (Linux)"
61
+ echo ""
62
+ fi
63
+
64
+ # Get project directory (current directory)
65
+ PROJECT_DIR="$(pwd)"
66
+ echo "Setting up project in: $PROJECT_DIR"
67
+ echo ""
68
+
69
+ # Check if we're in a directory where we can write
70
+ if [ ! -w "." ]; then
71
+ echo "ERROR: Cannot write to current directory. Please cd to your project root."
72
+ exit 1
73
+ fi
74
+
75
+ # Run linting setup
76
+ if [ "$SKIP_LINTING" = false ]; then
77
+ echo "[1/2] Running linting setup (auto-detect)..."
78
+ echo ""
79
+ bash "$SCRIPT_DIR/setup-linting.sh"
80
+ echo ""
81
+ else
82
+ echo "[1/2] Skipping linting setup"
83
+ echo ""
84
+ fi
85
+
86
+ # Run quality review setup
87
+ if [ "$SKIP_QUALITY" = false ]; then
88
+ if [ "$SKIP_LINTING" = false ]; then
89
+ echo "[2/2] Running quality review setup..."
90
+ else
91
+ echo "[1/1] Running quality review setup..."
92
+ fi
93
+ echo ""
94
+ bash "$SCRIPT_DIR/setup-quality.sh"
95
+ echo ""
96
+ else
97
+ echo "[2/2] Skipping quality review setup"
98
+ echo ""
99
+ fi
100
+
101
+ echo "================================="
102
+ echo "✓ Claude Code Hooks Setup Complete!"
103
+ echo "================================="
104
+ echo ""
105
+ echo "What was configured:"
106
+ if [ "$SKIP_LINTING" = false ]; then
107
+ echo " • Auto-linting (auto-detected project type)"
108
+ fi
109
+ if [ "$SKIP_QUALITY" = false ]; then
110
+ echo " • Quality review hooks"
111
+ echo " • Global patterns (.safeword/SAFEWORD.md)"
112
+ echo " • Reference documentation (.safeword/guides/)"
113
+ fi
114
+ echo ""
115
+
116
+ # Create Claude skills directory and seed from framework if available
117
+ mkdir -p ".claude/skills"
118
+ if [ -d "$SCRIPT_DIR/../skills" ]; then
119
+ cp -R "$SCRIPT_DIR/../skills/." ".claude/skills/" 2>/dev/null || true
120
+ echo " • Seeded .claude/skills/ from framework/skills/"
121
+ else
122
+ echo " • .claude/skills/ created (no framework skills found to copy)"
123
+ fi
124
+
125
+ # Create Claude MCP directory and seed from framework if available
126
+ mkdir -p ".claude/mcp"
127
+ if [ -d "$SCRIPT_DIR/../mcp" ]; then
128
+ cp -R "$SCRIPT_DIR/../mcp/." ".claude/mcp/" 2>/dev/null || true
129
+ echo " • Seeded .claude/mcp/ from framework/mcp/"
130
+ else
131
+ echo " • .claude/mcp/ created (no framework MCPs found to copy)"
132
+ fi
133
+
134
+ # Add Arcade MCP Gateway config (HTTP) if not present
135
+ if [ ! -f ".claude/mcp/arcade.json" ]; then
136
+ cat > ".claude/mcp/arcade.json" << EOF
137
+ {
138
+ "name": "arcade",
139
+ "transport": "http",
140
+ "url": "${ARCADE_MCP_GATEWAY_URL:-}",
141
+ "headers": {
142
+ "Authorization": "Bearer ${ARCADE_API_KEY:-}"
143
+ }
144
+ }
145
+ EOF
146
+ echo " • Created .claude/mcp/arcade.json (HTTP gateway config)"
147
+ else
148
+ echo " • .claude/mcp/arcade.json exists (skipped)"
149
+ fi
150
+
151
+ # Soft checks for required env vars
152
+ if [ -z "${ARCADE_API_KEY:-}" ]; then
153
+ echo " ! ARCADE_API_KEY not set. Set it to authenticate Arcade MCP Gateway."
154
+ fi
155
+ if [ -z "${ARCADE_MCP_GATEWAY_URL:-}" ]; then
156
+ echo " ! ARCADE_MCP_GATEWAY_URL not set. Set it to your Arcade MCP Gateway HTTP URL."
157
+ fi
158
+
159
+ # Drop sample env file for Arcade MCP Gateway
160
+ if [ ! -f ".env.arcade.example" ]; then
161
+ cat > ".env.arcade.example" << 'EOF'
162
+ # Arcade MCP Gateway (HTTP)
163
+ # Copy these into your shell profile or a local env file (do NOT commit secrets).
164
+ ARCADE_MCP_GATEWAY_URL=https://your-gateway.example.com
165
+ ARCADE_API_KEY=your-arcade-api-key
166
+ EOF
167
+ echo " • Wrote .env.arcade.example (sample env for Arcade MCP Gateway)"
168
+ fi
169
+
170
+ # Ensure CLAUDE.md references SAFEWORD.md (prepend trigger or create file)
171
+ if [ -f "CLAUDE.md" ]; then
172
+ if grep -q "@./.safeword/SAFEWORD.md" "CLAUDE.md"; then
173
+ echo " • CLAUDE.md already includes SAFEWORD trigger"
174
+ else
175
+ tmp_file=$(mktemp)
176
+ cat > "$tmp_file" << 'EOF'
177
+ **⚠️ ALWAYS READ FIRST: @./.safeword/SAFEWORD.md**
178
+
179
+ The SAFEWORD.md file contains core development patterns, workflows, and conventions.
180
+ Read it BEFORE working on any task in this project.
181
+
182
+ ---
183
+
184
+ EOF
185
+ cat "CLAUDE.md" >> "$tmp_file"
186
+ mv "$tmp_file" "CLAUDE.md"
187
+ echo " • Added SAFEWORD trigger to existing CLAUDE.md"
188
+ fi
189
+ else
190
+ cat > "CLAUDE.md" << 'EOF'
191
+ # Project Claude Context
192
+
193
+ **⚠️ ALWAYS READ FIRST: @./.safeword/SAFEWORD.md**
194
+
195
+ The SAFEWORD.md file contains core development patterns, workflows, and conventions.
196
+ Read it BEFORE working on any task in this project.
197
+
198
+ ---
199
+
200
+ ## Project-Specific Guidance
201
+ - Add Claude-specific context, commands, or workflow notes here
202
+ EOF
203
+ echo " • Created CLAUDE.md with SAFEWORD trigger"
204
+ fi
205
+
206
+ echo "Next steps:"
207
+ echo " 1. Review generated files:"
208
+ echo " • .safeword/ (global patterns and guides)"
209
+ echo " • .claude/ (hooks and commands)"
210
+ echo " • SAFEWORD.md (project context) or CLAUDE.md"
211
+ echo ""
212
+ echo " 2. Commit to git:"
213
+ echo " git add .safeword/ .claude/ SAFEWORD.md"
214
+ echo " git commit -m 'Add Claude Code hooks and patterns'"
215
+ echo " git push"
216
+ echo ""
217
+ echo " 3. Start using Claude Code - hooks are active!"
218
+ echo ""
219
+
220
+
221
+
222
+
223
+