mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Release 1.1.0 — one config file, and a process weight you choose
`project.yaml` at the repo root is now the single source of truth for a project's configuration, replacing `production/stage.txt`, `production/review-mode.txt` and `.claude/docs/technical-preferences.md` (all three still read as a fallback; nothing is force-deleted). **`modes.rigor` — one question instead of six.** `minimal`, `standard` or `full` fronts six knobs: `modes.workflow`, `docs.density`, `qa.level`, `modes.story_granularity`, `modes.review_mode` and `team.size`. It defaults to `minimal`, which is a change from 1.0's behaviour: the heavier tier was measured costing several times more to reach working code without producing a better result, and returning nothing when a fresh developer inherited the project. Pin `modes.rigor: standard` to keep 1.0's process level. Also in this release: - `/settings` to view or change any setting, and `project.local.yaml` for per-developer preferences that should not be committed. - `system_overrides` to hold one system to a higher standard than the rest of the project, and `testing.strict` to set per test type whether missing evidence blocks a story or warns. - A story that changes anything the player sees is not closed until the game has been launched, observed, and a screenshot retained in `production/qa/evidence/`. A parse check is not a run. This holds at every rigor level, including `minimal`, where automated tests are waived but the look is not. - The code root is engine-specific and enforced as such: Godot `src/`, Unity `Assets/`, Unreal `Source/<Module>/`. Two of the three will not build a project laid out any other way. - Migration tooling for existing projects: `.claude/scripts/migrate-v1-config.sh` converts a 1.0 layout, non-destructively by default, with a report to review before `--finalize` deletes anything. - Ask-before-write holds regardless of personal automation settings. Upgrading from 1.0 or earlier: see UPGRADING.md. Full list of changes: CHANGELOG.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016xvzG3i7pWQg4LjyDwWMXd
This commit is contained in:
co-authored by
Claude Opus 5
parent
984023ddac
commit
d05699707f
@@ -1,6 +1,33 @@
|
||||
# Path-Specific Rules
|
||||
|
||||
Rules in `.claude/rules/` are automatically enforced when editing files in matching paths:
|
||||
Rules in `.claude/rules/` carry `paths:` frontmatter. Claude Code loads a
|
||||
path-scoped rule **when it READS a file matching one of those globs** — not on
|
||||
every tool use, and not when it creates one.
|
||||
|
||||
Three consequences, and none of them are optional reading:
|
||||
|
||||
1. **Reading, not editing.** A rule scoped to `src/gameplay/**` reaches the model
|
||||
when a file there is opened. An agent that writes a brand-new file in that
|
||||
directory without opening an existing one never sees it. Most work in this
|
||||
framework creates files rather than reads them, so this is the common case,
|
||||
not the corner case.
|
||||
2. **Context, not enforcement.** A loaded rule is guidance the model weighs, the
|
||||
same as `CLAUDE.md`. Anything that must hold regardless of what the model
|
||||
decides belongs in a hook — `.claude/hooks/` already enforces JSON validity
|
||||
and commit shape that way.
|
||||
3. **A rule with no `paths:` loads every session**, at the same priority as
|
||||
`.claude/CLAUDE.md`. That is the lever for a rule that must always apply; it
|
||||
costs context in every session, so it is a deliberate trade, not a default.
|
||||
|
||||
Where a rule duplicates guidance an agent definition already carries, the two
|
||||
must agree. Contradicting instructions are resolved arbitrarily, so a rule and
|
||||
an agent stating different versions of the same standard is worse than either
|
||||
alone.
|
||||
|
||||
To see which rules actually load, and why, wire the `InstructionsLoaded` hook —
|
||||
`.claude/hooks/log-instructions.sh` records every instruction file and its load
|
||||
reason (`session_start`, `path_glob_match`, `nested_traversal`, `compact`) to
|
||||
`production/session-logs/instructions-loaded.log`.
|
||||
|
||||
| Rule File | Path Pattern | Enforces |
|
||||
| ---- | ---- | ---- |
|
||||
@@ -15,3 +42,12 @@ Rules in `.claude/rules/` are automatically enforced when editing files in match
|
||||
| `test-standards.md` | `tests/**` | Test naming, coverage requirements, fixture patterns |
|
||||
| `prototype-code.md` | `prototypes/**` | Relaxed standards, README required, hypothesis documented |
|
||||
| `shader-code.md` | `assets/shaders/**` | Naming conventions, performance targets, cross-platform rules |
|
||||
| `agent-memory.md` | `.claude/agent-memory/**` | The one place an agent may write unasked — and why a temporary absence must never be recorded as a durable fact |
|
||||
| `skill-authoring.md` | `.claude/skills/**`, `.claude/agents/**` | A check that cannot report it did not run is not a check — verdict vocabularies, fail-closed defaults, self-announcing skips, sourcing, derived gate coverage |
|
||||
|
||||
> **`skill-authoring.md` is the odd one out and deliberately so.** Every other
|
||||
> rule here scopes a *game* directory; that one scopes the **framework's own**
|
||||
> authoring paths. It exists because one failure shape kept recurring across
|
||||
> unrelated subsystems — a step that could not run producing output
|
||||
> indistinguishable from a step that ran and found nothing. The same mistake in
|
||||
> nine places is a missing design rule, not nine mistakes.
|
||||
|
||||
Reference in New Issue
Block a user