[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FYRTWDW244DVFRDEE6R7Z":3,"skill-same:01M71FYRTWDW244DVFRDEE6R7Z":61},{"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":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":14,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M71FYRTWDW244DVFRDEE6R7Z","refocus",null,"ALWAYS invoke this skill when running ad hoc commands or writing code without a spec inside a repository whose root contains `spx\u002F`.","outcomeeng\u002Fplugins","outcomeeng","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F257335685?v=4","01M71FRVRF36XYR3HRSCGFHK2R","Outcome Engineering","01M71FRVS4BZG17DWANFJ7EPNY",1,"MIT","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Fproduct-tree\u002Fskills\u002Frefocus\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"running","ad","read","tool","repository","spec","commands","grep","writing","use","invoke","when","code","root","2026-11-10 10:12:30",false,"---\nname: refocus\ndescription: >-\n  ALWAYS invoke this skill when running ad hoc commands or writing code without a spec inside a repository whose root contains `spx\u002F`.\nallowed-tools: Read, Glob, Grep, {{! tool('use_skill') !}}\n---\n\n\u003Cobjective>\nAd hoc work re-focused onto the strict product-tree methodology.\n\u003C\u002Fobjective>\n\n\u003Cdiagnosis>\n**What went wrong:**\n\nClaude left the path of the product-tree `\u002Fapply` flow. One or more of these happened:\n\n- Claude ran ad hoc commands or tool calls instead of writing tests that provide the debuggability now needed.\n- Claude executed throwaway commands to \"see what the API returns\" instead of writing a proper contract test that will help again 6 months from now when the API has changed.\n- Claude made changes or ran operations without loading the product-tree node with `\u002Fcontextualize` first.\n\n**Why it matters:**\n\nAd hoc commands cost as much as a proper test, require user permission (this is how the user noticed the ad hoc work), and block progress toward the goal.\n\nEvidence established through `\u002Fverify` serves Claude and other agents again in the future; when `\u002Fverify` selects test, it delegates generic test decisions through `\u002Ftest` before language-specific expression. The debugging or exploration done without following `\u002Fapply` is reworked from scratch when the spec changes.\n\n\u003C\u002Fdiagnosis>\n\n\u003Cprocess>\n\n**Step 1 — Stop the ad hoc work**\n\nRun no further ad hoc commands.\n\n**Step 2 — Assess the damage**\n\nReview what has been produced so far:\n\n- Ad hoc commands or tool calls run: note any useful information but do not continue in this mode.\n- Ad hoc scripts or debug code written: leave them uncommitted and report their paths to the operator.\n- Implementation written without tests: keep the code but do not commit it.\n- Tests written without loading context: the tests may be wrong — verify after Step 3 of `\u002Fapply`.\n\n**Step 3 — Resume the flow**\n\nUse skill `product-tree:apply`.\n\n\u003C\u002Fprocess>\n\n\u003Csuccess_criteria>\n\n- Ad hoc commands stopped.\n- The `\u002Fapply` skill is invoked and proper flow started from Step 1.\n- No throwaway scripts or debug code written, and any already written are left uncommitted and reported.\n\n\u003C\u002Fsuccess_criteria>\n","\u003Cobjective>\nAd hoc work re-focused onto the strict product-tree methodology.\n\u003C\u002Fobjective>\n\n\u003Cdiagnosis>\n**What went wrong:**\n\nClaude left the path of the product-tree `\u002Fapply` flow. One or more of these happened:\n\n- Claude ran ad hoc commands or tool calls instead of writing tests that provide the debuggability now needed.\n- Claude executed throwaway commands to \"see what the API returns\" instead of writing a proper contract test that will help again 6 months from now when the API has changed.\n- Claude made changes or ran operations without loading the product-tree node with `\u002Fcontextualize` first.\n\n**Why it matters:**\n\nAd hoc commands cost as much as a proper test, require user permission (this is how the user noticed the ad hoc work), and block progress toward the goal.\n\nEvidence established through `\u002Fverify` serves Claude and other agents again in the future; when `\u002Fverify` selects test, it delegates generic test decisions through `\u002Ftest` before language-specific expression. The debugging or exploration done without following `\u002Fapply` is reworked from scratch when the spec changes.\n\n\u003C\u002Fdiagnosis>\n\n\u003Cprocess>\n\n**Step 1 — Stop the ad hoc work**\n\nRun no further ad hoc commands.\n\n**Step 2 — Assess the damage**\n\nReview what has been produced so far:\n\n- Ad hoc commands or tool calls run: note any useful information but do not continue in this mode.\n- Ad hoc scripts or debug code written: leave them uncommitted and report their paths to the operator.\n- Implementation written without tests: keep the code but do not commit it.\n- Tests written without loading context: the tests may be wrong — verify after Step 3 of `\u002Fapply`.\n\n**Step 3 — Resume the flow**\n\nUse skill `product-tree:apply`.\n\n\u003C\u002Fprocess>\n\n\u003Csuccess_criteria>\n\n- Ad hoc commands stopped.\n- The `\u002Fapply` skill is invoked and proper flow started from Step 1.\n- No throwaway scripts or debug code written, and any already written are left uncommitted and reported.\n\n\u003C\u002Fsuccess_criteria>\n",{"name":5,"description":7,"allowed-tools":38},"Read, Glob, Grep, {{! tool('use_skill') !}}","main","978d51c51d68c99cffb2ba48f7cad9d2f07e5738","src\u002Fplugins\u002Fproduct-tree\u002Fskills\u002Frefocus","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins","https:\u002F\u002Fgithub.com\u002Foutcomeeng","https:\u002F\u002Foutcome.engineering","Spec-driven development for AI-assisted engineering","2026-11-12 11:34:11",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add outcomeeng\u002Fplugins --skill refocus",{"tool":53,"command":54},"bunx","bunx skills add outcomeeng\u002Fplugins --skill refocus",{"tool":56,"command":57},"pnpm","pnpm dlx skills add outcomeeng\u002Fplugins --skill refocus","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Fproduct-tree\u002Fskills\u002Frefocus\u002FSKILL.md",true,[],[62,68,103,119,135,147],{"skillNo":63,"name":64,"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":65,"categories":66,"keywords":67,"publishedAt":33},"01M71G25RZTPQG9KJ00JCHC1F7","plugin","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Ftemplates\u002Fplugin\u002FSKILL.md",[],[64],{"skillNo":69,"name":70,"nameZh":6,"description":71,"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":84,"publishedAt":33},"01M71G23DCX3SV60H63HBBKQ6J","sanitize-powerpoint","ALWAYS invoke this skill when sanitizing, cleaning up, auditing, or aligning a PowerPoint (.pptx) deck — slide-master and layout structure, layout type attributes, stray fonts, non-theme colors, or layout naming. NEVER hand-edit pptx XML without this skill.","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Fwork\u002Fskills\u002Fsanitize-powerpoint\u002FSKILL.md",[74,79],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000003","演示文稿","SCENARIO","使用场景",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,29,30],"sanitize powerpoint","powerpoint","sanitize","fonts","type","cleaning","structure","never","attributes","theme","pptx","naming","layout","deck","up","edit","xml","master",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":33},"01M71G21PQKBCDECHGVYSKPJW5","draw-excalidraw","ALWAYS invoke this skill when creating Excalidraw diagrams, visualizing workflows, architectures, or concepts. NEVER generate Excalidraw JSON without this skill.","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Fwork\u002Fskills\u002Fdraw-excalidraw\u002FSKILL.md",[],[110,111,112,113,114,92,29,115,116,30,117,118],"draw excalidraw","excalidraw","draw","diagrams","architectures","generate","workflows","concepts","json",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":128,"publishedAt":33},"01M71G1ZMNGFD37RZYM620XM2C","typescript-test-standards","TypeScript test standards enforced across all skills. Loaded by other skills, not invoked directly.","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Ftypescript\u002Fskills\u002Ftypescript-test-standards\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000008","测试与质量",[129,130,131,132,133,21,134],"typescript","typescript test standards","test","standards","false","across",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":33},"01M71G1XBH0X1VCTR7269MDGSY","typescript-code-standards","TypeScript code standards enforced across all skills. Loaded by other skills, not invoked directly.","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Ftypescript\u002Fskills\u002Ftypescript-code-standards\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000030","开发工程师",[129,31,145,146,132,133,21,134],"typescript code standards","code standards",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":33},"01M71G1TQ3VN45SJ75DFMJDB9W","typescript-architecture-standards","TypeScript ADR conventions enforced across architect and auditor skills. Loaded by other skills, not invoked directly.","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Ftypescript\u002Fskills\u002Ftypescript-architecture-standards\u002FSKILL.md",[],[154,132,155,156,129,157,158,134,21,159,133,160],"architecture standards","typescript architecture standards","architecture","adr","architect","auditor","conventions"]