thrivekit 2.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 (164) hide show
  1. package/.claude/commands/explain.md +114 -0
  2. package/.claude/commands/idea.md +370 -0
  3. package/.claude/commands/my-dna.md +122 -0
  4. package/.claude/commands/prd.md +286 -0
  5. package/.claude/commands/review.md +167 -0
  6. package/.claude/commands/sign.md +32 -0
  7. package/.claude/commands/styleguide.md +450 -0
  8. package/.claude/commands/tour.md +301 -0
  9. package/.claude/commands/vibe-check.md +116 -0
  10. package/.claude/commands/vibe-help.md +47 -0
  11. package/.claude/commands/vibe-list.md +203 -0
  12. package/.claude/settings.json +75 -0
  13. package/.claude/settings.local.json +12 -0
  14. package/.pre-commit-hooks.yaml +102 -0
  15. package/LICENSE +21 -0
  16. package/README.md +214 -0
  17. package/bin/postinstall.sh +29 -0
  18. package/bin/ralph.sh +171 -0
  19. package/bin/thrivekit.sh +24 -0
  20. package/bin/vibe-check.js +19 -0
  21. package/dist/checks/check-any-types.d.ts +6 -0
  22. package/dist/checks/check-any-types.d.ts.map +1 -0
  23. package/dist/checks/check-any-types.js +73 -0
  24. package/dist/checks/check-any-types.js.map +1 -0
  25. package/dist/checks/check-commented-code.d.ts +6 -0
  26. package/dist/checks/check-commented-code.d.ts.map +1 -0
  27. package/dist/checks/check-commented-code.js +81 -0
  28. package/dist/checks/check-commented-code.js.map +1 -0
  29. package/dist/checks/check-console-error.d.ts +6 -0
  30. package/dist/checks/check-console-error.d.ts.map +1 -0
  31. package/dist/checks/check-console-error.js +41 -0
  32. package/dist/checks/check-console-error.js.map +1 -0
  33. package/dist/checks/check-debug-statements.d.ts +6 -0
  34. package/dist/checks/check-debug-statements.d.ts.map +1 -0
  35. package/dist/checks/check-debug-statements.js +120 -0
  36. package/dist/checks/check-debug-statements.js.map +1 -0
  37. package/dist/checks/check-deep-nesting.d.ts +6 -0
  38. package/dist/checks/check-deep-nesting.d.ts.map +1 -0
  39. package/dist/checks/check-deep-nesting.js +116 -0
  40. package/dist/checks/check-deep-nesting.js.map +1 -0
  41. package/dist/checks/check-docker-platform.d.ts +6 -0
  42. package/dist/checks/check-docker-platform.d.ts.map +1 -0
  43. package/dist/checks/check-docker-platform.js +42 -0
  44. package/dist/checks/check-docker-platform.js.map +1 -0
  45. package/dist/checks/check-dry-violations.d.ts +6 -0
  46. package/dist/checks/check-dry-violations.d.ts.map +1 -0
  47. package/dist/checks/check-dry-violations.js +124 -0
  48. package/dist/checks/check-dry-violations.js.map +1 -0
  49. package/dist/checks/check-empty-catch.d.ts +6 -0
  50. package/dist/checks/check-empty-catch.d.ts.map +1 -0
  51. package/dist/checks/check-empty-catch.js +111 -0
  52. package/dist/checks/check-empty-catch.js.map +1 -0
  53. package/dist/checks/check-function-length.d.ts +6 -0
  54. package/dist/checks/check-function-length.d.ts.map +1 -0
  55. package/dist/checks/check-function-length.js +152 -0
  56. package/dist/checks/check-function-length.js.map +1 -0
  57. package/dist/checks/check-hardcoded-ai-models.d.ts +10 -0
  58. package/dist/checks/check-hardcoded-ai-models.d.ts.map +1 -0
  59. package/dist/checks/check-hardcoded-ai-models.js +102 -0
  60. package/dist/checks/check-hardcoded-ai-models.js.map +1 -0
  61. package/dist/checks/check-hardcoded-urls.d.ts +6 -0
  62. package/dist/checks/check-hardcoded-urls.d.ts.map +1 -0
  63. package/dist/checks/check-hardcoded-urls.js +124 -0
  64. package/dist/checks/check-hardcoded-urls.js.map +1 -0
  65. package/dist/checks/check-magic-numbers.d.ts +6 -0
  66. package/dist/checks/check-magic-numbers.d.ts.map +1 -0
  67. package/dist/checks/check-magic-numbers.js +116 -0
  68. package/dist/checks/check-magic-numbers.js.map +1 -0
  69. package/dist/checks/check-secrets.d.ts +6 -0
  70. package/dist/checks/check-secrets.d.ts.map +1 -0
  71. package/dist/checks/check-secrets.js +138 -0
  72. package/dist/checks/check-secrets.js.map +1 -0
  73. package/dist/checks/check-snake-case-ts.d.ts +6 -0
  74. package/dist/checks/check-snake-case-ts.d.ts.map +1 -0
  75. package/dist/checks/check-snake-case-ts.js +78 -0
  76. package/dist/checks/check-snake-case-ts.js.map +1 -0
  77. package/dist/checks/check-todo-fixme.d.ts +6 -0
  78. package/dist/checks/check-todo-fixme.d.ts.map +1 -0
  79. package/dist/checks/check-todo-fixme.js +41 -0
  80. package/dist/checks/check-todo-fixme.js.map +1 -0
  81. package/dist/checks/check-unsafe-html.d.ts +6 -0
  82. package/dist/checks/check-unsafe-html.d.ts.map +1 -0
  83. package/dist/checks/check-unsafe-html.js +101 -0
  84. package/dist/checks/check-unsafe-html.js.map +1 -0
  85. package/dist/checks/index.d.ts +30 -0
  86. package/dist/checks/index.d.ts.map +1 -0
  87. package/dist/checks/index.js +57 -0
  88. package/dist/checks/index.js.map +1 -0
  89. package/dist/cli.d.ts +13 -0
  90. package/dist/cli.d.ts.map +1 -0
  91. package/dist/cli.js +206 -0
  92. package/dist/cli.js.map +1 -0
  93. package/dist/index.d.ts +9 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +10 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/utils/file-reader.d.ts +24 -0
  98. package/dist/utils/file-reader.d.ts.map +1 -0
  99. package/dist/utils/file-reader.js +140 -0
  100. package/dist/utils/file-reader.js.map +1 -0
  101. package/dist/utils/patterns.d.ts +27 -0
  102. package/dist/utils/patterns.d.ts.map +1 -0
  103. package/dist/utils/patterns.js +84 -0
  104. package/dist/utils/patterns.js.map +1 -0
  105. package/dist/utils/reporters.d.ts +21 -0
  106. package/dist/utils/reporters.d.ts.map +1 -0
  107. package/dist/utils/reporters.js +115 -0
  108. package/dist/utils/reporters.js.map +1 -0
  109. package/dist/utils/types.d.ts +71 -0
  110. package/dist/utils/types.d.ts.map +1 -0
  111. package/dist/utils/types.js +5 -0
  112. package/dist/utils/types.js.map +1 -0
  113. package/package.json +82 -0
  114. package/ralph/api.sh +210 -0
  115. package/ralph/backup.sh +838 -0
  116. package/ralph/browser-verify/README.md +135 -0
  117. package/ralph/browser-verify/verify.ts +450 -0
  118. package/ralph/checks/check-fastapi-responses.py +155 -0
  119. package/ralph/hooks/hooks-config.json +72 -0
  120. package/ralph/hooks/inject-context.sh +44 -0
  121. package/ralph/hooks/install.sh +207 -0
  122. package/ralph/hooks/log-tools.sh +45 -0
  123. package/ralph/hooks/protect-prd.sh +27 -0
  124. package/ralph/hooks/save-learnings.sh +36 -0
  125. package/ralph/hooks/warn-debug.sh +54 -0
  126. package/ralph/hooks/warn-empty-catch.sh +63 -0
  127. package/ralph/hooks/warn-secrets.sh +89 -0
  128. package/ralph/hooks/warn-urls.sh +77 -0
  129. package/ralph/init.sh +388 -0
  130. package/ralph/loop.sh +570 -0
  131. package/ralph/playwright.sh +238 -0
  132. package/ralph/prd.sh +295 -0
  133. package/ralph/setup/feature-tour.sh +155 -0
  134. package/ralph/setup/quick-setup.sh +239 -0
  135. package/ralph/setup/tutorial.sh +159 -0
  136. package/ralph/setup/ui.sh +136 -0
  137. package/ralph/setup.sh +353 -0
  138. package/ralph/signs.sh +150 -0
  139. package/ralph/utils.sh +682 -0
  140. package/ralph/verify/browser.sh +324 -0
  141. package/ralph/verify/lint.sh +363 -0
  142. package/ralph/verify/review.sh +164 -0
  143. package/ralph/verify/tests.sh +81 -0
  144. package/ralph/verify.sh +224 -0
  145. package/templates/PROMPT.md +235 -0
  146. package/templates/config/fullstack.json +86 -0
  147. package/templates/config/go.json +81 -0
  148. package/templates/config/minimal.json +76 -0
  149. package/templates/config/node.json +81 -0
  150. package/templates/config/python.json +81 -0
  151. package/templates/config/rust.json +81 -0
  152. package/templates/examples/CLAUDE-django.md +174 -0
  153. package/templates/examples/CLAUDE-fastapi.md +270 -0
  154. package/templates/examples/CLAUDE-fastmcp.md +352 -0
  155. package/templates/examples/CLAUDE-fullstack.md +256 -0
  156. package/templates/examples/CLAUDE-node.md +246 -0
  157. package/templates/examples/CLAUDE-react.md +138 -0
  158. package/templates/optional/cursorrules.template +147 -0
  159. package/templates/optional/eslint.config.js +34 -0
  160. package/templates/optional/lint-staged.config.js +34 -0
  161. package/templates/optional/ruff.toml +125 -0
  162. package/templates/optional/vibe-check.yml +116 -0
  163. package/templates/optional/vscode-settings.json +127 -0
  164. package/templates/signs.json +46 -0
