[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71G1RSFGDZR5XBXDX7E02B5":3,"skill-same:01M71G1RSFGDZR5XBXDX7E02B5":68},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M71G1RSFGDZR5XBXDX7E02B5","simplify-typescript-code",null,"ALWAYS invoke this skill when simplifying TypeScript implementation while preserving behavior.","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\u002Ftypescript\u002Fskills\u002Fsimplify-typescript-code\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"simplify typescript code","simplify","code","typescript","when","invoke","use","implementation","rev","base","status","git","grep","edit","tool","read","behavior","parse","diff","head","2026-11-10 10:12:30",false,"---\nname: simplify-typescript-code\ndescription: >-\n  ALWAYS invoke this skill when simplifying TypeScript implementation while preserving behavior.\nargument-hint: \"\u003CHEAD|base...head>\"\nallowed-tools: Read, Glob, Grep, Edit, {{! tool('use_skill') !}}, Bash(git status:*), Bash(git rev-parse:*), Bash(git diff:*)\n---\n\n{!% require_skill 'typescript:typescript-test-standards' %!}\n\n\u003Cobjective>\nSimpler TypeScript implementation with unchanged behavior and type safety, accompanied by a scope and verification report.\n\u003C\u002Fobjective>\n\n\u003Cconstraints>\n\n- MUST preserve public behavior, dependency-injection seams, error wrapping, and typed errors.\n- MUST preserve strict types, guards, generic constraints, explicit annotations, and the product's import boundaries and aliases.\n- NEVER modify tests, test infrastructure, specs, or generated files; simplify only implementation already changed in the selected scope.\n- NEVER change behavior to enable a simplification, add dependencies, or weaken coverage and validation requirements.\n- NEVER commit, publish, or launch another subagent as part of simplification.\n- Product verification commands outside this skill's narrow Git preapprovals use the harness's normal per-call approval path. Resolve the exact product command, honor existing operator authorization, and request any missing permission before execution; denied or unavailable permission returns `blocked`. Never substitute a command to avoid approval.\n\n\u003C\u002Fconstraints>\n\n\u003Cworkflow>\n\n1. Require `$ARGUMENTS` to be `HEAD` or an explicit committed three-dot range. For absent or invalid input, return `blocked` before mutation. Read the product's {{! file('root_guide') !}} and invoke `\u002Funderstand` when its foundation marker is absent.\n2. Invoke `\u002Fscope-changeset` with the supplied target and consume its `COMMITTED_CHANGESET_SCOPE` marker. The provider executes its own committed-scope command; do not import its Python API or invent a resolver command. Require the resolved head to equal the checkout's full `HEAD` and the worktree to be clean. Record both endpoint identities and the complete changed-path set. A scope-resolution failure returns `blocked` with its diagnostic.\n3. Select changed, present TypeScript implementation files, excluding generated extents and test\u002Fevidence files using the product's declarations and `\u002Ftypescript-test-standards`. Derive their governing nodes through spec-linked evidence and invoke `\u002Fcontextualize` on their lowest common ancestor before reading implementation. After context loading, require the same full `HEAD` and a clean worktree again; otherwise return `blocked` with the changed subject. If no implementation qualifies, return `unchanged` with the empty scope. Missing governance returns `blocked`.\n4. Inspect the selected implementation and the evidence covering its behavior. Apply `\u002Ftypescript-test-standards` to coverage and test quality. Missing or inadequate behavioral coverage returns `blocked` with the affected file or function and evidence gap; do not create tests to bypass this condition.\n5. Resolve the baseline test command from the product guide and the inspected evidence. Use existing evidence; if correct work requires changed behavior or changed evidence, return `blocked` before editing.\n6. Run the product's required baseline tests and record actual exit codes. A failed or unavailable baseline returns `blocked` without edits. Identify only changes whose behavioral equivalence can be explained from the code and evidence; when none improves clarity safely, return `unchanged` with the reason.\n7. Use skill `typescript:author-typescript-code` with the governing node, selected files, and the behavior-preserving simplification requirement. Follow its complete discovery, standards, and validation contract while preserving the evidence. Retain the exact patch owned by this invocation. Require the same tests afterward and every typecheck, lint, format, and validation check required by `typescript:author-typescript-code`, using product commands and preserving process exit codes. Collect those results once; never mask a failing process through output truncation or a pipeline.\n8. Compare the resulting diff with the recorded scope and baseline. Confirm tests, evidence, seams, and type contracts remain unchanged. Follow `\u003Crecovery>` on any failed check or uncertain equivalence, then return `\u003Cresult>`.\n\n\u003C\u002Fworkflow>\n\n\u003Ccoding_result>\n\nWhen composing `typescript:author-typescript-code`, request its completion report with changed paths, the behavior preserved by each edit, the evidence used, executed commands and exit codes, and unresolved constraints. Execute that composed workflow in this session.\n\nBefore Step 8, require every report component and compare it against the retained diff and captured command results. Every changed path must belong to the selected scope, every reported successful check must have a zero exit code, and every omitted required check or unresolved constraint must be identified. A missing report component or contradiction returns `failed` through the recovery procedure; never infer completion from a generic success statement.\n\nMerge the validated report into the final JSON: retained paths into `changed_paths`, each edit and its equivalence explanation into `changes`, inspected tests and covered behavior into `evidence`, actual command observations into `verification`, and remaining constraints into `blockers`. Preserve this skill's before\u002Fafter\u002Frecovery phases and its stricter behavior-preservation boundaries.\n\n\u003C\u002Fcoding_result>\n\n\u003Crecovery>\n\nOn a post-edit verification failure, reverse only this invocation's patch and run the affected check against the restored content. Never reset or restore a whole file over another writer's changes. If concurrent edits prevent safe reversal, leave them intact and report the exact collision and remaining patch. Return `failed`, retaining the original command, exit code, diagnostic, and recovery outcome even when restoration succeeds.\n\nIf a required skill, product command, decision, or permission is unavailable, report `blocked` with the exact prerequisite and next required action. After edits, first apply the same recovery rule. Never install dependencies or invent a replacement verification command.\n\n\u003C\u002Frecovery>\n\n\u003Cresult>\n\nReturn one JSON object with these fields:\n\n- `status`: `simplified`, `unchanged`, `blocked`, or `failed`; `reason`: the outcome explanation.\n- `target`: the supplied target unchanged; `base` and `head`: full resolved commit identities, or null when resolution failed.\n- `scope`: selected implementation paths; `changed_paths`: paths still changed by this invocation.\n- `changes`: each applied simplification's path, reason, and behavioral-equivalence explanation.\n- `evidence`: inspected test paths and the behavior each covers.\n- `verification`: executed commands with `phase` (`before`, `after`, or `recovery`), `command`, and actual `exit_code`. List every required but unexecuted check in `blockers`.\n- `blockers`: exact prerequisites, evidence gaps, failing diagnostics, or uncertainty; empty on success.\n- `recovery`: an object with `status` (`not-needed`, `reverted`, or `conflict`) and `details`.\n\n`simplified` requires a nonempty retained patch, sufficient unchanged evidence, and all required checks passing. `unchanged` requires no retained patch and a `reason` explaining why the scope was empty or no safe improvement was found. Never represent an unexecuted check as passing or a simplification report as an independent audit approval.\n\n\u003C\u002Fresult>\n\n\u003Cfailure_modes>\n\n**A library reference was treated as an executable capability.** Claude instructed the simplifier to use `resolve_committed_scope` even though the provider exposed only an importable API. The workflow had no shipped command to execute. Invoke `\u002Fscope-changeset` with the target and consume the marker its own command establishes; never invent an import script during simplification.\n\n\u003C\u002Ffailure_modes>\n\n\u003Csuccess_criteria>\n\n- Every retained edit belongs to the resolved TypeScript implementation scope and improves clarity without changing behavior, error contracts, seams, or type safety.\n- Unchanged behavioral tests pass before and after edits, and the complete `\u002Fauthor-typescript-code` validation requirements pass.\n- The report accounts for every retained edit, executed check, unexecuted required check, and recovery action.\n- A blocked prerequisite causes no retained edit unless a reported concurrent-write collision prevents safe recovery.\n\n\u003C\u002Fsuccess_criteria>\n","{!% require_skill 'typescript:typescript-test-standards' %!}\n\n\u003Cobjective>\nSimpler TypeScript implementation with unchanged behavior and type safety, accompanied by a scope and verification report.\n\u003C\u002Fobjective>\n\n\u003Cconstraints>\n\n- MUST preserve public behavior, dependency-injection seams, error wrapping, and typed errors.\n- MUST preserve strict types, guards, generic constraints, explicit annotations, and the product's import boundaries and aliases.\n- NEVER modify tests, test infrastructure, specs, or generated files; simplify only implementation already changed in the selected scope.\n- NEVER change behavior to enable a simplification, add dependencies, or weaken coverage and validation requirements.\n- NEVER commit, publish, or launch another subagent as part of simplification.\n- Product verification commands outside this skill's narrow Git preapprovals use the harness's normal per-call approval path. Resolve the exact product command, honor existing operator authorization, and request any missing permission before execution; denied or unavailable permission returns `blocked`. Never substitute a command to avoid approval.\n\n\u003C\u002Fconstraints>\n\n\u003Cworkflow>\n\n1. Require `$ARGUMENTS` to be `HEAD` or an explicit committed three-dot range. For absent or invalid input, return `blocked` before mutation. Read the product's {{! file('root_guide') !}} and invoke `\u002Funderstand` when its foundation marker is absent.\n2. Invoke `\u002Fscope-changeset` with the supplied target and consume its `COMMITTED_CHANGESET_SCOPE` marker. The provider executes its own committed-scope command; do not import its Python API or invent a resolver command. Require the resolved head to equal the checkout's full `HEAD` and the worktree to be clean. Record both endpoint identities and the complete changed-path set. A scope-resolution failure returns `blocked` with its diagnostic.\n3. Select changed, present TypeScript implementation files, excluding generated extents and test\u002Fevidence files using the product's declarations and `\u002Ftypescript-test-standards`. Derive their governing nodes through spec-linked evidence and invoke `\u002Fcontextualize` on their lowest common ancestor before reading implementation. After context loading, require the same full `HEAD` and a clean worktree again; otherwise return `blocked` with the changed subject. If no implementation qualifies, return `unchanged` with the empty scope. Missing governance returns `blocked`.\n4. Inspect the selected implementation and the evidence covering its behavior. Apply `\u002Ftypescript-test-standards` to coverage and test quality. Missing or inadequate behavioral coverage returns `blocked` with the affected file or function and evidence gap; do not create tests to bypass this condition.\n5. Resolve the baseline test command from the product guide and the inspected evidence. Use existing evidence; if correct work requires changed behavior or changed evidence, return `blocked` before editing.\n6. Run the product's required baseline tests and record actual exit codes. A failed or unavailable baseline returns `blocked` without edits. Identify only changes whose behavioral equivalence can be explained from the code and evidence; when none improves clarity safely, return `unchanged` with the reason.\n7. Use skill `typescript:author-typescript-code` with the governing node, selected files, and the behavior-preserving simplification requirement. Follow its complete discovery, standards, and validation contract while preserving the evidence. Retain the exact patch owned by this invocation. Require the same tests afterward and every typecheck, lint, format, and validation check required by `typescript:author-typescript-code`, using product commands and preserving process exit codes. Collect those results once; never mask a failing process through output truncation or a pipeline.\n8. Compare the resulting diff with the recorded scope and baseline. Confirm tests, evidence, seams, and type contracts remain unchanged. Follow `\u003Crecovery>` on any failed check or uncertain equivalence, then return `\u003Cresult>`.\n\n\u003C\u002Fworkflow>\n\n\u003Ccoding_result>\n\nWhen composing `typescript:author-typescript-code`, request its completion report with changed paths, the behavior preserved by each edit, the evidence used, executed commands and exit codes, and unresolved constraints. Execute that composed workflow in this session.\n\nBefore Step 8, require every report component and compare it against the retained diff and captured command results. Every changed path must belong to the selected scope, every reported successful check must have a zero exit code, and every omitted required check or unresolved constraint must be identified. A missing report component or contradiction returns `failed` through the recovery procedure; never infer completion from a generic success statement.\n\nMerge the validated report into the final JSON: retained paths into `changed_paths`, each edit and its equivalence explanation into `changes`, inspected tests and covered behavior into `evidence`, actual command observations into `verification`, and remaining constraints into `blockers`. Preserve this skill's before\u002Fafter\u002Frecovery phases and its stricter behavior-preservation boundaries.\n\n\u003C\u002Fcoding_result>\n\n\u003Crecovery>\n\nOn a post-edit verification failure, reverse only this invocation's patch and run the affected check against the restored content. Never reset or restore a whole file over another writer's changes. If concurrent edits prevent safe reversal, leave them intact and report the exact collision and remaining patch. Return `failed`, retaining the original command, exit code, diagnostic, and recovery outcome even when restoration succeeds.\n\nIf a required skill, product command, decision, or permission is unavailable, report `blocked` with the exact prerequisite and next required action. After edits, first apply the same recovery rule. Never install dependencies or invent a replacement verification command.\n\n\u003C\u002Frecovery>\n\n\u003Cresult>\n\nReturn one JSON object with these fields:\n\n- `status`: `simplified`, `unchanged`, `blocked`, or `failed`; `reason`: the outcome explanation.\n- `target`: the supplied target unchanged; `base` and `head`: full resolved commit identities, or null when resolution failed.\n- `scope`: selected implementation paths; `changed_paths`: paths still changed by this invocation.\n- `changes`: each applied simplification's path, reason, and behavioral-equivalence explanation.\n- `evidence`: inspected test paths and the behavior each covers.\n- `verification`: executed commands with `phase` (`before`, `after`, or `recovery`), `command`, and actual `exit_code`. List every required but unexecuted check in `blockers`.\n- `blockers`: exact prerequisites, evidence gaps, failing diagnostics, or uncertainty; empty on success.\n- `recovery`: an object with `status` (`not-needed`, `reverted`, or `conflict`) and `details`.\n\n`simplified` requires a nonempty retained patch, sufficient unchanged evidence, and all required checks passing. `unchanged` requires no retained patch and a `reason` explaining why the scope was empty or no safe improvement was found. Never represent an unexecuted check as passing or a simplification report as an independent audit approval.\n\n\u003C\u002Fresult>\n\n\u003Cfailure_modes>\n\n**A library reference was treated as an executable capability.** Claude instructed the simplifier to use `resolve_committed_scope` even though the provider exposed only an importable API. The workflow had no shipped command to execute. Invoke `\u002Fscope-changeset` with the target and consume the marker its own command establishes; never invent an import script during simplification.\n\n\u003C\u002Ffailure_modes>\n\n\u003Csuccess_criteria>\n\n- Every retained edit belongs to the resolved TypeScript implementation scope and improves clarity without changing behavior, error contracts, seams, or type safety.\n- Unchanged behavioral tests pass before and after edits, and the complete `\u002Fauthor-typescript-code` validation requirements pass.\n- The report accounts for every retained edit, executed check, unexecuted required check, and recovery action.\n- A blocked prerequisite causes no retained edit unless a reported concurrent-write collision prevents safe recovery.\n\n\u003C\u002Fsuccess_criteria>\n",{"name":5,"description":7,"allowed-tools":44,"argument-hint":45},"Read, Glob, Grep, Edit, {{! tool('use_skill') !}}, Bash(git status:*), Bash(git rev-parse:*), Bash(git diff:*)","\u003CHEAD|base...head>","main","978d51c51d68c99cffb2ba48f7cad9d2f07e5738","src\u002Fplugins\u002Ftypescript\u002Fskills\u002Fsimplify-typescript-code","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins","https:\u002F\u002Fgithub.com\u002Foutcomeeng","https:\u002F\u002Foutcome.engineering","Spec-driven development for AI-assisted engineering","2026-11-11 22:17:26",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add outcomeeng\u002Fplugins --skill simplify-typescript-code",{"tool":60,"command":61},"bunx","bunx skills add outcomeeng\u002Fplugins --skill simplify-typescript-code",{"tool":63,"command":64},"pnpm","pnpm dlx skills add outcomeeng\u002Fplugins --skill simplify-typescript-code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Fplugins\u002Ftypescript\u002Fskills\u002Fsimplify-typescript-code\u002FSKILL.md",true,[],[69,75,109,125,140,152],{"skillNo":70,"name":71,"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":72,"categories":73,"keywords":74,"publishedAt":39},"01M71G25RZTPQG9KJ00JCHC1F7","plugin","https:\u002F\u002Fgithub.com\u002Foutcomeeng\u002Fplugins\u002Fblob\u002Fmain\u002Fsrc\u002Ftemplates\u002Fplugin\u002FSKILL.md",[],[71],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":91,"publishedAt":39},"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",[81,86],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000003","演示文稿","SCENARIO","使用场景",{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,32,107,108,24,23],"sanitize powerpoint","powerpoint","sanitize","fonts","type","cleaning","structure","never","attributes","theme","pptx","naming","layout","deck","up","xml","master",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":39},"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",[],[116,117,118,119,120,99,24,121,122,23,123,124],"draw excalidraw","excalidraw","draw","diagrams","architectures","generate","workflows","concepts","json",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":134,"publishedAt":39},"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",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量",[22,135,136,137,138,34,139],"typescript test standards","test","standards","false","across",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":39},"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",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000030","开发工程师",[22,21,150,151,137,138,34,139],"typescript code standards","code standards",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":39},"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",[],[159,137,160,161,22,162,163,139,34,164,138,165],"architecture standards","typescript architecture standards","architecture","adr","architect","auditor","conventions"]