[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7B145F50AV29N7EJCGXZPFX":3,"skill-same:01M7B145F50AV29N7EJCGXZPFX":75},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":14,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":48},"01M7B145F50AV29N7EJCGXZPFX","architect",null,"Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for \u002Farchitect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape.","saphitv\u002Fskills","saphitv","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54666981?v=4","01M7B13YDD32AHNCZS9HJP9MBD","Simon Maggini","01M7B13YE0E1SZKRC4S7WWTAT7",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: architect\ndescription: \"Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for \u002Farchitect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape.\"\ndisable-model-invocation: true\nlicense: MIT\nmetadata:\n  source: https:\u002F\u002Fgithub.com\u002Fuzairansaruzi\u002Fp3-stack\u002Ftree\u002F09909ebb5c0125e27fad3e57d96b81e832696d69\u002Fskills\u002Farchitect\n  upstream_commit: 09909ebb5c0125e27fad3e57d96b81e832696d69\n---\n\n# Architect\n\nRead [references\u002Fdelegation.md](references\u002Fdelegation.md) before delegating. Resolve model roles from project `p3-models.md`, then `~\u002F.agents\u002Fp3-models.md`. Missing configuration uses the live catalog and the skill defaults; never start setup during an unrelated task. Outside T3, use available native delegation or report a bounded inline fallback. Keep work within the user's requested scope.\n\nDesign before implementing. Sketch types, function signatures, class shapes, and module boundaries with `not implemented` bodies and pseudocode. Synthesize across multiple model perspectives, then fill in code against the chosen sketch. If implementation proves the sketch wrong, throw it out and redesign.\n\n## Start\n\nOpen a todolist with one entry per phase before starting.\n\n1. Ground\n2. Sketch\n3. Agree\n4. Implement\n5. Scrap\n\n## Phase A: Ground the problem\n\nBuild a real mental model of every system the new code touches. Run the **how** skill over the relevant subsystems.\n\nNaming a file isn't grounding. Produce the traced model `how` prescribes. If the design redefines ownership or layering, also run the **why** skill on the existing shape so the rationale becomes a constraint, not a guess.\n\nSkip Phase A only when the work is genuinely greenfield with no surrounding system to integrate.\n\n## Phase B: Sketch\n\nRun the **arena** skill with the design-sketch task and the Phase A grounding artifacts. Send one `delegate_task` per runner, `mode: \"async\"`, and drain with `task_status`. Every brief stands alone: child agents get only the brief, never this thread's context. Each brief carries the task, the grounding artifacts, and `references\u002Frunner-prompt.md`. Each candidate produces a design package shaped per `references\u002Frationale-template.md`.\n\nTake the runners from the `architect runners` line in `p3-models.md`, in place of the `arena runners` line. Resolve the roles against `orchestrator_capabilities`; never hardcode a model. If the file or role is missing, use the live catalog and the defaults in the bundled delegation guidance. Alias and rejected entries follow the runner rules in the **arena** skill's Phase A.\n\nDesign it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.\n\nScreen every candidate against [`references\u002Fdesign-red-flags.md`](references\u002Fdesign-red-flags.md) before synthesis. Assume the next contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles. Prefer the design where a change that looks right from one file is right for the whole repo.\n\nCompare viable candidates on interface depth. Prefer the design that hides more complexity behind a smaller, simpler public surface. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers.\n\nArena returns one synthesized design package. The synthesis decision populates the rationale's \"Synthesis decision\" section.\n\n## Phase C: Agree (opt-in)\n\nDefault: proceed directly to implementation with the synthesized design. No human checkpoint.\n\nOpt in to a checkpoint when the invoker explicitly asks: \"\u002Farchitect with checkpoint,\" \"stop and show me before implementing,\" or similar. Then surface the synthesized design in the thread and pause for sign-off.\n\nThe synthesis can ship as its own commit either way, as the \"scaffold first\" mode of the **foundational-thinking** principle skill. Planned and scoped breakage during fill-in is fine, per the **outcome-oriented-execution** principle skill. For adversarial pressure on the design before implementing, run the **interrogate** skill on the synthesized sketch.\n\nIf the human pushes back on the shape (in a checkpoint or after the fact), treat that as Phase A evidence. Re-ground and re-run Phase B before writing more code.\n\n## Phase D: Implement against the sketch\n\nReplace `not implemented` bodies with code, pseudocode with logic. The synthesized sketch is the contract.\n\nDeviations from the sketch are signal worth surfacing, not friction to absorb silently. If a function needs a parameter the sketch didn't anticipate, ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching.\n\n## Phase E: Scrap when the architecture is wrong\n\nIf implementation keeps producing friction the sketch can't absorb, throw the sketch out. Don't bolt fixes onto a wrong design, per the **redesign-from-first-principles** and **fix-root-causes** principle skills.\n\nThe signal is a *pattern*, not single instances. Tells:\n\n- The same shape of workaround appearing repeatedly across unrelated code.\n- Multiple unrelated edge cases that all need special-case branches.\n- Types that need escape hatches (`any`, casts, optional fields always set in practice) to compile.\n- The \"we need a lock\" reflex when the sketch said the state wasn't shared.\n- Callers having to know the abstraction's internal rules to use it.\n- Two or more independent Phase D deviations of the same shape across the implementation.\n\nUse judgment. A few edge cases don't condemn an architecture. Some problems are legitimately complex. Complexity in the data is not complexity in the design.\n\nWhen you scrap:\n\n1. Re-run the **how** skill over what's been built.\n2. Redesign as if the new constraints had been day-one assumptions, per redesign-from-first-principles.\n3. Subtract before adding, per the **subtract-before-you-add** principle skill. The new sketch should be smaller than the old one before it grows.\n4. Return to Phase B and re-run arena.\n\n## Outputs\n\nThe caller's usage is written first and the type sketch derived from it. One file with new types and signatures for small changes. Module map plus type definitions for larger work. The rationale ships alongside, shaped per `references\u002Frationale-template.md`, including the usage sketch and the synthesis decision.\n","# Architect\n\nRead [references\u002Fdelegation.md](references\u002Fdelegation.md) before delegating. Resolve model roles from project `p3-models.md`, then `~\u002F.agents\u002Fp3-models.md`. Missing configuration uses the live catalog and the skill defaults; never start setup during an unrelated task. Outside T3, use available native delegation or report a bounded inline fallback. Keep work within the user's requested scope.\n\nDesign before implementing. Sketch types, function signatures, class shapes, and module boundaries with `not implemented` bodies and pseudocode. Synthesize across multiple model perspectives, then fill in code against the chosen sketch. If implementation proves the sketch wrong, throw it out and redesign.\n\n## Start\n\nOpen a todolist with one entry per phase before starting.\n\n1. Ground\n2. Sketch\n3. Agree\n4. Implement\n5. Scrap\n\n## Phase A: Ground the problem\n\nBuild a real mental model of every system the new code touches. Run the **how** skill over the relevant subsystems.\n\nNaming a file isn't grounding. Produce the traced model `how` prescribes. If the design redefines ownership or layering, also run the **why** skill on the existing shape so the rationale becomes a constraint, not a guess.\n\nSkip Phase A only when the work is genuinely greenfield with no surrounding system to integrate.\n\n## Phase B: Sketch\n\nRun the **arena** skill with the design-sketch task and the Phase A grounding artifacts. Send one `delegate_task` per runner, `mode: \"async\"`, and drain with `task_status`. Every brief stands alone: child agents get only the brief, never this thread's context. Each brief carries the task, the grounding artifacts, and `references\u002Frunner-prompt.md`. Each candidate produces a design package shaped per `references\u002Frationale-template.md`.\n\nTake the runners from the `architect runners` line in `p3-models.md`, in place of the `arena runners` line. Resolve the roles against `orchestrator_capabilities`; never hardcode a model. If the file or role is missing, use the live catalog and the defaults in the bundled delegation guidance. Alias and rejected entries follow the runner rules in the **arena** skill's Phase A.\n\nDesign it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.\n\nScreen every candidate against [`references\u002Fdesign-red-flags.md`](references\u002Fdesign-red-flags.md) before synthesis. Assume the next contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles. Prefer the design where a change that looks right from one file is right for the whole repo.\n\nCompare viable candidates on interface depth. Prefer the design that hides more complexity behind a smaller, simpler public surface. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers.\n\nArena returns one synthesized design package. The synthesis decision populates the rationale's \"Synthesis decision\" section.\n\n## Phase C: Agree (opt-in)\n\nDefault: proceed directly to implementation with the synthesized design. No human checkpoint.\n\nOpt in to a checkpoint when the invoker explicitly asks: \"\u002Farchitect with checkpoint,\" \"stop and show me before implementing,\" or similar. Then surface the synthesized design in the thread and pause for sign-off.\n\nThe synthesis can ship as its own commit either way, as the \"scaffold first\" mode of the **foundational-thinking** principle skill. Planned and scoped breakage during fill-in is fine, per the **outcome-oriented-execution** principle skill. For adversarial pressure on the design before implementing, run the **interrogate** skill on the synthesized sketch.\n\nIf the human pushes back on the shape (in a checkpoint or after the fact), treat that as Phase A evidence. Re-ground and re-run Phase B before writing more code.\n\n## Phase D: Implement against the sketch\n\nReplace `not implemented` bodies with code, pseudocode with logic. The synthesized sketch is the contract.\n\nDeviations from the sketch are signal worth surfacing, not friction to absorb silently. If a function needs a parameter the sketch didn't anticipate, ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching.\n\n## Phase E: Scrap when the architecture is wrong\n\nIf implementation keeps producing friction the sketch can't absorb, throw the sketch out. Don't bolt fixes onto a wrong design, per the **redesign-from-first-principles** and **fix-root-causes** principle skills.\n\nThe signal is a *pattern*, not single instances. Tells:\n\n- The same shape of workaround appearing repeatedly across unrelated code.\n- Multiple unrelated edge cases that all need special-case branches.\n- Types that need escape hatches (`any`, casts, optional fields always set in practice) to compile.\n- The \"we need a lock\" reflex when the sketch said the state wasn't shared.\n- Callers having to know the abstraction's internal rules to use it.\n- Two or more independent Phase D deviations of the same shape across the implementation.\n\nUse judgment. A few edge cases don't condemn an architecture. Some problems are legitimately complex. Complexity in the data is not complexity in the design.\n\nWhen you scrap:\n\n1. Re-run the **how** skill over what's been built.\n2. Redesign as if the new constraints had been day-one assumptions, per redesign-from-first-principles.\n3. Subtract before adding, per the **subtract-before-you-add** principle skill. The new sketch should be smaller than the old one before it grows.\n4. Return to Phase B and re-run arena.\n\n## Outputs\n\nThe caller's usage is written first and the type sketch derived from it. One file with new types and signatures for small changes. Module map plus type definitions for larger work. The rationale ships alongside, shaped per `references\u002Frationale-template.md`, including the usage sketch and the synthesis decision.\n",{"name":5,"license":15,"metadata":25,"description":7,"disable-model-invocation":28},{"source":26,"upstream_commit":27},"https:\u002F\u002Fgithub.com\u002Fuzairansaruzi\u002Fp3-stack\u002Ftree\u002F09909ebb5c0125e27fad3e57d96b81e832696d69\u002Fskills\u002Farchitect","09909ebb5c0125e27fad3e57d96b81e832696d69",true,"main","e140a936f9f29c17f35164b21aae448f41b87cbb","poteto\u002Fskills\u002Factive\u002Farchitect","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills","https:\u002F\u002Fgithub.com\u002Fsaphitv","Working at Easyprog, attending school at Supsi, passionate about web development.","2026-11-12 16:56:25",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":28},[38,41,44],{"tool":39,"command":40},"npx","npx skills add saphitv\u002Fskills --skill architect",{"tool":42,"command":43},"bunx","bunx skills add saphitv\u002Fskills --skill architect",{"tool":45,"command":46},"pnpm","pnpm dlx skills add saphitv\u002Fskills --skill architect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002FSKILL.md",[49,55,59,63,67,71],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"agents\u002Fopenai.yaml","REFERENCE","参考文档",43,"https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002Fagents\u002Fopenai.yaml",{"path":56,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":16},"LICENSE","许可证",1119,{"path":60,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Fdelegation.md",3359,"https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002Freferences\u002Fdelegation.md",{"path":64,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fdesign-red-flags.md",3009,"https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002Freferences\u002Fdesign-red-flags.md",{"path":68,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Frationale-template.md",3050,"https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002Freferences\u002Frationale-template.md",{"path":72,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Frunner-prompt.md",3126,"https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fpoteto\u002Fskills\u002Factive\u002Farchitect\u002Freferences\u002Frunner-prompt.md",[76,84,92,100,108,116],{"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":80,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":20},"01M7B1FHX908WSXXJENZ8RV88N","takeover","Take over existing work. Use when the user asks to take over a PR, branch, or agent thread, or requests a takeover.","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Ftakeover\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Ftakeover\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":88,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":20},"01M7B1FAZW3D5D8Q2QSTBX4BZQ","statechart","Check a TLA+ model of a system that moves between states, such as a product flow, a protocol, or a service, and draw it as a Mermaid statechart. The report gives the shortest path to each state that breaks a rule. Use for \u002Fstatechart, or to show a bug as a path through states.","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fstatechart\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fstatechart\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":96,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M7B1F96A7KZSGDPR59MVQCTB","sol-loop","Use when the user says \"sol loop\".","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fsol-loop\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fsol-loop\u002FSKILL.md",[],[],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":104,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":20},"01M7B1F3TB4MVFFKB16HZG9NCX","security-audit-testing","Experimental Cloudflare security-audit trial for security questions, focused vulnerability reviews, codebase audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full\u002Fcomprehensive\u002Fend-to-end reviews, or requested report artifacts.","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fsecurity-audit-testing\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fsecurity-audit-testing\u002FSKILL.md",[],[],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":112,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":20},"01M7B1EZ0530A1BB1SND8NTDSV","retro","Conduct a retrospective on a coding session.","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fretro\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fretro\u002FSKILL.md",[],[],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":120,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":20},"01M7B1EWKNQPSW37CS533BHAVW","modernize","For getting old prs up to date. Use when asked to rebase a pr or \"modernize\".","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fmodernize\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsaphitv\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Factive\u002Fmodernize\u002FSKILL.md",[],[]]