mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
57 lines
2.6 KiB
Markdown
57 lines
2.6 KiB
Markdown
---
|
|
paths:
|
|
- ".claude/agent-memory/**"
|
|
---
|
|
|
|
# Agent Memory Rules
|
|
|
|
**Agent memory is the one place an agent may write without asking — and the only
|
|
one.** `.claude/agent-memory/` is gitignored, per-agent, and never ships. That
|
|
exemption exists because the memory is the agent's own working notes about how to
|
|
do its job, not a project artifact.
|
|
|
|
It does **not** extend anywhere else. The Collaboration Protocol still governs
|
|
every file under the code root (`src/`, `Assets/` or `Source/`), `design/`,
|
|
`docs/`, `production/` and `assets/`: ask
|
|
first, naming the path. Writing a memory is never a substitute for asking, and a
|
|
memory must never be used to record something the user declined to have written.
|
|
|
|
## Never record a temporary absence as a durable fact
|
|
|
|
This is the failure this file exists to prevent, and this repo is unusually
|
|
exposed to it.
|
|
|
|
**CCGS ships as a template the user clones *as their game*.** So on day one every
|
|
agent observes the same things — no game code, no GDDs, no engine configured, no
|
|
`tests/performance/` — and every one of those observations is **guaranteed to
|
|
stop being true**. A memory reading *"this repo is the framework, not a game;
|
|
perf requests have no target"* is accurate when written and actively harmful two
|
|
weeks later, when it tells a future run to return BLOCKED on a project that now
|
|
has a build. The agent will not re-derive it; that is what memory is for.
|
|
|
|
So:
|
|
|
|
- **Prefer recording a method over a state.** "Confirm an engine project and a
|
|
captured profile exist before profiling; return BLOCKED naming what is missing
|
|
rather than estimating" is durable. "There is no game here" is a timestamp.
|
|
- **If you must record a state, state what invalidates it**, on the same line:
|
|
`INVALIDATED WHEN: project.yaml declares an engine, or the code root (src/, Assets/ or Source/) contains game code.`
|
|
A reader with no other context must be able to tell whether the note still
|
|
holds.
|
|
- **Never record absence of a game, of assets, of tests or of config as a
|
|
settled property of the project.** Those are the states CCGS exists to move a
|
|
user out of.
|
|
|
|
## Disclose the write
|
|
|
|
Say in your response that you recorded a memory and where. An unmentioned write
|
|
is indistinguishable from no write, and the user cannot correct a note they do
|
|
not know exists — the same reason a skipped check has to announce itself
|
|
(`.claude/rules/skill-authoring.md`, obligation 3).
|
|
|
|
## Verify before you trust
|
|
|
|
A recalled memory reflects what was true when it was written. If it names a file,
|
|
a path, a setting or a count, **check that it still holds before acting on it**.
|
|
Memory is a starting point for investigation, never evidence.
|