[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X26MX2EV7RM1FRCBJ41C35":3,"skill-same:01M6X26MX2EV7RM1FRCBJ41C35":67},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6X26MX2EV7RM1FRCBJ41C35","test-discipline",null,"Design assertions that prove the actual contract and fail on realistic regressions","github\u002Fsquad","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6X0MZ6B0WYMMDPK3Q61KER6",3391,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Ftest-discipline\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"test","test discipline","discipline","design","regression","quality","incident","contract","tests","high","assertions","lessons","prove","2026-11-10 10:12:30",false,"---\nname: test-discipline\ndescription: Design assertions that prove the actual contract and fail on realistic regressions\ndomain: quality\nconfidence: high\nsource: current regression tests and retained quality incident lessons\n---\n\n## Context\n\nUse this skill whenever a change affects an API, public interface, workflow contract, generated\nartifact, or user-observable behavior. A passing status-only test is not evidence that the\nintended artifact or contract is correct.\n\n## Patterns\n\n- Update tests in the same change as an API, signature, export, or public-interface change.\n- Make assertions name and inspect the offending artifact, output, or configuration field—not just\n  an exit code or broad success status.\n- Mutation-test critical gates by changing the real source or emitted artifact and proving the\n  assertion turns red.\n- Exercise every caller path for a changed parser, normalizer, or helper; isolated unit coverage\n  can miss the integration path that invokes it differently.\n- Reproduce working-tree-only failures locally when the contract depends on index, filesystem,\n  line-ending, or generated-output state.\n- Keep expected inventory arrays synchronized with the files they enumerate.\n\n## Examples\n\nA workflow-compilation test mutates the source workflow, compiles it, and inspects the emitted\nsafe-output contract. A repair-script test constructs the actual index\u002Fblob\u002Fworktree state that\nthe repair routine must handle instead of a simplified fixture.\n\n## Anti-Patterns\n\n- Calling a test sufficient because it observes only a successful process exit\n- Mutating a hand-built fixture instead of the source or artifact protected by the gate\n- Testing a helper while omitting production callers\n- Treating a local checkout defect as something CI alone can validate\n","## Context\n\nUse this skill whenever a change affects an API, public interface, workflow contract, generated\nartifact, or user-observable behavior. A passing status-only test is not evidence that the\nintended artifact or contract is correct.\n\n## Patterns\n\n- Update tests in the same change as an API, signature, export, or public-interface change.\n- Make assertions name and inspect the offending artifact, output, or configuration field—not just\n  an exit code or broad success status.\n- Mutation-test critical gates by changing the real source or emitted artifact and proving the\n  assertion turns red.\n- Exercise every caller path for a changed parser, normalizer, or helper; isolated unit coverage\n  can miss the integration path that invokes it differently.\n- Reproduce working-tree-only failures locally when the contract depends on index, filesystem,\n  line-ending, or generated-output state.\n- Keep expected inventory arrays synchronized with the files they enumerate.\n\n## Examples\n\nA workflow-compilation test mutates the source workflow, compiles it, and inspects the emitted\nsafe-output contract. A repair-script test constructs the actual index\u002Fblob\u002Fworktree state that\nthe repair routine must handle instead of a simplified fixture.\n\n## Anti-Patterns\n\n- Calling a test sufficient because it observes only a successful process exit\n- Mutating a hand-built fixture instead of the source or artifact protected by the gate\n- Testing a helper while omitting production callers\n- Treating a local checkout defect as something CI alone can validate\n",{"name":5,"domain":29,"source":42,"confidence":33,"description":7},"current regression tests and retained quality incident lessons","dev","7b731ec97f35346bdc4fa87c3edaf16b808fc0ae","templates\u002Fskills\u002Ftest-discipline",520,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad","https:\u002F\u002Fgithub.github.io\u002Fsquad\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-15 02:13:59",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add github\u002Fsquad --skill test-discipline",{"tool":59,"command":60},"bunx","bunx skills add github\u002Fsquad --skill test-discipline",{"tool":62,"command":63},"pnpm","pnpm dlx skills add github\u002Fsquad --skill test-discipline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Ftest-discipline\u002FSKILL.md",true,[],[68,76,83,90,120,132],{"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":74,"publishedAt":75},"01M76742ST8ZMSD38226TH61CN","squad-coordinator-init-mode","Squad coordinator only: Init Mode, proposing and casting a new team. Load when team.md is missing or has an empty roster, or when asked to set up or cast a team.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fsquad-coordinator-init-mode\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":75},"01M7673KYSME979M20YQTVV8P6","retro-enforcement","Keep retrospectives on schedule and track their action items as GitHub Issues, not markdown checklists","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fretro-enforcement\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":75},"01M7670QCHBSR4W2XSX8XPA2ZB","cli-wiring","Checklist for wiring a new Squad CLI command: route it in cli-entry.ts, add help text, and test that it is reachable","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fcli-wiring\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":99,"publishedAt":37},"01M6X287DVJK1S91END9DSHETN","gh-aw-enlistment","Enlist a repository into Squad by installing the supported GitHub Agentic Workflows (gh-aw) bootstrap — with strict compilation, an explicit safe-update allowlist, and a human-reviewed bootstrap PR. Never auto-merges.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fworkflows\u002Fskills\u002Fgh-aw-enlistment\u002FSKILL.md",[96],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"gh aw enlistment","gh","preflight","guide","identity","compiling","squad","pr creation","Safety","safe","update","human","github cli","lock","workflows","auto","files","agentic workflows","ci","actions",{"skillNo":121,"name":122,"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":123,"categories":124,"keywords":126,"publishedAt":37},"01M6X27Y5119CSRQFFJCV6432R","My Skill","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[125],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},[127,128,129,130,131],"my","my skill","tester","testing","vitest",{"skillNo":133,"name":134,"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":135,"categories":136,"keywords":138,"publishedAt":37},"01M6X27RWAYB2X9ER0MVRRKXGA","bad-skill","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[137],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},[139,140],"bad","bad skill"]