一键导入
ralph-wiggum
Autonomous task completion loop with PRD tracking and persistent progress memory
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Autonomous task completion loop with PRD tracking and persistent progress memory
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Apply this skill for Unite-Hub Supabase migrations, PostgREST/Data API visibility, founder-scoped Playwright journeys, or errors such as PGRST205, access=denied, stale Supabase linked refs, or migration history drift. Prevents repeating the SQL/cache/auth loop by enforcing the exact verification sequence for core journeys.
The compass for Unite-Hub's road to /shipit. Defines the single NorthStar (a real, comprehensive, working founder CRM in production, every section GREEN), the binding definition of GREEN, and the No-Invaders Manifest that keeps the build honest and surgical. Consult BEFORE deciding what to build/skip/finish — it resolves "200 ≠ real" temptations and scope-creep pressure. P1, auto-loaded.
Apply this skill WHEN scaffolding a new cron "pull" route that syncs external/derived data into Supabase on a schedule (Vercel cron). Encodes the Unite-Hub cron invariants: CRON_SECRET auth, FOUNDER_USER_ID actor, overlap safety, idempotent upsert, last-sync timestamp, and failure surfacing. Generic `cron-scheduler` covers scheduling; this covers the PULL handler body. P3.
Apply this skill WHEN verifying that a route, page, or integration serves REAL data and not silent mock/placeholder data. Detects the "false-green" failure mode: an endpoint returns 200 (or a page renders) while the underlying data is fabricated because a provider is unconnected. Trigger WHENEVER classifying a section's readiness, reviewing integration wrappers, or before marking anything GREEN. P2 — load on audit/verify tasks.
Manifest-first context isolation — each subagent receives only its scope, never the full codebase
Apply this skill for ANY decision with non-obvious tradeoffs: architectural choices, debugging without a clear root cause, performance strategies, security decisions, feature design with competing constraints, refactoring scope decisions. Forces multi-perspective analysis before committing to a solution. P1 auto-load — always active on complex reasoning tasks.
| name | ralph-wiggum |
| category | workflow |
| version | 2.0.0 |
| description | Autonomous task completion loop with PRD tracking and persistent progress memory |
| author | Unite Group (ported from NodeJS-Starter-V1, adapted for Next.js-only stack) |
| priority | 2 |
| auto_load | false |
| triggers | ["ralph","autonomous","loop","prd","overnight"] |
| requires | ["verification-first","context-partitioning"] |
| context | fork |
A simple, powerful pattern for autonomous multi-iteration development:
plans/prd.json — JSON file with user stories, each with a passes booleanplans/progress.txt — Append-only LLM memory between iterationsNamed after Ralph Wiggum from The Simpsons — simple but effective.
"Me fail English? That's unpossible!" — Ralph Wiggum
| Problem | Solution |
|---|---|
| LLMs lose context between sessions | progress.txt persists learnings |
| Tendency to declare victory | Verification gate blocks false completion |
| No structured task state | prd.json machine-readable task list |
| Complex orchestration overhead | Simple loop, no LangGraph needed |
plans/prd.json){
"project": "Unite-Group Nexus",
"version": "1.0.0",
"user_stories": [
{
"id": "US-001",
"epic": "Social",
"title": "Persona avatar upload",
"description": "As a founder, I want to upload an avatar for each brand persona",
"priority": "high",
"acceptance_criteria": [
"File picker opens on click",
"Image uploads to Supabase Storage under founder_id prefix",
"Avatar displays immediately after upload",
"Error state shown if upload fails"
],
"verification": {
"type_check": true,
"lint": true,
"unit_tests": true,
"build": false,
"e2e": false
},
"passes": false,
"last_attempt": null,
"attempt_count": 0,
"depends_on": []
}
],
"metadata": {
"total_stories": 1,
"passing_stories": 0
}
}
| Field | Purpose |
|---|---|
passes | Only true after verification gate passes |
priority | Execution order: critical > high > medium > low |
depends_on | Story IDs that must pass first |
acceptance_criteria | Specific, verifiable requirements |
attempt_count | Tracks failed attempts — escalate at 3 |
plans/progress.txt)Append-only. The LLM reads this at the start of each iteration to learn from previous failures.
# Ralph Progress Log
# Project: Unite-Group Nexus
# Created: 20/03/2026
---
## Session 1: 20/03/2026 10:30 AEST
**Task**: US-001 — Persona avatar upload
**Status**: IN_PROGRESS
### Work Done
- Added file input to SocialPersonasManager.tsx
- Wired to Supabase Storage upload
### Issues Encountered
- Type error: `File | null` not assignable — needs explicit null check
### Learnings
- Supabase Storage path must include founder_id: `avatars/${founderId}/${personaId}`
- Use `useState<File | null>(null)` not `useState(null)` for file state
### Next Steps
1. Fix null check on file input handler
2. Run Tier A verification
---
## Session 2: 20/03/2026 11:00 AEST
**Task**: US-001 — Persona avatar upload
**Status**: COMPLETED
### Work Done
- Fixed null check
- All Tier A verification passed
### Learnings
- Supabase Storage public URL: `supabase.storage.from('avatars').getPublicUrl(path).data.publicUrl`
### Next Steps
- Move to US-002
ALL must pass before marking passes: true:
pnpm run type-check # TypeScript — always required
pnpm run lint # ESLint — always required
pnpm vitest run # Unit tests — if verification.unit_tests: true
pnpm build # Build — if verification.build: true
E2E (Playwright) is run manually or via CI only — not in the loop by default.
Iteration N:
1. All stories passed? → EXIT (done)
2. Find highest-priority unpassed story (respect depends_on)
3. Read progress.txt — load learnings from previous attempts
4. Produce context manifest (context-partitioning skill)
5. Implement per acceptance criteria
6. Run verification pipeline
7. PASS → set passes: true → git commit → append to progress.txt
FAIL → increment attempt_count → record issue → append to progress.txt
8. Next iteration
| Condition | Action |
|---|---|
attempt_count >= 3 | Stop — record blocker — skip to next story — flag for human review |
| Dependency not yet passed | Skip story — work on next available |
| Verification tool fails (not code) | Record as infra blocker — do not increment attempt_count |
# Via slash command
/ralph run 50 # Max 50 iterations
# Manual: provide this prompt to Claude Code
"Read plans/prd.json and plans/progress.txt.
Find the highest-priority unpassed story.
Implement it, verify it, update both files.
Repeat until all stories pass or you reach {N} iterations."
Previous learnings prevent repeating the same mistake across sessions.
Creates safe checkpoints — a failed story doesn't undo previous work.
# Commit format
git commit -m "feat(US-001): persona avatar upload"
All implementations follow en-AU defaults automatically via the pre-response hook:
For stories requiring 3+ agents, Ralph delegates to the Harness instead of implementing directly:
Story requires frontend + database + API changes
→ Ralph creates manifest per context-partitioning skill
→ Dispatches to Agent Harness (AGENT_HARNESS.md)
→ Harness returns structured result
→ Ralph runs verification gate
→ Ralph updates prd.json and progress.txt
.claude/skills/custom/verification-first/SKILL.md.claude/skills/custom/context-partitioning/SKILL.md