[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G2EEH5TYD8WMDS22TTWSCY":3,"skill-same:01M6G2EEH5TYD8WMDS22TTWSCY":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6G2EEH5TYD8WMDS22TTWSCY","ralph-cli",null,"ralph-cli — autonomous PRD-driven agent loop for AI-powered story-by-story implementation","javimosch\u002Fsupercli","javimosch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F12900508?v=4","01M6D3F2AS6PV75ET9PZ1QGP8J","Javier Leandro Arancibia","01M6D3F2EBNWNJ358Q90P5YQR1",57,"MIT","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fralph-cli\u002Fskills\u002Fquickstart\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38],"cli","ralph","ralph cli","prd","loop","autonomous","agent loop","implementation","Story","driven","2026-11-10 10:12:30",false,"---\nname: ralph-cli\ndescription: ralph-cli — autonomous PRD-driven agent loop for AI-powered story-by-story implementation\n---\n\n# Ralph — Autonomous PRD-Driven Agent Loop\n\nRalph is a file-based agent loop that breaks work into **stories** defined in a `prd.json` file and executes them one at a time using AI coding agents (OpenCode, Claude Code, Codex, etc.).\n\n## Installation\n\n```bash\nnpm install -g superacli\nsc plugins install ralph-cli\n```\n\n## Core Concepts\n\n### PRD (Product Requirements Document)\n\nA JSON file containing a project name, description, and an ordered list of user stories:\n\n```json\n{\n  \"name\": \"My Feature\",\n  \"branchName\": \"ralph\u002Fmy-feature\",\n  \"description\": \"What this PRD is about\",\n  \"userStories\": [\n    {\n      \"id\": \"US-001\",\n      \"title\": \"Add database schema\",\n      \"description\": \"As a developer, I need...\",\n      \"acceptanceCriteria\": [\"Column x exists\", \"Migration runs\"],\n      \"priority\": 1,\n      \"passes\": false,\n      \"dependsOn\": []\n    }\n  ]\n}\n```\n\n### Stories\n\nEach story must be **completable in one agent iteration**. Stories have:\n- **ID**: Sequential (US-001, US-002, etc.)\n- **Priority**: Lower number = higher priority\n- **dependsOn**: Story IDs that must complete first\n- **acceptanceCriteria**: Verifiable checks the agent must satisfy\n- **passes**: `false` until completed, then `true`\n\n### Dependencies\n\nStories execute in dependency order:\n- Schema\u002Fdatabase -> Backend logic -> UI components -> Integration\n- A story is \"blocked\" until all its `dependsOn` stories pass\n- Ralph always selects the highest-priority unblocked story\n\n## Agent Workflow\n\n### 1. Create a PRD\n\n```bash\nsc ralph-cli init run \"Feature Name\" --prd .\u002Ftasks\u002Fprd.json\n```\n\n### 2. Check Status\n\n```bash\nsc ralph-cli status run --prd .\u002Ftasks\u002Fprd.json\n```\n\n### 3. Run the Agent Loop\n\n```bash\n# Default timeout: 30 minutes\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json\n\n# Custom timeout (e.g., 10 minutes for quick tasks, 60 min for complex)\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --timeout 600\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --timeout 3600\n```\n\n### 4. Preview Prompts (Dry Run)\n\n```bash\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --dry-run\nsc ralph-cli prompt run --prd .\u002Ftasks\u002Fprd.json --story US-001\n```\n\n### 5. Story Lifecycle\n\n1. Ralph selects the next available story\n2. Generates a prompt with story details + acceptance criteria + prerequisites\n3. Spawns the agent CLI (openmode, claude, codex, etc.) with the prompt\n4. Agent implements the story\n5. Ralph marks `passes: true` in prd.json\n6. Ralph commits changes via git\n7. Repeat until all stories pass\n\n## PRD Best Practices\n\n- **One story = one agent iteration**: If a story is too big, split it\n- **Acceptance criteria must be verifiable**: Not vague like \"works well\"\n- **Order by dependencies**: Lower-priority stories that depend on earlier ones\n- **Include quality gates**: Typecheck, lint, test commands in acceptance criteria\n- **Use `ralph\u002F` branch prefix**: E.g., `ralph\u002Fkotlin-migration`\n\n## Agent Guidance\n\n### No-Timeout Mode\n\nFor long-running or complex agent tasks (e.g., large refactors, migrations), pass `--no-timeout` to disable the per-story timeout entirely. The agent runs until it finishes or is manually interrupted.\n\n```bash\nsc ralph-cli run run --prd .\u002Fprd.json --no-timeout\n```\n\nNote: `--no-timeout` overrides any `--timeout` value. Use with caution — an unresponsive agent may run indefinitely.\n\n### Timeout Management\n\nRalph defaults to a **30-minute timeout** per story (`--timeout 1800`). Adjust based on story complexity:\n\n- **Quick fixes \u002F simple edits**: `--timeout 120` (2 min)\n- **Single-file changes**: `--timeout 300` (5 min)\n- **Multi-file features (default)**: `--timeout 1800` (30 min)\n- **Complex refactors \u002F migrations**: `--timeout 3600` (60 min)\n- **Indeterminate tasks**: `--no-timeout` (disable timeout)\n\nWhen invoking ralph-cli via supercli from another agent, always pass an appropriate `--timeout` to prevent premature termination:\n\n```bash\nsc ralph-cli run run --prd .\u002Fprd.json --timeout 1800\n```\n\nIf a story times out, split it into smaller stories or increase the timeout. If the agent needs indeterminate time (e.g., a complex refactor), use `--no-timeout` to disable the timeout entirely. Ralph retries timed-out stories the next time you run the loop.\n\n## Commands via supercli\n\n| Command | Description |\n|---------|-------------|\n| `sc ralph-cli run run --prd \u003Cfile>` | Execute the agent loop (default timeout: 30 min) |\n| `sc ralph-cli run run --prd \u003Cfile> --timeout \u003Csec>` | Run with custom agent timeout |\n| `sc ralph-cli run run --prd \u003Cfile> --no-timeout` | Run with no timeout (agent runs until done) |\n| `sc ralph-cli status run --prd \u003Cfile>` | Show progress |\n| `sc ralph-cli story next --prd \u003Cfile>` | Show next available story |\n| `sc ralph-cli prompt run --prd \u003Cfile>` | Print agent prompt for next story |\n| `sc ralph-cli init run \u003Cname> --prd \u003Cfile>` | Scaffold a new PRD |\n| `sc ralph-cli --help` | Passthrough to ralph-cli CLI |\n","# Ralph — Autonomous PRD-Driven Agent Loop\n\nRalph is a file-based agent loop that breaks work into **stories** defined in a `prd.json` file and executes them one at a time using AI coding agents (OpenCode, Claude Code, Codex, etc.).\n\n## Installation\n\n```bash\nnpm install -g superacli\nsc plugins install ralph-cli\n```\n\n## Core Concepts\n\n### PRD (Product Requirements Document)\n\nA JSON file containing a project name, description, and an ordered list of user stories:\n\n```json\n{\n  \"name\": \"My Feature\",\n  \"branchName\": \"ralph\u002Fmy-feature\",\n  \"description\": \"What this PRD is about\",\n  \"userStories\": [\n    {\n      \"id\": \"US-001\",\n      \"title\": \"Add database schema\",\n      \"description\": \"As a developer, I need...\",\n      \"acceptanceCriteria\": [\"Column x exists\", \"Migration runs\"],\n      \"priority\": 1,\n      \"passes\": false,\n      \"dependsOn\": []\n    }\n  ]\n}\n```\n\n### Stories\n\nEach story must be **completable in one agent iteration**. Stories have:\n- **ID**: Sequential (US-001, US-002, etc.)\n- **Priority**: Lower number = higher priority\n- **dependsOn**: Story IDs that must complete first\n- **acceptanceCriteria**: Verifiable checks the agent must satisfy\n- **passes**: `false` until completed, then `true`\n\n### Dependencies\n\nStories execute in dependency order:\n- Schema\u002Fdatabase -> Backend logic -> UI components -> Integration\n- A story is \"blocked\" until all its `dependsOn` stories pass\n- Ralph always selects the highest-priority unblocked story\n\n## Agent Workflow\n\n### 1. Create a PRD\n\n```bash\nsc ralph-cli init run \"Feature Name\" --prd .\u002Ftasks\u002Fprd.json\n```\n\n### 2. Check Status\n\n```bash\nsc ralph-cli status run --prd .\u002Ftasks\u002Fprd.json\n```\n\n### 3. Run the Agent Loop\n\n```bash\n# Default timeout: 30 minutes\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json\n\n# Custom timeout (e.g., 10 minutes for quick tasks, 60 min for complex)\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --timeout 600\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --timeout 3600\n```\n\n### 4. Preview Prompts (Dry Run)\n\n```bash\nsc ralph-cli run run --prd .\u002Ftasks\u002Fprd.json --dry-run\nsc ralph-cli prompt run --prd .\u002Ftasks\u002Fprd.json --story US-001\n```\n\n### 5. Story Lifecycle\n\n1. Ralph selects the next available story\n2. Generates a prompt with story details + acceptance criteria + prerequisites\n3. Spawns the agent CLI (openmode, claude, codex, etc.) with the prompt\n4. Agent implements the story\n5. Ralph marks `passes: true` in prd.json\n6. Ralph commits changes via git\n7. Repeat until all stories pass\n\n## PRD Best Practices\n\n- **One story = one agent iteration**: If a story is too big, split it\n- **Acceptance criteria must be verifiable**: Not vague like \"works well\"\n- **Order by dependencies**: Lower-priority stories that depend on earlier ones\n- **Include quality gates**: Typecheck, lint, test commands in acceptance criteria\n- **Use `ralph\u002F` branch prefix**: E.g., `ralph\u002Fkotlin-migration`\n\n## Agent Guidance\n\n### No-Timeout Mode\n\nFor long-running or complex agent tasks (e.g., large refactors, migrations), pass `--no-timeout` to disable the per-story timeout entirely. The agent runs until it finishes or is manually interrupted.\n\n```bash\nsc ralph-cli run run --prd .\u002Fprd.json --no-timeout\n```\n\nNote: `--no-timeout` overrides any `--timeout` value. Use with caution — an unresponsive agent may run indefinitely.\n\n### Timeout Management\n\nRalph defaults to a **30-minute timeout** per story (`--timeout 1800`). Adjust based on story complexity:\n\n- **Quick fixes \u002F simple edits**: `--timeout 120` (2 min)\n- **Single-file changes**: `--timeout 300` (5 min)\n- **Multi-file features (default)**: `--timeout 1800` (30 min)\n- **Complex refactors \u002F migrations**: `--timeout 3600` (60 min)\n- **Indeterminate tasks**: `--no-timeout` (disable timeout)\n\nWhen invoking ralph-cli via supercli from another agent, always pass an appropriate `--timeout` to prevent premature termination:\n\n```bash\nsc ralph-cli run run --prd .\u002Fprd.json --timeout 1800\n```\n\nIf a story times out, split it into smaller stories or increase the timeout. If the agent needs indeterminate time (e.g., a complex refactor), use `--no-timeout` to disable the timeout entirely. Ralph retries timed-out stories the next time you run the loop.\n\n## Commands via supercli\n\n| Command | Description |\n|---------|-------------|\n| `sc ralph-cli run run --prd \u003Cfile>` | Execute the agent loop (default timeout: 30 min) |\n| `sc ralph-cli run run --prd \u003Cfile> --timeout \u003Csec>` | Run with custom agent timeout |\n| `sc ralph-cli run run --prd \u003Cfile> --no-timeout` | Run with no timeout (agent runs until done) |\n| `sc ralph-cli status run --prd \u003Cfile>` | Show progress |\n| `sc ralph-cli story next --prd \u003Cfile>` | Show next available story |\n| `sc ralph-cli prompt run --prd \u003Cfile>` | Print agent prompt for next story |\n| `sc ralph-cli init run \u003Cname> --prd \u003Cfile>` | Scaffold a new PRD |\n| `sc ralph-cli --help` | Passthrough to ralph-cli CLI |\n",{"name":5,"description":7},"master","18c32f4b7197d246bdedcc9eca5d0403eaac0bc2","plugins\u002Fralph-cli\u002Fskills\u002Fquickstart",5,"https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli","https:\u002F\u002Fjavimosch.github.io\u002Fsupercli\u002F","https:\u002F\u002Fgithub.com\u002Fjavimosch","intrane.fr","Building robust, open-source infrastructure for the commons. AI-leveraged, self-hosted, built to last.","2026-11-02 18:24:17",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add javimosch\u002Fsupercli --skill ralph-cli",{"tool":60,"command":61},"bunx","bunx skills add javimosch\u002Fsupercli --skill ralph-cli",{"tool":63,"command":64},"pnpm","pnpm dlx skills add javimosch\u002Fsupercli --skill ralph-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fralph-cli\u002Fskills\u002Fquickstart\u002FSKILL.md",true,[],[69,78,97,110,123,131],{"skillNo":70,"name":71,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":75,"publishedAt":39},"01M6G7YFZVHRYAY51J0YG9SDNJ","sc-machin-mcp","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fsupercli-machin-cli\u002Fskills\u002Fsc-machin-mcp\u002FSKILL.md",[74],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[76,77],"sc machin mcp","MCP",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":85,"publishedAt":39},"01M6G7YB179MQMSHZBJDC8TZA8","supercli.quickstart","SuperCLI capability router — discover and execute CLI commands through namespace.resource.action interface","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fskills\u002Fsupercli\u002FSKILL.md",[84],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[86,87,29,88,89,90,91,92,93,94,95,96],"supercli quickstart","quickstart","capability router","plugin","discovery","execute","router","discover","commands","interface","supercli,cli,plugin,capability,discovery,agent",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":39},"01M6G7Y734QS3793YMS5PR146J","zzdoc","Use this skill to compile scdoc manpages with a fast Zig-based compiler.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzzdoc\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[99,104,105,106,107,108,109],"with","use","zig","fast","compiler","compile",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":39},"01M6G7Y2WX56K2QJQ9RV2ZKEV7","zx","Use this skill when the user wants to a tool for writing better scripts using node.js.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzx\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[112,117,105,118,119,120,121,122],"scripts","user","node","tool","js","writing",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":39},"01M6G7Y0M792DGW31HN4TEQT10","zvm","Use this skill when the user wants to manage multiple Zig compiler versions.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzvm\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[125,106,130,105,118,108],"manage",{"skillNo":132,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":39},"01M6G7XX51W5HJW09DYXBK92TJ","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzstdmt\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[87]]