decision-system S8 gate: compare HeadlessClaude and the Ollama adapter on the ReplyShape sample #1274

Closed
opened 2026-10-23 18:40:16 +00:00 by jared · 2 comments
Owner

Problem

S8 of docs/decision-system/build-plan.md has a gate: the chosen adapter's agreement is not worse than HeadlessClaude on the sample, and its cost per run is lower. #1250 and #1266 built the gem move but did not run the comparison. The S8 row stays "gate open" until this run.

Approach

Run plugins/os-me/eval/reply_shape/run.rb once per adapter: OsMe::HeadlessClaude (Sonnet) and the gem Ollama adapter. Record agreement, kappa, unreadable count, and cost per run for each. The frozen 50 is the final check only. Use the tune and holdout splits to choose, then read the frozen 50 once for the chosen adapter.

Required work: none beyond the acceptance criteria.

Orchestrator work: update the S8 row in docs/decision-system/build-plan.md and add one History row to docs/implementation-status/os-me.md.

Acceptance criteria

  1. Given both adapters, when the eval runs on the holdout split, then a table shows agreement, kappa, unreadable count, and cost per run for each adapter.
  2. Given the table, when one adapter is chosen, then the frozen 50 is read once for it and the S8 gate verdict (pass or fail) is written in the build plan.

Origin

  • Trigger: #1266 close; S8 gate left open
  • Improvised this session: none
  • Chain: S8 gate open ← comparison not in #1250 or #1266 scope ← stage split. Stop at DESIGN (docs/decision-system/build-plan.md S8).
  • Root candidate: none found; searched S8 gate, HeadlessClaude, Ollama adapter, ReplyShape, eval/reply_shape, adapter comparison
  • Where: plugins/os-me/eval/reply_shape/run.rb
  • Session: 4f3f95ea-3c6f-4d23-a0ea-e349d6ab02a5
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-ticket-1250/4f3f95ea-3c6f-4d23-a0ea-e349d6ab02a5.jsonl

VERDICT: CREATE (user-approved; backlog search only)

## Problem S8 of `docs/decision-system/build-plan.md` has a gate: the chosen adapter's agreement is not worse than `HeadlessClaude` on the sample, and its cost per run is lower. #1250 and #1266 built the gem move but did not run the comparison. The S8 row stays "gate open" until this run. ## Approach Run `plugins/os-me/eval/reply_shape/run.rb` once per adapter: `OsMe::HeadlessClaude` (Sonnet) and the gem Ollama adapter. Record agreement, kappa, unreadable count, and cost per run for each. The frozen 50 is the final check only. Use the tune and holdout splits to choose, then read the frozen 50 once for the chosen adapter. Required work: none beyond the acceptance criteria. Orchestrator work: update the S8 row in `docs/decision-system/build-plan.md` and add one History row to `docs/implementation-status/os-me.md`. ## Acceptance criteria 1. Given both adapters, when the eval runs on the holdout split, then a table shows agreement, kappa, unreadable count, and cost per run for each adapter. 2. Given the table, when one adapter is chosen, then the frozen 50 is read once for it and the S8 gate verdict (pass or fail) is written in the build plan. ## Origin - Trigger: #1266 close; S8 gate left open - Improvised this session: none - Chain: S8 gate open ← comparison not in #1250 or #1266 scope ← stage split. Stop at `DESIGN` (`docs/decision-system/build-plan.md` S8). - Root candidate: none found; searched S8 gate, HeadlessClaude, Ollama adapter, ReplyShape, eval/reply_shape, adapter comparison - Where: plugins/os-me/eval/reply_shape/run.rb - Session: 4f3f95ea-3c6f-4d23-a0ea-e349d6ab02a5 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-ticket-1250/4f3f95ea-3c6f-4d23-a0ea-e349d6ab02a5.jsonl VERDICT: CREATE (user-approved; backlog search only)
Author
Owner

Work started on branch ticket-1274 (worktree).

Work started on branch ticket-1274 (worktree).
Author
Owner

Resolution

Done: Holdout run for HeadlessClaude (Sonnet), SystemOne tev1:4b and CloudflareJev; frozen 50 read once for Jev, the chosen adapter. Jared reworded the S8 gate (tool access plus skill; local tuning separate) and ruled Jev the default. Added skill os-me:decision-model. S8 marked done.

Evidence: main 43866d85 (pushed). Holdout (25x3): Jev 88.0% kappa 0.825 $0.0042 4.6 s; Sonnet 85.3% kappa 0.789 53 s; tev1:4b 60.0% kappa 0.424. Frozen 50: Jev 80.0% kappa 0.684 (gate >= 80%), Sonnet 83.3% (S2). Commits 0b4af706, bc354b42, 5dc109ba, 761b8a0e, e94b6085.

Follow-ups: #1286 Jev as the default adapter in os-me (skeptic CREATE, user-approved). decision-model#1 directory-driven eval runner with judge rules and reports (cross-project, user-requested). Dropped: cost_usd passthrough in HeadlessClaude (Jev is now the default, so Sonnet cost no longer drives a choice); rubocop in the os-me Gemfile (global rubocop uses the same config); Ollama 0 output tokens (known vendor behavior, recorded in the gem).

## Resolution **Done:** Holdout run for HeadlessClaude (Sonnet), SystemOne tev1:4b and CloudflareJev; frozen 50 read once for Jev, the chosen adapter. Jared reworded the S8 gate (tool access plus skill; local tuning separate) and ruled Jev the default. Added skill os-me:decision-model. S8 marked done. **Evidence:** main 43866d85 (pushed). Holdout (25x3): Jev 88.0% kappa 0.825 $0.0042 4.6 s; Sonnet 85.3% kappa 0.789 53 s; tev1:4b 60.0% kappa 0.424. Frozen 50: Jev 80.0% kappa 0.684 (gate >= 80%), Sonnet 83.3% (S2). Commits 0b4af706, bc354b42, 5dc109ba, 761b8a0e, e94b6085. **Follow-ups:** #1286 Jev as the default adapter in os-me (skeptic CREATE, user-approved). decision-model#1 directory-driven eval runner with judge rules and reports (cross-project, user-requested). Dropped: cost_usd passthrough in HeadlessClaude (Jev is now the default, so Sonnet cost no longer drives a choice); rubocop in the os-me Gemfile (global rubocop uses the same config); Ollama 0 output tokens (known vendor behavior, recorded in the gem).
jared closed this issue 2026-10-23 21:14:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1274
No description provided.