CLAUDE.md-Importkette entdrifted, Modellwahl nach docs/ verschoben
CI / verify (push) Successful in 54s
Release / release (push) Successful in 35s

Files changed:
- AGENTS.md
- CHANGES.md
- CLAUDE.md
- SOUL.md
- USER.md
- VERSION
- docs/model-and-effort-selection.md
- instructions/claude-code-model-selection.md
- instructions/dev/stack-close/SKILL.md
- instructions/dev/stack-dev/SKILL.md
This commit is contained in:
2026-09-10 22:18:44 +02:00
parent dda80c1a9d
commit f8111d05a3
10 changed files with 163 additions and 232 deletions
+12 -36
View File
@@ -1,42 +1,18 @@
# CLAUDE.md
Claude Code loads this file automatically and does **not** load `AGENTS.md`.
The other harnesses (Codex, Copilot, Vibe) read `AGENTS.md` natively, so this
file exists to close that one gap and nothing else.
It therefore holds **no rules of its own** - only the imports below. A rule written here would be
the second copy invariant 8 forbids, and it would be the copy that drifts, because the harness
that reads it is not the harness the rest of the repo is written for. Importing is not that: the
rule stays at exactly one place and is pulled in from here, which is the only way a
Claude-Code-only instruction can reach a session at all - AGENTS.md would carry it into every
other harness too.
Claude Code loads this file automatically and does **not** load `AGENTS.md` on its own; every
other harness this repo supports (Codex CLI, GitHub Copilot CLI, Mistral Vibe) reads `AGENTS.md`
natively. This file closes that one gap with a single import, so a Claude Code session reads
exactly what every other harness reads - no rule of its own, per invariant 8.
@AGENTS.md
@USER.md
@SOUL.md
@ENVIRONMENT.md
@instructions/claude-code-model-selection.md
`USER.md` and `SOUL.md` do not exist until the Personalization step of
[instructions/setup-instance.md](instructions/setup-instance.md) has run, so
the setup session itself resolves only `@AGENTS.md`. Every session after it
gets all three - which is what makes the "Always, every session" rows in
AGENTS.md's file-naming table true for Claude Code rather than aspirational.
Nothing else is imported. `USER.md`, `SOUL.md` and `ENVIRONMENT.md` are read because `AGENTS.md`
§§ Personalization and Environment instruct it, the same way the other three harnesses pick them
up - importing them here too would run two loading mechanisms for the same files.
`ENVIRONMENT.md` is the one import that may legitimately never exist. It is
optional and gitignored (AGENTS.md § Environment), so an unresolved import is
its normal absent state, not a broken reference - the same tolerance the two
above rely on before setup, used deliberately rather than transitionally. It
earns an import rather than a link because what it holds - which MCP server
answers which question, which remote `publish` talks to, which harnesses this
checkout is shared with - is consulted in passing, mid-task, at the moment
nobody would stop to open a document. That is the same bar the last import
below clears, and it is the whole test: a session that has to go look the
answer up will instead ask the user again, which is the cost the file exists
to remove.
The last import is the harness-specific one: model and effort selection is decided while
spawning a subagent or starting a review, not at a point where anyone stops to open a document,
so it is imported rather than linked. That costs standing context in every session, which is the
bar a further Claude-Code-only import has to clear too: import what is decided in passing, link
what is looked up deliberately.
Model and effort selection is the one remaining Claude-Code-only decision
([instructions/CONTRACT.md](instructions/CONTRACT.md#two-forms-three-reference-tiers) has the
import-vs-link rule in general), and it earns a link rather than an import: a session stops to
make this call - spawning a subagent, opening a review - rather than needing it pre-loaded before
it has done anything. See [docs/model-and-effort-selection.md](docs/model-and-effort-selection.md).