v1.4.0 — wizard CM-parity + non-Latin trigger + auto-apply guard
MINOR — the manual /coalboard wizard brought to CM-parity (flow-correctness + max token-min), a non-Latin critical-prompt trigger, and a gateless-auto-apply guard.
Added
- Non-Latin critical-prompt trigger (CB-7) — the per-prompt conductor was English-keyword-only; a pure-Thai/CJK critical prompt (e.g.
แก้บั๊กการเข้ารหัส…) produced zero reasons and the board stayed silent. It now emits ascript:non-Latingrade-by-intent reason so a non-English critical prompt routes to the board's judge. Off for file scans; Phoenix-pure.
Fixed
- Gateless auto-apply now mechanically guarded (CB-4) —
verify.mjsrejects{coalboardMode:auto, applyConsent:false}(explicit orrigor:relaxed-inherited);applyRigor()forces the apply-gate back on at runtime. The human gate is never config-able off underauto. - Manual-wizard flow-correctness (CB-W1) — the resident
SKILL.mddescribed the superseded pre-v1.3.0 2-call stale-cost flow; aligned with the on-demand 3-call order→bill→pay wizard (bill computed AFTER the picks),SKILL.mddelegating the step detail to the wizard. - Cross-platform README claim scoped (CB-14) — the named platforms (Cursor/Codex/Copilot/Amp/Goose) are now design-supported, unverified; every actuatable artifact (installer, hook, cost-tiering) is Claude-Code-only; the debate structure is cross-agent by design but verified on CC only.
Changed
- Wizard token-minimized ~33% — squeezed to the leanest text passing all bars; every cut re-verified, and the load-bearing rules (box-counts, the bill-after-picks anti-drift rule, the layman honesty triad, the dev-contamination exclude-floor) were rejected-from-cutting (the maximality proof).
Gate: build + 36 node tests + verify PASS. Update: claude plugin update coalboard@coalboard + restart.