[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71ESEDVHD9EXN6787XHP7HD":3,"skill-same:01M71ESEDVHD9EXN6787XHP7HD":70},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M71ESEDVHD9EXN6787XHP7HD","writing-for-pstack",null,"Write or tighten an operator prompt for a patina-mode run. Use when the operator asks to write, revise, or review a prompt that will be passed to patina-mode.","patinaproject\u002Fskills","patinaproject","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F229996889?v=4","01M71E58JKTDNY1138WYZK44TR","Patina Project","01M71E58K5GH4K16MV6A8BQ6NZ",1,"MIT","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-pstack\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42],"writing","pstack","for","writing for pstack","review","run","operator","prompt","write","use","revise","tighten","mode","when","2026-11-10 10:12:30",false,"---\nname: writing-for-pstack\ndescription: Write or tighten an operator prompt for a patina-mode run. Use when the operator asks to write, revise, or review a prompt that will be passed to patina-mode.\n---\n\n# Write a prompt for patina-mode\n\nReturn a short prompt that starts one `patina-mode` run. Do not start the run or\nperform the work that the prompt describes.\n\n## Read the current contracts\n\n1. Read the `writing-for-agents` skill in full. Apply its leading-word,\n   positive-phrasing, and completion-criterion rules.\n   Read the Code plugin's `unslop` skill in full and apply it to every\n   response, including clarifications, the prompt, and accompanying prose.\n2. Open the active `patina-mode` skill's `SKILL.md` from the skills catalog.\n   Read it in full without executing it. Treat its Playbooks section as the\n   routing source of truth.\n3. Select the one governing playbook that most specifically matches the\n   operator's work. Read that playbook in full from the path named by\n   `patina-mode`; let it invoke other playbooks internally. Map each needed\n   operator concept to the playbook's canonical term before drafting. Use that\n   term in the prompt with the playbook's meaning. For example, express an\n   Orchestrate worker-concurrency limit as `Set the in-flight cap to \u003Climit>\n   concurrent workers.` Leave unused concepts out. Other playbooks supply\n   their own vocabulary.\n4. When a repository is in scope, read `AGENTS.md` at the repository root and\n   the repository documents that it says govern the work.\n\nIf a required skill is unavailable, stop and name the missing skill.\n\n## Keep only operator-owned facts\n\nExtract these facts from the intent or draft:\n\n- the work definition;\n- ownership boundaries with other sessions or people;\n- the proof that must exist;\n- a checkable done predicate;\n- any condition that requires a person's decision.\n\nResolve execution-changing ambiguity before drafting. Use the operator's\ncontext and the selected playbook first. If they leave materially different\ninstructions possible, ask one concise question before expressing either.\n\nFor Orchestrate, distinguish the program objective and its units from workers\nand the in-flight cap. An in-flight cap limits concurrent workers; an issue\ncount does not establish that cap. An issue can require several units. Keep\nissue counts, workers, threads, and execution capacity distinct. Use standing\norders, inbox, drain, frontier, and verification ledger only for the concepts\nthe playbook defines.\n\nRemove instructions that the selected playbook, a principle skill, project\nmemory, or a repository document already owns. For each removed instruction,\nrecord the exact owning playbook path, principle skill, memory file, or\nrepository path for the reply. Keep an operator-specific limit or exception\neven when its general mechanism already has an owner.\n\n## Write the prompt\n\nWrite the shortest usable prompt beginning with `\u002Fpatina-mode`. Use concise\nplain-English sentences, one idea per sentence. Split dense instructions at\ntheir logical boundaries while preserving every operator requirement:\n\n```text\n\u002Fpatina-mode \u003Cprompt>\n```\n\nConnect the proof to the done condition. Include an ownership boundary only\nwhen the operator sets one. Name the governing playbook once in the opening\nwith `Use \u003Ccanonical playbook name> to`. Let it own any internal composition;\ndo not name alternatives or use field labels.\n\nFor Autopilot-full and Orchestrate, begin the text after `\u002Fpatina-mode` with\n`Go, be fully autonomous, and use \u003Ccanonical playbook name> to`. Call the work\nthe `program objective` and retain the proof and done condition. Those words\nsupply the route, standing objective, session override, and authorization to\nstart.\n\nWhen the intent requires a person's decision, name its condition and owner as\na checkpoint gate. State that independent work continues while the gate waits.\nLet the selected playbook own storage, batching, and notification mechanics.\n\n## Check the result\n\nApply `unslop` to the entire response on every draft and revision. Preserve\ncanonical playbook terms when editing; remove filler around them. Then confirm\nall of these statements:\n\n- The prompt names exactly one governing `patina-mode` playbook.\n- The prompt begins with `\u002Fpatina-mode` and uses concise sentences. Independent\n  requirements have their own sentences when combining them would be dense.\n- Every operator requirement survives: ownership, scope, limits, proof,\n  completion, and escalation. Earlier requirements remain unless the operator\n  changes them in the revision.\n- Each selected playbook concept expressed in the prompt keeps its canonical\n  name and meaning. Every limit names what it counts. Unused concepts stay out.\n- The done predicate contains an observable result, count, state, or artifact.\n- Every line changes the run beyond what its governing documents already say.\n- An Autopilot-full or Orchestrate prompt opens with `\u002Fpatina-mode Go, be fully\n  autonomous, and use \u003Ccanonical playbook name> to` and contains `program objective`.\n- A human escalation appears as a checkpoint gate, never as a mid-run question.\n- The prompt uses positive, direct instructions.\n\nReturn the prompt in one fenced text block. If you removed draft instructions,\nfollow the block with `Removed from the draft` and name each removed rule's\nowner. Otherwise, return only the prompt.\n","# Write a prompt for patina-mode\n\nReturn a short prompt that starts one `patina-mode` run. Do not start the run or\nperform the work that the prompt describes.\n\n## Read the current contracts\n\n1. Read the `writing-for-agents` skill in full. Apply its leading-word,\n   positive-phrasing, and completion-criterion rules.\n   Read the Code plugin's `unslop` skill in full and apply it to every\n   response, including clarifications, the prompt, and accompanying prose.\n2. Open the active `patina-mode` skill's `SKILL.md` from the skills catalog.\n   Read it in full without executing it. Treat its Playbooks section as the\n   routing source of truth.\n3. Select the one governing playbook that most specifically matches the\n   operator's work. Read that playbook in full from the path named by\n   `patina-mode`; let it invoke other playbooks internally. Map each needed\n   operator concept to the playbook's canonical term before drafting. Use that\n   term in the prompt with the playbook's meaning. For example, express an\n   Orchestrate worker-concurrency limit as `Set the in-flight cap to \u003Climit>\n   concurrent workers.` Leave unused concepts out. Other playbooks supply\n   their own vocabulary.\n4. When a repository is in scope, read `AGENTS.md` at the repository root and\n   the repository documents that it says govern the work.\n\nIf a required skill is unavailable, stop and name the missing skill.\n\n## Keep only operator-owned facts\n\nExtract these facts from the intent or draft:\n\n- the work definition;\n- ownership boundaries with other sessions or people;\n- the proof that must exist;\n- a checkable done predicate;\n- any condition that requires a person's decision.\n\nResolve execution-changing ambiguity before drafting. Use the operator's\ncontext and the selected playbook first. If they leave materially different\ninstructions possible, ask one concise question before expressing either.\n\nFor Orchestrate, distinguish the program objective and its units from workers\nand the in-flight cap. An in-flight cap limits concurrent workers; an issue\ncount does not establish that cap. An issue can require several units. Keep\nissue counts, workers, threads, and execution capacity distinct. Use standing\norders, inbox, drain, frontier, and verification ledger only for the concepts\nthe playbook defines.\n\nRemove instructions that the selected playbook, a principle skill, project\nmemory, or a repository document already owns. For each removed instruction,\nrecord the exact owning playbook path, principle skill, memory file, or\nrepository path for the reply. Keep an operator-specific limit or exception\neven when its general mechanism already has an owner.\n\n## Write the prompt\n\nWrite the shortest usable prompt beginning with `\u002Fpatina-mode`. Use concise\nplain-English sentences, one idea per sentence. Split dense instructions at\ntheir logical boundaries while preserving every operator requirement:\n\n```text\n\u002Fpatina-mode \u003Cprompt>\n```\n\nConnect the proof to the done condition. Include an ownership boundary only\nwhen the operator sets one. Name the governing playbook once in the opening\nwith `Use \u003Ccanonical playbook name> to`. Let it own any internal composition;\ndo not name alternatives or use field labels.\n\nFor Autopilot-full and Orchestrate, begin the text after `\u002Fpatina-mode` with\n`Go, be fully autonomous, and use \u003Ccanonical playbook name> to`. Call the work\nthe `program objective` and retain the proof and done condition. Those words\nsupply the route, standing objective, session override, and authorization to\nstart.\n\nWhen the intent requires a person's decision, name its condition and owner as\na checkpoint gate. State that independent work continues while the gate waits.\nLet the selected playbook own storage, batching, and notification mechanics.\n\n## Check the result\n\nApply `unslop` to the entire response on every draft and revision. Preserve\ncanonical playbook terms when editing; remove filler around them. Then confirm\nall of these statements:\n\n- The prompt names exactly one governing `patina-mode` playbook.\n- The prompt begins with `\u002Fpatina-mode` and uses concise sentences. Independent\n  requirements have their own sentences when combining them would be dense.\n- Every operator requirement survives: ownership, scope, limits, proof,\n  completion, and escalation. Earlier requirements remain unless the operator\n  changes them in the revision.\n- Each selected playbook concept expressed in the prompt keeps its canonical\n  name and meaning. Every limit names what it counts. Unused concepts stay out.\n- The done predicate contains an observable result, count, state, or artifact.\n- Every line changes the run beyond what its governing documents already say.\n- An Autopilot-full or Orchestrate prompt opens with `\u002Fpatina-mode Go, be fully\n  autonomous, and use \u003Ccanonical playbook name> to` and contains `program objective`.\n- A human escalation appears as a checkpoint gate, never as a mid-run question.\n- The prompt uses positive, direct instructions.\n\nReturn the prompt in one fenced text block. If you removed draft instructions,\nfollow the block with `Removed from the draft` and name each removed rule's\nowner. Otherwise, return only the prompt.\n",{"name":5,"description":7},"main","e6ee720f466a8344a52abd87679191fadde3b63f","plugins\u002Fwork\u002Fskills\u002Fwriting-for-pstack","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills","https:\u002F\u002Fgithub.com\u002Fpatinaproject","https:\u002F\u002Fwww.patinaproject.com","The best way to pick your next pair of boots or shoes.","2026-11-12 00:44:02",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add patinaproject\u002Fskills --skill writing-for-pstack",{"tool":62,"command":63},"bunx","bunx skills add patinaproject\u002Fskills --skill writing-for-pstack",{"tool":65,"command":66},"pnpm","pnpm dlx skills add patinaproject\u002Fskills --skill writing-for-pstack","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-pstack\u002FSKILL.md",true,[],[71,79,91,114,138,154],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":78},"01M72KDQJR99954NE224VB3KZ2","code-review","Review the changes since a fixed point (commit, branch, tag, or merge-base) along five axes: Standards (does the code follow this repo's documented coding standards?), Spec (does the code match what the originating issue\u002Fspec asked for?), Evidence (does each claim in the pull request have evidence that shows it?), Bugs (does the changed code have logic errors, unhandled states, races, or regressions?), and Security (does the change open injection, auth, secret, input, or CI workflow holes?). Runs the reviews in parallel sub-agents, tags every finding Important, Nit, or Pre-existing, and reports them side by side with what blocks merge. Given an earlier reviewed head and its findings, it reviews only the newer commits, rechecks the earlier findings, and never repeats one. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fcode\u002Fskills\u002Fcode-review\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":87,"publishedAt":43},"01M71ESCJ0SSJFFENF8HYDKBTJ","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[85,86],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[29,31,88,42,89,38,90],"writing for agents","editing","documents",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":43},"01M71ESA1NN9WVMD2HA5Z1RRDY","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwizard\u002FSKILL.md",[],[93,98,99,100,31,101,102,103,38,104,42,105,106,107,108,109,110,111,112,113],"provisioning infrastructure","ci","up","setting","running","only","invoke","Bash","one","interactive","can","credentials","dashboard","generate","human","secrets",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":43},"01M71ES8FAN567N3JEPG8W6AS1","wayfinder","Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[116,108,121,122,123,124,125,126,127,128,106,129,130,131,132,133,134,135,136,137],"destination","at","tickets","tracker","plan","work","agent session","as","map","more","true","decision","session","time","chunk","one at a time","shared",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":43},"01M71ES6PWJPKBW8R24YFH4PY6","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[145,146,147,131,148,149,150,151,152,153],"wait","wait what","last","stop","it","land","re","pitch","message",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":43},"01M71ES4ZXKEGMMYS0NFPEBQ80","using-github","Work with repository settings, pull requests, reviews, checks, and releases on GitHub. Use for GitHub operations other than issue tracking.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fusing-github\u002FSKILL.md",[],[161,162,31,163,164,165,38,166,167,168,169,170,171,126,172,173,174,175],"using github","github","issue tracking","tracking","github operations","issue","settings","repository","operations","releases","requests","reviews","pull requests","with","pull"]