Skip to content

Add Complexity Tier rubric: per-story solver-tier recommendation (v2.18.0)#3

Merged
codxse merged 1 commit into
masterfrom
complexity-solver-tier
Jul 18, 2026
Merged

Add Complexity Tier rubric: per-story solver-tier recommendation (v2.18.0)#3
codxse merged 1 commit into
masterfrom
complexity-solver-tier

Conversation

@codxse

@codxse codxse commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • New Complexity Tier rubric (shared/contract-rubrics.md, synced into /case and /refine): a separate axis from Budget-Solver Fit that judges story difficulty (not scope/ambiguity) and recommends the cheapest solver tier + effort likely to succeed — budget/medium/frontier × low/medium/high/max. medium is a relative call (cheaper end of the planning roster, or strongest end of the budget roster), not a new Model Guard bucket. Recorded per story as a ## Complexity body section plus a solver-<tier> bd label, surfaced as a new /board column.
  • /solve's existing frontier-cost warning is now story-aware: it no longer fires when the story's own label already recommends frontier (previously contradicted a deliberate, correct tier choice).
  • /evaluate gains an optional post-merge calibration question (interactive flow only) recording whether the tier recommendation matched reality, as a data point for judging the rubric's accuracy over time.
  • Version bumps: /case 2.8.1→2.9.0, /refine 1.7.1→1.8.0, /board 1.0.0→1.1.0, /solve 1.4.1→1.5.0, /evaluate 1.8.0→1.9.0, plugin/marketplace 2.17.1→2.18.0 (all four manifests).

This design was reviewed by a Fable-tier model before implementation, which caught that the original draft's medium tier had no concrete referent and that its effort-before-tier escalation heuristic was backwards for the exact signals the rubric names (subtlety/blast-radius needs a stronger tier, not more effort on a weaker one) — both are reflected in the final rubric.

Test plan

  • plugins/case-solvers/tests/rubrics-sync.sh passes clean (no drift between shared/contract-rubrics.md and the generated blocks in /case//refine)
  • All four manifest JSON files parse valid
  • Run /case <description> on a frontier model for a mechanical story and a security/concurrency-touching one; confirm ## Complexity + solver-<tier> label + recommendation surfaced in the completion report
  • /board renders the new Solver column
  • /refine <id> re-grades and swaps the label when a story proved harder than first judged
  • /solve <id> on a frontier model: no cost warning against a solver-frontier story, warning appears as before against solver-budget/unlabeled
  • /evaluate <id> interactive approve flow asks the calibration question once; --approve fast path does not

🤖 Generated with Claude Code

…18.0)

/case and /refine already gate scope/ambiguity via Budget-Solver Fit, but every
story that passes it gets treated identically downstream — /solve only warns
when the running model happens to be frontier-tier, never says which tier was
actually cost-effective for that specific story.

Complexity Tier is a new, separate rubric axis (judged after Budget-Solver Fit,
never instead of it) that recommends the cheapest tier + effort combination
likely to succeed: budget/medium/frontier x low/medium/high/max, with `medium`
defined as a relative call (cheaper end of the planning roster, or strongest
end of the budget roster) rather than a new Model Guard bucket. Escalation
follows the signal: volume raises effort within a tier, subtlety/blast-radius
(security, concurrency, judgment-heavy correctness) raises tier instead.

Recorded two ways per story: a `## Complexity` section in the body, and a
`solver-<tier>` bd label surfaced as a new column on /board.

Two small follow-on fixes this surfaced:
- /solve's existing frontier-cost warning fired on any frontier-tier run
  regardless of the story, contradicting a story that itself recommends
  frontier. Now checked once the story resolves, silent when the label
  already says solver-frontier.
- /evaluate gains an optional post-merge calibration question (interactive
  flow only) recording whether the tier call matched reality, since nothing
  previously checked the rubric's accuracy over time.

Reviewed by a Fable-tier model before implementation, which caught that the
original draft's `medium` tier had no concrete referent and that its
effort-before-tier escalation rule was backwards for the exact signals the
rubric names — both reflected in the final version.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codxse
codxse merged commit 9c6fb79 into master Jul 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant