2 Commits

Author SHA1 Message Date
Oleks a218a31055 Dedup MIN_SHARE_OF_SPEND: boundary-classify imports it from ia_store
ci/woodpecker/push/test Pipeline is pending
bin/boundary-classify defined its own copy of the spec §5.2.7 filing
threshold that only happened to match ia_store.py's copy, which
bin/stability-classify's FR-4.5 stability gate actually reads. Tuning
either constant independently would silently desynchronize the gate
from the classifier it's meant to gate. ia_store.py is now the single
definition; boundary-classify imports it.

MIN_INVOCATIONS/MIN_ATTRIBUTED_TURNS are left as-is: stability-classify
does not import or use them, so their duplication doesn't create the
same fail-silently risk. Centralizing all thresholds via
references/signals-catalog.md remains a separate, larger follow-up per
the issue's "Related / proper fix" note.

Fixes kotkan/claude-plugin-inference-arbitrage#14
2026-07-30 05:30:48 +03:00
Oleks 38e1adbd48 Phase 4: boundary rubric skill, offload-analyst agent, calibration gate
references/boundary-rubric.md is design/rubric.md verbatim (4.1).

skills/boundary-rubric is usable standalone on a single step before any code
exists — the rubric is more valuable applied before the fact than after (4.2).

agents/offload-analyst classifies pre-computed inventory/scan JSON, leads with
coverage, treats hook/prose drift as its own category, and enforces the hard
gate: no overrule case -> boundary question, never filed (4.3).

bin/boundary-classify applies rubric §6's confidence table and the FR-4.2 filing
gate. The determinism-test outcomes and the falsifiability triple are inference;
grading them is a lookup, so it is a script rather than agent prose (FR-8.1).

Calibration gate (4.4) passes on real runs:
  - token-budget            -> 0 high-confidence, "nothing to offload here"
  - worktree-discipline with bin/worktree-audit masked out
                            -> worktree-safety classification at high,
                               position llm-over-script-digest

tests/classify.test.sh asserts both gates plus synthetic table cases; 67
assertions green across the suite.
2026-07-29 17:27:17 +03:00