@@ -0,0 +1,301 @@
1
+ ---
2
+ description: Take an interactive tour of thrivekit - the system for going from idea to shipped code with AI.
3
+ ---
4
+
5
+ # Vibe & Thrive Tour
6
+
7
+ ## Step 1: Check & Fix Setup
8
+
9
+ Print this exactly:
10
+
11
+ ```
12
+ ╦ ╦╦╔╗ ╔═╗ ┬ ╔╦╗╦ ╦╦═╗╦╦ ╦╔═╗
13
+ ╚╗╔╝║╠╩╗║╣ ┌┼─ ║ ╠═╣╠╦╝║╚╗╔╝║╣
14
+ ╚╝ ╩╚═╝╚═╝ └┘ ╩ ╩ ╩╩╚═╩ ╚╝ ╚═╝
15
+
16
+ Checking setup...
17
+ ```
18
+
19
+ **Check each item and FIX if missing:**
20
+
21
+ 1. **Check jq installed:**
22
+ ```bash
23
+ command -v jq
24
+ ```
25
+ - If missing: Say "⚠️ jq not found. Install it: `brew install jq` (macOS) or `apt install jq` (Linux)"
26
+ - If found: ✓ jq installed
27
+
28
+ 2. **Check slash commands:**
29
+ ```bash
30
+ test -d .claude/commands && ls .claude/commands/*.md 2>/dev/null | wc -l
31
+ ```
32
+ - If missing or count is 0: Copy from node_modules:
33
+ ```bash
34
+ mkdir -p .claude/commands && cp -r node_modules/thrivekit/.claude/commands/* .claude/commands/
35
+ ```
36
+ - Then: ✓ Slash commands installed
37
+
38
+ 3. **Check Ralph initialized:**
39
+ ```bash
40
+ test -f .ralph/config.json
41
+ ```
42
+ - If missing: Run `npx ralph init`
43
+ - Then: ✓ Ralph initialized
44
+
45
+ 4. **Check CLAUDE.md:**
46
+ ```bash
47
+ test -f CLAUDE.md
48
+ ```
49
+ - If missing: Create a basic one:
50
+ ```bash
51
+ echo "# Project Guide for Claude" > CLAUDE.md
52
+ ```
53
+ - Then: ✓ CLAUDE.md created
54
+
55
+ 5. **Check Claude Code hooks:**
56
+ ```bash
57
+ test -f .claude/settings.json && jq -e '.hooks' .claude/settings.json > /dev/null 2>&1
58
+ ```
59
+ - If missing: Install hooks:
60
+ ```bash
61
+ npx ralph hooks
62
+ ```
63
+ - Then: ✓ Claude Code hooks installed
64
+
65
+ 6. **Check Docker:**
66
+ ```bash
67
+ test -f docker-compose.yml || test -f docker-compose.yaml || test -f compose.yml
68
+ ```
69
+ - If found:
70
+ - Update config: `jq '.docker.enabled = true' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json`
71
+ - Say: "✓ Docker detected - Ralph will run commands inside containers"
72
+ - **Skip Playwright check** (browser verification uses curl in Docker mode)
73
+
74
+ 7. **Check & Install Playwright (if not Docker):**
75
+
76
+ Check BOTH the npm package AND browser binaries:
77
+ ```bash
78
+ # Check npm package
79
+ npm list playwright 2>/dev/null
80
+
81
+ # Check browser binaries exist (macOS or Linux path)
82
+ ls ~/Library/Caches/ms-playwright/chromium-* 2>/dev/null || ls ~/.cache/ms-playwright/chromium-* 2>/dev/null
83
+ ```
84
+
85
+ - If BOTH exist: Say "✓ Playwright available"
86
+ - If either is missing:
87
+ Say: "Installing Playwright for browser verification (~150MB)..."
88
+ ```bash
89
+ npm install playwright && npx playwright install chromium
90
+ ```
91
+ - If successful: Say "✓ Playwright installed"
92
+ - If failed: Say "⚠️ Playwright installation failed. Browser verification will use basic HTTP checks. You can try manually: `npm install playwright && npx playwright install chromium`"
93
+
94
+ Say: "Setup verified! Let me configure Ralph for your project..."
95
+
96
+ ---
97
+
98
+ ## Step 2: Auto-Configure Ralph
99
+
100
+ **Auto-detect and configure project settings:**
101
+
102
+ ### 2a. Detect Project Structure
103
+
104
+ Check these directories and set `paths` in config:
105
+
106
+ ```bash
107
+ # Check what exists
108
+ test -d frontend && echo "frontend exists"
109
+ test -d client && echo "client exists"
110
+ test -d backend && echo "backend exists"
111
+ test -d core && echo "core exists"
112
+ test -d src && echo "src exists"
113
+ ```
114
+
115
+ Based on results, update config:
116
+ - `frontend/` exists → set `paths.frontend` to `"frontend"`
117
+ - `client/` exists → set `paths.frontend` to `"client"`
118
+ - `backend/` exists → set `paths.backend` to `"backend"`
119
+ - `core/` exists → set `paths.backend` to `"core"`
120
+ - Only `src/` exists → set `paths.frontend` to `"."`
121
+
122
+ ### 2b. Detect URLs
123
+
124
+ Check `.env`, `.env.example`, or `docker-compose.yml` for port numbers:
125
+
126
+ ```bash
127
+ grep -h "PORT\|URL\|localhost" .env .env.example docker-compose.yml 2>/dev/null | head -5
128
+ ```
129
+
130
+ Also check `package.json` for port in dev script:
131
+ ```bash
132
+ cat package.json 2>/dev/null | jq -r '.scripts.dev // empty'
133
+ ```
134
+
135
+ Set URLs based on findings (defaults: frontend=3000, backend=8000):
136
+ ```bash
137
+ jq '.urls.frontend = "http://localhost:3000" | .urls.backend = "http://localhost:8000"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
138
+ ```
139
+
140
+ ### 2c. Detect Commands
141
+
142
+ Read package.json scripts and update config:
143
+
144
+ ```bash
145
+ # Get scripts from package.json (check root and frontend/)
146
+ cat package.json 2>/dev/null | jq -r '.scripts | to_entries[] | "\(.key): \(.value)"' | head -10
147
+ ```
148
+
149
+ Update config with detected commands:
150
+ ```bash
151
+ # Example: if package.json has "dev": "next dev"
152
+ jq '.commands.dev = "npm run dev"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
153
+ ```
154
+
155
+ For fullstack projects with separate frontend:
156
+ ```bash
157
+ jq '.commands.dev = "cd frontend && npm run dev"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
158
+ ```
159
+
160
+ ### 2d. Detect Build & Test
161
+
162
+ Check for build script in package.json:
163
+ ```bash
164
+ cat package.json 2>/dev/null | jq -r '.scripts.build // empty'
165
+ cat frontend/package.json 2>/dev/null | jq -r '.scripts.build // empty'
166
+ ```
167
+
168
+ Update config with build command:
169
+ ```bash
170
+ # If build script exists in root
171
+ jq '.checks.build = "npm run build"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
172
+
173
+ # If build script exists in frontend/
174
+ jq '.checks.build = "cd frontend && npm run build"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
175
+ ```
176
+
177
+ Detect test framework:
178
+ ```bash
179
+ test -f playwright.config.ts && echo "playwright"
180
+ test -f vitest.config.ts && echo "vitest"
181
+ test -f jest.config.js && echo "jest"
182
+ test -f manage.py && echo "django"
183
+ test -f pytest.ini && echo "pytest"
184
+ test -f pyproject.toml && grep -q "pytest" pyproject.toml && echo "pytest"
185
+ ```
186
+
187
+ Update config:
188
+ ```bash
189
+ # If playwright found
190
+ jq '.playwright.enabled = true' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
191
+
192
+ # If Django found (NO --parallel - it hides errors)
193
+ jq '.checks.test = "python manage.py test --keepdb"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
194
+
195
+ # If Django + Docker
196
+ jq '.checks.test = "docker compose exec -T web python manage.py test --keepdb"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
197
+
198
+ # If pytest found
199
+ jq '.checks.test = "pytest"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
200
+
201
+ # If vitest/jest found
202
+ jq '.checks.test = "npm test"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
203
+ ```
204
+
205
+ ### 2e. Show Results
206
+
207
+ After updating, read the config and show user:
208
+
209
+ ```bash
210
+ cat .ralph/config.json | jq '{paths, urls, commands, checks}'
211
+ ```
212
+
213
+ Say: "I've auto-configured Ralph:
214
+
215
+ [Show the detected settings in a nice format]
216
+
217
+ Edit `.ralph/config.json` if anything needs adjusting."
218
+
219
+ ### 2f. Test Credentials (Optional)
220
+
221
+ ```bash
222
+ cat .ralph/config.json | jq -r '.auth.testUser // empty'
223
+ ```
224
+
225
+ **If empty**, use AskUserQuestion:
226
+ - **Question:** "Add test credentials? Ralph needs these for authenticated endpoints."
227
+ - **Header:** "Test auth"
228
+ - **Options:**
229
+ - **Yes** - "I'll ask for email and password"
230
+ - **Skip** - "Edit .ralph/config.json later"
231
+
232
+ If "Yes":
233
+ - Ask for email, then password
234
+ - Update config:
235
+ ```bash
236
+ jq --arg u "$EMAIL" --arg p "$PASSWORD" '.auth.testUser = $u | .auth.testPassword = $p' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
237
+ ```
238
+ - Say: "✓ Test credentials saved"
239
+
240
+ If "Skip":
241
+ - Say: "No problem! Add credentials to `.ralph/config.json` when needed."
242
+
243
+ **If already set:**
244
+ - Say: "✓ Test credentials configured"
245
+
246
+ ---
247
+
248
+ ## Step 3: Check for DNA
249
+
250
+ Check if `~/.claude/DNA.md` exists.
251
+
252
+ **If DNA.md does NOT exist:**
253
+
254
+ Use AskUserQuestion:
255
+ - **Question:** "Want to set up your personal preferences? This teaches me how you like to work."
256
+ - **Header:** "DNA setup"
257
+ - **Options:**
258
+ - **Yes, set up my DNA** - "Takes ~2 minutes, makes our collaboration better"
259
+ - **Skip for now** - "You can run /my-dna anytime"
260
+
261
+ If user selects "Yes, set up my DNA":
262
+ - Run the `/my-dna` command inline (execute its full flow)
263
+ - After completing, continue to Step 4
264
+
265
+ If user selects "Skip for now":
266
+ - Say: "No problem! Run `/my-dna` anytime."
267
+ - Continue to Step 4
268
+
269
+ **If DNA.md EXISTS:**
270
+
271
+ Skip this step entirely. Move to Step 4.
272
+
273
+ ---
274
+
275
+ ## Step 4: Quick Reference
276
+
277
+ Print this:
278
+
279
+ ```
280
+ Quick Reference
281
+ ───────────────
282
+
283
+ Workflow:
284
+ /idea [feature] Brainstorm → PRD
285
+ npx ralph run Execute autonomously
286
+ npx ralph status Check progress
287
+ npx ralph stop Stop after current story
288
+
289
+ Quality:
290
+ /vibe-check Audit code quality
291
+ /review Review changes
292
+ npx ralph check Run verification
293
+
294
+ Other:
295
+ /my-dna Set preferences
296
+ /explain Understand code
297
+ /styleguide Generate design system
298
+ /vibe-help Full cheatsheet
299
+ ```
300
+
301
+ Say: "You're all set! Run `/idea [your next feature]` to get started."
@@ -0,0 +1,116 @@
1
+ ---
2
+ description: Run a comprehensive code quality check looking for common patterns that AI coding agents introduce.
3
+ ---
4
+
5
+ # Vibe Check
6
+
7
+ Run a comprehensive code quality check on the current codebase, looking for common patterns that AI coding agents introduce.
8
+
9
+ ## Instructions
10
+
11
+ Analyze the codebase for the following issues. For each category, search the relevant file types and report what you find.
12
+
13
+ ### 1. Debug Statements
14
+ Search for debug statements that shouldn't go to production:
15
+ - Python: `print()`, `breakpoint()`, `pdb.set_trace()`, `ipdb`
16
+ - JS/TS: `console.log()`, `console.debug()`, `console.info()`, `debugger`
17
+
18
+ Ignore: `console.error()`, `console.warn()`, `logger.*` calls, and lines with `// noqa: debug` or `# noqa: debug`
19
+
20
+ ### 2. TODO/FIXME Comments
21
+ Search for unfinished work markers:
22
+ - `TODO`, `FIXME`, `XXX`, `HACK`, `BUG`
23
+
24
+ Skip markdown files and dedicated TODO files.
25
+
26
+ ### 3. Empty Catch Blocks
27
+ Search for error handling that silently swallows errors:
28
+ - Python: `except: pass` or `except Exception: pass`
29
+ - JS/TS: `catch (e) {}` or `.catch(() => {})`
30
+
31
+ ### 4. Hardcoded URLs
32
+ Search for localhost/development URLs:
33
+ - `http://localhost:`
34
+ - `http://127.0.0.1:`
35
+
36
+ Skip test files and config files.
37
+
38
+ ### 5. snake_case in TypeScript
39
+ Search TypeScript interface/type definitions for snake_case property names that should be camelCase.
40
+
41
+ ### 6. Magic Numbers
42
+ In Python files, look for hardcoded numbers > 10 that aren't in constants files.
43
+
44
+ ### 7. Potential Secrets
45
+ Search for patterns that look like hardcoded secrets:
46
+ - `AKIA` (AWS keys)
47
+ - `sk-` followed by long strings (OpenAI/Stripe)
48
+ - `ghp_` (GitHub tokens)
49
+ - Connection strings with passwords
50
+
51
+ Skip `.env.example` files.
52
+
53
+ ### 8. DRY Violations
54
+ Look for obvious code duplication:
55
+ - Very similar functions
56
+ - Repeated string literals (same long string 3+ times)
57
+ - Copy-pasted code blocks
58
+
59
+ ## Output Format
60
+
61
+ Provide a summary report like this:
62
+
63
+ ```
64
+ ## Vibe Check Report
65
+
66
+ ### Summary
67
+ - X issues found across Y files
68
+ - Z high priority (secrets, hardcoded URLs)
69
+ - W low priority (TODOs, debug statements)
70
+
71
+ ### High Priority (fix before committing)
72
+
73
+ #### Potential Secrets
74
+ - file.py:42 - Looks like an API key
75
+
76
+ #### Hardcoded URLs
77
+ - api.ts:15 - localhost URL should use env var
78
+
79
+ ### Medium Priority (fix soon)
80
+
81
+ #### Empty Catch Blocks
82
+ - service.py:88 - except: pass (silently swallows errors)
83
+
84
+ #### snake_case in TypeScript
85
+ - types.ts:12 - `user_id` should be `userId`
86
+
87
+ ### Low Priority (nice to fix)
88
+
89
+ #### Debug Statements
90
+ - utils.py:23 - print() statement
91
+ - component.tsx:45 - console.log()
92
+
93
+ #### TODO/FIXME
94
+ - auth.py:67 - TODO: implement refresh token
95
+
96
+ ### Clean Areas
97
+ - No magic numbers found
98
+ - No DRY violations detected
99
+ ```
100
+
101
+ If everything looks good:
102
+
103
+ ```
104
+ ## Vibe Check Report
105
+
106
+ ✨ Looking good! No issues found.
107
+
108
+ Your code is clean and ready to ship.
109
+ ```
110
+
111
+ ## Notes
112
+
113
+ - Focus on **actionable** findings, not nitpicks
114
+ - Group by severity to help prioritize
115
+ - If a file has many issues, summarize rather than listing every line
116
+ - Be encouraging - the goal is to help, not shame
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Quick reference cheatsheet for all thrivekit commands including Ralph.
3
+ ---
4
+
5
+ # Vibe & Thrive Cheatsheet
6
+
7
+ Print this cheatsheet for the user. Do not add any commentary or explanation.
8
+
9
+ ---
10
+
11
+ ## The Loop
12
+
13
+ ```
14
+ /idea [feature] brainstorm & generate PRD
15
+ npx ralph run autonomous coding loop
16
+ npx ralph status check progress
17
+ npx ralph stop stop after current story
18
+ ```
19
+
20
+ ---
21
+
22
+ Run `/vibe-list` to see all commands.
23
+
24
+ ---
25
+
26
+ ## Quality
27
+
28
+ ```
29
+ /vibe-check audit code quality
30
+ /review security-focused review
31
+ npx ralph check run verification only
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Setup & Learning
37
+
38
+ ```
39
+ /tour guided setup
40
+ /my-dna set preferences
41
+ /sign teach Ralph a pattern
42
+ npx ralph signs view learned patterns
43
+ ```
44
+
45
+ ---
46
+
47
+ *https://github.com/allthriveai/thrivekit*
@@ -0,0 +1,203 @@
1
+ ---
2
+ description: Show complete reference for all thrivekit commands (slash commands, Ralph CLI, vibe CLI).
3
+ ---
4
+
5
+ # Vibe & Thrive - Complete Reference
6
+
7
+ Print this complete reference for the user. Do not add any commentary.
8
+
9
+ ---
10
+
11
+ ## Slash Commands (in Claude Code)
12
+
13
+ | Command | Description |
14
+ |---------|-------------|
15
+ | `/idea [feature]` | Brainstorm in plan mode, generate PRD for Ralph |
16
+ | `/sign` | Add a learned pattern for Ralph to remember |
17
+ | `/my-dna` | Set up your personal style preferences |
18
+ | `/vibe-check` | Audit code quality before shipping |
19
+ | `/review` | Code review with OWASP security checks |
20
+ | `/explain` | Explain code line by line |
21
+ | `/styleguide` | Generate UI component design system |
22
+ | `/tour` | Interactive walkthrough of thrivekit |
23
+ | `/vibe-help` | Quick reference cheatsheet |
24
+ | `/vibe-list` | This complete reference |
25
+
26
+ ---
27
+
28
+ ## Ralph CLI (in terminal)
29
+
30
+ ### Setup & Status
31
+ | Command | Description |
32
+ |---------|-------------|
33
+ | `npx ralph init` | Initialize `.ralph/` in current directory |
34
+ | `npx ralph status` | Show feature, stories, pass/fail counts |
35
+ | `npx ralph progress` | Show last 50 lines of progress log |
36
+ | `npx ralph version` | Show version info |
37
+ | `npx ralph help` | Show built-in help |
38
+
39
+ ### PRD Generation
40
+ | Command | Description |
41
+ |---------|-------------|
42
+ | `npx ralph prd "notes"` | Generate PRD interactively from description |
43
+ | `npx ralph prd --file spec.md` | Generate PRD from a file |
44
+ | `npx ralph prd --accept` | Save generated PRD to `.ralph/prd.json` |
45
+
46
+ ### Autonomous Loop
47
+ | Command | Description |
48
+ |---------|-------------|
49
+ | `npx ralph run` | Run loop until all stories pass |
50
+ | `npx ralph run --max 10` | Limit to N iterations (default: 20) |
51
+ | `npx ralph run --story TASK-001` | Run for specific task only |
52
+ | `npx ralph stop` | Stop after current story completes |
53
+
54
+ ### Verification
55
+ | Command | Description |
56
+ |---------|-------------|
57
+ | `npx ralph check` | Run all configured checks |
58
+ | `npx ralph verify TASK-001` | Verify a specific task |
59
+
60
+ ### Signs (Learned Patterns)
61
+ | Command | Description |
62
+ |---------|-------------|
63
+ | `npx ralph signs` | List all learned patterns |
64
+ | `npx ralph sign "pattern" [cat]` | Add pattern with optional category |
65
+ | `npx ralph unsign <id or text>` | Remove a sign by ID or text match |
66
+
67
+ ---
68
+
69
+ ## Vibe CLI (in terminal)
70
+
71
+ | Command | Description |
72
+ |---------|-------------|
73
+ | `vibe help` | Show terminal quick reference |
74
+
75
+ ---
76
+
77
+ ## The Loop
78
+
79
+ ```
80
+ /idea [feature] Brainstorm → PRD
81
+ npx ralph run Autonomous coding
82
+ npx ralph status Check progress
83
+ npx ralph stop Stop after current story
84
+ ```
85
+
86
+ ---
87
+
88
+ ## Slash Command Details
89
+
90
+ ### /idea [feature description]
91
+ Brainstorm in plan mode, explore codebase, ask clarifying questions.
92
+ - Writes idea to `docs/ideas/{feature}.md`
93
+ - On approval, splits into PRD stories
94
+ - Writes to `.ralph/prd.json`
95
+
96
+ ### /review [file or selection]
97
+ Code review with security focus (OWASP Top 10):
98
+ - **Quick review** - Critical/high issues only
99
+ - **Full review** - Everything
100
+ - **Security review** - Deep dive on vulnerabilities
101
+ - **Performance review** - Focus on speed
102
+
103
+ ### /explain [file or code]
104
+ Line-by-line explanation:
105
+ - High-level overview
106
+ - Walk through each section
107
+ - Highlight key concepts
108
+ - Summarize takeaways
109
+
110
+ ### /styleguide
111
+ Generate design system page at `/styleguide`:
112
+ - Discovers your tech stack
113
+ - Asks about vibe (minimal, bold, dark, etc.)
114
+ - Asks about colors, border radius, components
115
+ - Generates tokens, buttons, forms, cards, feedback
116
+
117
+ ### /vibe-check
118
+ Audit code for AI-introduced patterns:
119
+ - Debug statements
120
+ - TODO/FIXME comments
121
+ - Empty catch blocks
122
+ - Hardcoded URLs
123
+ - Potential secrets
124
+ - DRY violations
125
+
126
+ ### /my-dna
127
+ Interactive wizard to set up your personal style:
128
+ - Core values (simplicity, speed, correctness, etc.)
129
+ - Communication preferences (brief vs detailed, tone)
130
+ - Working style (ask first vs try solutions)
131
+ - Learning preferences (show alternatives, explain why)
132
+
133
+ Creates `~/.claude/DNA.md` - applies to all your projects.
134
+
135
+ ---
136
+
137
+ ## Signs Examples
138
+
139
+ ```bash
140
+ # Add patterns Ralph should follow
141
+ npx ralph sign "Always use camelCase in WebSocket responses" frontend
142
+ npx ralph sign "Run migrations before seeding" backend
143
+ npx ralph sign "Check for null before accessing nested props" general
144
+
145
+ # List learned patterns
146
+ npx ralph signs
147
+
148
+ # Remove a sign
149
+ npx ralph unsign sign-001
150
+ npx ralph unsign "camelCase"
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Environment Variables
156
+
157
+ | Variable | Default | Description |
158
+ |----------|---------|-------------|
159
+ | `RALPH_DIR` | `.ralph` | Override ralph directory |
160
+ | `PROMPT_FILE` | `PROMPT.md` | Override prompt file |
161
+
162
+ ---
163
+
164
+ ## Config (.ralph/config.json)
165
+
166
+ ```json
167
+ {
168
+ "checks": {
169
+ "lint": "npm run lint",
170
+ "test": "npm test",
171
+ "build": "npm run build"
172
+ },
173
+ "testUrlBase": "http://localhost:3000",
174
+ "maxSessionSeconds": 600
175
+ }
176
+ ```
177
+
178
+ ---
179
+
180
+ ## File Structure
181
+
182
+ ```
183
+ # Project files
184
+ .ralph/
185
+ ├── config.json # Verification checks, settings
186
+ ├── prd.json # Current feature PRD
187
+ ├── signs.json # Learned patterns
188
+ ├── progress.txt # Activity log
189
+ ├── archive/ # Completed PRDs
190
+ └── screenshots/ # Browser verification captures
191
+
192
+ CLAUDE.md # Project standards (shared with team)
193
+ PROMPT.md # Base prompt for Ralph sessions
194
+ docs/ideas/ # Brainstorm outputs from /idea
195
+
196
+ # Global files (your home directory)
197
+ ~/.claude/
198
+ └── DNA.md # Your DNA - personal preferences (from /my-dna)
199
+ ```
200
+
201
+ ---
202
+
203
+ *https://github.com/allthriveai/thrivekit*