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,114 @@
|
|
|
1
|
+
# Core Concepts
|
|
2
|
+
|
|
3
|
+
## Key Terminology
|
|
4
|
+
|
|
5
|
+
### Mallocing / Memory Allocation
|
|
6
|
+
|
|
7
|
+
In the context of Ralph, "mallocing" refers to how you allocate and manage the AI's context window - similar to memory allocation in programming.
|
|
8
|
+
|
|
9
|
+
> "Ralph is really just a mallocing orchestrator that avoids context rot and compaction."
|
|
10
|
+
> — Geoffrey Huntley
|
|
11
|
+
|
|
12
|
+
Good mallocing means:
|
|
13
|
+
- Only loading relevant specifications into context
|
|
14
|
+
- Clearing context between tasks
|
|
15
|
+
- Being intentional about what information the AI sees
|
|
16
|
+
|
|
17
|
+
### Context Rot
|
|
18
|
+
|
|
19
|
+
Context rot occurs when the AI's context window becomes polluted with outdated or irrelevant information from earlier in the conversation. This degrades the quality of outputs over time.
|
|
20
|
+
|
|
21
|
+
**Solution**: Start fresh for each task by spawning a new agent instance.
|
|
22
|
+
|
|
23
|
+
### Compaction
|
|
24
|
+
|
|
25
|
+
Compaction is when the context window gets filled with verbose or unnecessary content, leaving less room for the actual task at hand.
|
|
26
|
+
|
|
27
|
+
> "Compaction is the devil"
|
|
28
|
+
> — Geoffrey Huntley
|
|
29
|
+
|
|
30
|
+
**Solution**: Use focused specifications and remove unnecessary content from the context.
|
|
31
|
+
|
|
32
|
+
### Back Pressure
|
|
33
|
+
|
|
34
|
+
Back pressure is the feedback mechanism that pushes back on the AI when it generates incorrect code. This is the key to making autonomous coding work.
|
|
35
|
+
|
|
36
|
+
> "The back pressure if it generates something wrong, the test pushes back on the generative function to try again before the wheel is allowed to turn around."
|
|
37
|
+
> — Geoffrey Huntley
|
|
38
|
+
|
|
39
|
+
Forms of back pressure:
|
|
40
|
+
- Unit tests
|
|
41
|
+
- Integration tests
|
|
42
|
+
- Type checking (TypeScript, etc.)
|
|
43
|
+
- Linting
|
|
44
|
+
- Build processes
|
|
45
|
+
- Pre-commit hooks
|
|
46
|
+
|
|
47
|
+
### Generative Function
|
|
48
|
+
|
|
49
|
+
The AI model that generates code. In Ralph, we "engineer back pressure to keep the generative function on the rails."
|
|
50
|
+
|
|
51
|
+
### The Loop / Wheel
|
|
52
|
+
|
|
53
|
+
The core iteration cycle of Ralph:
|
|
54
|
+
1. Pick a task from specifications
|
|
55
|
+
2. Generate code
|
|
56
|
+
3. Run back pressure checks
|
|
57
|
+
4. If checks pass, commit and move to next task
|
|
58
|
+
5. If checks fail, regenerate
|
|
59
|
+
6. Repeat
|
|
60
|
+
|
|
61
|
+
### Routing
|
|
62
|
+
|
|
63
|
+
The process of directing the AI's attention to specific tasks or specifications. In Ralph, you control the routing by selecting which specifications to load into context.
|
|
64
|
+
|
|
65
|
+
### Weavers
|
|
66
|
+
|
|
67
|
+
Geoffrey's term for autonomous coding agents that work together. They can:
|
|
68
|
+
- Introduce features with feature flags
|
|
69
|
+
- Deploy code
|
|
70
|
+
- Monitor analytics
|
|
71
|
+
- Make autonomous decisions about optimizations
|
|
72
|
+
|
|
73
|
+
### AFK Coding
|
|
74
|
+
|
|
75
|
+
"Away From Keyboard" coding - running AI agents autonomously while you're not actively supervising.
|
|
76
|
+
|
|
77
|
+
> "This front-end feedback loop makes AFK AI coding a lot more powerful. If you're looping an AI, for instance, in the Ralph Wiggum setup, then plugging a browser into your front end or full stack work will be such a massive improvement."
|
|
78
|
+
> — Matt Pocock
|
|
79
|
+
|
|
80
|
+
## The Six Stages of AI Adoption
|
|
81
|
+
|
|
82
|
+
Geoffrey Huntley describes six stages software developers go through:
|
|
83
|
+
|
|
84
|
+
1. **"It's not good enough"** - Dismissing AI capabilities
|
|
85
|
+
2. **"Prove to me that this isn't hype"** - Skepticism
|
|
86
|
+
3. **"Experimenting with LLMs"** - Trying it out
|
|
87
|
+
4. **"Deer in headlights"** - Realizing implications ("Will I have a job in the future?")
|
|
88
|
+
5. **"Alarmed - need to bin our planning and change priorities"** - Organizational response
|
|
89
|
+
6. **"Engaged - realization that LLMs can be programmed"** - Active adoption
|
|
90
|
+
|
|
91
|
+
## Key Principles
|
|
92
|
+
|
|
93
|
+
### 1. Simplicity Over Complexity
|
|
94
|
+
A for loop beats elaborate orchestration systems.
|
|
95
|
+
|
|
96
|
+
### 2. Fresh Context Per Task
|
|
97
|
+
Start each task with a clean context to avoid rot.
|
|
98
|
+
|
|
99
|
+
### 3. Small, Atomic Changes
|
|
100
|
+
Keep changes small enough to verify and commit independently.
|
|
101
|
+
|
|
102
|
+
### 4. Robust Feedback Loops
|
|
103
|
+
Invest heavily in automated testing and verification.
|
|
104
|
+
|
|
105
|
+
### 5. No Human Tool Calls
|
|
106
|
+
> "Anytime you tool call a human, that's not AGI, that's not Ralph."
|
|
107
|
+
> — Geoffrey Huntley
|
|
108
|
+
|
|
109
|
+
### 6. Fast Feedback
|
|
110
|
+
Optimize for quick iteration cycles - slow compilation (like Rust) can be a bottleneck.
|
|
111
|
+
|
|
112
|
+
### 7. Engineering Still Matters
|
|
113
|
+
> "I still believe in engineering. Still believe in engineering and like the bridge collapses, that's on you."
|
|
114
|
+
> — Geoffrey Huntley
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# How Ralph Works
|
|
2
|
+
|
|
3
|
+
## The Basic Loop
|
|
4
|
+
|
|
5
|
+
At its core, Ralph is a simple bash script that runs in a for loop:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
#!/bin/bash
|
|
9
|
+
for i in {1..N}; do
|
|
10
|
+
claude --print "Pick ONE incomplete item from plans/prd.json and implement it.
|
|
11
|
+
Run tests. If they pass, commit. Update the PRD passes field.
|
|
12
|
+
Write progress to progress.txt"
|
|
13
|
+
done
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
> "Everyone's calling it Ralph Wiggum. This is credited to Geoffrey Huntley."
|
|
17
|
+
> — Matt Pocock
|
|
18
|
+
|
|
19
|
+
## The Components
|
|
20
|
+
|
|
21
|
+
### 1. PRD (Product Requirements Document)
|
|
22
|
+
|
|
23
|
+
A JSON file containing user stories with pass/fail status:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"features": [
|
|
28
|
+
{
|
|
29
|
+
"id": "beat-display",
|
|
30
|
+
"description": "Beats should display as three orange ellipses dots below the clip",
|
|
31
|
+
"acceptance_criteria": [
|
|
32
|
+
"Add a beat to a clip",
|
|
33
|
+
"Verify three orange dots appear below the clip",
|
|
34
|
+
"Verify they're orange colored",
|
|
35
|
+
"Verify they form an ellipses pattern"
|
|
36
|
+
],
|
|
37
|
+
"passes": false
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The PRD serves dual purposes:
|
|
44
|
+
- A specification for what to build
|
|
45
|
+
- A test harness tracking what's done
|
|
46
|
+
|
|
47
|
+
### 2. Progress File (progress.txt)
|
|
48
|
+
|
|
49
|
+
A running log of what the agent has accomplished:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
[2026-01-13 10:30] Implemented beat-display feature
|
|
53
|
+
[2026-01-13 10:32] Tests passing, committed: abc123
|
|
54
|
+
[2026-01-13 10:35] Started work on beat-animation
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
This provides:
|
|
58
|
+
- Audit trail
|
|
59
|
+
- Context for subsequent runs
|
|
60
|
+
- Human review capability
|
|
61
|
+
|
|
62
|
+
### 3. agents.md / CLAUDE.md
|
|
63
|
+
|
|
64
|
+
Configuration file that tells the AI how to behave:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
# Project Context
|
|
68
|
+
This is a video editing application built with TypeScript and React.
|
|
69
|
+
|
|
70
|
+
# Build Commands
|
|
71
|
+
- `npm run build` - Build the application
|
|
72
|
+
- `npm test` - Run tests
|
|
73
|
+
- `npm run lint` - Run linter
|
|
74
|
+
|
|
75
|
+
# Coding Standards
|
|
76
|
+
- Use TypeScript strict mode
|
|
77
|
+
- All functions must have JSDoc comments
|
|
78
|
+
- Keep files under 300 lines
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 4. Back Pressure Mechanisms
|
|
82
|
+
|
|
83
|
+
The verification layer that ensures code quality:
|
|
84
|
+
|
|
85
|
+
- **Type checking**: `tsc --noEmit`
|
|
86
|
+
- **Linting**: `eslint .`
|
|
87
|
+
- **Unit tests**: `npm test`
|
|
88
|
+
- **Build verification**: `npm run build`
|
|
89
|
+
- **Pre-commit hooks**: Run all checks before allowing commits
|
|
90
|
+
|
|
91
|
+
## The Execution Flow
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
┌─────────────────┐
|
|
95
|
+
│ Start Loop │
|
|
96
|
+
└────────┬────────┘
|
|
97
|
+
│
|
|
98
|
+
▼
|
|
99
|
+
┌─────────────────┐
|
|
100
|
+
│ Load PRD.json │
|
|
101
|
+
│ Load agents.md │
|
|
102
|
+
└────────┬────────┘
|
|
103
|
+
│
|
|
104
|
+
▼
|
|
105
|
+
┌─────────────────┐
|
|
106
|
+
│ Pick ONE task │
|
|
107
|
+
│ (not passing) │
|
|
108
|
+
└────────┬────────┘
|
|
109
|
+
│
|
|
110
|
+
▼
|
|
111
|
+
┌─────────────────┐
|
|
112
|
+
│ Generate code │
|
|
113
|
+
└────────┬────────┘
|
|
114
|
+
│
|
|
115
|
+
▼
|
|
116
|
+
┌─────────────────┐
|
|
117
|
+
│ Run back │
|
|
118
|
+
│ pressure checks │
|
|
119
|
+
└────────┬────────┘
|
|
120
|
+
│
|
|
121
|
+
┌────┴────┐
|
|
122
|
+
│ Pass? │
|
|
123
|
+
└────┬────┘
|
|
124
|
+
│
|
|
125
|
+
Yes │ No
|
|
126
|
+
┌────┴────┐
|
|
127
|
+
│ │
|
|
128
|
+
▼ ▼
|
|
129
|
+
┌───────┐ ┌───────┐
|
|
130
|
+
│Commit │ │Retry │
|
|
131
|
+
│Update │ │ │
|
|
132
|
+
│PRD │ └───┬───┘
|
|
133
|
+
└───┬───┘ │
|
|
134
|
+
│ │
|
|
135
|
+
└────┬────┘
|
|
136
|
+
│
|
|
137
|
+
▼
|
|
138
|
+
┌─────────────────┐
|
|
139
|
+
│ Next iteration │
|
|
140
|
+
└─────────────────┘
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Key Implementation Details
|
|
144
|
+
|
|
145
|
+
### Why --print Flag?
|
|
146
|
+
|
|
147
|
+
The `--print` flag (or equivalent) ensures a fresh context for each task:
|
|
148
|
+
|
|
149
|
+
> "What happens is you work out a unit economic cost for software development... but to get it working, you have to understand the bare bones fundamentals from first principles."
|
|
150
|
+
> — Geoffrey Huntley
|
|
151
|
+
|
|
152
|
+
### Small Changes Are Critical
|
|
153
|
+
|
|
154
|
+
> "Keep these changes really small so that you still have context window left for the LLM to actually check that the change works."
|
|
155
|
+
> — Matt Pocock
|
|
156
|
+
|
|
157
|
+
### The Anthropic Recommendation
|
|
158
|
+
|
|
159
|
+
> "Effective harnesses for long-running agents from Anthropic... they noticed Claude's tendency to mark a feature as complete without proper testing. But it did much better at verifying features end to end once explicitly prompted to use browser automation tools."
|
|
160
|
+
> — Matt Pocock
|
|
161
|
+
|
|
162
|
+
## Advanced: Visual Feedback Loops
|
|
163
|
+
|
|
164
|
+
For frontend work, add browser automation:
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// MCP configuration for Chrome DevTools
|
|
168
|
+
{
|
|
169
|
+
"mcpServers": {
|
|
170
|
+
"chrome-devtools": {
|
|
171
|
+
"url": "http://localhost:9222"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
This allows the AI to:
|
|
178
|
+
- Take screenshots
|
|
179
|
+
- Verify visual changes
|
|
180
|
+
- Test user interactions
|
|
181
|
+
- Check responsive design
|
|
182
|
+
|
|
183
|
+
> "Without it, your LLM is essentially flying blind. It can't see the execution environment in which the changes are being made."
|
|
184
|
+
> — Matt Pocock
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Back Pressure Engineering
|
|
2
|
+
|
|
3
|
+
## What is Back Pressure?
|
|
4
|
+
|
|
5
|
+
Back pressure is the automated feedback mechanism that validates AI-generated code before it's allowed to proceed. It's the critical component that makes autonomous coding reliable.
|
|
6
|
+
|
|
7
|
+
> "The back pressure if it generates something wrong, the test pushes back on the generative function to try again before the wheel is allowed to turn around."
|
|
8
|
+
> — Geoffrey Huntley
|
|
9
|
+
|
|
10
|
+
> "Our job is now engineering back pressure to the generative function to keep the generative function on the rails, the locomotive."
|
|
11
|
+
> — Geoffrey Huntley
|
|
12
|
+
|
|
13
|
+
## Why Back Pressure Matters
|
|
14
|
+
|
|
15
|
+
Without back pressure:
|
|
16
|
+
- AI will hallucinate solutions
|
|
17
|
+
- Bugs accumulate silently
|
|
18
|
+
- Context rot compounds errors
|
|
19
|
+
- Human review becomes overwhelming
|
|
20
|
+
|
|
21
|
+
With proper back pressure:
|
|
22
|
+
- Errors are caught immediately
|
|
23
|
+
- Each commit is verified working
|
|
24
|
+
- The loop is truly autonomous
|
|
25
|
+
- Code quality remains high
|
|
26
|
+
|
|
27
|
+
## Types of Back Pressure
|
|
28
|
+
|
|
29
|
+
### 1. Type Systems
|
|
30
|
+
|
|
31
|
+
**TypeScript (Recommended)**
|
|
32
|
+
```bash
|
|
33
|
+
tsc --noEmit
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Benefits:
|
|
37
|
+
- Fast compilation
|
|
38
|
+
- Comprehensive type checking
|
|
39
|
+
- Excellent IDE integration
|
|
40
|
+
- Good error messages for AI
|
|
41
|
+
|
|
42
|
+
**Rust** (Trade-offs)
|
|
43
|
+
> "The compilation speed on Rust is very, very, very slow. What happens if it does an invalid generation or hallucination and the compilation takes 30 minutes? Compare that against TypeScript - in that time how many generations has it done?"
|
|
44
|
+
> — Geoffrey Huntley
|
|
45
|
+
|
|
46
|
+
### 2. Linting
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
eslint . --max-warnings 0
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Catches:
|
|
53
|
+
- Code style violations
|
|
54
|
+
- Potential bugs
|
|
55
|
+
- Best practice violations
|
|
56
|
+
- Security issues
|
|
57
|
+
|
|
58
|
+
### 3. Unit Tests
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm test
|
|
62
|
+
# or
|
|
63
|
+
pytest
|
|
64
|
+
# or
|
|
65
|
+
cargo test
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The most important form of back pressure:
|
|
69
|
+
- Verifies functionality
|
|
70
|
+
- Catches regressions
|
|
71
|
+
- Documents behavior
|
|
72
|
+
- Enables refactoring
|
|
73
|
+
|
|
74
|
+
### 4. Integration Tests
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npm run test:integration
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Verifies:
|
|
81
|
+
- Component interactions
|
|
82
|
+
- API contracts
|
|
83
|
+
- Database operations
|
|
84
|
+
- External service integration
|
|
85
|
+
|
|
86
|
+
### 5. Build Verification
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm run build
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Ensures:
|
|
93
|
+
- Code compiles
|
|
94
|
+
- Dependencies resolve
|
|
95
|
+
- Assets bundle correctly
|
|
96
|
+
- No dead code
|
|
97
|
+
|
|
98
|
+
### 6. Pre-commit Hooks
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
# .pre-commit-config.yaml
|
|
102
|
+
repos:
|
|
103
|
+
- repo: local
|
|
104
|
+
hooks:
|
|
105
|
+
- id: typecheck
|
|
106
|
+
name: Type Check
|
|
107
|
+
entry: npm run typecheck
|
|
108
|
+
language: system
|
|
109
|
+
- id: lint
|
|
110
|
+
name: Lint
|
|
111
|
+
entry: npm run lint
|
|
112
|
+
language: system
|
|
113
|
+
- id: test
|
|
114
|
+
name: Test
|
|
115
|
+
entry: npm test
|
|
116
|
+
language: system
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 7. Visual Verification (Frontend)
|
|
120
|
+
|
|
121
|
+
For frontend applications, text-based back pressure isn't enough:
|
|
122
|
+
|
|
123
|
+
> "The difficulty comes when you start adding visual elements... A feedback loop in a frontend: write some code, then look at the UI to see what changed, go back, write a bit more code, look at the UI again."
|
|
124
|
+
> — Matt Pocock
|
|
125
|
+
|
|
126
|
+
Solution: Browser automation via MCP:
|
|
127
|
+
- Screenshot comparison
|
|
128
|
+
- DOM inspection
|
|
129
|
+
- User interaction simulation
|
|
130
|
+
- Responsive design testing
|
|
131
|
+
|
|
132
|
+
## Engineering Effective Back Pressure
|
|
133
|
+
|
|
134
|
+
### Make It Fast
|
|
135
|
+
|
|
136
|
+
Speed is critical for rapid iteration:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Fast back pressure:
|
|
140
|
+
TypeScript + ESLint + Jest = ~10 seconds
|
|
141
|
+
|
|
142
|
+
Slow back pressure:
|
|
143
|
+
Rust compilation = ~5-30 minutes
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
> "If the compilation takes forever, what happens if it does an invalid generation? You got to be an engineer and make that back pressure fast."
|
|
147
|
+
> — Geoffrey Huntley
|
|
148
|
+
|
|
149
|
+
### Make It Comprehensive
|
|
150
|
+
|
|
151
|
+
Cover all failure modes:
|
|
152
|
+
- Syntax errors (compiler)
|
|
153
|
+
- Logic errors (tests)
|
|
154
|
+
- Style issues (linter)
|
|
155
|
+
- Type errors (type checker)
|
|
156
|
+
- Visual issues (browser automation)
|
|
157
|
+
|
|
158
|
+
### Make It Deterministic
|
|
159
|
+
|
|
160
|
+
Tests must be:
|
|
161
|
+
- Reproducible
|
|
162
|
+
- Not flaky
|
|
163
|
+
- Independent
|
|
164
|
+
- Fast
|
|
165
|
+
|
|
166
|
+
### Make It Informative
|
|
167
|
+
|
|
168
|
+
Error messages should help the AI fix issues:
|
|
169
|
+
- Clear descriptions
|
|
170
|
+
- Line numbers
|
|
171
|
+
- Suggested fixes
|
|
172
|
+
- Context
|
|
173
|
+
|
|
174
|
+
## The Feedback Loop Cycle
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
┌──────────────────────────────────────────┐
|
|
178
|
+
│ │
|
|
179
|
+
│ Generate Code │
|
|
180
|
+
│ │ │
|
|
181
|
+
│ ▼ │
|
|
182
|
+
│ ┌─────────┐ │
|
|
183
|
+
│ │Type │──fail──► Fix & Retry │
|
|
184
|
+
│ │Check │ │ │
|
|
185
|
+
│ └────┬────┘ │ │
|
|
186
|
+
│ │pass │ │
|
|
187
|
+
│ ▼ │ │
|
|
188
|
+
│ ┌─────────┐ │ │
|
|
189
|
+
│ │Lint │──fail──► Fix & Retry│ │
|
|
190
|
+
│ └────┬────┘ │ │
|
|
191
|
+
│ │pass │ │
|
|
192
|
+
│ ▼ │ │
|
|
193
|
+
│ ┌─────────┐ │ │
|
|
194
|
+
│ │Test │──fail──► Fix & Retry│ │
|
|
195
|
+
│ └────┬────┘ │ │
|
|
196
|
+
│ │pass │ │
|
|
197
|
+
│ ▼ │ │
|
|
198
|
+
│ ┌─────────┐ │ │
|
|
199
|
+
│ │Build │──fail──► Fix & Retry│ │
|
|
200
|
+
│ └────┬────┘ │ │
|
|
201
|
+
│ │pass │ │
|
|
202
|
+
│ ▼ │ │
|
|
203
|
+
│ Commit & Proceed │
|
|
204
|
+
│ │
|
|
205
|
+
└──────────────────────────────────────────┘
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Language Recommendations
|
|
209
|
+
|
|
210
|
+
Based on back pressure speed and reliability:
|
|
211
|
+
|
|
212
|
+
| Language | Back Pressure Speed | Recommendation |
|
|
213
|
+
|----------|-------------------|----------------|
|
|
214
|
+
| TypeScript | Very Fast | Highly Recommended |
|
|
215
|
+
| Python | Fast | Recommended |
|
|
216
|
+
| Go | Fast | Recommended |
|
|
217
|
+
| Java | Medium | Acceptable |
|
|
218
|
+
| Rust | Slow | Trade-offs |
|
|
219
|
+
| C++ | Slow | Trade-offs |
|
|
220
|
+
|
|
221
|
+
> "Any discipline where you can mechanically verify it is going to be automated. That's absolutely certain - when you can mechanically verify it, it's going to be automated."
|
|
222
|
+
> — Geoffrey Huntley
|