[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RSHXCSHJRS736CT99AMR3":3,"skill-same:01M71RSHXCSHJRS736CT99AMR3":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":73},"01M71RSHXCSHJRS736CT99AMR3","pstack-how",null,"Use for \"how does X work\", code walkthroughs before changing something, and placement \u002F ownership \u002F layering questions (\"where should this live\", \"which package owns this\", \"is this the right layer\"). Explains subsystem architecture, runtime flow, onboarding mental models. Use why for motivation.","dmae97\u002Fomk","dmae97","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F146327957?v=4","01M71RJRBWDNKEJ1A2DZVES8X1","01M71RJRCYHNT7E83M0Q42V6SJ",152,"MIT","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Fresources\u002Fpstack\u002Fskills\u002Fhow\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"pstack how","how","pstack","live","owns","layering","for","layer","which","true","questions","architecture","runtime","models","use","work","why","flow","package","code","2026-11-10 13:02:02",false,"---\nname: pstack-how\ndescription: \"Use for \\\"how does X work\\\", code walkthroughs before changing something, and placement \u002F ownership \u002F layering questions (\\\"where should this live\\\", \\\"which package owns this\\\", \\\"is this the right layer\\\"). Explains subsystem architecture, runtime flow, onboarding mental models. Use why for motivation.\"\ndisable-model-invocation: true\n---\n\n# How\n\nExplore the codebase to answer \"how does X work?\" questions. Produce architectural explanations at the level of a senior engineer onboarding onto a subsystem, enough to build a working mental model, not so much that it reads like annotated source code.\n\nEvery spawn is a `subagent` call with read-only exploration scope. Explorers use the `how explorer` line in the pstack settings file (`~\u002F.omk\u002Fagent\u002Fpstack-models.md`, written by `\u002Fskill:pstack-setup-pstack`), and every explainer uses the `how explainer` line. OMK subagents inherit the session model, so a missing file or line, or an `auto` or `inherit-parent` entry, means the session model. If a configured model is not in the OMK catalog, run that seat on the session model and say so; never claim a cross-model seat you did not run. OMK subagents inherit the session model and effort; pass no model, effort, or speed fields.\n\n## 1. Assess complexity\n\nIf the scope is ambiguous, state your interpretation and explore. The user can redirect.\n\n- **Simple** (a single module, a small utility, a narrow question such as \"how does function X work\"): no explorers. Spawn one explainer that explores and explains in one pass, built from `references\u002Fexplainer-prompt.md` without the explorer-findings section. Go to step 4.\n- **Complex** (a subsystem spanning multiple files or services, a cross-cutting feature, a full architectural overview): go to step 2.\n\nWhen in doubt, take the simple path.\n\n**Subagent tool.** Spawns in this skill use OMK's `subagent` extension. Call it with `agent`, `task`, and `agentScope`, and use `tasks: [{agent, task}, ...]` for a parallel fan-out. Keep the prompt and inherit the session model. Pass no model, effort, or speed fields. If the `subagent` extension is not loaded or the project is not trusted, run each role yourself, one after another.\n\n## 2. Explore (complex only)\n\nDecompose the question into 2 to 4 angles, each a distinct slice of the subsystem. Spawn all explorers in a single message, each with `references\u002Fexplorer-prompt.md` and its angle filled in.\n\n## 3. Synthesize (complex only)\n\nOnce all explorers have returned, spawn one explainer with `references\u002Fexplainer-prompt.md` and every explorer's findings filled in.\n\n## 4. Present\n\nPresent the explainer's output. Light edits for clarity or context from the conversation are fine. Do not substantially rewrite it.\n\n## Output format\n\nThe explanation uses the sections defined in `references\u002Fexplainer-prompt.md`, dropping any that do not apply: Overview, Key Concepts, How It Works, Where Things Live, Gotchas.\n","# How\n\nExplore the codebase to answer \"how does X work?\" questions. Produce architectural explanations at the level of a senior engineer onboarding onto a subsystem, enough to build a working mental model, not so much that it reads like annotated source code.\n\nEvery spawn is a `subagent` call with read-only exploration scope. Explorers use the `how explorer` line in the pstack settings file (`~\u002F.omk\u002Fagent\u002Fpstack-models.md`, written by `\u002Fskill:pstack-setup-pstack`), and every explainer uses the `how explainer` line. OMK subagents inherit the session model, so a missing file or line, or an `auto` or `inherit-parent` entry, means the session model. If a configured model is not in the OMK catalog, run that seat on the session model and say so; never claim a cross-model seat you did not run. OMK subagents inherit the session model and effort; pass no model, effort, or speed fields.\n\n## 1. Assess complexity\n\nIf the scope is ambiguous, state your interpretation and explore. The user can redirect.\n\n- **Simple** (a single module, a small utility, a narrow question such as \"how does function X work\"): no explorers. Spawn one explainer that explores and explains in one pass, built from `references\u002Fexplainer-prompt.md` without the explorer-findings section. Go to step 4.\n- **Complex** (a subsystem spanning multiple files or services, a cross-cutting feature, a full architectural overview): go to step 2.\n\nWhen in doubt, take the simple path.\n\n**Subagent tool.** Spawns in this skill use OMK's `subagent` extension. Call it with `agent`, `task`, and `agentScope`, and use `tasks: [{agent, task}, ...]` for a parallel fan-out. Keep the prompt and inherit the session model. Pass no model, effort, or speed fields. If the `subagent` extension is not loaded or the project is not trusted, run each role yourself, one after another.\n\n## 2. Explore (complex only)\n\nDecompose the question into 2 to 4 angles, each a distinct slice of the subsystem. Spawn all explorers in a single message, each with `references\u002Fexplorer-prompt.md` and its angle filled in.\n\n## 3. Synthesize (complex only)\n\nOnce all explorers have returned, spawn one explainer with `references\u002Fexplainer-prompt.md` and every explorer's findings filled in.\n\n## 4. Present\n\nPresent the explainer's output. Light edits for clarity or context from the conversation are fine. Do not substantially rewrite it.\n\n## Output format\n\nThe explanation uses the sections defined in `references\u002Fexplainer-prompt.md`, dropping any that do not apply: Overview, Key Concepts, How It Works, Where Things Live, Gotchas.\n",{"name":5,"description":7,"disable-model-invocation":53},true,"main","ea03fcf76b438f12f0cebcd6b255d24d4cb52741","packages\u002Fcoding-agent\u002Fresources\u002Fpstack\u002Fskills\u002Fhow",29,"https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk","https:\u002F\u002Fgithub.com\u002Fdmae97","2026-11-11 16:40:29",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":53},[63,66,69],{"tool":64,"command":65},"npx","npx skills add dmae97\u002Fomk --skill pstack-how",{"tool":67,"command":68},"bunx","bunx skills add dmae97\u002Fomk --skill pstack-how",{"tool":70,"command":71},"pnpm","pnpm dlx skills add dmae97\u002Fomk --skill pstack-how","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Fresources\u002Fpstack\u002Fskills\u002Fhow\u002FSKILL.md",[74,80],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fexplainer-prompt.md","REFERENCE","参考文档",3085,"https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Fresources\u002Fpstack\u002Fskills\u002Fhow\u002Freferences\u002Fexplainer-prompt.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fexplorer-prompt.md",1135,"https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Fresources\u002Fpstack\u002Fskills\u002Fhow\u002Freferences\u002Fexplorer-prompt.md",[85,96,110,123,134,142],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":92,"publishedAt":48},"01M71RZKQCQ4G7MP08TE3QQ0PD","valid-skill","A valid skill for testing purposes.","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Fvalid-skill\u002FSKILL.md",[91],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[93,94,95,34],"valid skill","valid","testing",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":48},"01M71RZJ8YHH8GKADPTSZBCJ1T","unknown-field","A skill with an unknown frontmatter field.","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Funknown-field\u002FSKILL.md",[102],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[104,105,106,107,108,109],"unknown","unknown field","a skill","frontmatter","with","unknown frontmatter field",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":48},"01M71RZH4FVEENABTV8WTQ5HTS","nested-child","Nested skill should be ignored.","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Froot-skill-preferred\u002Fnested-child\u002FSKILL.md",[116],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[118,119,120,121,122],"nested child","child","nested","ignored","nested skill",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":48},"01M71RZFZYSXRRVY5M8HP05NJV","root-skill-preferred","Root skill should win.","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Froot-skill-preferred\u002FSKILL.md",[129],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[131,132,133],"root","root skill preferred","root skill",{"skillNo":135,"name":136,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":48},"01M71RZEQDH7RZ1PH36G7GPN9N","no-frontmatter","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Fno-frontmatter\u002FSKILL.md",[139],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[107,141],"no frontmatter",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"publishedAt":48},"01M71RZDC0QR3ZJQ549N3H94Y4","child-skill","A nested skill in a subdirectory.","https:\u002F\u002Fgithub.com\u002Fdmae97\u002Fomk\u002Fblob\u002Fmain\u002Fpackages\u002Fcoding-agent\u002Ftest\u002Ffixtures\u002Fskills\u002Fnested\u002Fchild-skill\u002FSKILL.md",[148],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[150,119,122,120],"child skill"]