[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699FN5GRZNHQWVPM8VE3DZD":3,"skill-same:01M699FN5GRZNHQWVPM8VE3DZD":77},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M699FN5GRZNHQWVPM8VE3DZD","python-architecture",null,"Activate when creating new modules, refactoring class hierarchies, introducing design patterns, or making changes spanning 3+ files in the APM CLI codebase.","microsoft\u002Fapm","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699CC41JR5QW38C9PDX6101",4361,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.apm\u002Fskills\u002Fpython-architecture\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"python","python architecture","architecture","design","cli","apm","refactoring","modules","design patterns","files","activate","patterns","changes","codebase","when","2026-11-10 10:12:30",false,"---\nname: python-architecture\ndescription: >\n  Activate when creating new modules, refactoring class hierarchies, introducing\n  design patterns, or making changes spanning 3+ files in the APM CLI codebase.\n---\n\n# Python Architecture Skill\n\n[Python architect persona](..\u002F..\u002Fagents\u002Fpython-architect.agent.md)\n\n## When to activate\n\n- Creating new Python modules or packages under `src\u002Fapm_cli\u002F`\n- Refactoring class hierarchies or introducing base classes\n- Changes that touch 3+ files with shared logic patterns\n- Introducing new design patterns (Strategy, Observer, etc.)\n- Cross-cutting concerns (logging, auth, error handling)\n- Performance-sensitive paths (parallel downloads, large manifests)\n\n## Key rules\n\n- Follow existing patterns (BaseIntegrator, CommandLogger, AuthResolver) before inventing new ones\n- Prefer composition over deep inheritance\n- Push shared logic into base classes, not duplicated across siblings\n- One canonical owner per decision: route through the existing authority (target_catalog, AuthResolver\u002Fhost_providers, runtime registry, CommandLogger, CompiledOutputWriter, deployment_ledger, install-outcome, neutral hook IR, BaseIntegrator); extend it, never fork it. Full rule: `.apm\u002Finstructions\u002Farchitecture.instructions.md`\n- Lock every centralization with a dual guardrail: a regression test plus a static check in `scripts\u002Flint-architecture-boundaries.sh`\n","# Python Architecture Skill\n\n[Python architect persona](..\u002F..\u002Fagents\u002Fpython-architect.agent.md)\n\n## When to activate\n\n- Creating new Python modules or packages under `src\u002Fapm_cli\u002F`\n- Refactoring class hierarchies or introducing base classes\n- Changes that touch 3+ files with shared logic patterns\n- Introducing new design patterns (Strategy, Observer, etc.)\n- Cross-cutting concerns (logging, auth, error handling)\n- Performance-sensitive paths (parallel downloads, large manifests)\n\n## Key rules\n\n- Follow existing patterns (BaseIntegrator, CommandLogger, AuthResolver) before inventing new ones\n- Prefer composition over deep inheritance\n- Push shared logic into base classes, not duplicated across siblings\n- One canonical owner per decision: route through the existing authority (target_catalog, AuthResolver\u002Fhost_providers, runtime registry, CommandLogger, CompiledOutputWriter, deployment_ledger, install-outcome, neutral hook IR, BaseIntegrator); extend it, never fork it. Full rule: `.apm\u002Finstructions\u002Farchitecture.instructions.md`\n- Lock every centralization with a dual guardrail: a regression test plus a static check in `scripts\u002Flint-architecture-boundaries.sh`\n",{"name":5,"description":7},"main","2920043258932f0f67e6f01df7b9047eb42f358c",".apm\u002Fskills\u002Fpython-architecture",425,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm","https:\u002F\u002Fmicrosoft.github.io\u002Fapm\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-13 18:27:31",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add microsoft\u002Fapm --skill python-architecture",{"tool":55,"command":56},"bunx","bunx skills add microsoft\u002Fapm --skill python-architecture",{"tool":58,"command":59},"pnpm","pnpm dlx skills add microsoft\u002Fapm --skill python-architecture","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.apm\u002Fskills\u002Fpython-architecture\u002FSKILL.md",true,[63,69,73],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"_meta.json","REFERENCE","参考文档",128,"https:\u002F\u002Fgithub.com\u002Fahat4pat-svg\u002Fjimi-skills\u002Fblob\u002Fmain\u002Fskills\u002Fhumanizer\u002F_meta.json",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},".clawhub\u002Forigin.json",141,"https:\u002F\u002Fgithub.com\u002Fahat4pat-svg\u002Fjimi-skills\u002Fblob\u002Fmain\u002Fskills\u002Fhumanizer\u002F.clawhub\u002Forigin.json",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"README.md",2879,"https:\u002F\u002Fgithub.com\u002Fahat4pat-svg\u002Fjimi-skills\u002Fblob\u002Fmain\u002Fskills\u002Fhumanizer\u002FREADME.md",[78,84,90,95,100,105],{"skillNo":79,"name":80,"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":81,"categories":82,"keywords":83,"publishedAt":34},"01M699JMZBYWPBT7JYWBSB95Z6","hello","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fshared\u002Fminimal_skill\u002F.apm\u002Fskills\u002Fhello\u002FSKILL.md",[],[80],{"skillNo":85,"name":86,"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":87,"categories":88,"keywords":89,"publishedAt":34},"01M699JKAMZ4DH1PYJMXHE4FG4","placeholder","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs25_copilot_alias\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[86],{"skillNo":91,"name":86,"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":92,"categories":93,"keywords":94,"publishedAt":34},"01M699JHR9DKJ7BZHAPF6DZX2Z","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs24_priority_override\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[86],{"skillNo":96,"name":86,"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":97,"categories":98,"keywords":99,"publishedAt":34},"01M699JG5BJBZSWM25F1VMJ2H6","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs23_error_renderer\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[86],{"skillNo":101,"name":86,"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":102,"categories":103,"keywords":104,"publishedAt":34},"01M699JEFSMBP3HNS061R15CE9","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs22_gemini_md_only\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[86],{"skillNo":106,"name":86,"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":107,"categories":108,"keywords":109,"publishedAt":34},"01M699JCRCJCVZ3Z3RD8F9MXF5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs21_codex_dir\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[86]]