Realigns the skill with how sessions actually run now — it predated the Workflow tool and the ultracode two-review practice. Driven by an analysis of the full session history + the 26-file memory corpus + skill-authoring research, adversarially reviewed. Key changes: - Workflow-first orchestration: drop the dead manual "swarm (<=N agents)" model and the impossible 3-5-agent impl swarm; implementation is serial orchestrator MCP edits. New references/workflow-patterns.md (ground fan-out + design-review lens/critic) replaces agent-briefs.md. - Pre-code design-review + post-impl diff-review are now first-class gated phases (the spine that catches what green tests + a clean Play miss). - Size by blast-radius / netcode-heaviness, not time estimates. - Lean SKILL.md (222 -> 131 lines, -25% KB): leans on CLAUDE.md instead of duplicating its MCP cheat-sheet / anti-patterns / error-recovery. - ctx7 CLI / find-docs mechanism (the MCP verbs are gone); live-verified 6.5-era library pins; kill the dead NetCodeTestWorld test path. - Encode operator gates (no-time-estimates, present-forks, never-defer, tuning-autonomy) + the highest-recurrence MCP-edit / Workflow gotchas. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.9 KiB
ctx7 / find-docs — DOTS library IDs & query playbook
The ctx7 CLI (or the find-docs skill) is the primary source of truth for every DOTS API, signature, and "current best practice." Unity's Entities/Netcode/Physics packages change between versions and training-data recall is stale — resolve → query before writing DOTS code.
The old context7 MCP verbs (
resolve-library-id/query-docs) are not in this environment's tool surface — do not call them. Use the CLI / skill below.
Flow (per the global ctx7 rule)
- Resolve:
npx ctx7@latest library "<official name>" "<your specific question>"→ pick the/org/projectID (prefer High reputation + high snippet count + the version closest to installed). Use proper punctuation in the name ("Netcode for Entities", "Unity Physics", "Entities Graphics"). - Fetch:
npx ctx7@latest docs <libraryId> "<your specific question>"— ask a specific question ("How do I read anIInputComponentDatainside a predicted system filtered bySimulate?"), not a bare keyword. - Cross-check working patterns against the ECS Samples repo ID below.
- Limit ≤3
library+ ≤3docscalls per question; reuse IDs across a session. On a quota error, suggestnpx ctx7@latest login/CONTEXT7_API_KEY— don't silently fall back to memory. - The
find-docsskill is an equivalent path (it wraps the same source) — either is fine.
Two-source rule (do BOTH)
Pair every doc lookup with unity_reflect on the installed type for the real, version-pinned shape. Docs give the current API; reflection gives what's actually compiled in this project — they can disagree, and reflection wins for the pinned engine version. (A research-only lookup once produced a false-negative on a character-controller API that reflection would have caught.)
Pin to the installed version
Read installed versions from Packages/packages-lock.json (or manage_packages action=list) before querying. This project runs the unified Unity 6.5 line: com.unity.entities / com.unity.netcode / com.unity.physics all 6.5.0 (the 6.x scheme tracks the Editor; it succeeded the old 1.x lines — Entities 6.4/6.5 is the direct successor to 1.4, Netcode 6.5 to the old ~1.12/1.13 line). "1.13.2" is no longer an installable version — treat any 1.x number as API-shape lineage, not a target string.
Seed library IDs (verified live 2026-06-18 — re-resolve at code-time)
The doc sets on context7 currently lag the package version for most DOTS packages — only Entities has a 6_5 set. Pin the live top hit, knowing the package is 6.5.0; re-resolve when a newer set publishes.
| Package | Pin (live top hit) | Alt / notes |
|---|---|---|
| Entities (DOTS) | /websites/unity3d_packages_com_unity_entities_6_5_manual |
version-matched; matches CLAUDE.md. Alt …entities_1_4 has far more snippets (~10.8k) — useful for code patterns. |
| Netcode for Entities | /websites/unity3d_packages_com_unity_netcode_1_10_api |
the live top hit (~4.3k snippets, High) — no netcode_6_5 set exists yet. Package is 6.5.0; this is the closest published. Alt …netcode_1_9. |
| Unity Physics | /websites/unity3d_packages_com_unity_physics_1_4 |
live top hit (~4k snippets, High) — no physics_6_5 set yet. Package is 6.5.0. |
| Entities Graphics | /websites/unity3d_packages_com_unity_entities_graphics_1_4 |
live top hit — no _graphics_6_5 set yet. Package is 6.5.0. |
| Official ECS Samples | /unity-technologies/entitycomponentsystemsamples |
working sample patterns (Entities/Netcode/Physics/Graphics). |
| Burst / Collections / Mathematics | resolve at runtime | library "Unity Burst" / "Unity Collections" / "Unity Mathematics". |
Netcode for Entities ≠ Netcode for GameObjects. Confirm it's
com.unity.netcode(ECS), notcom.unity.netcode.gameobjects. CLAUDE.md's own pinned-ID note is itself partly stale (it still says "we run 1.13.2") — lead with the installed 6.5.0 + the live re-resolve, and reconcile CLAUDE.md when you touch it.
Query patterns that work
- "Entities: declare an
IJobEntitywriting through anEntityCommandBuffer.ParallelWriter, schedule with the right dependency." - "Netcode for Entities: minimal
GhostAuthoringComponent+[GhostField]for a predicted player-controlled ghost." - "Netcode for Entities: read
IInputComponentDatain a system inPredictedSimulationSystemGroup, filtered bySimulate." - "Entities:
Baker<T>use ofGetEntitywithTransformUsageFlags+DependsOn." - "Entities:
IEnableableComponentvs add/remove tag — API + when each is cheaper."
When NOT to use ctx7
- Genre/design precedent ("how do other games pace waves") →
WebSearch/WebFetch. Never use web for a DOTS API shape. - Pure C#/algorithm questions unrelated to a library → reason directly.
- The project's own conventions/design →
CLAUDE.md+ the vault.