create-hq 5.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 (310) hide show
  1. package/dist/deps.d.ts +4 -0
  2. package/dist/deps.d.ts.map +1 -0
  3. package/dist/deps.js +65 -0
  4. package/dist/deps.js.map +1 -0
  5. package/dist/git.d.ts +3 -0
  6. package/dist/git.d.ts.map +1 -0
  7. package/dist/git.js +19 -0
  8. package/dist/git.js.map +1 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +23 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/scaffold.d.ts +8 -0
  14. package/dist/scaffold.d.ts.map +1 -0
  15. package/dist/scaffold.js +130 -0
  16. package/dist/scaffold.js.map +1 -0
  17. package/dist/ui.d.ts +7 -0
  18. package/dist/ui.d.ts.map +1 -0
  19. package/dist/ui.js +36 -0
  20. package/dist/ui.js.map +1 -0
  21. package/package.json +41 -0
  22. package/template/.claude/CLAUDE.md +202 -0
  23. package/template/.claude/commands/checkpoint.md +127 -0
  24. package/template/.claude/commands/cleanup.md +307 -0
  25. package/template/.claude/commands/execute-task.md +440 -0
  26. package/template/.claude/commands/exit-plan.md +41 -0
  27. package/template/.claude/commands/handoff.md +97 -0
  28. package/template/.claude/commands/learn.md +218 -0
  29. package/template/.claude/commands/metrics.md +118 -0
  30. package/template/.claude/commands/newworker.md +162 -0
  31. package/template/.claude/commands/nexttask.md +67 -0
  32. package/template/.claude/commands/prd.md +238 -0
  33. package/template/.claude/commands/reanchor.md +51 -0
  34. package/template/.claude/commands/remember.md +126 -0
  35. package/template/.claude/commands/run-project.md +348 -0
  36. package/template/.claude/commands/run.md +110 -0
  37. package/template/.claude/commands/search-reindex.md +62 -0
  38. package/template/.claude/commands/search.md +100 -0
  39. package/template/.claude/commands/setup.md +381 -0
  40. package/template/.claude/scripts/pure-ralph-loop.ps1 +312 -0
  41. package/template/.claude/scripts/pure-ralph-loop.sh +859 -0
  42. package/template/CHANGELOG.md +220 -0
  43. package/template/LICENSE +21 -0
  44. package/template/MIGRATION.md +259 -0
  45. package/template/README.md +368 -0
  46. package/template/data/journal/.gitkeep +0 -0
  47. package/template/docs/images/ascii-banner-options.md +122 -0
  48. package/template/docs/images/hq-banner.svg +105 -0
  49. package/template/knowledge/Ralph/01-overview.md +71 -0
  50. package/template/knowledge/Ralph/02-core-concepts.md +114 -0
  51. package/template/knowledge/Ralph/03-how-ralph-works.md +184 -0
  52. package/template/knowledge/Ralph/04-back-pressure.md +222 -0
  53. package/template/knowledge/Ralph/05-specifications.md +210 -0
  54. package/template/knowledge/Ralph/06-agents-md.md +222 -0
  55. package/template/knowledge/Ralph/07-implementation.md +316 -0
  56. package/template/knowledge/Ralph/08-economics.md +182 -0
  57. package/template/knowledge/Ralph/09-resources.md +145 -0
  58. package/template/knowledge/Ralph/10-claude-code-workflow.md +212 -0
  59. package/template/knowledge/Ralph/11-team-training-guide.md +383 -0
  60. package/template/knowledge/Ralph/README.md +40 -0
  61. package/template/knowledge/ai-security-framework/CONTRIBUTING.md +139 -0
  62. package/template/knowledge/ai-security-framework/GLOSSARY.md +176 -0
  63. package/template/knowledge/ai-security-framework/LICENSE +21 -0
  64. package/template/knowledge/ai-security-framework/QUICK-START.md +172 -0
  65. package/template/knowledge/ai-security-framework/README.md +232 -0
  66. package/template/knowledge/ai-security-framework/checklists/browser-security.md +301 -0
  67. package/template/knowledge/ai-security-framework/checklists/credential-isolation.md +322 -0
  68. package/template/knowledge/ai-security-framework/checklists/incident-response.md +288 -0
  69. package/template/knowledge/ai-security-framework/checklists/pre-flight.md +249 -0
  70. package/template/knowledge/ai-security-framework/checklists/weekly-audit.md +159 -0
  71. package/template/knowledge/ai-security-framework/configs/audit-logging.md +372 -0
  72. package/template/knowledge/ai-security-framework/configs/kill-switches.md +354 -0
  73. package/template/knowledge/ai-security-framework/docs/01-core-principles.md +256 -0
  74. package/template/knowledge/ai-security-framework/docs/02-threat-landscape.md +326 -0
  75. package/template/knowledge/ai-security-framework/docs/03-security-posture.md +250 -0
  76. package/template/knowledge/ai-security-framework/templates/agents-security.md +233 -0
  77. package/template/knowledge/design-styles/README.md +42 -0
  78. package/template/knowledge/design-styles/american-industrial.md +136 -0
  79. package/template/knowledge/design-styles/ethereal-abstract.md +133 -0
  80. package/template/knowledge/design-styles/liminal-portal.md +111 -0
  81. package/template/knowledge/design-styles/swipes/american-industrial/G-3m4YPW0AADdu2.jpeg +0 -0
  82. package/template/knowledge/design-styles/swipes/american-industrial/G-JJlt5WwAABK3K.png +0 -0
  83. package/template/knowledge/design-styles/swipes/american-industrial/G-JJmj5W0AEbJ-7.png +0 -0
  84. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ (1).jpeg +0 -0
  85. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ.jpeg +0 -0
  86. package/template/knowledge/design-styles/swipes/american-industrial/G7fVkn3WEAAM-ST.jpeg +0 -0
  87. package/template/knowledge/design-styles/swipes/american-industrial/G8ECO5JWEAIksyn.png +0 -0
  88. package/template/knowledge/design-styles/swipes/american-industrial/G9-3GQSWoAA8eqZ.png +0 -0
  89. package/template/knowledge/design-styles/swipes/american-industrial/G9xEOqrXkAEZRcs.png +0 -0
  90. package/template/knowledge/design-styles/swipes/american-industrial/G_MVeJrXQAA8sx4.jpeg +0 -0
  91. package/template/knowledge/design-styles/swipes/american-industrial/G_RSkmGXkAAgAVZ.png +0 -0
  92. package/template/knowledge/design-styles/swipes/american-industrial/README.md +31 -0
  93. package/template/knowledge/design-styles/swipes/american-industrial/qyqtg7Dq.png +0 -0
  94. package/template/knowledge/dev-team/README.md +35 -0
  95. package/template/knowledge/dev-team/patterns/README.md +34 -0
  96. package/template/knowledge/dev-team/patterns/frontend/react-best-practices.md +178 -0
  97. package/template/knowledge/dev-team/troubleshooting/README.md +31 -0
  98. package/template/knowledge/dev-team/workflows/README.md +49 -0
  99. package/template/knowledge/hq/checkpoint-schema.json +51 -0
  100. package/template/knowledge/hq/index-md-spec.md +74 -0
  101. package/template/knowledge/hq/thread-schema.md +153 -0
  102. package/template/knowledge/hq-core/checkpoint-schema.json +51 -0
  103. package/template/knowledge/hq-core/index-md-spec.md +74 -0
  104. package/template/knowledge/hq-core/thread-schema.md +153 -0
  105. package/template/knowledge/loom/README.md +51 -0
  106. package/template/knowledge/loom/architecture.md +125 -0
  107. package/template/knowledge/loom/code-style.md +169 -0
  108. package/template/knowledge/loom/llm-proxy.md +132 -0
  109. package/template/knowledge/loom/state-machine.md +131 -0
  110. package/template/knowledge/loom/thread-system.md +117 -0
  111. package/template/knowledge/loom/tools.md +94 -0
  112. package/template/knowledge/loom/weaver.md +96 -0
  113. package/template/knowledge/loom/web-frontend.md +131 -0
  114. package/template/knowledge/projects/README.md +72 -0
  115. package/template/knowledge/projects/templates/README.template.md +28 -0
  116. package/template/knowledge/workers/README.md +195 -0
  117. package/template/knowledge/workers/ralph-loop-pattern.md +157 -0
  118. package/template/knowledge/workers/skill-schema.md +182 -0
  119. package/template/knowledge/workers/state-machine.md +102 -0
  120. package/template/knowledge/workers/templates/base-worker.yaml +73 -0
  121. package/template/knowledge/workers/templates/code-worker.yaml +85 -0
  122. package/template/knowledge/workers/templates/skill.yaml +49 -0
  123. package/template/knowledge/workers/templates/social-worker.yaml +70 -0
  124. package/template/modules/examples/full-manifest.yaml +92 -0
  125. package/template/modules/examples/minimal.yaml +14 -0
  126. package/template/modules/modules.yaml +59 -0
  127. package/template/projects/.gitkeep +0 -0
  128. package/template/projects/incorporate-workers-into-pure-ralph/prd.json +88 -0
  129. package/template/projects/pure-ralph-branch-isolation/README.md +114 -0
  130. package/template/projects/pure-ralph-branch-isolation/prd.json +123 -0
  131. package/template/projects/purist-ralph-loop/README.md +148 -0
  132. package/template/projects/purist-ralph-loop/prd.json +135 -0
  133. package/template/projects/ralph-test/prd.json +50 -0
  134. package/template/prompts/pure-ralph-base.md +551 -0
  135. package/template/settings/.gitkeep +0 -0
  136. package/template/settings/pure-ralph.json +42 -0
  137. package/template/social-content/drafts/INDEX.md +21 -0
  138. package/template/social-content/drafts/linkedin/.gitkeep +1 -0
  139. package/template/social-content/drafts/x/.gitkeep +1 -0
  140. package/template/social-content/images/.gitkeep +1 -0
  141. package/template/starter-projects/code-worker/README.md +97 -0
  142. package/template/starter-projects/code-worker/prd.json +45 -0
  143. package/template/starter-projects/personal-assistant/README.md +42 -0
  144. package/template/starter-projects/personal-assistant/prd.json +43 -0
  145. package/template/starter-projects/social-media/README.md +60 -0
  146. package/template/starter-projects/social-media/prd.json +43 -0
  147. package/template/workers/content-brand/README.md +59 -0
  148. package/template/workers/content-brand/skills/messaging-alignment.md +91 -0
  149. package/template/workers/content-brand/skills/tone-check.md +76 -0
  150. package/template/workers/content-brand/skills/voice-analysis.md +68 -0
  151. package/template/workers/content-brand/worker.yaml +81 -0
  152. package/template/workers/content-legal/README.md +80 -0
  153. package/template/workers/content-legal/skills/claim-substantiation.md +150 -0
  154. package/template/workers/content-legal/skills/compliance-scan.md +123 -0
  155. package/template/workers/content-legal/skills/disclaimer-check.md +146 -0
  156. package/template/workers/content-legal/worker.yaml +118 -0
  157. package/template/workers/content-product/README.md +77 -0
  158. package/template/workers/content-product/skills/claim-verification.md +96 -0
  159. package/template/workers/content-product/skills/feature-accuracy.md +117 -0
  160. package/template/workers/content-product/skills/stats-check.md +128 -0
  161. package/template/workers/content-product/worker.yaml +97 -0
  162. package/template/workers/content-sales/README.md +70 -0
  163. package/template/workers/content-sales/skills/conversion-analysis.md +96 -0
  164. package/template/workers/content-sales/skills/cta-audit.md +107 -0
  165. package/template/workers/content-sales/skills/value-prop-check.md +114 -0
  166. package/template/workers/content-sales/worker.yaml +93 -0
  167. package/template/workers/content-shared/cli.ts +242 -0
  168. package/template/workers/content-shared/index.ts +234 -0
  169. package/template/workers/content-shared/lib/accuracy-analyzer.ts +661 -0
  170. package/template/workers/content-shared/lib/analyze.ts +370 -0
  171. package/template/workers/content-shared/lib/brand-analyzer.ts +526 -0
  172. package/template/workers/content-shared/lib/cms-integration.ts +446 -0
  173. package/template/workers/content-shared/lib/compliance-analyzer.ts +655 -0
  174. package/template/workers/content-shared/lib/conversion-analyzer.ts +555 -0
  175. package/template/workers/content-shared/lib/github-integration.ts +582 -0
  176. package/template/workers/content-shared/lib/output.ts +373 -0
  177. package/template/workers/content-shared/lib/parser.ts +771 -0
  178. package/template/workers/content-shared/lib/priority.ts +439 -0
  179. package/template/workers/content-shared/lib/recommendations.ts +512 -0
  180. package/template/workers/content-shared/lib/reporter.ts +749 -0
  181. package/template/workers/content-shared/lib/restructure.ts +664 -0
  182. package/template/workers/content-shared/lib/scorer.ts +140 -0
  183. package/template/workers/content-shared/lib/types.ts +227 -0
  184. package/template/workers/content-shared/lib/variants.ts +595 -0
  185. package/template/workers/content-shared/package.json +51 -0
  186. package/template/workers/content-shared/pnpm-lock.yaml +39 -0
  187. package/template/workers/content-shared/test/sample-page.json +115 -0
  188. package/template/workers/content-shared/tsconfig.json +20 -0
  189. package/template/workers/dev-team/README.md +166 -0
  190. package/template/workers/dev-team/_template.yaml +70 -0
  191. package/template/workers/dev-team/architect/package.json +27 -0
  192. package/template/workers/dev-team/architect/skills/api-design.md +89 -0
  193. package/template/workers/dev-team/architect/skills/refactor-plan.md +96 -0
  194. package/template/workers/dev-team/architect/skills/system-design.md +100 -0
  195. package/template/workers/dev-team/architect/src/index.ts +49 -0
  196. package/template/workers/dev-team/architect/src/mcp-server.ts +122 -0
  197. package/template/workers/dev-team/architect/src/skills/api-design.ts +316 -0
  198. package/template/workers/dev-team/architect/src/skills/refactor-plan.ts +264 -0
  199. package/template/workers/dev-team/architect/src/skills/system-design.ts +212 -0
  200. package/template/workers/dev-team/architect/tsconfig.json +19 -0
  201. package/template/workers/dev-team/architect/worker.yaml +128 -0
  202. package/template/workers/dev-team/backend-dev/package-lock.json +1252 -0
  203. package/template/workers/dev-team/backend-dev/package.json +27 -0
  204. package/template/workers/dev-team/backend-dev/skills/implement-endpoint.md +70 -0
  205. package/template/workers/dev-team/backend-dev/skills/implement-service.md +62 -0
  206. package/template/workers/dev-team/backend-dev/src/index.ts +51 -0
  207. package/template/workers/dev-team/backend-dev/src/mcp-server.ts +109 -0
  208. package/template/workers/dev-team/backend-dev/src/skills/implement-endpoint.ts +122 -0
  209. package/template/workers/dev-team/backend-dev/src/skills/implement-service.ts +126 -0
  210. package/template/workers/dev-team/backend-dev/tsconfig.json +19 -0
  211. package/template/workers/dev-team/backend-dev/worker.yaml +128 -0
  212. package/template/workers/dev-team/code-reviewer/package-lock.json +1080 -0
  213. package/template/workers/dev-team/code-reviewer/package.json +24 -0
  214. package/template/workers/dev-team/code-reviewer/skills/merge-to-production.md +61 -0
  215. package/template/workers/dev-team/code-reviewer/skills/merge-to-staging.md +54 -0
  216. package/template/workers/dev-team/code-reviewer/skills/request-changes.md +63 -0
  217. package/template/workers/dev-team/code-reviewer/skills/review-pr.md +77 -0
  218. package/template/workers/dev-team/code-reviewer/src/index.ts +56 -0
  219. package/template/workers/dev-team/code-reviewer/src/mcp-server.ts +101 -0
  220. package/template/workers/dev-team/code-reviewer/tsconfig.json +19 -0
  221. package/template/workers/dev-team/code-reviewer/worker.yaml +90 -0
  222. package/template/workers/dev-team/database-dev/package.json +22 -0
  223. package/template/workers/dev-team/database-dev/skills/create-schema.md +48 -0
  224. package/template/workers/dev-team/database-dev/src/index.ts +50 -0
  225. package/template/workers/dev-team/database-dev/src/mcp-server.ts +76 -0
  226. package/template/workers/dev-team/database-dev/tsconfig.json +18 -0
  227. package/template/workers/dev-team/database-dev/worker.yaml +90 -0
  228. package/template/workers/dev-team/frontend-dev/package.json +22 -0
  229. package/template/workers/dev-team/frontend-dev/skills/create-component.md +26 -0
  230. package/template/workers/dev-team/frontend-dev/src/index.ts +50 -0
  231. package/template/workers/dev-team/frontend-dev/src/mcp-server.ts +77 -0
  232. package/template/workers/dev-team/frontend-dev/tsconfig.json +18 -0
  233. package/template/workers/dev-team/frontend-dev/worker.yaml +132 -0
  234. package/template/workers/dev-team/infra-dev/package.json +24 -0
  235. package/template/workers/dev-team/infra-dev/skills/add-monitoring.md +73 -0
  236. package/template/workers/dev-team/infra-dev/skills/configure-deployment.md +80 -0
  237. package/template/workers/dev-team/infra-dev/skills/create-dockerfile.md +62 -0
  238. package/template/workers/dev-team/infra-dev/skills/setup-cicd.md +63 -0
  239. package/template/workers/dev-team/infra-dev/src/index.ts +55 -0
  240. package/template/workers/dev-team/infra-dev/src/mcp-server.ts +82 -0
  241. package/template/workers/dev-team/infra-dev/tsconfig.json +19 -0
  242. package/template/workers/dev-team/infra-dev/worker.yaml +92 -0
  243. package/template/workers/dev-team/knowledge-curator/package.json +24 -0
  244. package/template/workers/dev-team/knowledge-curator/skills/curate-troubleshooting.md +63 -0
  245. package/template/workers/dev-team/knowledge-curator/skills/process-learnings.md +61 -0
  246. package/template/workers/dev-team/knowledge-curator/skills/sync-documentation.md +76 -0
  247. package/template/workers/dev-team/knowledge-curator/skills/update-patterns.md +63 -0
  248. package/template/workers/dev-team/knowledge-curator/src/index.ts +53 -0
  249. package/template/workers/dev-team/knowledge-curator/src/mcp-server.ts +92 -0
  250. package/template/workers/dev-team/knowledge-curator/tsconfig.json +19 -0
  251. package/template/workers/dev-team/knowledge-curator/worker.yaml +80 -0
  252. package/template/workers/dev-team/motion-designer/package.json +22 -0
  253. package/template/workers/dev-team/motion-designer/skills/add-animation.md +25 -0
  254. package/template/workers/dev-team/motion-designer/skills/generate-image.md +36 -0
  255. package/template/workers/dev-team/motion-designer/src/index.ts +63 -0
  256. package/template/workers/dev-team/motion-designer/src/mcp-server.ts +79 -0
  257. package/template/workers/dev-team/motion-designer/tsconfig.json +18 -0
  258. package/template/workers/dev-team/motion-designer/worker.yaml +84 -0
  259. package/template/workers/dev-team/product-planner/queue.json +4 -0
  260. package/template/workers/dev-team/product-planner/worker.yaml +220 -0
  261. package/template/workers/dev-team/project-manager/package-lock.json +1252 -0
  262. package/template/workers/dev-team/project-manager/package.json +27 -0
  263. package/template/workers/dev-team/project-manager/skills/create-prd.md +66 -0
  264. package/template/workers/dev-team/project-manager/skills/next-issue.md +51 -0
  265. package/template/workers/dev-team/project-manager/skills/project-status.md +59 -0
  266. package/template/workers/dev-team/project-manager/skills/update-learnings.md +65 -0
  267. package/template/workers/dev-team/project-manager/src/index.ts +54 -0
  268. package/template/workers/dev-team/project-manager/src/mcp-server.ts +207 -0
  269. package/template/workers/dev-team/project-manager/src/skills/create-prd.ts +86 -0
  270. package/template/workers/dev-team/project-manager/src/skills/next-issue.ts +137 -0
  271. package/template/workers/dev-team/project-manager/src/skills/project-status.ts +131 -0
  272. package/template/workers/dev-team/project-manager/src/skills/update-learnings.ts +94 -0
  273. package/template/workers/dev-team/project-manager/tsconfig.json +19 -0
  274. package/template/workers/dev-team/project-manager/worker.yaml +96 -0
  275. package/template/workers/dev-team/qa-tester/package.json +24 -0
  276. package/template/workers/dev-team/qa-tester/skills/create-demo-account.md +36 -0
  277. package/template/workers/dev-team/qa-tester/skills/run-tests.md +36 -0
  278. package/template/workers/dev-team/qa-tester/skills/write-test.md +27 -0
  279. package/template/workers/dev-team/qa-tester/src/index.ts +61 -0
  280. package/template/workers/dev-team/qa-tester/src/mcp-server.ts +88 -0
  281. package/template/workers/dev-team/qa-tester/tsconfig.json +18 -0
  282. package/template/workers/dev-team/qa-tester/worker.yaml +116 -0
  283. package/template/workers/dev-team/task-executor/package-lock.json +1252 -0
  284. package/template/workers/dev-team/task-executor/package.json +27 -0
  285. package/template/workers/dev-team/task-executor/skills/analyze-issue.md +101 -0
  286. package/template/workers/dev-team/task-executor/skills/execute.md +133 -0
  287. package/template/workers/dev-team/task-executor/skills/report-learnings.md +106 -0
  288. package/template/workers/dev-team/task-executor/skills/validate-completion.md +121 -0
  289. package/template/workers/dev-team/task-executor/src/index.ts +54 -0
  290. package/template/workers/dev-team/task-executor/src/mcp-server.ts +139 -0
  291. package/template/workers/dev-team/task-executor/src/skills/analyze-issue.ts +219 -0
  292. package/template/workers/dev-team/task-executor/src/skills/execute.ts +132 -0
  293. package/template/workers/dev-team/task-executor/src/skills/report-learnings.ts +119 -0
  294. package/template/workers/dev-team/task-executor/src/skills/validate-completion.ts +142 -0
  295. package/template/workers/dev-team/task-executor/tsconfig.json +19 -0
  296. package/template/workers/dev-team/task-executor/worker.yaml +110 -0
  297. package/template/workers/registry.yaml +171 -0
  298. package/template/workers/security-scanner/README.md +73 -0
  299. package/template/workers/security-scanner/skills/pre-deploy-check.md +205 -0
  300. package/template/workers/security-scanner/worker.yaml +26 -0
  301. package/template/workspace/checkpoints/.gitkeep +0 -0
  302. package/template/workspace/content-ideas/inbox.jsonl +0 -0
  303. package/template/workspace/drafts/.gitkeep +0 -0
  304. package/template/workspace/learnings/.gitkeep +3 -0
  305. package/template/workspace/orchestrator/.gitkeep +0 -0
  306. package/template/workspace/ralph-test/COMPLETE.md +18 -0
  307. package/template/workspace/ralph-test/hello.txt +2 -0
  308. package/template/workspace/reports/.gitkeep +0 -0
  309. package/template/workspace/scratch/.gitkeep +0 -0
  310. package/template/workspace/threads/.gitkeep +3 -0
