Instructions for AI agents working in this repository.
This file inlines the tripwires — the mistakes that are high-frequency, high-cost, or silent, and that you must not make even on a first read. Everything else — doc layers, header blocks, section order, authoring rules — lives in Documents/SKILL.md, which is canonical. Read it before writing anything under Documents/. When in doubt about where something goes, SKILL.md decides; this file only tells you what to never do and where to start.
- Read Documents/architecture/INDEX.md to find the relevant domain. When the question is what to build next or what's blocking a playable goal, start at Documents/milestones/INDEX.md instead (focus + dependency trees — see Documents/SKILL.md).
- Open the linked system map under
Documents/architecture/systems/for entry points and key files. - Read the map's Pitfalls section before any UI Toolkit, FishNet, or prefab work — it records failures that compile and run but misbehave with no error or log. These cost hours precisely because nothing throws; the map is where that knowledge is banked.
- Only then read specific source files or run targeted search — not full-tree exploration.
Trust the maps, but verify. Each system map header carries a > Verified: <commit> stamp — the commit the map was last checked against code. If that commit is far behind current HEAD, treat the map as possibly stale: confirm the files under Start here still exist and still do what the map says before relying on them. If you find a map wrong or out of date, fix it via update-system-docs — do not silently route around it. A stale map the next agent trusts is worse than no map at all.
When a feature needs models, textures, sounds, or UI art:
- Read Documents/art-asset-index.md.
- Search Documents/art-available-for-import.json for assets not yet in-game.
- Use Documents/art-asset-index.json to check whether art is already imported.
Most game-ready source files live in RE-SS3D/SS3D-Art. The index maps each source file to its expected Assets/Art/ import path. Regenerate with python3 Tools/generate_art_index.py after importing new art.
When building UI that needs icon sprites (buttons, HUD, panels, machine interfaces):
- Read Documents/icon-index.md.
- Search Documents/icon-index.json by name, tag, or pack.
- Icons live in
Assets/Art/Icons/— game-icons.net SVGs underExternal/(by contributor pack), plusHeroicons/,Inventory/,Alerts/,Rendered/,map-editor/, and Phase 2 leftoverArt/Graphics/UI/Interactions/InteractionIcons/(see index for exact paths).
All icon image assets (SVG/PNG) belong under Assets/Art/Icons/ — never add a new icon folder under
Graphics/ or Content/Systems/*. A ScriptableObject that wraps icon assets for code lookup (an icon
catalog, not the image itself) is fine to keep next to the system that owns it, but must not share a folder
name with the Art-side image folder it wraps. See
2026-07_asset-file-structure-taxonomy.md
for the full audit and the rest of the asset-placement taxonomy (prefabs, ScriptableObject data, etc.).
Regenerate with python3 Tools/generate_icon_index.py after adding icons.
Canonical layer table (what each folder answers, who updates it): Documents/SKILL.md. The hard rules, inlined so you hit them before you act:
- Never edit
Documents/design/*orDocuments/FORK_STATUS.mdunless the owner explicitly asks. If code diverges from a design spec, record the divergence in the system map, plan, or architecture effort doc — do not change the design file to match code. - Design docs are WHAT/WHY only — no prototyping prompts, no build-status field. Need a Cursor or Claude Design prompt for a system? Generate it fresh from the design doc plus the current system map; don't expect one written into the design doc. Need to know what's built vs. only designed? Read the coverage table in INDEX.md, not the design doc.
- Plans, system maps, and milestones are yours to update; design specs are not. When your feature ships, sync the maps (below) — and bump any matching milestone slice / hub current focus — an unsynced map is the drift this whole system exists to prevent.
- The system map is
stuband lacks the detail you need. - The task spans cross-cutting concerns not covered by any map.
- You are verifying a specific symbol, or checking whether a map is still accurate (see "Trust the maps, but verify" above).
Run the update-system-docs skill (.cursor/skills/update-system-docs/SKILL.md) to sync:
- Affected system maps (including bumping their
Verifiedstamp and recording any new Pitfalls you hit) - INDEX status and coverage table
- Linked plans in
Documents/plans/ - Architecture effort doc status, if applicable
- Milestone slice status and hub current focus under
Documents/milestones/, if the work advanced a playable gate
Before adding a SubSystem, entity behaviour, or UI surface, read Documents/architecture/2026-07_agent-first-composition.md.
- Do not edit
Boot.unity/Game.unityto register systems or UI hosts unless the task is the bootstrap effort. - Do not hand-edit mega-prefabs (especially
Human.prefab) to add features — write a tier-B PrefabUtility recipe (staticSetupAll/Wire, registered on a domain Run All … aggregator) or wait for the owning redesign’s Phase 0 rewire; never grow the component dump “just this once.” Do not add a permanentSS3D/.../Setup …MenuItem for one-shot wiring — see 2026-07_editor-tooling-tiers.md. - Do not add or extend uGUI / TMP gameplay UI; do not “migrate” condemned views to UI Toolkit as a bridge.
- Do not “fix” or feature-extend system maps marked condemned — replace per the linked design doc with a Phase 0 purge.
- New UI: UI Toolkit (UXML/USS) + catalog/path pattern. Interim reference until UiShell exists: machine-interface. Target shell: ui-shell. Do not add another per-surface
Rebuild Asset CatalogMenuItem — extendUiCatalogBuilderKit/ the umbrella rebuild.
See Documents/SKILL.md for header blocks, linking rules, system map template, and how a brand-new domain goes from design-only to mapped.
- Unity 6 / URP multiplayer game using FishNet.
- Gameplay code under
Assets/Scripts/SS3D/. - Subsystem pattern:
SubSystem/NetworkSubSystemviaSubSystems.Get<T>(). - Upstream GitBook may help with generic Unity/FishNet concepts; fork direction lives in
Documents/.