Model/effort-selection guidance for non-Claude-Code harnesses #21

Open
opened 2026-08-31 14:04:56 +00:00 by torben · 3 comments
Owner

What

docs/explanation/model-and-effort-selection.md (linked from CLAUDE.md, not from AGENTS.md) tells a Claude Code session which model and effort level to run at. It routes by what catches a mistake in the current phase rather than by skill name: routine wiki-status/wiki-lint at Sonnet default, judgment-heavy ingest/manage/query at Sonnet high, and stack development at Opus high across design, build and closing. It also covers /code-review effort and the Agent tool's model: override. It is deliberately Claude-Code-only.

Whether the other harnesses this repo supports (Codex CLI, GitHub Copilot CLI / VS Code / Desktop App, Mistral Vibe) should get equivalent guidance, and what it would mean for each, is the open question here.

Trigger fired (2026-10-13)

The trigger was "a non-Claude-Code harness session is actually doing meaningful work on this repo", and it has fired. The operator ingests through GitHub Copilot. Its Auto mode almost always picks GPT-6 Luna, GitHub's own lightweight, lowest-cost GPT-6 model, which GitHub classes with Claude Haiku under "fast & simple tasks". For ingest the operator switches to Sonnet by hand, at a much higher cost. Analysis and sources: #224 § B5. Hence prio/waiting → prio/planned.

What is now known about Copilot

Research on 2026-10-13, from official GitHub and Microsoft docs retrieved that day:

  • A custom agent can pin a model. VS Code and Copilot CLI both document model: in an .agent.md frontmatter.
    • VS Code accepts a single name or a prioritised list.
    • Copilot CLI accepts a string. Since CLI 1.0.83 it also accepts a list, tried in order, with model-policy: required.
    • Without the key, the agent inherits the picker or default.
    • Since CLI 1.0.88 a custom agent can also set reasoning-effort.
  • A prompt file (.prompt.md) takes model: too, but only in VS Code's local agent. Agent-host sessions no longer load prompt files.
  • A skill cannot. The documented SKILL.md schema has no model field. disable-model-invocation controls loading, not model choice.
  • Utility calls (titles, commit messages, intent detection) use their own models regardless.
  • Per-model context windows in Copilot are not published as a table. VS Code's language-model editor and the CLI's /context show the real value per installation.
  • Claude Sonnet 4.6 is retired in Copilot since 2026-09-01, except for individual annual Pro/Pro+ subscribers.