@@ -0,0 +1,210 @@
1
+ # Specifications & PRDs
2
+
3
+ ## The Role of Specifications
4
+
5
+ Specifications are the "fuel" for the Ralph loop. They define what needs to be built and how success is measured.
6
+
7
+ > "I don't write my specs. I generate them. Then I review them and edit them by hand. And then I just let it rip with Ralph."
8
+ > — Geoffrey Huntley
9
+
10
+ ## PRD Structure (Product Requirements Document)
11
+
12
+ Anthropic recommends a JSON-based PRD format:
13
+
14
+ ```json
15
+ {
16
+ "project": "video-editor",
17
+ "version": "1.0",
18
+ "features": [
19
+ {
20
+ "id": "feature-001",
21
+ "title": "Beat Display",
22
+ "description": "Display beat markers as visual indicators on clips",
23
+ "user_story": "As a video editor, I want to see beat markers on my clips so I can align edits to music",
24
+ "acceptance_criteria": [
25
+ "Three orange ellipses dots appear below clips with beats",
26
+ "Dots are visible in both light and dark mode",
27
+ "Dots update when beats are modified"
28
+ ],
29
+ "priority": "high",
30
+ "passes": false
31
+ },
32
+ {
33
+ "id": "feature-002",
34
+ "title": "Beat Animation",
35
+ "description": "Animate beat markers on playback",
36
+ "acceptance_criteria": [
37
+ "Dots pulse on beat during playback",
38
+ "Animation is smooth at 60fps",
39
+ "Animation respects reduced-motion preferences"
40
+ ],
41
+ "priority": "medium",
42
+ "passes": false
43
+ }
44
+ ]
45
+ }
46
+ ```
47
+
48
+ ### Key Fields
49
+
50
+ | Field | Purpose |
51
+ |-------|---------|
52
+ | `id` | Unique identifier for tracking |
53
+ | `title` | Human-readable name |
54
+ | `description` | What the feature does |
55
+ | `user_story` | Who benefits and why |
56
+ | `acceptance_criteria` | Testable requirements |
57
+ | `priority` | Order of implementation |
58
+ | `passes` | Whether the feature is complete |
59
+
60
+ ## The `passes` Flag
61
+
62
+ The `passes` boolean is critical:
63
+
64
+ > "Each one of these items in this PRD has a passes flag on it. This tells the LLM whether this is actually passing or not in the application code. So this forms not only a product requirements document but also a test harness."
65
+ > — Matt Pocock
66
+
67
+ When Ralph runs:
68
+ 1. It reads the PRD
69
+ 2. Finds items where `passes: false`
70
+ 3. Picks ONE item to implement
71
+ 4. Implements and verifies
72
+ 5. Updates `passes: true` if successful
73
+
74
+ ## Generating Specifications
75
+
76
+ ### Forward Generation (Building New)
77
+
78
+ 1. Start with high-level requirements
79
+ 2. Use AI to expand into detailed specs
80
+ 3. Review and refine manually
81
+ 4. Load into PRD format
82
+
83
+ Example prompt:
84
+ ```
85
+ Generate detailed user stories for a video editing application.
86
+ Include acceptance criteria that can be automatically verified.
87
+ Format as JSON with id, title, description, acceptance_criteria, and passes fields.
88
+ ```
89
+
90
+ ### Reverse Generation (Clean Room)
91
+
92
+ > "Run Ralph in reverse to create a clean room specification."
93
+ > — Geoffrey Huntley
94
+
95
+ 1. Point at existing codebase or product
96
+ 2. AI generates specifications from behavior
97
+ 3. Review for completeness
98
+ 4. Use specs to build clean implementation
99
+
100
+ This enables:
101
+ - Product cloning (legally)
102
+ - Documentation generation
103
+ - Understanding legacy systems
104
+ - Competitive analysis
105
+
106
+ ## Specification Quality
107
+
108
+ ### Good Specifications
109
+
110
+ ```json
111
+ {
112
+ "id": "auth-001",
113
+ "title": "User Login",
114
+ "description": "Secure user authentication with email/password",
115
+ "acceptance_criteria": [
116
+ "Login form has email and password fields",
117
+ "Password field masks input",
118
+ "Submit button is disabled until both fields have content",
119
+ "Invalid credentials show error message",
120
+ "Successful login redirects to dashboard",
121
+ "JWT token is stored in httpOnly cookie"
122
+ ],
123
+ "passes": false
124
+ }
125
+ ```
126
+
127
+ Characteristics:
128
+ - Specific and measurable
129
+ - Independently testable
130
+ - Small enough to complete in one iteration
131
+ - Clear success criteria
132
+
133
+ ### Bad Specifications
134
+
135
+ ```json
136
+ {
137
+ "id": "auth-001",
138
+ "title": "Authentication System",
139
+ "description": "Build the entire auth system",
140
+ "acceptance_criteria": [
141
+ "Users can log in",
142
+ "It works well",
143
+ "It's secure"
144
+ ],
145
+ "passes": false
146
+ }
147
+ ```
148
+
149
+ Problems:
150
+ - Too broad
151
+ - Vague criteria
152
+ - Not independently testable
153
+ - Impossible to verify "works well"
154
+
155
+ ## Iterating on Specifications
156
+
157
+ Specifications should evolve:
158
+
159
+ ```
160
+ Initial Spec → AI Expands → Human Reviews → AI Implements →
161
+ Human Verifies → Adjust Spec → Repeat
162
+ ```
163
+
164
+ > "I do a loop by hand... if it doesn't seem right, I go back, I update the specs, I try it again. Prototypes are now free, they're now cheap."
165
+ > — Geoffrey Huntley
166
+
167
+ ## Integration with agents.md
168
+
169
+ Your `agents.md` should reference the PRD:
170
+
171
+ ```markdown
172
+ # Task Management
173
+
174
+ When implementing features:
175
+ 1. Read `plans/prd.json` for current tasks
176
+ 2. Select ONE item where `passes: false`
177
+ 3. Implement the feature
178
+ 4. Run all tests
179
+ 5. If tests pass, update `passes: true`
180
+ 6. Commit with message referencing the feature id
181
+
182
+ # PRD Format
183
+
184
+ Features are defined in JSON with these fields:
185
+ - id: Unique identifier
186
+ - title: Feature name
187
+ - acceptance_criteria: List of verifiable requirements
188
+ - passes: Boolean indicating completion status
189
+ ```
190
+
191
+ ## The Progress File
192
+
193
+ Alongside the PRD, maintain a progress file:
194
+
195
+ ```
196
+ # progress.txt
197
+
198
+ [2026-01-13 10:30:15] Starting feature: feature-001 (Beat Display)
199
+ [2026-01-13 10:32:45] Implemented BeatIndicator component
200
+ [2026-01-13 10:33:12] Tests passing: 5/5
201
+ [2026-01-13 10:33:18] Committed: a1b2c3d "feat: add beat display indicators"
202
+ [2026-01-13 10:33:20] Updated PRD: feature-001.passes = true
203
+ [2026-01-13 10:33:25] Starting feature: feature-002 (Beat Animation)
204
+ ```
205
+
206
+ This provides:
207
+ - Audit trail
208
+ - Context for subsequent runs
209
+ - Human oversight capability
210
+ - Debugging information
@@ -0,0 +1,222 @@
1
+ # agents.md Guide
2
+
3
+ ## What is agents.md?
4
+
5
+ `agents.md` (also known as `CLAUDE.md`, `AGENTS.md`, or project-specific names) is a configuration file that provides context and instructions to AI coding agents. It's the "brain" that guides how the agent behaves in your project.
6
+
7
+ > "We're going to go into the realm of agents.md. We're going to go into the history of agents.md, how it came to be. We're going to look into the problems of agents.md."
8
+ > — Geoffrey Huntley
9
+
10
+ ## History
11
+
12
+ The concept evolved from:
13
+ 1. README files providing project context
14
+ 2. .editorconfig for editor settings
15
+ 3. Cursor rules and similar tool-specific configs
16
+ 4. Standardized agent instructions
17
+
18
+ ## Common Problems
19
+
20
+ ### 1. Over-Specification
21
+
22
+ Loading too much into agents.md causes context bloat:
23
+
24
+ > "I typically... if I'm looking at this because I've co-generated this, I would delete the specifications completely because when I'm routing I essentially malloc those specifications myself. I want high control of that mallocing."
25
+ > — Geoffrey Huntley
26
+
27
+ **Solution**: Keep agents.md minimal. Load specs separately.
28
+
29
+ ### 2. Conflicting Instructions
30
+
31
+ Multiple ways to do things confuse the agent:
32
+
33
+ > "Here I have essentially two different ways to build the application, one for Rust, one for web. I don't like this to be honest."
34
+ > — Geoffrey Huntley
35
+
36
+ **Solution**: One clear path for each action.
37
+
38
+ ### 3. Static Context
39
+
40
+ agents.md loaded once at start becomes stale.
41
+
42
+ **Solution**: Use dynamic loading and routing.
43
+
44
+ ### 4. Too Much History
45
+
46
+ Including change logs and old patterns:
47
+
48
+ **Solution**: Focus on current state and patterns.
49
+
50
+ ## Structure of a Good agents.md
51
+
52
+ ```markdown
53
+ # Project: [Name]
54
+
55
+ ## Overview
56
+ [1-2 sentences about what this project does]
57
+
58
+ ## Tech Stack
59
+ - Language: TypeScript
60
+ - Framework: React
61
+ - Testing: Jest + React Testing Library
62
+ - Build: Vite
63
+
64
+ ## Directory Structure
65
+ ```
66
+ src/
67
+ components/ # React components
68
+ hooks/ # Custom hooks
69
+ utils/ # Utility functions
70
+ types/ # TypeScript types
71
+ tests/ # Test files
72
+ ```
73
+
74
+ ## Commands
75
+ - `npm run dev` - Start development server
76
+ - `npm run build` - Production build
77
+ - `npm test` - Run tests
78
+ - `npm run lint` - Run linter
79
+ - `npm run typecheck` - Type check
80
+
81
+ ## Coding Standards
82
+ - Use functional components with hooks
83
+ - All components must have tests
84
+ - Use TypeScript strict mode
85
+ - Maximum file length: 300 lines
86
+
87
+ ## When Making Changes
88
+ 1. Create a new branch
89
+ 2. Make changes
90
+ 3. Run `npm test`
91
+ 4. Run `npm run lint`
92
+ 5. Run `npm run typecheck`
93
+ 6. Commit with conventional commit message
94
+
95
+ ## Do NOT
96
+ - Modify package.json without approval
97
+ - Delete existing tests
98
+ - Use `any` type
99
+ - Skip type checking
100
+ ```
101
+
102
+ ## Mallocing vs. Static Loading
103
+
104
+ Geoffrey emphasizes controlled "mallocing" of context:
105
+
106
+ ### Static Loading (Traditional)
107
+ ```
108
+ Load agents.md → Use for entire session
109
+ ```
110
+
111
+ Problems:
112
+ - Context rot over long sessions
113
+ - Irrelevant context for specific tasks
114
+ - Wasted context window space
115
+
116
+ ### Dynamic Mallocing (Ralph)
117
+ ```
118
+ Start task → Load only relevant specs → Complete → Clear → Repeat
119
+ ```
120
+
121
+ Benefits:
122
+ - Fresh context per task
123
+ - Relevant information only
124
+ - Maximum context for actual work
125
+
126
+ ## Integration with Ralph
127
+
128
+ In Ralph, agents.md provides:
129
+ 1. **Base context** - Project structure, commands, standards
130
+ 2. **Routing instructions** - How to pick and process tasks
131
+ 3. **Back pressure commands** - How to verify work
132
+
133
+ Example Ralph-optimized agents.md:
134
+
135
+ ```markdown
136
+ # agents.md for Ralph
137
+
138
+ ## Project
139
+ Video editor built with TypeScript/React
140
+
141
+ ## Task Loop
142
+ 1. Read `plans/prd.json`
143
+ 2. Find first item with `passes: false`
144
+ 3. Implement ONLY that feature
145
+ 4. Run: `npm test && npm run lint && npm run typecheck`
146
+ 5. If all pass: commit and set `passes: true`
147
+ 6. If any fail: fix and retry
148
+ 7. Write progress to `progress.txt`
149
+
150
+ ## Verification Commands
151
+ ```bash
152
+ npm test # Must pass
153
+ npm run lint # Must have 0 warnings
154
+ npm run typecheck # Must have 0 errors
155
+ npm run build # Must succeed
156
+ ```
157
+
158
+ ## Commit Format
159
+ ```
160
+ feat(scope): description
161
+
162
+ - Detail 1
163
+ - Detail 2
164
+
165
+ Implements: feature-id
166
+ ```
167
+
168
+ ## Important
169
+ - ONE feature per iteration
170
+ - ALWAYS run verification before commit
171
+ - NEVER skip tests
172
+ - NEVER modify multiple features at once
173
+ ```
174
+
175
+ ## Per-Task Context Loading
176
+
177
+ For larger projects, use task-specific context:
178
+
179
+ ```
180
+ specs/
181
+ feature-001.md # Detailed spec for feature 1
182
+ feature-002.md # Detailed spec for feature 2
183
+ ...
184
+ agents.md # Base instructions (minimal)
185
+ ```
186
+
187
+ Then instruct the agent:
188
+ ```markdown
189
+ ## Context Loading
190
+ When working on a feature:
191
+ 1. Read `specs/{feature-id}.md` for detailed requirements
192
+ 2. Do NOT load other spec files
193
+ 3. Focus only on current task
194
+ ```
195
+
196
+ ## Anti-Patterns
197
+
198
+ ### 1. Everything in agents.md
199
+ Don't put all specs, examples, and documentation in one file.
200
+
201
+ ### 2. Contradictory Instructions
202
+ Don't say "use functional components" then show class examples.
203
+
204
+ ### 3. Outdated Information
205
+ Don't include deprecated patterns or old APIs.
206
+
207
+ ### 4. Too Verbose
208
+ Don't write paragraphs when bullets suffice.
209
+
210
+ ### 5. No Verification Steps
211
+ Don't skip specifying how to verify changes work.
212
+
213
+ ## Evolving agents.md
214
+
215
+ > "Approach it from a first principles point of view. Just lop it off, destroy it and create it again."
216
+ > — Geoffrey Huntley
217
+
218
+ Don't be precious about agents.md. Iterate:
219
+ 1. Start minimal
220
+ 2. Add as needed
221
+ 3. Remove what doesn't work
222
+ 4. Keep refining