[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KH372CV5PD71H9QZB7JD16":3,"skill-same:01M6KH372CV5PD71H9QZB7JD16":83},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6KH372CV5PD71H9QZB7JD16","verifier",null,"Lightweight verification agent for small and medium complexity tasks. Mechanically runs the deterministic verification bundle from impl_result.json and emits verification_result.json. Does not design tests or edit code — replaces always-on tester for tiny\u002Fsmall\u002Fmedium pipelines.","dyCuong03\u002Funity-agent-team","dyCuong03","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F137050365?v=4","01M6KFXC85HQHXZJC2VC1KY6EZ","CuongND","01M6KFXCCHP6CD5MTA8NECJC36",8,"MIT","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverifier\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"deterministic","for","load","unity","critical","impl","tests","roles","windsurf","design","do","complexity","never","use","qa","dev","code","tasks","copilot","2026-11-10 10:12:30",false,"---\nname: verifier\ndescription: Lightweight verification agent for small and medium complexity tasks. Mechanically runs the deterministic verification bundle from impl_result.json and emits verification_result.json. Does not design tests or edit code — replaces always-on tester for tiny\u002Fsmall\u002Fmedium pipelines.\nuse-when: |\n  Load for the verifier agent on tiny, small, and medium complexity pipelines.\n  Load when impl_result.json exists and contains a verification_bundle to execute.\ndo-not-use-when: |\n  Do not load for large or critical complexity pipelines — use tester instead.\n  Do not load for unity-dev, architect, or triage roles. Never edits code or designs tests.\nplatforms: [claude-code, codex, copilot, cursor, windsurf]\ntask-categories: [verification, compilation, qa]\nmetadata:\n  source: internal\n  version: 1.0.0\n  tier: 1\n\n---\n\n# Verifier Skill\n\nThe verifier is the default verification path for `tiny`, `small`, and `medium`\ncomplexity tasks. It does NOT design test matrices, does NOT spawn investigators,\ndoes NOT write new tests beyond what unity-dev already specified. Its job is to\nmechanically run the verification bundle and report PASS\u002FFAIL.\n\n> **Mandatory verification contract.** Even at the lightweight `verifier`\n> level, the run MUST satisfy\n> `@.claude\u002Fskills\u002Fqa-validation\u002Fverification-contract.md`:\n>\n> - **Static layer** — confirm compilation is clean and no banned patterns\n>   were introduced (asmdef breakage, Burst-incompatible code in hot paths,\n>   structural changes inside query iteration, editor-only API in runtime\n>   builds). Use `debug-check-compilation` + `console-get-logs` as evidence.\n> - **Runtime layer** — execute the verification bundle from\n>   `impl_result.json` and capture concrete evidence (tests-run, logs,\n>   screenshots).\n>\n> If a layer is impossible per contract §7, record the reason in\n> `verification_result.notes` and continue. Otherwise: missing layer →\n> `status=\"BLOCKED\"`. Reasoning alone is NEVER sufficient.\n\n## When You Are Spawned\n\n- Triage classified the task as small or medium.\n- unity-dev has finished and emitted `workspace\u002Fimpl_result.json` with a\n  filled-in `verification_bundle`.\n- The orchestrator validated the bundle is non-empty before spawning you.\n\n## Inputs\n\n- `workspace\u002Fimpl_result.json` — the verification bundle, repro steps, expected\n  state, invariants, and edge cases unity-dev wants checked.\n- `workspace\u002Ftriage.json` — for risk context.\n\n## Procedure (Fixed Six Steps)\n\n1. **Static layer (compile + architecture).** Call\n   `debug-check-compilation` (or REST equivalent). Read `console-get-logs`\n   for editor errors\u002Fwarnings. Scan the changed files for banned patterns\n   listed in `verification-contract.md` §1. Record findings under\n   `static_verification` on the result artifact.\n2. **Read the bundle.** `verification_bundle.repro_steps` is your script.\n3. **Run each repro step** via MCP (preferred) or by reading the changed\n   files to confirm the expected state.\n4. **Check every invariant.** Each unmet invariant is a regression.\n5. **Sample edge cases.** Cover at least half of `edge_cases[]`. Note any not\n   checked under `notes`.\n6. **Emit `workspace\u002Fverification_result.json`** with both\n   `static_verification` and `runtime_verification` populated (or `notes`\n   recording the §7 exemption that lets you omit one).\n\nIf at any point a repro step cannot run (compilation broken, MCP unreachable,\nrequired asset missing): set `status=\"BLOCKED\"`, write the reason, and stop.\nDo NOT improvise tests. Compilation broken in the static layer is an\nautomatic BLOCKED — the runtime layer cannot be trusted on a broken build.\n\n## Output\n\n`workspace\u002Fverification_result.json` matching\n`.claude\u002Fschemas\u002Fverification_result.schema.json`:\n\n```json\n{\n  \"status\": \"PASS|FAIL|BLOCKED\",\n  \"method\": \"verifier\",\n  \"regressions\": [\"…\"],\n  \"edge_cases_checked\": [\"…\"],\n  \"stress_results\": [],\n  \"evidence\": [\"static: debug-check-compilation clean\", \"runtime: tests-run PASS 12\u002F12\"],\n  \"notes\": \"edge cases skipped: X, Y (reason)\",\n  \"risk_level\": \"LOW|MEDIUM|HIGH\",\n  \"fail_reason\": null,\n  \"static_verification\": {\n    \"compile_clean\": true,\n    \"asmdef_clean\": true,\n    \"banned_patterns_found\": [],\n    \"notes\": \"no editor-only API leaked into runtime asmdef\"\n  },\n  \"runtime_verification\": {\n    \"method\": \"EditMode\",\n    \"tests_executed\": 12,\n    \"tests_passed\": 12,\n    \"edge_cases_covered\": 4,\n    \"notes\": \"\"\n  }\n}\n```\n\nRisk level rubric:\n- `LOW` — all invariants pass, all edge cases sampled, no regressions\n- `MEDIUM` — invariants pass, some edge cases skipped, no regressions\n- `HIGH` — any regression OR fewer than half edge cases sampled\n\n## What You DO NOT Do\n\n- Design new test matrices (that is the tester agent's job, spawned only at\n  `large`\u002F`critical` complexity)\n- Edit code (Phase 3 forbids writes; see `.claude\u002Fdocs\u002Frules\u002Fmcp-phase-gates.md`)\n- Spawn `bug-investigation` (escalate via `fail_reason` instead)\n- Wait indefinitely for a fix — write `BLOCKED` and return\n\n## Escalation\n\nIf verification FAILs:\n1. Write `verification_result.json` with `status=\"FAIL\"` and a precise\n   `fail_reason` (which invariant + how it failed + which file).\n2. Return. The orchestrator routes back to unity-dev for one retry.\n3. After two FAILs on the same task: orchestrator escalates to tester\n   (or human, per the retry policy in team.md).\n\n## Validation\n\nBefore declaring complete:\n\n```sh\npython .claude\u002Fscripts\u002Forchestrate.py validate workspace\u002Fverification_result.json verification_result\n```\n\nIf validation fails, fix the artifact and re-validate. The orchestrator's\n`finalize` gate will block any artifact that fails schema validation.\n","# Verifier Skill\n\nThe verifier is the default verification path for `tiny`, `small`, and `medium`\ncomplexity tasks. It does NOT design test matrices, does NOT spawn investigators,\ndoes NOT write new tests beyond what unity-dev already specified. Its job is to\nmechanically run the verification bundle and report PASS\u002FFAIL.\n\n> **Mandatory verification contract.** Even at the lightweight `verifier`\n> level, the run MUST satisfy\n> `@.claude\u002Fskills\u002Fqa-validation\u002Fverification-contract.md`:\n>\n> - **Static layer** — confirm compilation is clean and no banned patterns\n>   were introduced (asmdef breakage, Burst-incompatible code in hot paths,\n>   structural changes inside query iteration, editor-only API in runtime\n>   builds). Use `debug-check-compilation` + `console-get-logs` as evidence.\n> - **Runtime layer** — execute the verification bundle from\n>   `impl_result.json` and capture concrete evidence (tests-run, logs,\n>   screenshots).\n>\n> If a layer is impossible per contract §7, record the reason in\n> `verification_result.notes` and continue. Otherwise: missing layer →\n> `status=\"BLOCKED\"`. Reasoning alone is NEVER sufficient.\n\n## When You Are Spawned\n\n- Triage classified the task as small or medium.\n- unity-dev has finished and emitted `workspace\u002Fimpl_result.json` with a\n  filled-in `verification_bundle`.\n- The orchestrator validated the bundle is non-empty before spawning you.\n\n## Inputs\n\n- `workspace\u002Fimpl_result.json` — the verification bundle, repro steps, expected\n  state, invariants, and edge cases unity-dev wants checked.\n- `workspace\u002Ftriage.json` — for risk context.\n\n## Procedure (Fixed Six Steps)\n\n1. **Static layer (compile + architecture).** Call\n   `debug-check-compilation` (or REST equivalent). Read `console-get-logs`\n   for editor errors\u002Fwarnings. Scan the changed files for banned patterns\n   listed in `verification-contract.md` §1. Record findings under\n   `static_verification` on the result artifact.\n2. **Read the bundle.** `verification_bundle.repro_steps` is your script.\n3. **Run each repro step** via MCP (preferred) or by reading the changed\n   files to confirm the expected state.\n4. **Check every invariant.** Each unmet invariant is a regression.\n5. **Sample edge cases.** Cover at least half of `edge_cases[]`. Note any not\n   checked under `notes`.\n6. **Emit `workspace\u002Fverification_result.json`** with both\n   `static_verification` and `runtime_verification` populated (or `notes`\n   recording the §7 exemption that lets you omit one).\n\nIf at any point a repro step cannot run (compilation broken, MCP unreachable,\nrequired asset missing): set `status=\"BLOCKED\"`, write the reason, and stop.\nDo NOT improvise tests. Compilation broken in the static layer is an\nautomatic BLOCKED — the runtime layer cannot be trusted on a broken build.\n\n## Output\n\n`workspace\u002Fverification_result.json` matching\n`.claude\u002Fschemas\u002Fverification_result.schema.json`:\n\n```json\n{\n  \"status\": \"PASS|FAIL|BLOCKED\",\n  \"method\": \"verifier\",\n  \"regressions\": [\"…\"],\n  \"edge_cases_checked\": [\"…\"],\n  \"stress_results\": [],\n  \"evidence\": [\"static: debug-check-compilation clean\", \"runtime: tests-run PASS 12\u002F12\"],\n  \"notes\": \"edge cases skipped: X, Y (reason)\",\n  \"risk_level\": \"LOW|MEDIUM|HIGH\",\n  \"fail_reason\": null,\n  \"static_verification\": {\n    \"compile_clean\": true,\n    \"asmdef_clean\": true,\n    \"banned_patterns_found\": [],\n    \"notes\": \"no editor-only API leaked into runtime asmdef\"\n  },\n  \"runtime_verification\": {\n    \"method\": \"EditMode\",\n    \"tests_executed\": 12,\n    \"tests_passed\": 12,\n    \"edge_cases_covered\": 4,\n    \"notes\": \"\"\n  }\n}\n```\n\nRisk level rubric:\n- `LOW` — all invariants pass, all edge cases sampled, no regressions\n- `MEDIUM` — invariants pass, some edge cases skipped, no regressions\n- `HIGH` — any regression OR fewer than half edge cases sampled\n\n## What You DO NOT Do\n\n- Design new test matrices (that is the tester agent's job, spawned only at\n  `large`\u002F`critical` complexity)\n- Edit code (Phase 3 forbids writes; see `.claude\u002Fdocs\u002Frules\u002Fmcp-phase-gates.md`)\n- Spawn `bug-investigation` (escalate via `fail_reason` instead)\n- Wait indefinitely for a fix — write `BLOCKED` and return\n\n## Escalation\n\nIf verification FAILs:\n1. Write `verification_result.json` with `status=\"FAIL\"` and a precise\n   `fail_reason` (which invariant + how it failed + which file).\n2. Return. The orchestrator routes back to unity-dev for one retry.\n3. After two FAILs on the same task: orchestrator escalates to tester\n   (or human, per the retry policy in team.md).\n\n## Validation\n\nBefore declaring complete:\n\n```sh\npython .claude\u002Fscripts\u002Forchestrate.py validate workspace\u002Fverification_result.json verification_result\n```\n\nIf validation fails, fix the artifact and re-validate. The orchestrator's\n`finalize` gate will block any artifact that fails schema validation.\n",{"name":5,"metadata":48,"use-when":52,"platforms":53,"description":7,"do-not-use-when":57,"task-categories":58},{"tier":49,"source":50,"version":51},1,"internal","1.0.0","Load for the verifier agent on tiny, small, and medium complexity pipelines.\nLoad when impl_result.json exists and contains a verification_bundle to execute.\n",[54,55,42,56,32],"claude-code","codex","cursor","Do not load for large or critical complexity pipelines — use tester instead.\nDo not load for unity-dev, architect, or triage roles. Never edits code or designs tests.\n",[59,60,38],"verification","compilation","main","fe4746b9f07e6c7c2b6d3932002183af9b9f6fa2",".claude\u002Fskills\u002Fverifier",0,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team","https:\u002F\u002Fgithub.com\u002FdyCuong03","Game developer","2026-07-25 22:22:25",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add dyCuong03\u002Funity-agent-team --skill verifier",{"tool":75,"command":76},"bunx","bunx skills add dyCuong03\u002Funity-agent-team --skill verifier",{"tool":78,"command":79},"pnpm","pnpm dlx skills add dyCuong03\u002Funity-agent-team --skill verifier","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverifier\u002FSKILL.md",true,[],[84,106,130,155,173,194],{"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":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":43},"01M6KH55FFS00ET877QSMRYGX4","dots-update-groups","How to choose the right ECS system group and ordering so per-frame and per-fixed-step work is deterministic and never races its own readers. Covers InitializationSystemGroup \u002F SimulationSystemGroup \u002F PresentationSystemGroup \u002F FixedStepSimulationSystemGroup \u002F VariableRateSimulationSystemGroup, UpdateBefore \u002F UpdateAfter peer ordering, OrderFirst \u002F OrderLast group-boundary placement, RateManager, and the cross-group ordering trap. Use when adding an ISystem, fixing \"value visible one frame late\" bugs, or coupling simulation to a fixed timestep.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-update-groups\u002FSKILL.md",[],[91,92,93,94,95,96,97,98,37,36,99,24,100,101,102,103,104,105],"update","dots update groups","boundary","simulation","how","system","choose","work","peer","how to","coupling","ecs","bugs","frame","value",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":43},"01M6KH50PWYEFQDCGYBZ0326F1","dots-transform-patterns","The Entities 1.x transform model — LocalTransform (writable input) vs LocalToWorld (system-owned matrix), Parent\u002FChild hierarchy, reparenting cost, uniform vs non-uniform scale (PostTransformMatrix), and when to opt out with custom transform systems. Use when designing parent\u002Fchild hierarchies, runtime reparenting (mount\u002Fdismount\u002Fsocket), or choosing transform components at the Baker boundary.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-transform-patterns\u002FSKILL.md",[],[113,114,115,116,93,96,117,118,37,119,120,121,122,123,124,125,126,127,128,129],"patterns","transform","dots transform patterns","components","mount","model","cost","runtime","systems","input","with","matrix","socket","at","child","custom","hierarchy",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":141,"publishedAt":43},"01M6KH4VW4MA14DQW4KQYPFT0S","dots-singleton-patterns","Model cross-system shared configuration and game state as a single-entity component with a strict single-writer contract. Covers RequireForUpdate gating, SystemAPI.GetSingleton \u002F GetSingletonRW \u002F HasSingleton \u002F TryGetSingleton, bake-time vs runtime-created vs ECB-system singletons, the \"exactly one entity\" runtime invariant, and the single-writer rule. Use when designing frame-stable global config, shared mutable state, or any component intended to exist on exactly one entity.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-singleton-patterns\u002FSKILL.md",[136],{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[113,142,143,144,145,146,147,96,118,37,148,149,150,120,151,152,123,104,153,154],"singleton","dots singleton patterns","component","config","state","game","writer","time","shared","contract","as","ecb","gating",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":43},"01M6KH4PR076AYNDZHD63HHWX6","dots-hybrid-bridge","The one-way bridge between DOTS-owned runtime state and Unity-owned presentation. Covers UnityObjectRef for managed asset refs in components, the DOTS-writes \u002F Unity-reads ownership rule, when to use managed IComponentData vs UnityObjectRef vs CompanionComponent, baker-bridge vs runtime-bridge, and SubScene boundary rules. Use when an entity must reference Unity assets (Mesh, Material, AudioClip, ScriptableObject), a MonoBehaviour view must read entity state, or input\u002FUI must trigger ECS work.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-hybrid-bridge\u002FSKILL.md",[],[162,163,164,165,116,146,93,166,167,98,168,169,37,120,170,27,122,171,25,172],"bridge","hybrid","dots hybrid bridge","mesh","assets","Rules","read","view","trigger","material","managed",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":43},"01M6KH4FGRQ9AP2ND5H5HX4D83","dots-event-driven-ecs","Model one-frame events and external requests in ECS without dual ownership, polling, or persistent state leaks. Covers request-tag pattern with ECB, enableable command components (no structural change), event buffers (IBufferElementData), explicit consumer ownership, one-frame latency rules, and the banned C# event \u002F UnityEvent \u002F static bus anti-patterns. Use when input\u002FUI\u002Fnetwork must trigger ECS work, when a one-frame signal fans out to N consumers (damage, hit, collision), or when state changes must be processed exactly once.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-event-driven-ecs\u002FSKILL.md",[],[180,181,102,182,183,116,184,185,186,118,98,187,188,113,189,190,122,191,192,193],"event driven","driven","event","dots event driven ecs","change","ui","network","command","anti-patterns","pattern","structural","events","static","request",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":207,"publishedAt":43},"01M6KH4BWRGCEBJ8PKCKCSGT33","valid_skill","A complete, well-formed test fixture skill for SkillHub validation testing. Covers basic task routing and code review for Unity projects.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fvalid_skill\u002FSKILL.md",[200,203,206],{"categoryNo":201,"categoryName":202,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":204,"categoryName":205,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[208,209,210,211,212,213,214,40,215,216,217,218,219,220,27,221,25],"valid skill","valid","code review","testing","review","test","routing","validation","projects","fixture skill","task","fixture","basic","complete"]