SecondBrain/os-orchestration-ws1-sessio...

118 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
type: eval-results
title: "os-orchestration WS1 session audit (IRL, 10 stratified sessions)"
summary: "Audit of 10 real sessions against the 7-question orchestration rubric: delegation decisions, context hygiene, and grouping are healthy; the two HIGH failures were model-tier resolution — a user-set CLAUDE_CODE_SUBAGENT_MODEL=haiku env var silently overriding every spawn (root-caused post-audit, removed), and omitted model params inheriting the expensive main-loop model."
tags:
- type/eval-results
- domain/llm-evaluation
- domain/orchestration
- tool/os-orchestration
- tool/claude-code
- project/cc-os
scope: global
last_updated: 2026-07-06
date: 2026-07-06
related:
- eval-methodology-irl-feedback-loop
- eval-methodology-ladder
source: cc-os
---
# os-orchestration WS1 session audit (IRL, 10 stratified sessions)
Not a lab eval — an IRL audit of real session transcripts (the post-rollout feedback-loop rung
from [[eval-methodology-irl-feedback-loop]]). Full findings: `cc-os/docs/orchestration-audit/2026-07-06-findings.md` (commit 7965f03).
## Results Grid/Threshold
**Passing criterion:** per-question qualitative PASS across the sample; failures grouped into
verified clusters ranked by severity. Every load-bearing auditor claim was re-verified against
the primary transcript before being counted.
| # | Rubric question (the hypotheses evaluated) | Verdict |
|---|---|---|
| 1 | Are subagents called when they should be? | Mostly PASS (8/10; S3/S7 gray-zone heavy in-session investigation) |
| 2 | Correct model tier per subagent? | **FAIL — the dominant failure area** (clusters 1 & 2) |
| 3 | Planning/grouping for context efficiency? | PASS (concurrent fan-out in 6/10; minor reactive late spawns) |
| 4 | Avoiding unnecessary orchestrator reads? | Mostly PASS (S4: 0 bytes over 41 spawns; exceptions S7, S9) |
| 5 | Avoiding over-sharing context with subagents? | PASS everywhere (prompts 0.46.7KB, no dumps) |
| 6 | Following ORCHESTRATION.md? | Split: post-rollout cc-os 23/23 on explicit-model; pre-rollout/ops omit on 16/56 spawns |
| 7 | Receiving only needed context back? | PASS everywhere (0.913KB summaries, no full-dump returns) |
**Summary:** Delegation judgment and context hygiene are healthy; both HIGH failures are about
model-tier *resolution*, not delegation decisions. Sample: 10 sessions stratified pre/post plugin
rollout across 5 projects (cc-os sessions contaminated — they were building orchestration tooling).
## Verified failure clusters
1. **HIGH (environment):** all 23 spawns in recent sessions resolved to haiku regardless of the
requested tier — including explicit judgment-grade sonnet/opus requests. **Root cause found
post-audit:** `CLAUDE_CODE_SUBAGENT_MODEL=haiku` in `~/.claude/settings.json`'s `env` block,
set by an earlier AI session as a "lowest cost first" measure. The var force-overrides the
`model` param on every Agent spawn, silently. The audit's initial "Fable-5 harness bug"
attribution was wrong — coincidental timing (var added between the pre-rollout opus/sonnet
sessions and the Fable-5 sessions). **Removed 2026-07-06.** The exposed policy gap survives
the fix: nothing tells the orchestrator to verify `resolvedModel`, so 23 downgrades went
unnoticed.
2. **HIGH (orchestrator):** omitting `model` inherits the main-loop model — a mechanical
file-edit ran at sonnet, a character-counting task at opus. Misses cluster pre-rollout and in
ops projects; post-rollout cc-os had zero omissions. Now *unmasked* by the env-var removal:
the clamp-to-haiku was hiding the cost of omissions.
3. **MEDIUM:** orchestrator self-investigates (up to 74KB of reads) then delegates the same
ground; the "short orienting Read" boundary is undefined.
4. **LOW:** reactive late spawns instead of pre-planned batches (wall-clock only).
## Validity and Limitations
**How to interpret:** the plugin wording works where present and salient (23/23 explicit-model
compliance post-rollout in cc-os); misses cluster where the text wasn't in force. But only 2
truly post-rollout non-cc-os sessions (one violated) — the target population is thin in this
sample. Single audit pass; several raw auditor claims did not survive verification (only the
verified clusters should be cited). The missed-delegation heuristic (≥4 same-tool runs) produced
only false positives — needs retuning before it can score an eval.
**No rerun needed:** the audit measured real behavior and the measurements stand; only the
Cluster 1 *attribution* changed. The E1E4 backlog items are eval *scenarios*, not built evals —
nothing exists to rerun.
## Orchestrator economics (clarifications worth keeping)
The intuition "the expensive orchestrator should delegate all grunt work to cheap workers" is
the right frame for the wrong unit of work:
- **The expensive part of a frontier orchestrator isn't Edit calls — it's context.** A direct
edit to an in-context file is a few hundred output tokens. Delegating the same edit costs a
detailed prompt (orchestrator output) + the subagent re-reading the file and surrounding
context in a fresh window + a result the orchestrator must read and verify. For sequential,
coordinated edits the handoff exceeds the edit.
- **Delegation pays when it absorbs context the orchestrator doesn't want to load:**
parallelizable independent files, many-file sweeps, large isolated reads (log review,
wide grep-and-synthesize). WS1 itself used this correctly — 10 parallel sonnet auditors each
digested a full transcript the orchestrator never had to hold.
- Mental model: *keep work you already hold the context for; delegate work whose context you
don't want to pay for.* Sequential CRUD on an in-context file is the first kind — the audit's
Q1 confirmed this (both "missed delegation" flags on in-session sequential work were false
positives).
## Deployment and Evolution
**Good-Enough Gate:** plugin stays deployed as-is; the env-var removal fixes Cluster 1's cause.
Cluster 2 is the live risk now (omission = expensive inheritance under a Fable main loop).
**Hardening path / next measurement:**
1. ORCHESTRATION.md wording fixes: (a) verify-`resolvedModel` rule (say so and adapt on
mismatch for judgment-critical work); (b) mechanical trigger phrasing for the explicit-model
rule ("before every Agent call → include `model:`" — the Eval B lesson from
[[os-adr-eval-b-wording-experiment-hypotheses]]); (c) define the orienting-read budget.
2. Build E1E3 scripted evals from the verified misses (per [[eval-methodology-ladder]]:
paired positives/negatives, frozen reserve). E1 = detect the downgrade, E2 = explicit model
per spawn, E3 = pre-spawn read budget. E4 deferred.
3. Re-audit IRL in ~2 weeks (post env-var removal, non-cc-os sessions) — that population was
thin this pass.
## Related
- [[eval-methodology-irl-feedback-loop]] — this audit is that loop's first iteration for os-orchestration
- [[eval-methodology-ladder]] — design gate for the E1E3 evals
- [[os-adr-eval-b-wording-experiment-hypotheses]] — the trigger-phrasing lessons the wording fixes will reuse