4.9 KiB
CC Brief — Sprint 12 Task 1 Judge Role Remap (B2 LOCK alignment)
Datum: 2026-04-22 PM
Autor: PM
Prethodni: Session 2 exit ping, Surprise #5 (judge role mapping konflikt)
Odluka (Marko): "Slažem se sa preporukom za sva tri primary. Push sada, slažem se."
Scope: 4. commit Sprint 12 Task 1 — nakon push-a tri postojeća commita (8466eaf, b7e52fc, a6e4be9) na origin/main.
Procena: 15-30 min, $0 LLM spend.
1. Zašto ovo radimo
Session 2 je implementirao judge role mapping prateći primer iz brief-a (§ 2.1 B):
- Opus 4.7 →
primary - GPT-5.4 →
secondary - Gemini 3.1 →
secondary - Grok 4.20 →
tertiary
Međutim, B2 LOCK § 1 je autoritativni izvor i kaže:
- Opus 4.7 + GPT-5.4 + Gemini 3.1 = sva tri
primary(3-vendor primary ensemble) - Grok 4.20 =
reserve(tie-break only)
Brief je operativni dokument, B2 LOCK je strukturalna odluka. Autoritet hijerarhije je jasan: LOCK pobeđuje brief. Remap je surgical, 4. commit izoluje promenu od Session 2 trojke radi granularnog rollback-a.
2. Execute sequence
Korak 1 — Push Session 2 commits (pre remap-a)
git push origin main
Expected output: origin/main napreduje za 3 commita (8466eaf → b7e52fc → a6e4be9). Ovo ide prvo da Session 2 trojka ostane čista u git istoriji pre nego što remap uđe.
Korak 2 — Edits
File A: benchmarks/harness/config/models.json
Promeni judge_role vrednosti:
gpt-5.4entry:"judge_role": "secondary"→"judge_role": "primary"gemini-3.1entry:"judge_role": "secondary"→"judge_role": "primary"grok-4.20entry:"judge_role": "tertiary"→"judge_role": "reserve"
claude-opus-4-7 ostaje "judge_role": "primary" (nema promene).
File B: benchmarks/harness/src/types.ts
JudgeRole enum treba da se proširi za reserve. Trenutna definicija verovatno ima 'primary' | 'secondary' | 'tertiary'. Promeni u:
export type JudgeRole = 'primary' | 'secondary' | 'tertiary' | 'reserve';
Zadrži secondary i tertiary u enumu radi backward-compat — nijedan trenutni entry ih ne koristi nakon remap-a, ali budući modeli mogu.
File C: benchmarks/harness/tests/models-config.test.ts
Session 2 je dodao 2 assertion-a koji sada promašuju:
- "Grok 4.20 tertiary +
floating_alias+xai_via_openrouter" → promenitertiary→reserve - "GPT + Gemini secondary + floating_alias" → promeni
secondary→primary
Plus ako postoji test koji validira judge_role enum vrednosti po entry-u, proveri da pokriva sve 4 uloge (primary, secondary, tertiary, reserve). Ako ne, dodaj minimalnu coverage proveru.
Korak 3 — Verify
cd benchmarks/harness
npx tsc --noEmit
npm test
Expected: 138/138 green (nema promene u test count-u; 3 assertion-a flip-uju vrednosti, ne broj).
Korak 4 — Commit
git add benchmarks/harness/config/models.json \
benchmarks/harness/src/types.ts \
benchmarks/harness/tests/models-config.test.ts
git commit -m "fix(benchmarks): Sprint 12 Task 1 B2 LOCK alignment — judge roles remap per B2 LOCK § 1
B2 LOCK § 1 treats Opus 4.7 + GPT-5.4 + Gemini 3.1 as a 3-vendor primary
ensemble with Grok 4.20 as tie-break reserve. Session 2's initial mapping
(from brief § 2.1 B example) placed GPT + Gemini as secondary and Grok as
tertiary. This commit aligns judge_role values with the LOCK authority.
Changes:
- models.json: GPT-5.4 secondary → primary, Gemini 3.1 secondary → primary,
Grok 4.20 tertiary → reserve
- types.ts: JudgeRole enum extends with 'reserve' (secondary/tertiary
retained for backward compat)
- models-config.test.ts: 2 assertions updated to reflect new mapping
Test count unchanged (138/138 harness green). tsc clean."
Korak 5 — Push
git push origin main
origin/main napreduje za 4. commit.
3. Acceptance criteria
- Session 2 trojka push-ovana (3 commita na
origin/main) models.json: Opus/GPT/Gemini =primary, Grok =reservetypes.ts:JudgeRoleuključujereserve- 138/138 harness tests green
tsc --noEmitclean- 4. commit push-ovan na
origin/main
4. Out of scope
- Ništa osim gore nabrojanog. Blockers #5 + #6 i smoke test suite ostaju za Session 3.
- Ne diraj judge-runner.ts, ne diraj preregistration.ts, ne diraj B3 addendum per-row pinning fields.
- Bez novih deps, bez refactor-a.
5. Ako naiđeš na nešto neočekivano
Surprises §-policy važi: ne blokira, zabeležiš u session close ping sa ACCEPT/REMAP predlogom. Ali ovo je surgical remap — očekivanje je da ide clean za 20 minuta. Ako JudgeRole enum već ima reserve (što ne verujem, Session 2 ga nije dodao), samo preskoči tu izmenu u types.ts.
Signal PM-u kada se završi: kratak exit ping sa 4. commit SHA-om + confirmation da je origin/main na 4 commita dalje od pre-Session-2 baseline-a.