Chemenu 2.1.0 - deterministischer Wissenskompiler
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s

Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
This commit is contained in:
2026-09-01 16:24:34 +02:00
commit 18ae28f918
368 changed files with 50628 additions and 0 deletions
@@ -0,0 +1,77 @@
---
type: types/instruction.md
name: claude-code-model-selection
description: Which Claude model and effort level to run a Claude Code session, a spawned subagent, or a /code-review pass at for a given task in this repo.
---
# Pick the Claude model and effort level for the task at hand
Scale the model and effort to how much judgment the task actually needs. Running everything at
the most capable model and highest effort is safe but wasteful: the gates in [gates.md](gates.md)
are enforced in code, not by model judgment, so a weaker model cannot bypass them - it can only
do a worse job of the calls the gates don't cover.
Claude-Code-only, and imported by CLAUDE.md rather than linked from AGENTS.md: the model names,
the `/code-review` effort dial and the `Agent` tool's `model:` override have no equivalent in the
other harnesses this repo supports (Codex CLI, GitHub Copilot CLI, Mistral Vibe). See
[instructions/CONTRACT.md](CONTRACT.md) for that split.
## When to run
Before spawning a subagent with an explicit `model:` override, before picking a `/code-review`
effort level, and when the user asks which model to use - or when the session's current model is
clearly mismatched to the task that just started.
Two of the three choices are the agent's to make; the session's own model is not. An agent cannot
switch the model it is running as - that is the user's `/model` - so step 1 is a recommendation
to *make*, not a setting to apply.
## Steps
1. **Recommend the session's model and effort by the skill in use**, when asked or when the
mismatch is worth one sentence. Say it once and continue working either way - a session that
argues about its own model instead of doing the task has already cost more than the model
difference:
| Skill / task | Model | Effort |
|---|---|---|
| `wiki-status`, simple `wiki-query` lookups | Sonnet | default |
| `wiki-lint` | Sonnet | default |
| `wiki-ingest`, `wiki-manage`, judgment-heavy `wiki-query` | Sonnet | high |
| Stack development: `tools/`, `types/`, `instructions/` as code | Opus | high |
2. **Pick a spawned subagent's model by what it does**, via the `Agent` tool's `model:`
parameter - the values are `haiku`, `sonnet`, `opus`, `fable`:
- Read-only search/lookup (an `Explore` agent, or a `general-purpose` agent doing pure
retrieval): `model: "haiku"`. No judgment call is being delegated, only retrieval.
- A subagent that writes pages, reviews code, or decides something: leave `model:` off so it
inherits the session's model, chosen per step 1.
- A fork (`subagent_type: "fork"`) always inherits the parent session's model; a `model:`
override on a fork is ignored.
3. **Pick a `/code-review` effort level by blast radius, not by habit.** The levels are `low`,
`medium`, `high`, `xhigh`, `max` and `ultra` (multi-agent, in the cloud):
- A routine diff (a skill wording fix, an ordinary ingest's tool output): `low` or `medium` -
fewer, high-confidence findings are enough.
- Gate code (`run_budget.py`, `git_publish.py`, anything implementing the Mass-Update or
Iteration gates), the compiler, or a change about to ship in a version bump: `high` and up -
broader coverage is worth the cost when the blast radius of a missed bug is a safety gate.
- `ultra` is user-triggered and billed separately; recommend it, never assume it.
## Decision points
- **Task spans both a mechanical step and a judgment call?** Pick by the judgment call, not the
mechanical one - `wikitool` carries the mechanical part regardless of which model is
supervising it.
- **Unsure which row applies?** Default to Sonnet at high effort, not the most capable model at
the highest effort. Under-provisioning costs one worse answer in one session; reflexively
over-provisioning is a standing cost paid every session.
## Scope
Does not apply to non-Claude-Code harnesses - see the note above; a follow-up issue tracks
whether and how they should decide this differently. Does not set the classifier model behind
Claude Code's own `auto` permission mode - that is a harness internal, not a per-task choice
this repo controls.