feat(model-router): wave 2-B — orchestrators declare phases, shifters and pins removed, frontmatter = off-state floor
The 15 Skill(effort-*) citers now call mcp__model-router__route per phase (orchestrate at a dispatch span, reflect/plan for the skill's own level, apply at the bookkeeping tail, escalate at the verify-secure caps); built-in judgment dispatches carry an explicit effort= param. lib/effort-shift.md is the route doctrine, lib/model-gate.md the mod rule (route answer = witness, /route on as remedy). Deleted: skills/effort-*, lib/effort-pins.txt/.sh, lib/model-check.sh, their tests, the installers' re-apply blocks. The mod drops its Skill(effort-*) bridge. The tracked model:/effort: frontmatter stays as the off-state floor, census-locked equal to the rows (lib/tests/effort-routing.test.sh rewritten, 140 checks; analyzer → xhigh). Contract .claude/tasks/contracts/2026-10-10-model-router-w2b-1045.md, plan r4 § W2-B: GATE 0 MET, verifier ECARTS(7) then CONFORME 10/10, security PASS, full make test green (design-tool-gate env red only).
This commit is contained in:
@@ -59,24 +59,6 @@ const spawnInput = (model?: string) => ({
|
||||
...(model === undefined ? {} : { model }),
|
||||
})
|
||||
|
||||
test('Skill(effort-low) is answered without next, route shows low', async (
|
||||
$, on) => {
|
||||
let reached = false
|
||||
on('tool.call', { tool: 'Skill' }, () => {
|
||||
reached = true
|
||||
return { result: { success: true, commandName: 'bottom' } }
|
||||
})
|
||||
await boot($, on)
|
||||
const out = await $.tool.call({ tool: 'Skill', skill: 'effort-low' })
|
||||
expect(out).toMatchObject({
|
||||
result: { success: true, commandName: 'effort-low' },
|
||||
})
|
||||
expect(reached).toBe(false)
|
||||
const line = mainLine(await route($, 'show'))
|
||||
expect(line).toContain('skill effort-low')
|
||||
expect(line).toContain('effort low')
|
||||
})
|
||||
|
||||
test('route tool with phase orchestrate sets medium on main', async (
|
||||
$, on) => {
|
||||
await boot($, on)
|
||||
@@ -987,14 +969,6 @@ test('run slot: route(clear) clears the turn and names the run', async (
|
||||
expect(JSON.stringify(out)).toContain('run reflect still holds')
|
||||
})
|
||||
|
||||
test('Skill(effort-low) bridge is not sticky', async ($, on) => {
|
||||
await bootRun($, on)
|
||||
await loadSkill($, 'effort-low')
|
||||
expect(mainLine(await route($, 'show'))).toContain('effort low')
|
||||
await endTurn($)
|
||||
expect(mainLine(await route($, 'show'))).toContain('session defaults')
|
||||
})
|
||||
|
||||
test('route answer names the id even with a floor in force', async (
|
||||
$, on) => {
|
||||
await bootRun($, on)
|
||||
|
||||
Reference in New Issue
Block a user