codex-game-studios
AGENTS.md1 starsChanged 26 days agoMITView on GitHub
This repository is Claude Code Game Studios adapted to run in OpenAI Codex. The skills (.claude/skills/), agents (.claude/agents/), rules and docs were written for Claude Code and are kept unchanged as the source of truth. When they use Claude Code vocabulary, do this instead: Also: - Start Codex from the repository root; the hooks use repo-relative paths. - Never read, print or edit .env files (upstream denies this in its settings). - Path-scoped rules: before you create or edit a…
- Reads credentials
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository153 other files it gives its agents.
- CCGS Skill Testing Framework/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- design/CLAUDE.mdCLAUDE.md
- docs/CLAUDE.mdCLAUDE.md
- src/CLAUDE.mdCLAUDE.md
- adoptSkill
- architecture-decisionSkill
- architecture-reviewSkill
- art-bibleSkill
- asset-auditSkill
- asset-specSkill
- balance-checkSkill
- brainstormSkill
- bug-reportSkill
- bug-triageSkill
- changelogSkill
- code-reviewSkill
- consistency-checkSkill
- content-auditSkill
- create-architectureSkill
- create-control-manifestSkill
- create-epicsSkill
- create-storiesSkill
- day-one-patchSkill
- design-reviewSkill
- design-systemSkill
- dev-storySkill
- estimateSkill
- gate-checkSkill
- helpSkill
- hotfixSkill
- launch-checklistSkill
- localizeSkill
- map-systemsSkill
- milestone-reviewSkill
- onboardSkill
- patch-notesSkill
- perf-profileSkill
- playtest-reportSkill
- project-stage-detectSkill
- propagate-design-changeSkill
- prototypeSkill
- qa-planSkill
- quick-designSkill
- regression-suiteSkill
- release-checklistSkill
- retrospectiveSkill
- reverse-documentSkill
- review-all-gddsSkill
- scope-checkSkill
- security-auditSkill
- settingsSkill
- setup-engineSkill
- skill-improveSkill
- skill-testSkill
- smoke-checkSkill
- soak-testSkill
- sprint-planSkill
- sprint-statusSkill
- startSkill
- The first 60 shown.
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
26 rules. About 0 are common, 16 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 30
Start Codex from the repository root.
- Very specific: line 31
Never read, print or edit .env files (upstream denies this in its settings).
- Very specific: line 137
Read tests/unit/[system]/ (or integration/) anywhere as the test root plus [System]/.
- Very specific: line 141
Read docs/engine-reference/<engine>/VERSION.md for the engine set in project.yaml (or CLAUDE.md) before any engine-specific work.
- Very specific: line 163
Conflict Resolution: When two agents disagree, escalate to the shared parent.
- Very specific: line 166
Change Propagation: When a design change affects multiple domains, the producer agent coordinates the propagation.
- Very specific: line 173
Read .claude/docs/model-tiers.md on demand.
- Very specific: line 193
When to spawn in parallel: If two subagents' inputs are independent (neither needs the other's output to begin), spawn both Agent calls …
- Distinctive: line 206
When an orchestration skill spawns multiple independent agents:
- Distinctive: line 210
If any agent is BLOCKED, surface it immediately — do not silently skip
- Distinctive: line 211
Always produce a partial report if some agents complete and others block
- Distinctive: line 216
Every task follows: Question -> Options -> Decision -> Draft -> Approval
- Distinctive: line 223
No commits without user instruction
- Distinctive: line 239
All game code must include doc comments on public APIs
- Distinctive: line 245
All public methods must be unit-testable (dependency injection over singletons)
- Very specific: line 247
Commit messages: Use Conventional Commits format — feat:, fix:, chore:, docs:, test:, refactor:.
- Distinctive: line 248
Verification-driven development: Write tests first when adding gameplay systems.
- Very specific: line 251
A parse check is not a run: Every story that changes something player-observable is launched and observed before it closes, and the …
- Distinctive: line 259
All design docs use Markdown
- Distinctive: line 281
All stories must have appropriate test evidence before they can be marked Done:
- Distinctive: line 315
No hardcoded data: Test fixtures use constant files or factory functions, not inline magic numbers (exception: boundary value tests where …
- Distinctive: line 329
No merge if tests fail — tests are a blocking gate in CI
- Distinctive: line 330
Never disable or skip failing tests to make CI pass — fix the underlying issue
- Very specific: line 338
Read .claude/docs/context-management.md on demand — it is a reference, not session context.
- Distinctive: line 378
If the last level is also BLOCKED, stop and tell the user what each level tried and what is still blocking, with options for how to proceed.
- Distinctive: line 384
If you (the main session) are stuck on a step after a real attempt and the session model is weaker than the ladder, hand that step to the …
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Codex Game Studios -- Game Studio Agent Architecture
<!-- Generated by codex-port/convert_to_codex.py; do not edit. Put your own rules in PROJECT-NOTES.md. -->Codex compatibility (read first)
This repository is Claude Code Game Studios adapted to run in OpenAI Codex.
The skills (.claude/skills/), agents (.claude/agents/), rules and docs were
written for Claude Code and are kept unchanged as the source of truth. When they
use Claude Code vocabulary, do this instead:
| Upstream text says | In Codex |
/name (/start, /dev-story, /settings ...) | the skill $name (wrappers live in .agents/skills/) |
AskUserQuestion (any question/options block) | Ask in chat: one short question, numbered options, your recommendation marked. Then stop and wait. A turn that ends without the user's answer is not an answer. |
Agent / Task tool, "spawn subagent_type: X", "spawn the X agent" | Spawn the Codex custom agent X (.codex/agents/X.toml) with the prompt the skill specifies. If subagents are unavailable, or the user wants fewer spawns, take the role yourself: read .claude/agents/X.md, follow it for that step, then return to the skill. |
Read / Glob / Grep / Write / Edit | your normal file reading, searching and apply_patch |
a skill line starting with !`command` | run that command first; its output is the config the skill calls "resolved above" |
${CLAUDE_SKILL_DIR} | .claude/skills/<skill-name> |
${CLAUDE_PROJECT_DIR} | the repository root |
CLAUDE.md | this file. $setup-engine still writes the engine choice into CLAUDE.md; see "Technology Stack" below. |
/clear | Codex /new (then read production/session-state/active.md) |
model: haiku / sonnet / opus | see "Model tiers" below: custom agents carry their tier's model; light skills delegate to ccgs-light-runner; heavy skills recommend a model switch |
maxTurns, allowed-tools | ignore |
| Agent teams (several Claude Code sessions sharing a task list) | not available in Codex; use subagents or one session |
agent memory: project | .claude/agent-memory/<agent>/MEMORY.md |
| Claude Code hooks, deny rules | .codex/hooks.json and .codex/rules/ccgs.rules run the same checks (trust the hooks once with /hooks) |
Also:
- Start Codex from the repository root; the hooks use repo-relative paths.
- Never read, print or edit
.envfiles (upstream denies this in its settings). - Path-scoped rules: before you create or edit a file that matches a glob in the table under "Path-scoped rules", read that rule file and follow it.
Project notes
<!-- project-notes-sha256: 985c10efcdaa58d1d02845bbb7a4f7f6a90597e4a590a98c6620cf9950569e1b --><!-- BEGIN PROJECT NOTES: copied from PROJECT-NOTES.md; edit that file, not this block -->Creative decisions are always the user's
project.yaml sets modes.automation: guided and lists four creative
categories in modes.automation_always_ask. Upstream only consults that list
in autonomous mode; in this project it applies in every mode. Treat any
decision in these categories as major: present options with your
recommendation, ask in chat, and wait. Never "recommend and proceed", and never
pick-and-log.
| Category | Covers |
art_and_visuals | art style and art bible, character/creature/environment look, color palette, UI visual style, VFX look, concept and asset specs |
story_and_narrative | plot, characters and their arcs, world and lore, factions, quests, endings, tone |
player_facing_text | dialogue, barks, item/skill/quest descriptions, UI copy, tutorials, store page and marketing copy, patch notes for players |
music_and_audio | music direction and tracks, sound palette and SFX style, voice casting and VO direction, audio mix intent |
This includes decisions made by subagents: a subagent returns these as questions instead of deciding. Technical work around creative content (file formats, import settings, wiring an approved line or sound into the game) follows the normal guided rules.
交付与重试规矩
- 开始一项实现或修复任务前,先用一句话说清楚这次要交付什么(比如 PR 标题、要改哪个文件,或者预期看到的命令输出)。
- 遇到以下任一情况,就停下来先找我确认: (a)超过 10 分钟一处修改都没有做(只适用于写代码、修 bug 这类实现任务;设计讨论、调研、写文档不算); (b)同一种方法失败了两次。
- 任何一个问题最多只试两次,不要再继续重试。这条优先于「卡住自动升级」:同一个问题失败两次后直接来问我,不要换更强的模型重试。升级机制只用于其他卡住的情况。
- 子 agent 同样遵守:同一个问题失败两次就返回
BLOCKED: two attempts failed,并说明两次各试了什么,由主会话来问我。
模型提醒
开始系统架构、技术决策、系统拆分、阶段评审这类工作前(create-architecture、architecture-decision、map-systems、gate-check、review-all-gdds、architecture-review),如果当前会话不是最强的模型(Claude 用 Fable,Codex 用 gpt-6-astra),先提醒我一次可以切换,再继续。
总监用的模型
- 技术总监(
technical-director)固定用最强的模型:在 Claude Code 里派出它时,指定model: fable;在 Codex 里它的配置已经固定为gpt-6-astra+ xhigh。 - 创意总监(
creative-director)和制作人(producer)保持 Opus(Codex 里是gpt-6-astra+ high),不要额外指定。
<!-- END PROJECT NOTES -->Indie game development managed through 49 coordinated agents (Codex custom agents). Each agent owns a specific domain, enforcing separation of concerns and quality.
Technology Stack
The engine, language and pipeline are configured by $setup-engine in
project.yaml and in the 'Technology Stack' section of CLAUDE.md. Read
them at the start of any engine or code work.
Project Structure
<!-- inlined from .claude/docs/directory-structure.md -->Directory Structure
/
├── CLAUDE.md # Master configuration
├── project.yaml # Machine-readable project config — engine, modes, stage (source of truth)
├── .claude/ # Agent definitions, skills, hooks, rules, docs
├── <code root>/ # Game source code — THE PATH IS ENGINE-SPECIFIC, see below
├── assets/ # Game assets (art, audio, vfx, shaders, data)
├── design/ # Game design documents (gdd, narrative, levels, balance)
├── docs/ # Technical documentation (architecture, api, postmortems)
│ └── engine-reference/ # Curated engine API snapshots (version-pinned)
├── tests/ # Game test suites (unit, integration, performance, playtest)
├── tools/ # Build and pipeline tools (ci, build, asset-pipeline)
├── prototypes/ # Throwaway prototypes (outside the code root)
├── production/ # Production management (sprints, milestones, releases)
│ ├── session-state/ # Ephemeral session state (active.md — gitignored)
│ └── session-logs/ # Session audit trail (gitignored)
└── CCGS Skill Testing Framework/ # QA for the skills/agents themselves — $skill-test, $skill-improveThe code root is engine-specific
Two of the three supported engines will not build a project whose code sits in
src/. This is not a style preference — it is a hard constraint of the engine's
own toolchain:
engine.name | Code root | Why it cannot be src/ |
| Godot | src/ | No constraint — Godot loads from res:// anywhere under the project root. |
| Unity | Assets/ | Unity compiles only Assets/ and Packages/. Code outside them is invisible to the compiler. |
| Unreal | Source/<Module>/ | UnrealBuildTool discovers modules under Source/; content lives in Content/. A module elsewhere is not built. |
Resolve the code root from engine.name before writing any source file. A
path shown as src/… alone is a Godot example: read it as "the code root" and
substitute the row above. src/ is the table's Godot row, not a universal path.
Tests follow the same rule — the same compilers decide what they see:
engine.name | Test root | Anywhere else |
| Godot | tests/unit/, tests/integration/ | — |
| Unity | Assets/Tests/EditMode/, Assets/Tests/PlayMode/ | not compiled: "0 tests, Passed" |
| Unreal | Source/<Module>/Private/Tests/ | not built: "No automation tests matched" |
Read tests/unit/[system]/ (or integration/) anywhere as the test root plus [System]/.
Engine Version Reference
Read docs/engine-reference/<engine>/VERSION.md for the engine set in project.yaml (or CLAUDE.md) before any engine-specific work.
Technical Preferences
project.yaml at the repo root is the primary config store — engine, specialists,
naming, platform, performance, modes. Skills resolve it via resolve_config
(see .claude/docs/config-resolution.md).
.claude/docs/technical-preferences.md is the legacy fallback, read on demand
when a key is absent from project.yaml. It is no longer imported here: before
$setup-engine runs it is almost entirely [TO BE CONFIGURED] placeholders, and
after it runs project.yaml holds the real values.
Coordination Rules
<!-- inlined from .claude/docs/coordination-rules.md -->Agent Coordination Rules
- Vertical Delegation: Leadership agents delegate to department leads, who delegate to specialists. Never skip a tier for complex decisions.
- Horizontal Consultation: Agents at the same tier may consult each other but must not make binding decisions outside their domain.
- Conflict Resolution: When two agents disagree, escalate to the shared
parent. If no shared parent, escalate to
creative-directorfor design conflicts ortechnical-directorfor technical conflicts. - Change Propagation: When a design change affects multiple domains, the
produceragent coordinates the propagation. - No Unilateral Cross-Domain Changes: An agent must never modify files outside its designated directories without explicit delegation.
Model Tier Assignment
Read .claude/docs/model-tiers.md on demand. It carries the tier table, the
per-skill assignments and the authoring rule.
Key point: whether a skill's model: is used
depends on how the skill starts. Typed as /skill-name: yes, except a haiku
pin in auto mode. Started by Claude through the Skill tool: no. Never tell a
user a haiku skill saves money; an opus skill typed in a Sonnet session
costs more. The agent-side model: is a different mechanism, and is applied.
Subagents vs Agent Teams
This project uses two distinct multi-agent patterns:
Subagents (current, always active)
Spawned via the Agent tool within a single Claude Code session (renamed from
Task in Claude Code 2.1.63; Task still works as an alias). Used by all
team-* skills and orchestration skills. Subagents share the session's
permission context, run sequentially or in parallel within the session, and
return results to the parent.
When to spawn in parallel: If two subagents' inputs are independent (neither
needs the other's output to begin), spawn both Agent calls simultaneously
rather than waiting. Example: $review-all-gdds Phase 2 (consistency) and
Phase 3 (design theory) are independent — spawn both at the same time.
Phase 1 loads the GDDs and both depend on it, so it is the one phase here that
must NOT be parallelised.
Agent Teams (experimental — opt-in)
Multiple independent Claude Code sessions coordinated via a shared task list.
Opt-in only — read .claude/docs/agent-teams.md on demand before proposing one.
Parallel Task Protocol
When an orchestration skill spawns multiple independent agents:
- Issue all independent
Agentcalls before waiting for any result - Collect all results before proceeding to dependent phases
- If any agent is BLOCKED, surface it immediately — do not silently skip
- Always produce a partial report if some agents complete and others block
Collaboration Protocol
User-driven collaboration, not autonomous execution. Every task follows: Question -> Options -> Decision -> Draft -> Approval
- Agents MUST ask "May I write this to [filepath]?" before using Write/Edit tools
(exempt:
active.mdappends, agent memory, a subagent's new file at the path its orchestrating skill named; see.claude/rules/agent-memory.md) - Agents MUST show drafts or summaries before requesting approval
- Multi-file changes require explicit approval for the full changeset
- No commits without user instruction
- A skipped or dismissed question is not an answer: act on nothing, re-ask in plain text and wait
- Started outside this file's folder? Warn first: hooks, deny rules and the ask-first mode load only when Codex starts here
See docs/COLLABORATIVE-DESIGN-PRINCIPLE.md for full protocol and examples.
First session? If the project has no engine configured and no game concept, run
$startto begin the guided onboarding flow.
Coding Standards
<!-- inlined from .claude/docs/coding-standards.md -->Coding Standards
- All game code must include doc comments on public APIs
- Architecture decisions are recorded as ADRs in
docs/architecture/. How many is set bymodes.workflow— all ADRs atfull, critical ADRs only atstandard, and none required atminimal, where the decision log anddesign/game-brief.mdcarry the rationale instead. See.claude/docs/workflow-modes.md. - Gameplay values must be data-driven (external config), never hardcoded
- All public methods must be unit-testable (dependency injection over singletons)
- Commits must reference the relevant design document or task ID
- Commit messages: Use Conventional Commits format —
feat:,fix:,chore:,docs:,test:,refactor:. Reference the story or task ID in the body (e.g.,Story: EPIC-001-S02). - Verification-driven development: Write tests first when adding gameplay systems. For UI changes, verify with screenshots. Compare expected output to actual output before marking work complete. Every implementation should have a way to prove it works.
- A parse check is not a run. Every story that changes something
player-observable is launched and observed before it closes, and the
observation is a retained screenshot in
production/qa/evidence/. Procedure per engine:.claude/docs/run-and-observe.md. Not waived atqa.level: minimal— tests are, the look is not.
Design Document Standards
- All design docs use Markdown
- Each mechanic has a dedicated document in
design/gdd/ - How many of the 8 sections are required depends on
modes.workflow— all 8 atfull, 5 (+ Formulas when the system defines numeric rules — rates, curves, thresholds, costs; the system'sCategoryis a hint, not the test) atstandard, and no GDD at all atminimal, wheredesign/game-brief.mdis the design record. See.claude/docs/workflow-modes.md. The 8 sections:- Overview -- one-paragraph summary
- Player Fantasy -- intended feeling and experience
- Detailed Rules -- unambiguous mechanics
- Formulas -- all math defined with variables
- Edge Cases -- unusual situations handled
- Dependencies -- other systems listed
- Tuning Knobs -- configurable values identified
- Acceptance Criteria -- testable success conditions
- Balance values must link to their source formula or rationale
Testing Standards
Test Evidence by Story Type
All stories must have appropriate test evidence before they can be marked Done:
| Story Type | Required Evidence | Location | Default Gate Level |
| Logic (formulas, AI, state machines) | Automated unit test — must pass | tests/unit/[system]/ | BLOCKING |
| Integration (multi-system) | Integration test OR documented playtest | tests/integration/[system]/ | BLOCKING |
| Visual/Feel (animation, VFX, feel) | Retained screenshot + lead sign-off | production/qa/evidence/ | BLOCKING |
| UI (menus, HUD, screens) | Retained screenshot of each screen touched | production/qa/evidence/ | BLOCKING |
| Config/Data (balance tuning) | Smoke check pass | production/qa/smoke-[date].md | ADVISORY |
The Default Gate Level applies when testing.strict is not set in
project.yaml. A project may override it per test type: testing.strict.logic,
.integration, .visual, .ui, and .config each take true (BLOCKING) or
false (ADVISORY). $story-done, $story-readiness, $dev-story,
$gate-check, and $smoke-check resolve the effective level from that setting,
falling back to the defaults above when it is absent.
Why Visual and UI block. "Retained" is load-bearing — the screenshot must still be on disk in
production/qa/evidence/when the story is closed. One that was captured and discarded is an assertion, not evidence. These two rows block because for a game the way it looks is the product: an advisory visual gate gets deferred in favour of whatever does block, and the result is a well-tested game that looks wrong.
Exception —
$smoke-check. The ADVISORY default for Config/Data above applies to per-story evidence gates.$smoke-checkis a build-health gate, not a per-story evidence gate, so its own unset default fortesting.strict.configis BLOCKING. The two defaults differ on purpose.
Automated Test Rules
- Naming: per engine —
.claude/rules/test-standards.md - Determinism: Tests must produce the same result every run — no random seeds, no time-dependent assertions
- Isolation: Each test sets up and tears down its own state; tests must not depend on execution order
- No hardcoded data: Test fixtures use constant files or factory functions, not inline magic numbers (exception: boundary value tests where the exact number IS the point)
- Independence: Unit tests do not call external APIs, databases, or file I/O — use dependency injection
What NOT to Automate
- Visual fidelity (shader output, VFX appearance, animation curves)
- "Feel" qualities (input responsiveness, perceived weight, timing)
- Platform-specific rendering (test on target hardware, not headlessly)
- Full gameplay sessions (covered by playtesting, not automation)
CI/CD Rules
- Automated test suite runs on every push to main and every PR
- No merge if tests fail — tests are a blocking gate in CI
- Never disable or skip failing tests to make CI pass — fix the underlying issue
- Engine-specific CI commands:
- Godot:
godot --headless -s -d --remote-debug tcp://127.0.0.1:0 res://addons/gdUnit4/bin/GdUnitCmdTool.gd -a res://tests --ignoreHeadlessMode - Unity:
game-ci/unity-test-runner@v4(GitHub Actions) - Unreal: headless runner with
-nullrhiflag
- Godot:
Context Management
Read .claude/docs/context-management.md on demand — it is a reference, not
session context. Two of its conventions are load-bearing and cited by name
elsewhere in the repo, so they are restated here rather than lost:
production/session-state/active.mdis the session checkpoint. The file is the memory, not the conversation. Read it first after any compaction, crash, or/new.- Helpers in
.claude/scripts/emit observations, never verdicts. A script that scores or judges will eventually contradict a mode or override it cannot see. (Cited byartifact-check.shandadr-dep-graph.sh.)
Model tiers
Upstream rates every skill and agent by difficulty; codex-port/model_tiers.toml
maps the ratings to Codex models. Custom agents run on their tier's model.
Skills run in this session, so a skill cannot change the model: light skills
are delegated to ccgs-light-runner, heavy skills ask the user to consider
/model, and standard skills run on the session model.
| Tier | Model (effort) | Agents | Skills | If BLOCKED |
| heavy | gpt-6-astra (high) | creative-director, producer | $architecture-decision, $architecture-review, $create-architecture, $gate-check, $map-systems, $review-all-gdds | ccgs-escalation-max → ask the user |
| top | gpt-6-astra (xhigh) | technical-director | — | ask the user |
| standard | gpt-6.1-sol (high) | all other agents (46) | all other skills (they run on the session model) | ccgs-escalation → ccgs-escalation-max → ask the user |
| light | gpt-6-luna (high) | ccgs-light-runner | $help, $onboard, $project-stage-detect, $scope-check, $sprint-status | ccgs-escalation → ccgs-escalation-max → ask the user |
| escalation | gpt-6-astra (high) | ccgs-escalation | — | ccgs-escalation-max → ask the user |
| escalation-max | gpt-6-astra (xhigh) | ccgs-escalation-max | — | ask the user |
Escalation when an agent is stuck
Agents return a report starting with BLOCKED: when they cannot finish or are
not confident in the result. When that happens, or when an agent's result is
clearly unusable (fails its acceptance criteria, tests still fail, contradicts
the spec or the user's decisions):
- Retry the step with the next agent in the "If BLOCKED" column above, in order. Give it the role or skill, the original task, the failure report (and any earlier escalation reports), and the files involved.
- Tell the user in one line each time you escalate, e.g. "game-designer got stuck on the economy formula; retrying on ccgs-escalation."
- If the last level is also BLOCKED, stop and tell the user what each level tried and what is still blocking, with options for how to proceed.
- Escalate each step at most once per level. Never escalated, always taken to
the user: questions for the user, the creative decisions in "Project notes",
and a
BLOCKED: two attempts failedreport. Any single problem gets at most two attempts in total, counting every agent and level (see "Project notes"). - If you (the main session) are stuck on a step after a real attempt and the session model is weaker than the ladder, hand that step to the ladder the same way, unless that problem has already had two attempts.
Path-scoped rules
| Rule file | Applies to |
.claude/rules/agent-memory.md | .claude/agent-memory/** |
.claude/rules/ai-code.md | src/ai/**, Assets/**/{AI,Ai,ai}/**/*.cs, Source/**/{AI,Ai,ai}/**/*.{h,cpp} |
.claude/rules/data-files.md | assets/data/**/*.json, Assets/**/{Data,data}/**/*.json, Content/**/{Data,data}/**/*.json |
.claude/rules/design-docs.md | design/gdd/** |
.claude/rules/engine-code.md | src/core/**, Assets/**/{Core,core}/**/*.cs, Source/**/{Core,core}/**/*.{h,cpp} |
.claude/rules/gameplay-code.md | src/gameplay/**, Assets/**/{Gameplay,gameplay}/**/*.cs, Source/**/{Gameplay,gameplay}/**/*.{h,cpp} |
.claude/rules/narrative.md | design/narrative/** |
.claude/rules/network-code.md | src/networking/**, Assets/**/{Networking,networking,Network,network}/**/*.cs, Source/**/{Networking,networking,Network,network}/**/*.{h,cpp} |
.claude/rules/prototype-code.md | prototypes/** |
.claude/rules/shader-code.md | assets/shaders/**, **/*.gdshader, Assets/**/*.{shader,hlsl,cginc,compute,shadergraph}, Shaders/**, **/*.{usf,ush} |
.claude/rules/skill-authoring.md | .claude/skills/**, .claude/agents/** |
.claude/rules/test-standards.md | tests/**, Assets/Tests/**/*.cs, Source/**/Tests/**/*.{h,cpp} |
.claude/rules/ui-code.md | src/ui/**, Assets/**/{UI,Ui,ui}/**/*.cs, Source/**/{UI,Ui,ui}/**/*.{h,cpp} |
design/CLAUDE.md | design/** |
docs/CLAUDE.md | docs/** |
src/CLAUDE.md | src/** |
Agent roster
Custom agents in .codex/agents/ (full roles in .claude/agents/<name>.md):
accessibility-specialist, ai-programmer, analytics-engineer, art-director, audio-director, community-manager, creative-director, devops-engineer, economy-designer, engine-programmer, game-designer, gameplay-programmer, godot-csharp-specialist, godot-gdextension-specialist, godot-gdscript-specialist, godot-shader-specialist, godot-specialist, lead-programmer, level-designer, live-ops-designer, localization-lead, narrative-director, network-programmer, performance-analyst, producer, prototyper, qa-lead, qa-tester, release-manager, security-engineer, sound-designer, systems-designer, technical-artist, technical-director, tools-programmer, ue-blueprint-specialist, ue-gas-specialist, ue-replication-specialist, ue-umg-specialist, ui-programmer, unity-addressables-specialist, unity-dots-specialist, unity-shader-specialist, unity-specialist, unity-ui-specialist, unreal-specialist, ux-designer, world-builder, writer
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

