[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GSVC4QA5HNBF9B24XX9KWS":3,"skill-same:01M6GSVC4QA5HNBF9B24XX9KWS":123},{"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":23,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":70},"01M6GSVC4QA5HNBF9B24XX9KWS","prd-ralph-loop",null,"Orchestrate the implementation of a PRD with subagents. Use for completing all PRD tasks\u002Fstories, not a single task.","japurcell\u002Fskills","japurcell","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10947458?v=4","01M6GSJK1YAG95R6VHF47V30KY","Adam Purcell","01M6GSJK6817NVR5FVDMFFNJ6H",0,"MIT","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"ralph","prd","prd ralph loop","ralph loop","loop","prd ralph","single","path","progress","stories","commit","file","false","for","task","tasks","use","implementation","true","orchestrate","with","2026-11-10 10:12:30",false,"---\nname: prd-ralph-loop\ndescription: Orchestrate the implementation of a PRD with subagents. Use for completing all PRD tasks\u002Fstories, not a single task.\ndisable-model-invocation: true\nargument-hint: '\u003Cprd-file> [progress_file \u003Cpath>] [commit \u003Ctrue|false>]'\n---\n\n# \u002Fprd-ralph-loop\n\n## Overview\n\nDispatch fresh workers until the validated manifest is complete or work is blocked. Workers own intake, selection, execution, verification, progress, and commit audits.\n\n## When to Use\n\nUse when explicitly asked to complete all PRD tasks, rather than one task.\n\n## Inputs\n\n- `prd_file`: required path to the task manifest; if absent, ask and stop.\n- `progress_file`: optional; forward unchanged when supplied, otherwise let the worker use its default.\n- `commit`: optional; forward unchanged when supplied, otherwise retain the worker default `true`.\n- Preserve user scope, owner boundaries, and stop constraints in every dispatch.\n\n## Workflow\n\n1. Record `review_base_sha = git rev-parse HEAD` and initial `git status --porcelain`. If either fails, report blocked and stop.\n2. Activate the `delegate-to-subagents` skill for routing and dispatch.\n3. Start one fresh subagent with the instruction “activate the `prd-ralph` skill”, the exact `prd_file`, explicit optional inputs, and all user scope\u002Fstop constraints. Request the worker's exact terminal protocol and summary. Wait for its result before another dispatch.\n4. Interpret the worker result:\n   - Exact `\u003Cpromise>COMPLETE\u003C\u002Fpromise>`: all work is complete; stop.\n   - `\u003Cpromise>TASK_COMPLETE\u003C\u002Fpromise>` plus selected-task summary: one task passed and work remains; enforce caller stop constraints, then dispatch the next fresh worker only if continuation is authorized. If a scope\u002Fstop limit has been reached, report remaining work honestly without claiming COMPLETE.\n   - `\u003Cpromise>BLOCKED\u003C\u002Fpromise>` plus actionable reason: stop and preserve the blocker. Do not retry an unchanged prerequisite, unavailable check, owner condition, or commit gate.\n   - Actual tool\u002Fsubagent failure or missing, contradictory, or invalid protocol: retry with a fresh worker and pass the prior failure\u002Foutput. After three consecutive such failures, stop blocked. Reset this counter only after a valid TASK_COMPLETE. Ordinary blocked work is not a retryable runtime failure.\n5. Define `full_review_scope`: committed diff `review_base_sha..HEAD`, staged and unstaged diffs, and new relevant untracked files, accounting for initial changes.\n6. Only after orchestration stops, read the progress file if available: supplied `progress_file`, otherwise `\u003Cdirname(prd_file)>\u002Fprogress.txt`. Capture durable knowledge, especially tool workarounds, in the target project's existing guidance; preserve owner limits and user scope.\n7. Report complete or blocked accurately, with worker summaries, actionable blocker when present, and `full_review_scope`. A blocked run never claims PRD completion.\n\n## Common Rationalizations\n\nA worker reporting a blocked check is not an invitation to dispatch repeatedly. Continue only on TASK_COMPLETE; required evidence and owner approval stay with the worker's gates.\n\n## Red Flags\n\nStay blind: do not read `prd_file` or any progress file during orchestration, even to select a task or infer completion. Do not activate the `prd-ralph` skill yourself or implement product changes. Workers validate the manifest before interpreting all-complete flags.\n\n## Verification\n\nConfirm dispatches were sequential and fresh, forwarded inputs and constraints were intact, retries were limited to actual runtime\u002Fprotocol failures, and the final status follows the worker protocol. Retain the baseline and full review scope so later review includes committed and uncommitted task changes.\n","# \u002Fprd-ralph-loop\n\n## Overview\n\nDispatch fresh workers until the validated manifest is complete or work is blocked. Workers own intake, selection, execution, verification, progress, and commit audits.\n\n## When to Use\n\nUse when explicitly asked to complete all PRD tasks, rather than one task.\n\n## Inputs\n\n- `prd_file`: required path to the task manifest; if absent, ask and stop.\n- `progress_file`: optional; forward unchanged when supplied, otherwise let the worker use its default.\n- `commit`: optional; forward unchanged when supplied, otherwise retain the worker default `true`.\n- Preserve user scope, owner boundaries, and stop constraints in every dispatch.\n\n## Workflow\n\n1. Record `review_base_sha = git rev-parse HEAD` and initial `git status --porcelain`. If either fails, report blocked and stop.\n2. Activate the `delegate-to-subagents` skill for routing and dispatch.\n3. Start one fresh subagent with the instruction “activate the `prd-ralph` skill”, the exact `prd_file`, explicit optional inputs, and all user scope\u002Fstop constraints. Request the worker's exact terminal protocol and summary. Wait for its result before another dispatch.\n4. Interpret the worker result:\n   - Exact `\u003Cpromise>COMPLETE\u003C\u002Fpromise>`: all work is complete; stop.\n   - `\u003Cpromise>TASK_COMPLETE\u003C\u002Fpromise>` plus selected-task summary: one task passed and work remains; enforce caller stop constraints, then dispatch the next fresh worker only if continuation is authorized. If a scope\u002Fstop limit has been reached, report remaining work honestly without claiming COMPLETE.\n   - `\u003Cpromise>BLOCKED\u003C\u002Fpromise>` plus actionable reason: stop and preserve the blocker. Do not retry an unchanged prerequisite, unavailable check, owner condition, or commit gate.\n   - Actual tool\u002Fsubagent failure or missing, contradictory, or invalid protocol: retry with a fresh worker and pass the prior failure\u002Foutput. After three consecutive such failures, stop blocked. Reset this counter only after a valid TASK_COMPLETE. Ordinary blocked work is not a retryable runtime failure.\n5. Define `full_review_scope`: committed diff `review_base_sha..HEAD`, staged and unstaged diffs, and new relevant untracked files, accounting for initial changes.\n6. Only after orchestration stops, read the progress file if available: supplied `progress_file`, otherwise `\u003Cdirname(prd_file)>\u002Fprogress.txt`. Capture durable knowledge, especially tool workarounds, in the target project's existing guidance; preserve owner limits and user scope.\n7. Report complete or blocked accurately, with worker summaries, actionable blocker when present, and `full_review_scope`. A blocked run never claims PRD completion.\n\n## Common Rationalizations\n\nA worker reporting a blocked check is not an invitation to dispatch repeatedly. Continue only on TASK_COMPLETE; required evidence and owner approval stay with the worker's gates.\n\n## Red Flags\n\nStay blind: do not read `prd_file` or any progress file during orchestration, even to select a task or infer completion. Do not activate the `prd-ralph` skill yourself or implement product changes. Workers validate the manifest before interpreting all-complete flags.\n\n## Verification\n\nConfirm dispatches were sequential and fresh, forwarded inputs and constraints were intact, retries were limited to actual runtime\u002Fprotocol failures, and the final status follows the worker protocol. Retain the baseline and full review scope so later review includes committed and uncommitted task changes.\n",{"name":5,"description":7,"argument-hint":50,"disable-model-invocation":51},"\u003Cprd-file> [progress_file \u003Cpath>] [commit \u003Ctrue|false>]",true,"main","2ce71d590264b43342c52d3011b0097c5ece7e21","skills\u002Fdefault\u002Fprd-ralph-loop","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills","https:\u002F\u002Fgithub.com\u002Fjapurcell","2026-11-11 08:59:34",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":51},[60,63,66],{"tool":61,"command":62},"npx","npx skills add japurcell\u002Fskills --skill prd-ralph-loop",{"tool":64,"command":65},"bunx","bunx skills add japurcell\u002Fskills --skill prd-ralph-loop",{"tool":67,"command":68},"pnpm","pnpm dlx skills add japurcell\u002Fskills --skill prd-ralph-loop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002FSKILL.md",[71,77,81,85,89,93,97,101,105,109,115,119],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"evals\u002Fevals.json","REFERENCE","参考文档",4597,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Fevals.json",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"evals\u002Ffiles\u002Fblocked\u002Fworker.json",129,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fblocked\u002Fworker.json",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"evals\u002Ffiles\u002Fcomplete\u002Fprd.json",306,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fcomplete\u002Fprd.json",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"evals\u002Ffiles\u002Fcomplete\u002Fworker.json",55,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fcomplete\u002Fworker.json",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"evals\u002Ffiles\u002Fdependent\u002Fworker.json",141,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fdependent\u002Fworker.json",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"evals\u002Ffiles\u002Fenriched\u002Fworker.json",151,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fenriched\u002Fworker.json",{"path":98,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":99,"sourceHtmlUrl":100},"evals\u002Ffiles\u002Fincomplete\u002Fprd.json",307,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Fincomplete\u002Fprd.json",{"path":102,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":103,"sourceHtmlUrl":104},"evals\u002Ffiles\u002Finvalid\u002Fprd.json",44,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Finvalid\u002Fprd.json",{"path":106,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":107,"sourceHtmlUrl":108},"evals\u002Ffiles\u002Finvalid\u002Fworker.json",118,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ffiles\u002Finvalid\u002Fworker.json",{"path":110,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":113,"sourceHtmlUrl":114},"evals\u002Fgrade_benchmark.py","SCRIPT","脚本",9692,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Fgrade_benchmark.py",{"path":116,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":117,"sourceHtmlUrl":118},"evals\u002FREADME.md",682,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002FREADME.md",{"path":120,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":121,"sourceHtmlUrl":122},"evals\u002Ftest_grade_benchmark.py",8863,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph-loop\u002Fevals\u002Ftest_grade_benchmark.py",[124,146,161,189,212,233],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":45},"01M6PT0ZTYCN4DHK3SXWS79WSY","spec-create","Create or revise a portable behavioral SPEC for a feature or whole product. Use when specifying a new idea, documenting an existing system for reimplementation, or defining a change while preserving compatibility. Implementation planning is a separate task.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fspec-create\u002FSKILL.md",[130],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[132,133,134,135,136,37,137,40,138,38,139,140,141,41,142,143,144,145,31],"create","spec","spec create","feature","planning","system","Existing","output","change","product","revise","compatibility","behavioral","idea",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":153,"publishedAt":45},"01M6GSVHQ4MY4R4SMS8RY6324Q","prd-ralph","Complete at most one eligible unfinished PRD task, verify it, log progress, and optionally create one scoped commit.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fprd-ralph\u002FSKILL.md",[152],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[29,24,25,132,32,154,155,156,34,157,38,158,159,36,35,160,31],"verify","at","complete","it","log","scoped","id",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":170,"publishedAt":45},"01M6GSYMGHE2FEGEFKD926EJH8","fsdp-style-guide","Mandatory for all UI\u002FUX design, implementation, review, audit, or visual regression tasks. Always use for any work that affects user-facing appearance, behavior, accessibility, branding, layout, navigation, forms, dialogs, alerts, tables, or visual design.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fforest-service\u002Ffsdp-style-guide\u002FSKILL.md",[167],{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师",[171,172,173,174,175,176,177,178,40,179,39,180,181,182,183,184,185,186,187,188,37],"fsdp style guide","style guide","FSDP","style","guide","visual regression","regression","design","visual","review","visual design","alerts","work","branding","layout","audit","ux","behavior",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":45},"01M6GSYHEQARNM7WN0RJA7K7T2","agency-priorities","Provide self-contained USDA strategic goals and Forest Service priorities for agency briefings, proposals, and work-plan alignment. Use when explaining agency direction or evaluating how a project contributes to USDA and Forest Service priorities.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fforest-service\u002Fagency-priorities\u002FSKILL.md",[],[196,197,198,199,200,183,201,202,203,204,205,206,207,208,40,37,209,210,211],"agency priorities","priorities","agency","self","alignment","plan","goals","proposals","direction","how","project","strategic","service","when","briefings","self-contained",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":221,"publishedAt":45},"01M6GSY9VVN8RSJ5QYM540ZJ1D","accomplishment-report","Create a concise Forest Service executive accomplishment report when all work in an ExecPlan is completed, or update its existing report. Use at ExecPlan closeout and when asked to report completed work, agency alignment, and estimated AI-assisted versus human-only time and cost savings.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fforest-service\u002Faccomplishment-report\u002FSKILL.md",[218],{"categoryNo":219,"categoryName":220,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000034","行政与办公人员",[222,223,200,224,132,183,225,226,227,228,155,198,229,208,40,230,231,232,138,209],"report","accomplishment report","cost","concise","human","time","update","only","closeout","savings","execplan",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":247,"publishedAt":45},"01M6GSY7J8ZMCE319P8Y6JZ432","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fwriting-for-agents\u002FSKILL.md",[239,244],{"categoryNo":240,"categoryName":241,"taxonomyType":242,"taxonomyTypeDesc":243},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":245,"categoryName":246,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[248,249,37,40,250,251,209],"writing","writing for agents","documents","editing"]