[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CWE6QMY0VF75JDSC07CS82":3,"skill-same:01M6CWE6QMY0VF75JDSC07CS82":148},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6CWE6QMY0VF75JDSC07CS82","specralph-prompts",null,"Author, install, and validate custom prompt files for specralph (the ralph CLI agentic loop runner). Use this skill whenever creating or editing ralph prompt files, preparing tasks to run with ralph run, writing prompts that must stop the loop via the completion signal, or debugging a ralph loop that never stops or stops too early.","iyaki\u002Fspecralph","iyaki","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F18445228?v=4","01M6CWDKVQM9A2B94EYA64V7TJ","Ivan Yakimovicz","01M6CWDKZP8ZEEA3459CSK9ZKP",6,"MIT","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fskill.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"specralph prompts","prompts","prompt","runner","ralph loop","files","stop","never","use","install","writing","editing","ralph","loop","run","tasks","debugging","validate","agentic","cli","2026-11-10 10:12:30",false,"---\nname: specralph-prompts\ndescription: Author, install, and validate custom prompt files for specralph (the ralph CLI agentic loop runner). Use this skill whenever creating or editing ralph prompt files, preparing tasks to run with ralph run, writing prompts that must stop the loop via the completion signal, or debugging a ralph loop that never stops or stops too early.\n---\n\n# Specralph Prompt Authoring\n\nRalph sends a prompt to an AI agent and loops until the agent's output contains the completion signal. A prompt file is plain Markdown living in the configured prompts directory; its filename (without `.md`) is how it is invoked. Getting the file right means the loop does exactly one task and stops cleanly.\n\n## The one rule that matters\n\nEvery prompt must tell the agent to output the completion signal when the work is done. Without it, the loop only stops at max iterations — wasted runs and half-finished work. Either form works:\n\n- `\u003CCOMPLETION_SIGNAL>` — ralph replaces it at runtime with the real tag\n- `\u003Cpromise>COMPLETE\u003C\u002Fpromise>` — the literal tag, case-sensitive\n\nPut it in the prompt's stop condition, for example:\n\n```markdown\n## Stop Condition\n\n- After completing the selected task, stop. Do NOT start another task.\n- If everything is complete, reply with: `\u003CCOMPLETION_SIGNAL>`\n```\n\n## Workflow\n\n1. Study the conventions from the binary itself: `ralph prompts list` shows available prompts; `ralph prompts show build` (or `plan`) shows the built-in structure worth imitating. Newer ralph versions also provide `ralph prompts guide` (the full authoring contract) and `ralph prompts validate \u003Cname>` (static checks on a prompt file) — prefer them when available.\n2. Write the prompt as `\u003Cname>.md` in the prompts directory (config field `prompts-dir`, default `$HOME\u002F.ralph`). An optional YAML frontmatter `description:` field gives `ralph prompts list` a useful summary.\n3. Structure it like the built-ins: objective, study inputs (specs, implementation plan), single-task steps, validation, stop condition with the signal. One task per run — ralph loops, the agent picks one task, validates, commits.\n4. Run it: `ralph run \u003Cname>`, or the alias `ralph \u003Cname>` when `\u003Cname>` is not a registered subcommand. Ralph prints the resolved prompt, then enters the loop.\n5. Verify the loop stops: the agent's output must contain the literal signal. A run that never stops means the prompt is missing the signal — fix the prompt file, not the config.\n\n## Notes\n\n- The `scope` argument (`ralph plan my-feature`) only affects built-in prompts today; custom prompts must inline whatever context they need.\n- Distribute this skill into a project with `ralph skill install [dir]` (default `.agents\u002Fskills`) so agents working there discover these conventions; the installed skill always matches the ralph binary version that installs it.\n","# Specralph Prompt Authoring\n\nRalph sends a prompt to an AI agent and loops until the agent's output contains the completion signal. A prompt file is plain Markdown living in the configured prompts directory; its filename (without `.md`) is how it is invoked. Getting the file right means the loop does exactly one task and stops cleanly.\n\n## The one rule that matters\n\nEvery prompt must tell the agent to output the completion signal when the work is done. Without it, the loop only stops at max iterations — wasted runs and half-finished work. Either form works:\n\n- `\u003CCOMPLETION_SIGNAL>` — ralph replaces it at runtime with the real tag\n- `\u003Cpromise>COMPLETE\u003C\u002Fpromise>` — the literal tag, case-sensitive\n\nPut it in the prompt's stop condition, for example:\n\n```markdown\n## Stop Condition\n\n- After completing the selected task, stop. Do NOT start another task.\n- If everything is complete, reply with: `\u003CCOMPLETION_SIGNAL>`\n```\n\n## Workflow\n\n1. Study the conventions from the binary itself: `ralph prompts list` shows available prompts; `ralph prompts show build` (or `plan`) shows the built-in structure worth imitating. Newer ralph versions also provide `ralph prompts guide` (the full authoring contract) and `ralph prompts validate \u003Cname>` (static checks on a prompt file) — prefer them when available.\n2. Write the prompt as `\u003Cname>.md` in the prompts directory (config field `prompts-dir`, default `$HOME\u002F.ralph`). An optional YAML frontmatter `description:` field gives `ralph prompts list` a useful summary.\n3. Structure it like the built-ins: objective, study inputs (specs, implementation plan), single-task steps, validation, stop condition with the signal. One task per run — ralph loops, the agent picks one task, validates, commits.\n4. Run it: `ralph run \u003Cname>`, or the alias `ralph \u003Cname>` when `\u003Cname>` is not a registered subcommand. Ralph prints the resolved prompt, then enters the loop.\n5. Verify the loop stops: the agent's output must contain the literal signal. A run that never stops means the prompt is missing the signal — fix the prompt file, not the config.\n\n## Notes\n\n- The `scope` argument (`ralph plan my-feature`) only affects built-in prompts today; custom prompts must inline whatever context they need.\n- Distribute this skill into a project with `ralph skill install [dir]` (default `.agents\u002Fskills`) so agents working there discover these conventions; the installed skill always matches the ralph binary version that installs it.\n",{"name":5,"description":7},"main","ff800856a182518c165b7d3edc898200e74d5906","internal\u002Fcli",0,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph","https:\u002F\u002Fgithub.com\u002Fiyaki","https:\u002F\u002Fiyaki.ar","Engineering Leader & Maker | Tech Generalist with 10+ years of experiece","2026-11-05 00:58:29",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add iyaki\u002Fspecralph --skill specralph-prompts",{"tool":64,"command":65},"bunx","bunx skills add iyaki\u002Fspecralph --skill specralph-prompts",{"tool":67,"command":68},"pnpm","pnpm dlx skills add iyaki\u002Fspecralph --skill specralph-prompts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fskill.md",true,[72,78,82,86,92,96,100,104,108,112,116,120,124,128,132,136,140,144],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"cmd_config_test.go","SCRIPT","脚本",3794,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fcmd_config_test.go",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"cmd_test.go",10534,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fcmd_test.go",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"cmd.go",1822,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fcmd.go",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"guide.md","REFERENCE","参考文档",2183,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fguide.md",{"path":93,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":94,"sourceHtmlUrl":95},"init_helpers_test.go",29540,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Finit_helpers_test.go",{"path":97,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":98,"sourceHtmlUrl":99},"init_integration_test.go",5086,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Finit_integration_test.go",{"path":101,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":102,"sourceHtmlUrl":103},"init_internal_test.go",20617,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Finit_internal_test.go",{"path":105,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":106,"sourceHtmlUrl":107},"init_test.go",1098,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Finit_test.go",{"path":109,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":110,"sourceHtmlUrl":111},"init.go",23992,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Finit.go",{"path":113,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":114,"sourceHtmlUrl":115},"prompts_test.go",18323,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fprompts_test.go",{"path":117,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":118,"sourceHtmlUrl":119},"prompts.go",10498,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fprompts.go",{"path":121,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":122,"sourceHtmlUrl":123},"run_internal_test.go",8638,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Frun_internal_test.go",{"path":125,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":126,"sourceHtmlUrl":127},"run_test.go",14860,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Frun_test.go",{"path":129,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":130,"sourceHtmlUrl":131},"run.go",11153,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Frun.go",{"path":133,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":134,"sourceHtmlUrl":135},"skill_test.go",6149,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fskill_test.go",{"path":137,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":138,"sourceHtmlUrl":139},"skill.go",2241,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fskill.go",{"path":141,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":142,"sourceHtmlUrl":143},"version_test.go",864,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fversion_test.go",{"path":145,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":146,"sourceHtmlUrl":147},"version.go",444,"https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Finternal\u002Fcli\u002Fversion.go",[149,155,160,191,211,229],{"skillNo":150,"name":151,"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":152,"categories":153,"keywords":154,"publishedAt":44},"01M6CWEC1DAE1BVGQX508075KK","commands","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002Fspecs\u002Fcommands\u002Fskill.md",[],[151],{"skillNo":156,"name":5,"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":157,"categories":158,"keywords":159,"publishedAt":44},"01M6CWE4C6DK17C3S0C68SBZEN","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fspecralph-prompts\u002FSKILL.md",[],[25,24],{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":171,"publishedAt":44},"01M6CWE0NC3W3AAHSN55FKG1RP","spec-creator","Create, update, or review engineering-grade technical specifications for a codebase, following spec-driven development (SDD) conventions. Use whenever the user asks for a spec, requirements or design doc, feature specification, API contract, data model, or wants a feature planned on paper before implementation — including phrases like \"write a spec for X\", \"draft the spec first\", \"update the specs\", or any spec-first workflow (e.g. with Ralph). Produces implementation-ready, testable specs using the bundled SPEC_TEMPLATE.md.","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fspec-creator\u002FSKILL.md",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":169,"taxonomyTypeDesc":170},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[172,173,174,175,176,177,178,179,180,181,182,183,184,185,36,186,187,188,189,190],"spec","spec creator","design","review","workflow","development","create","update","data","doc","api","design doc","template","model","write","ready","specification","api contract","sdd",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":198,"publishedAt":44},"01M6CWDWGGY4PFB8MQ4F620XYA","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002FSKILL.md",[197],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[199,38,32,200,201,202,203,204,205,206,207,208,178,209,210],"skill creator","evals","optimize","edit","existing skill","improve","performance","run evals","test","variance analysis","benchmark","analysis",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":44},"01M6CWDS8D23CXB1WYFZBYNBAJ","agent-spec-creation","Create or update agent integration specs before implementation. Use this whenever a request is about defining how a new or existing agent should behave in Ralph.","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagent-spec-creation\u002FSKILL.md",[217],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[172,219,220,221,178,179,222,223,36,32,224,225,226,227,228],"agent spec creation","creation","update agent","integration","how","implementation","behave","about","Existing","request",{"skillNo":230,"name":231,"nameZh":6,"description":232,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":233,"categories":234,"keywords":236,"publishedAt":44},"01M6CWDP6PYR2TKR6DNKN8FE1Q","agent-implementation","Implement or update support for an underlying agent CLI in Ralph after specs are defined, including factory wiring and tests.","https:\u002F\u002Fgithub.com\u002Fiyaki\u002Fspecralph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagent-implementation\u002FSKILL.md",[235],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[237,224,238,239,179,36,240,241,242,243,43],"agent implementation","implement","support","factory","tests","for","wiring"]