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
2.6 KiB
paths
| paths | |
|---|---|
|
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.