Added on 2026-10-19/20 (#228):

  • Auto re-routes during a conversation, not only at its start ("Routing occurs along natural cache boundaries and large drifts in conversation complexity").
  • Monthly plans are billed in AI Credits by token since 2026-06-01.
  • Claude Haiku 5.5 costs the same as GPT-6 Luna.

So for Copilot the lever exists, and it is a custom agent per heavy workflow rather than anything in the skill layer.

Open design questions

  • Measure first. #228 builds the tool and #240 runs the measurement. #240 measures fact recall of an ingest across Copilot's model classes:

    • GPT-6 Luna and Claude Haiku 5.5;
    • mid-tier models;
    • Claude Opus 5.5 as the upper reference;
    • effort levels at the cheap end;
    • Auto and HydraFusion.

    All of it runs under a 50 USD cap. Its result decides whether guidance should say "Auto is fine for X, pin a model for Y" or something else. Writing guidance before that would be guessing.

  • Ship agents or document them? Shipping .github/agents/<workflow>.agent.md with model: would pin a model name. That name depends on the user's plan and on availability, which changes monthly. Documenting the mechanism (how-to) and leaving the name to the instance may be the honest form. A prioritised list (VS Code, and the CLI since 1.0.83) softens the problem.

  • Where would it be linked from? The other harnesses all read AGENTS.md natively, so a link there loads into all of them. A Copilot-only mechanism might belong in docs/how-to/ (reached by link, never loaded) rather than in an instruction.

  • Codex CLI and Mistral Vibe are still unchecked for a comparable per-agent or per-task model choice. Do not assume symmetry.

  • Phase/model pairing. The stack-dev/stack-build/stack-close split exists because a model switch inside a session is a bad idea. A harness that can pin a model per agent might express the phase/model pairing differently. Decide whether that matters for this repo at all, since stack development runs on Claude Code.

Acceptance criteria

  • A decision, even "not worth it, here's why", is recorded in this body before closing, based on #240's numbers. This follows the closing rule in instructions/dev/issue-tracking.md.
  • If guidance is written:
    • where it lives (instruction vs. docs/how-to/) is decided and stated;
    • instructions verify / docs verify are green;
    • there is a CHANGES.md entry.

Related

  • #224: origin of the re-evaluation.
  • #240: the measurement this issue waits on (status/blocked).
  • #228: the tool #240 runs.
  • #80: an eval runner that would automate such measurements.
## What `docs/explanation/model-and-effort-selection.md` (linked from `CLAUDE.md`, not from `AGENTS.md`) tells a Claude Code session which model and effort level to run at. It routes by **what catches a mistake in the current phase** rather than by skill name: routine `wiki-status`/`wiki-lint` at Sonnet default, judgment-heavy ingest/manage/query at Sonnet high, and stack development at Opus high across design, build and closing. It also covers `/code-review` effort and the `Agent` tool's `model:` override. It is deliberately Claude-Code-only. Whether the other harnesses this repo supports (Codex CLI, GitHub Copilot CLI / VS Code / Desktop App, Mistral Vibe) should get equivalent guidance, and what it would mean for each, is the open question here. ## Trigger fired (2026-10-13) The trigger was "a non-Claude-Code harness session is actually doing meaningful work on this repo", and it has fired. The operator ingests through **GitHub Copilot**. Its Auto mode almost always picks **GPT-6 Luna**, GitHub's own lightweight, lowest-cost GPT-6 model, which GitHub classes with Claude Haiku under "fast & simple tasks". For ingest the operator switches to Sonnet by hand, at a much higher cost. Analysis and sources: #224 § B5. Hence `prio/waiting` → `prio/planned`. ## What is now known about Copilot Research on 2026-10-13, from official GitHub and Microsoft docs retrieved that day: - **A custom agent can pin a model.** VS Code and Copilot CLI both document `model:` in an `.agent.md` frontmatter. - VS Code accepts a single name or a prioritised list. - Copilot CLI accepts a string. Since CLI 1.0.83 it also accepts a list, tried in order, with `model-policy: required`. - Without the key, the agent inherits the picker or default. - Since CLI 1.0.88 a custom agent can also set `reasoning-effort`. - **A prompt file** (`.prompt.md`) takes `model:` too, but only in VS Code's local agent. Agent-host sessions no longer load prompt files. - **A skill cannot.** The documented `SKILL.md` schema has no `model` field. `disable-model-invocation` controls loading, not model choice. - Utility calls (titles, commit messages, intent detection) use their own models regardless. - Per-model context windows in Copilot are **not** published as a table. VS Code's language-model editor and the CLI's `/context` show the real value per installation. - Claude Sonnet 4.6 is retired in Copilot since 2026-09-01, except for individual annual Pro/Pro+ subscribers. Added on 2026-10-19/20 (#228): - Auto re-routes **during** a conversation, not only at its start ("Routing occurs along natural cache boundaries and large drifts in conversation complexity"). - Monthly plans are billed in AI Credits by token since 2026-06-01. - Claude Haiku 5.5 costs the same as GPT-6 Luna. So for Copilot the lever exists, and it is a **custom agent per heavy workflow** rather than anything in the skill layer. ## Open design questions - **Measure first.** #228 builds the tool and #240 runs the measurement. #240 measures fact recall of an ingest across Copilot's model classes: - GPT-6 Luna and Claude Haiku 5.5; - mid-tier models; - Claude Opus 5.5 as the upper reference; - effort levels at the cheap end; - Auto and HydraFusion. All of it runs under a 50 USD cap. Its result decides whether guidance should say "Auto is fine for X, pin a model for Y" or something else. Writing guidance before that would be guessing. - **Ship agents or document them?** Shipping `.github/agents/<workflow>.agent.md` with `model:` would pin a model name. That name depends on the user's plan and on availability, which changes monthly. Documenting the mechanism (how-to) and leaving the name to the instance may be the honest form. A prioritised list (VS Code, and the CLI since 1.0.83) softens the problem. - **Where would it be linked from?** The other harnesses all read `AGENTS.md` natively, so a link there loads into all of them. A Copilot-only mechanism might belong in `docs/how-to/` (reached by link, never loaded) rather than in an instruction. - **Codex CLI and Mistral Vibe** are still unchecked for a comparable per-agent or per-task model choice. Do not assume symmetry. - **Phase/model pairing.** The `stack-dev`/`stack-build`/`stack-close` split exists because a model switch inside a session is a bad idea. A harness that can pin a model per agent might express the phase/model pairing differently. Decide whether that matters for this repo at all, since stack development runs on Claude Code. ## Acceptance criteria - A decision, even "not worth it, here's why", is recorded in this body before closing, based on #240's numbers. This follows the closing rule in [instructions/dev/issue-tracking.md](https://gitea.nehmer.net/torben/chemenu/src/branch/main/instructions/dev/issue-tracking.md). - If guidance is written: - where it lives (instruction vs. `docs/how-to/`) is decided and stated; - `instructions verify` / `docs verify` are green; - there is a `CHANGES.md` entry. ## Related - #224: origin of the re-evaluation. - #240: the measurement this issue waits on (`status/blocked`). - #228: the tool #240 runs. - #80: an eval runner that would automate such measurements.
torben added the prio/waitingsize/S labels 2026-08-31 14:05:00 +00:00
torben added the area/processkind/decision labels 2026-09-02 21:24:55 +00:00
torben added prio/planned and removed prio/waiting labels 2026-10-13 20:59:50 +00:00
Author
Owner

Changelog (2026-10-13): Trigger fired – ingest through GitHub Copilot (Auto → GPT-6 Luna), see #224. Re-labelled prio/waiting → prio/planned. Body rewritten: file reference corrected to docs/explanation/model-and-effort-selection.md and its current rows; new section on what Copilot offers (custom agent model: in VS Code and CLI, prompt files local-only, no model in skills, no published context-window table); open questions now start with "measure first" (#228); the old "Trigger" section and the stack-close-only phase wording are gone.

**Changelog (2026-10-13):** Trigger fired – ingest through GitHub Copilot (Auto → GPT-6 Luna), see #224. Re-labelled `prio/waiting` → `prio/planned`. Body rewritten: file reference corrected to `docs/explanation/model-and-effort-selection.md` and its current rows; new section on what Copilot offers (custom agent `model:` in VS Code and CLI, prompt files local-only, no `model` in skills, no published context-window table); open questions now start with "measure first" (#228); the old "Trigger" section and the `stack-close`-only phase wording are gone.
torben added the status/blocked label 2026-10-13 21:00:32 +00:00
Author
Owner

Changelog (2026-10-20): Scope of #228 pulled through (model classes incl. Haiku 5.5 and Opus 5.5 as upper reference, effort, Auto/HydraFusion, 50 USD cap) in place of "Luna, Haiku 4.5 and Sonnet". Research facts added: Auto re-routes mid-conversation, AI-Credit billing, CLI agent model lists (1.0.83) and agent reasoning-effort (1.0.88). Desktop App named among the Copilot surfaces. No decision changed.

**Changelog (2026-10-20):** Scope of #228 pulled through (model classes incl. Haiku 5.5 and Opus 5.5 as upper reference, effort, Auto/HydraFusion, 50 USD cap) in place of "Luna, Haiku 4.5 and Sonnet". Research facts added: Auto re-routes mid-conversation, AI-Credit billing, CLI agent model lists (1.0.83) and agent `reasoning-effort` (1.0.88). Desktop App named among the Copilot surfaces. No decision changed.
Author
Owner

Changelog (2026-10-21): #228 was split. #228 now builds the tool, and #240 runs the measurement and writes the report. This issue's blocker is now #240 (status/blocked stays). "Measure first", the acceptance criterion and Related were pulled through.

**Changelog (2026-10-21):** #228 was split. #228 now builds the tool, and #240 runs the measurement and writes the report. This issue's blocker is now #240 (`status/blocked` stays). "Measure first", the acceptance criterion and Related were pulled through.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#21