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.
- package/dist/deps.d.ts +4 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/deps.js +65 -0
- package/dist/deps.js.map +1 -0
- package/dist/git.d.ts +3 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +19 -0
- package/dist/git.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/scaffold.d.ts +8 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +130 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/ui.d.ts +7 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +36 -0
- package/dist/ui.js.map +1 -0
- package/package.json +41 -0
- package/template/.claude/CLAUDE.md +202 -0
- package/template/.claude/commands/checkpoint.md +127 -0
- package/template/.claude/commands/cleanup.md +307 -0
- package/template/.claude/commands/execute-task.md +440 -0
- package/template/.claude/commands/exit-plan.md +41 -0
- package/template/.claude/commands/handoff.md +97 -0
- package/template/.claude/commands/learn.md +218 -0
- package/template/.claude/commands/metrics.md +118 -0
- package/template/.claude/commands/newworker.md +162 -0
- package/template/.claude/commands/nexttask.md +67 -0
- package/template/.claude/commands/prd.md +238 -0
- package/template/.claude/commands/reanchor.md +51 -0
- package/template/.claude/commands/remember.md +126 -0
- package/template/.claude/commands/run-project.md +348 -0
- package/template/.claude/commands/run.md +110 -0
- package/template/.claude/commands/search-reindex.md +62 -0
- package/template/.claude/commands/search.md +100 -0
- package/template/.claude/commands/setup.md +381 -0
- package/template/.claude/scripts/pure-ralph-loop.ps1 +312 -0
- package/template/.claude/scripts/pure-ralph-loop.sh +859 -0
- package/template/CHANGELOG.md +220 -0
- package/template/LICENSE +21 -0
- package/template/MIGRATION.md +259 -0
- package/template/README.md +368 -0
- package/template/data/journal/.gitkeep +0 -0
- package/template/docs/images/ascii-banner-options.md +122 -0
- package/template/docs/images/hq-banner.svg +105 -0
- package/template/knowledge/Ralph/01-overview.md +71 -0
- package/template/knowledge/Ralph/02-core-concepts.md +114 -0
- package/template/knowledge/Ralph/03-how-ralph-works.md +184 -0
- package/template/knowledge/Ralph/04-back-pressure.md +222 -0
- package/template/knowledge/Ralph/05-specifications.md +210 -0
- package/template/knowledge/Ralph/06-agents-md.md +222 -0
- package/template/knowledge/Ralph/07-implementation.md +316 -0
- package/template/knowledge/Ralph/08-economics.md +182 -0
- package/template/knowledge/Ralph/09-resources.md +145 -0
- package/template/knowledge/Ralph/10-claude-code-workflow.md +212 -0
- package/template/knowledge/Ralph/11-team-training-guide.md +383 -0
- package/template/knowledge/Ralph/README.md +40 -0
- package/template/knowledge/ai-security-framework/CONTRIBUTING.md +139 -0
- package/template/knowledge/ai-security-framework/GLOSSARY.md +176 -0
- package/template/knowledge/ai-security-framework/LICENSE +21 -0
- package/template/knowledge/ai-security-framework/QUICK-START.md +172 -0
- package/template/knowledge/ai-security-framework/README.md +232 -0
- package/template/knowledge/ai-security-framework/checklists/browser-security.md +301 -0
- package/template/knowledge/ai-security-framework/checklists/credential-isolation.md +322 -0
- package/template/knowledge/ai-security-framework/checklists/incident-response.md +288 -0
- package/template/knowledge/ai-security-framework/checklists/pre-flight.md +249 -0
- package/template/knowledge/ai-security-framework/checklists/weekly-audit.md +159 -0
- package/template/knowledge/ai-security-framework/configs/audit-logging.md +372 -0
- package/template/knowledge/ai-security-framework/configs/kill-switches.md +354 -0
- package/template/knowledge/ai-security-framework/docs/01-core-principles.md +256 -0
- package/template/knowledge/ai-security-framework/docs/02-threat-landscape.md +326 -0
- package/template/knowledge/ai-security-framework/docs/03-security-posture.md +250 -0
- package/template/knowledge/ai-security-framework/templates/agents-security.md +233 -0
- package/template/knowledge/design-styles/README.md +42 -0
- package/template/knowledge/design-styles/american-industrial.md +136 -0
- package/template/knowledge/design-styles/ethereal-abstract.md +133 -0
- package/template/knowledge/design-styles/liminal-portal.md +111 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G-3m4YPW0AADdu2.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G-JJlt5WwAABK3K.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G-JJmj5W0AEbJ-7.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ (1).jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G7fVkn3WEAAM-ST.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G8ECO5JWEAIksyn.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G9-3GQSWoAA8eqZ.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G9xEOqrXkAEZRcs.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G_MVeJrXQAA8sx4.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G_RSkmGXkAAgAVZ.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/README.md +31 -0
- package/template/knowledge/design-styles/swipes/american-industrial/qyqtg7Dq.png +0 -0
- package/template/knowledge/dev-team/README.md +35 -0
- package/template/knowledge/dev-team/patterns/README.md +34 -0
- package/template/knowledge/dev-team/patterns/frontend/react-best-practices.md +178 -0
- package/template/knowledge/dev-team/troubleshooting/README.md +31 -0
- package/template/knowledge/dev-team/workflows/README.md +49 -0
- package/template/knowledge/hq/checkpoint-schema.json +51 -0
- package/template/knowledge/hq/index-md-spec.md +74 -0
- package/template/knowledge/hq/thread-schema.md +153 -0
- package/template/knowledge/hq-core/checkpoint-schema.json +51 -0
- package/template/knowledge/hq-core/index-md-spec.md +74 -0
- package/template/knowledge/hq-core/thread-schema.md +153 -0
- package/template/knowledge/loom/README.md +51 -0
- package/template/knowledge/loom/architecture.md +125 -0
- package/template/knowledge/loom/code-style.md +169 -0
- package/template/knowledge/loom/llm-proxy.md +132 -0
- package/template/knowledge/loom/state-machine.md +131 -0
- package/template/knowledge/loom/thread-system.md +117 -0
- package/template/knowledge/loom/tools.md +94 -0
- package/template/knowledge/loom/weaver.md +96 -0
- package/template/knowledge/loom/web-frontend.md +131 -0
- package/template/knowledge/projects/README.md +72 -0
- package/template/knowledge/projects/templates/README.template.md +28 -0
- package/template/knowledge/workers/README.md +195 -0
- package/template/knowledge/workers/ralph-loop-pattern.md +157 -0
- package/template/knowledge/workers/skill-schema.md +182 -0
- package/template/knowledge/workers/state-machine.md +102 -0
- package/template/knowledge/workers/templates/base-worker.yaml +73 -0
- package/template/knowledge/workers/templates/code-worker.yaml +85 -0
- package/template/knowledge/workers/templates/skill.yaml +49 -0
- package/template/knowledge/workers/templates/social-worker.yaml +70 -0
- package/template/modules/examples/full-manifest.yaml +92 -0
- package/template/modules/examples/minimal.yaml +14 -0
- package/template/modules/modules.yaml +59 -0
- package/template/projects/.gitkeep +0 -0
- package/template/projects/incorporate-workers-into-pure-ralph/prd.json +88 -0
- package/template/projects/pure-ralph-branch-isolation/README.md +114 -0
- package/template/projects/pure-ralph-branch-isolation/prd.json +123 -0
- package/template/projects/purist-ralph-loop/README.md +148 -0
- package/template/projects/purist-ralph-loop/prd.json +135 -0
- package/template/projects/ralph-test/prd.json +50 -0
- package/template/prompts/pure-ralph-base.md +551 -0
- package/template/settings/.gitkeep +0 -0
- package/template/settings/pure-ralph.json +42 -0
- package/template/social-content/drafts/INDEX.md +21 -0
- package/template/social-content/drafts/linkedin/.gitkeep +1 -0
- package/template/social-content/drafts/x/.gitkeep +1 -0
- package/template/social-content/images/.gitkeep +1 -0
- package/template/starter-projects/code-worker/README.md +97 -0
- package/template/starter-projects/code-worker/prd.json +45 -0
- package/template/starter-projects/personal-assistant/README.md +42 -0
- package/template/starter-projects/personal-assistant/prd.json +43 -0
- package/template/starter-projects/social-media/README.md +60 -0
- package/template/starter-projects/social-media/prd.json +43 -0
- package/template/workers/content-brand/README.md +59 -0
- package/template/workers/content-brand/skills/messaging-alignment.md +91 -0
- package/template/workers/content-brand/skills/tone-check.md +76 -0
- package/template/workers/content-brand/skills/voice-analysis.md +68 -0
- package/template/workers/content-brand/worker.yaml +81 -0
- package/template/workers/content-legal/README.md +80 -0
- package/template/workers/content-legal/skills/claim-substantiation.md +150 -0
- package/template/workers/content-legal/skills/compliance-scan.md +123 -0
- package/template/workers/content-legal/skills/disclaimer-check.md +146 -0
- package/template/workers/content-legal/worker.yaml +118 -0
- package/template/workers/content-product/README.md +77 -0
- package/template/workers/content-product/skills/claim-verification.md +96 -0
- package/template/workers/content-product/skills/feature-accuracy.md +117 -0
- package/template/workers/content-product/skills/stats-check.md +128 -0
- package/template/workers/content-product/worker.yaml +97 -0
- package/template/workers/content-sales/README.md +70 -0
- package/template/workers/content-sales/skills/conversion-analysis.md +96 -0
- package/template/workers/content-sales/skills/cta-audit.md +107 -0
- package/template/workers/content-sales/skills/value-prop-check.md +114 -0
- package/template/workers/content-sales/worker.yaml +93 -0
- package/template/workers/content-shared/cli.ts +242 -0
- package/template/workers/content-shared/index.ts +234 -0
- package/template/workers/content-shared/lib/accuracy-analyzer.ts +661 -0
- package/template/workers/content-shared/lib/analyze.ts +370 -0
- package/template/workers/content-shared/lib/brand-analyzer.ts +526 -0
- package/template/workers/content-shared/lib/cms-integration.ts +446 -0
- package/template/workers/content-shared/lib/compliance-analyzer.ts +655 -0
- package/template/workers/content-shared/lib/conversion-analyzer.ts +555 -0
- package/template/workers/content-shared/lib/github-integration.ts +582 -0
- package/template/workers/content-shared/lib/output.ts +373 -0
- package/template/workers/content-shared/lib/parser.ts +771 -0
- package/template/workers/content-shared/lib/priority.ts +439 -0
- package/template/workers/content-shared/lib/recommendations.ts +512 -0
- package/template/workers/content-shared/lib/reporter.ts +749 -0
- package/template/workers/content-shared/lib/restructure.ts +664 -0
- package/template/workers/content-shared/lib/scorer.ts +140 -0
- package/template/workers/content-shared/lib/types.ts +227 -0
- package/template/workers/content-shared/lib/variants.ts +595 -0
- package/template/workers/content-shared/package.json +51 -0
- package/template/workers/content-shared/pnpm-lock.yaml +39 -0
- package/template/workers/content-shared/test/sample-page.json +115 -0
- package/template/workers/content-shared/tsconfig.json +20 -0
- package/template/workers/dev-team/README.md +166 -0
- package/template/workers/dev-team/_template.yaml +70 -0
- package/template/workers/dev-team/architect/package.json +27 -0
- package/template/workers/dev-team/architect/skills/api-design.md +89 -0
- package/template/workers/dev-team/architect/skills/refactor-plan.md +96 -0
- package/template/workers/dev-team/architect/skills/system-design.md +100 -0
- package/template/workers/dev-team/architect/src/index.ts +49 -0
- package/template/workers/dev-team/architect/src/mcp-server.ts +122 -0
- package/template/workers/dev-team/architect/src/skills/api-design.ts +316 -0
- package/template/workers/dev-team/architect/src/skills/refactor-plan.ts +264 -0
- package/template/workers/dev-team/architect/src/skills/system-design.ts +212 -0
- package/template/workers/dev-team/architect/tsconfig.json +19 -0
- package/template/workers/dev-team/architect/worker.yaml +128 -0
- package/template/workers/dev-team/backend-dev/package-lock.json +1252 -0
- package/template/workers/dev-team/backend-dev/package.json +27 -0
- package/template/workers/dev-team/backend-dev/skills/implement-endpoint.md +70 -0
- package/template/workers/dev-team/backend-dev/skills/implement-service.md +62 -0
- package/template/workers/dev-team/backend-dev/src/index.ts +51 -0
- package/template/workers/dev-team/backend-dev/src/mcp-server.ts +109 -0
- package/template/workers/dev-team/backend-dev/src/skills/implement-endpoint.ts +122 -0
- package/template/workers/dev-team/backend-dev/src/skills/implement-service.ts +126 -0
- package/template/workers/dev-team/backend-dev/tsconfig.json +19 -0
- package/template/workers/dev-team/backend-dev/worker.yaml +128 -0
- package/template/workers/dev-team/code-reviewer/package-lock.json +1080 -0
- package/template/workers/dev-team/code-reviewer/package.json +24 -0
- package/template/workers/dev-team/code-reviewer/skills/merge-to-production.md +61 -0
- package/template/workers/dev-team/code-reviewer/skills/merge-to-staging.md +54 -0
- package/template/workers/dev-team/code-reviewer/skills/request-changes.md +63 -0
- package/template/workers/dev-team/code-reviewer/skills/review-pr.md +77 -0
- package/template/workers/dev-team/code-reviewer/src/index.ts +56 -0
- package/template/workers/dev-team/code-reviewer/src/mcp-server.ts +101 -0
- package/template/workers/dev-team/code-reviewer/tsconfig.json +19 -0
- package/template/workers/dev-team/code-reviewer/worker.yaml +90 -0
- package/template/workers/dev-team/database-dev/package.json +22 -0
- package/template/workers/dev-team/database-dev/skills/create-schema.md +48 -0
- package/template/workers/dev-team/database-dev/src/index.ts +50 -0
- package/template/workers/dev-team/database-dev/src/mcp-server.ts +76 -0
- package/template/workers/dev-team/database-dev/tsconfig.json +18 -0
- package/template/workers/dev-team/database-dev/worker.yaml +90 -0
- package/template/workers/dev-team/frontend-dev/package.json +22 -0
- package/template/workers/dev-team/frontend-dev/skills/create-component.md +26 -0
- package/template/workers/dev-team/frontend-dev/src/index.ts +50 -0
- package/template/workers/dev-team/frontend-dev/src/mcp-server.ts +77 -0
- package/template/workers/dev-team/frontend-dev/tsconfig.json +18 -0
- package/template/workers/dev-team/frontend-dev/worker.yaml +132 -0
- package/template/workers/dev-team/infra-dev/package.json +24 -0
- package/template/workers/dev-team/infra-dev/skills/add-monitoring.md +73 -0
- package/template/workers/dev-team/infra-dev/skills/configure-deployment.md +80 -0
- package/template/workers/dev-team/infra-dev/skills/create-dockerfile.md +62 -0
- package/template/workers/dev-team/infra-dev/skills/setup-cicd.md +63 -0
- package/template/workers/dev-team/infra-dev/src/index.ts +55 -0
- package/template/workers/dev-team/infra-dev/src/mcp-server.ts +82 -0
- package/template/workers/dev-team/infra-dev/tsconfig.json +19 -0
- package/template/workers/dev-team/infra-dev/worker.yaml +92 -0
- package/template/workers/dev-team/knowledge-curator/package.json +24 -0
- package/template/workers/dev-team/knowledge-curator/skills/curate-troubleshooting.md +63 -0
- package/template/workers/dev-team/knowledge-curator/skills/process-learnings.md +61 -0
- package/template/workers/dev-team/knowledge-curator/skills/sync-documentation.md +76 -0
- package/template/workers/dev-team/knowledge-curator/skills/update-patterns.md +63 -0
- package/template/workers/dev-team/knowledge-curator/src/index.ts +53 -0
- package/template/workers/dev-team/knowledge-curator/src/mcp-server.ts +92 -0
- package/template/workers/dev-team/knowledge-curator/tsconfig.json +19 -0
- package/template/workers/dev-team/knowledge-curator/worker.yaml +80 -0
- package/template/workers/dev-team/motion-designer/package.json +22 -0
- package/template/workers/dev-team/motion-designer/skills/add-animation.md +25 -0
- package/template/workers/dev-team/motion-designer/skills/generate-image.md +36 -0
- package/template/workers/dev-team/motion-designer/src/index.ts +63 -0
- package/template/workers/dev-team/motion-designer/src/mcp-server.ts +79 -0
- package/template/workers/dev-team/motion-designer/tsconfig.json +18 -0
- package/template/workers/dev-team/motion-designer/worker.yaml +84 -0
- package/template/workers/dev-team/product-planner/queue.json +4 -0
- package/template/workers/dev-team/product-planner/worker.yaml +220 -0
- package/template/workers/dev-team/project-manager/package-lock.json +1252 -0
- package/template/workers/dev-team/project-manager/package.json +27 -0
- package/template/workers/dev-team/project-manager/skills/create-prd.md +66 -0
- package/template/workers/dev-team/project-manager/skills/next-issue.md +51 -0
- package/template/workers/dev-team/project-manager/skills/project-status.md +59 -0
- package/template/workers/dev-team/project-manager/skills/update-learnings.md +65 -0
- package/template/workers/dev-team/project-manager/src/index.ts +54 -0
- package/template/workers/dev-team/project-manager/src/mcp-server.ts +207 -0
- package/template/workers/dev-team/project-manager/src/skills/create-prd.ts +86 -0
- package/template/workers/dev-team/project-manager/src/skills/next-issue.ts +137 -0
- package/template/workers/dev-team/project-manager/src/skills/project-status.ts +131 -0
- package/template/workers/dev-team/project-manager/src/skills/update-learnings.ts +94 -0
- package/template/workers/dev-team/project-manager/tsconfig.json +19 -0
- package/template/workers/dev-team/project-manager/worker.yaml +96 -0
- package/template/workers/dev-team/qa-tester/package.json +24 -0
- package/template/workers/dev-team/qa-tester/skills/create-demo-account.md +36 -0
- package/template/workers/dev-team/qa-tester/skills/run-tests.md +36 -0
- package/template/workers/dev-team/qa-tester/skills/write-test.md +27 -0
- package/template/workers/dev-team/qa-tester/src/index.ts +61 -0
- package/template/workers/dev-team/qa-tester/src/mcp-server.ts +88 -0
- package/template/workers/dev-team/qa-tester/tsconfig.json +18 -0
- package/template/workers/dev-team/qa-tester/worker.yaml +116 -0
- package/template/workers/dev-team/task-executor/package-lock.json +1252 -0
- package/template/workers/dev-team/task-executor/package.json +27 -0
- package/template/workers/dev-team/task-executor/skills/analyze-issue.md +101 -0
- package/template/workers/dev-team/task-executor/skills/execute.md +133 -0
- package/template/workers/dev-team/task-executor/skills/report-learnings.md +106 -0
- package/template/workers/dev-team/task-executor/skills/validate-completion.md +121 -0
- package/template/workers/dev-team/task-executor/src/index.ts +54 -0
- package/template/workers/dev-team/task-executor/src/mcp-server.ts +139 -0
- package/template/workers/dev-team/task-executor/src/skills/analyze-issue.ts +219 -0
- package/template/workers/dev-team/task-executor/src/skills/execute.ts +132 -0
- package/template/workers/dev-team/task-executor/src/skills/report-learnings.ts +119 -0
- package/template/workers/dev-team/task-executor/src/skills/validate-completion.ts +142 -0
- package/template/workers/dev-team/task-executor/tsconfig.json +19 -0
- package/template/workers/dev-team/task-executor/worker.yaml +110 -0
- package/template/workers/registry.yaml +171 -0
- package/template/workers/security-scanner/README.md +73 -0
- package/template/workers/security-scanner/skills/pre-deploy-check.md +205 -0
- package/template/workers/security-scanner/worker.yaml +26 -0
- package/template/workspace/checkpoints/.gitkeep +0 -0
- package/template/workspace/content-ideas/inbox.jsonl +0 -0
- package/template/workspace/drafts/.gitkeep +0 -0
- package/template/workspace/learnings/.gitkeep +3 -0
- package/template/workspace/orchestrator/.gitkeep +0 -0
- package/template/workspace/ralph-test/COMPLETE.md +18 -0
- package/template/workspace/ralph-test/hello.txt +2 -0
- package/template/workspace/reports/.gitkeep +0 -0
- package/template/workspace/scratch/.gitkeep +0 -0
- 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
|