Skip to content

Releases: TheColliery/CoalBoard

v1.5.0 - Antigravity verified as a supported platform

21 Jun 17:22
v1.5.0
4ea51fb

Choose a tag to compare

MINOR - Antigravity is now a VERIFIED supported platform for the board.

The board was validated end-to-end on Antigravity (Claude Opus 4.6): 3 read-only-leaf lenses via define_subagent -> invoke_subagent (parallel), the decontamination clause clean on all lenses, reaped via manage_subagents. The capability-hack gate flips AG from UNVERIFIED to VERIFIED.

Added

  • references/platform-antigravity.md - the Claude-Code -> Antigravity tool-mapping + verified caveats: read-only is TOOL-level (write/spawn tools absent from the sub - stronger than CC by-instruction); AG auto-injects AGENTS.md -> the decontam clause is required + confirmed clean; subs are zombies -> manage_subagents kill_all mandatory; no model-pick -> lenses inherit the parent model (cross-vendor = human-manual); ~16 concurrent, depth-10 nesting; no hooks -> manual-invoke.

Changed

  • SKILL.md capability-hack now lists "Verified live: Claude Code + Antigravity."

Gate: build + 36 node tests + verify PASS.

v1.4.2 - wizard CHANGE-path recompute + re-consent

21 Jun 15:21
v1.4.2
c22ea2c

Choose a tag to compare

PATCH - wizard / Step-0 consent CHANGE-path correctness.

A user found that picking change at the cost checkpoint did not specify the recompute-and-re-consent loop - an implementer could spawn on a stale bill (a change to nasa multiplies cost, un-reconsented).

Fixed

  • CHANGE recomputes the bill + re-consents (bill -> change -> bill -> pay). references/wizard.md (programmer Call 3 + the layman bill) and SKILL.md Step 0 now spell out: on change, loop back to re-pick -> RECOMPUTE the bill -> re-present the confirm as a FRESH box; never spawn on a stale bill, never fold the recompute into the change step.

Gate: build + 36 node tests + verify PASS.

v1.4.1 - lens decontamination hardened

21 Jun 15:00
v1.4.1
00bbb4b

Choose a tag to compare

PATCH - lens decontamination hardened (W1/W2/W3).

A dogfood audit run from inside the dev tree caught two blind lenses citing the umbrella MEMORY.md (outside the target): on Claude Code a spawned lens auto-loads the project CLAUDE.md -> MEMORY.md/AGENTS.md (the up-tree walk) + SessionStart hooks, defeating the R2-6 "no dev-governance" rule. No new capability - a correctness fix.

Fixed

  • Lens decontamination defeated on Claude Code (W1) - references/lens-prompts.md now carries an explicit "IGNORE auto-loaded governance" FIXED rule. Proven live: an out-of-frame solver spawned with the clause did not leak.
  • Neutral-cwd guidance + honest independence flag (W2/W3) - SKILL.md Step 1 + references/audit.md direct main to spawn lenses from a neutral cwd inside a governed tree, and flag such passes NOT independence-clean.

Gate: build + 36 node tests + verify PASS.

v1.4.0 — wizard CM-parity + non-Latin trigger + auto-apply guard

21 Jun 13:07
v1.4.0
d840a00

Choose a tag to compare

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 a script:non-Latin grade-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.mjs rejects {coalboardMode:auto, applyConsent:false} (explicit or rigor:relaxed-inherited); applyRigor() forces the apply-gate back on at runtime. The human gate is never config-able off under auto.
  • Manual-wizard flow-correctness (CB-W1) — the resident SKILL.md described 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.md delegating 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.

CoalBoard v1.3.3

21 Jun 09:59
v1.3.3
78e62b0

Choose a tag to compare

PATCH — board-audit round-2 fix (sub4-reproduced); bugfix only.

  • #3 conductor updateCheckDays clamped at read to [1,365] — it was unbounded, so {updateCheckDays:0} (or negative) made the throttle window ≤0 → now-last < 0 never true → the self-update nudge fired EVERY session. Out-of-bound now falls back to the 14-day default (mirrors CoalTipple). + a regression test (two consecutive SessionStart with {updateCheckDays:0} → the 2nd is throttled). CoalBoard was the lone unguarded sibling.

Gate: build + verify + tests PASS. Update: claude plugin update coalboard@coalboard + restart.

CoalBoard v1.3.2

21 Jun 08:50
v1.3.2
41b40fb

Choose a tag to compare

PATCH — board-audit fix (verify-triaged from the whole-Colliery nasa board); bugfix only.

  • coalboardMode:off no longer silences self-update. The conductor returned early on boardOff, which also suppressed the SessionStart self-update check — but coalboardMode (the board AND-gate) and updateMode (self-update) are ORTHOGONAL off-switches. Now the board's UserPromptSubmit path is skipped when off while the SessionStart self-update still fires per its own updateMode. (+ the companion test, which had encoded the bug.)

Gate: build + verify + 28 tests PASS. Update: claude plugin update coalboard@coalboard + restart.

CoalBoard v1.3.1

21 Jun 00:11
v1.3.1
ff01ea6

Choose a tag to compare

PATCH — report-context sharpen + doc sibling-consistency.

  • R3B-8 — the report always carries the full sub4 picture (the contested claim · each camp's position · sub4's verdict-if-resolved OR inability-if-escalated), in BOTH cases, so the human can reconstruct sub4's judgment at the apply gate rather than rubber-stamp it. (Step 3 + the Step 4 consent digest.)
  • Docs (#20 sibling-consistency) — README leads with the badge + links rows (the series pattern); SECURITY.md reordered to the family section order + a version-transition marker on the scan section; workflow action-version comments normalized to the major-only style (# v7, SHAs untouched). The shared public-doc pattern is now documented at TheColliery/.github/DOC-PATTERN.md.

Gate: build + verify + 28 tests PASS. Update: claude plugin update coalboard@coalboard + restart.

CoalBoard v1.3.0 - layman-default wizard + flow/honesty rework

20 Jun 22:01
v1.3.0
42dfc58

Choose a tag to compare

Round-3 deep dogfood — the user ran the real published wizard + board as a customer and surfaced flow / honesty gaps the build gate cannot. MINOR: a new layman-default UX + a holistic wizard/gate flow rework + model-diversity honesty; no new config keys.

Added

  • Dual-audience wizard — a LAYMAN-DEFAULT path: /coalboard now defaults to AI-handles-everything — smart safe defaults (cwd · auto-work-type · L2 · standard) + ONE plain-language bill+confirm ("3 reviewers + a judge check X for ~Y tokens — go / cheaper / more thorough / cancel"; no opaque jargon — "cheaper/more thorough" map to depth/rigor, a universally-known word like "nasa" may stay). A programmer opts into the full restaurant wizard. The layman is kept safe by staging + the human-apply gate; the result carries the honest ceiling in plain language and never says "definitely safe".

Changed

  • Wizard = the "restaurant" order → bill → pay (programmer path): TARGET → silent scan → the 3 settings → the ACCURATE bill computed FROM the picks → ONE confirm. Fixes the stale-cost consent (the bill used to precede the picks).
  • Step 4 exit re-ordered + leaned: DIGEST → ONE consent question (apply-all / let-me-pick / report-only / stop) → THEN write, CONDITIONAL on the choice (stop = write NOTHING; the report is never written before consent).
  • Surfaced output = decisions + results only — internal mechanics (template fill, memory arm, contract steps) run SILENTLY.
  • Model-diversity honesty: diversifyModels is INERT on Claude Code (the spawn tool takes only aliases — it cannot pin a model generation). The only actuatable model-decorrelation is a tier-mix (partial, at a lens-strength cost); the real decorrelation is the diverse lens prompts + adversary + sub4, never the model.
  • NASA honesty (correlated-blind-spot ceiling): all-opus at nasa = MAX model-correlation at MAX stakes — the escape is the non-model ground-truth gates (tier2Verify) + the human, NOT model-diversity and NOT sub4 (sub4 is the same model → shares the blind spot; it breaks deadlocks only).
  • Warm-resume corrected (verified): the standard CC session has no callable SendMessage tool → recover a stopped/dead lens by re-spawning a FRESH lens on the un-done REMAINDER from main's journal; SendMessage-resume is a bonus only where the tool exists. TaskStop reaps a runaway/zombie sub.

Fixed

  • The org .github repo had no dependabot.yml — its workflows' pinned actions never auto-bumped; added it (github-actions, weekly), matching the plugin repos.

Gate: build + verify + 28 tests PASS.

CoalBoard v1.2.1 - lean manual wizard (2 question-box calls)

20 Jun 20:55
v1.2.1
5d48883

Choose a tag to compare

Wizard token-economy pass — a dogfood where a sub RAN the manual /coalboard wizard while main watched, then trimmed the waste. PATCH (leaner manual-wizard UX, no new capability/config).

Changed

  • Manual /coalboard → 2 question-box calls (was up to 4 round-trips across 8 steps): Call 1 = TARGET → a silent enumerate-only scan (1-line summary) → Call 2 = WORK-TYPE + DEPTH + RIGOR + PROCEED. 2 calls is the dependency FLOOR (TARGET → SCAN → scan-derived WORK-TYPE forces ≥2 round-trips). The cost-confirm folds into Call 2's PROCEED slot — a cost line precedes the call (informed consent); "change" recomputes the precise per-config estimate on demand.
  • DISPATCH dropped as a question — defaults to all-at-once (a speed-only choice, rarely changed; maxConcurrentSubagents caps it, ask only if the user raises it), freeing the slot for the confirm.
  • Terser throughout — one-line option text, a single scan-summary line, no decorative filler. references/wizard.md prose ~−38%. Every load-bearing ask is KEPT: target-first, ask-work-type, exclude ∪ the dev-contamination floor, .github/workflows security, units-from-scan, cost consent, the lens-prompt fill-flow.

Gate: build + verify + 28 tests PASS.

CoalBoard v1.2.0 - deterministic rigor-scaled tiering, scan-exclude, .github security, warm-resume

20 Jun 20:22
v1.2.0
19eaa0a

Choose a tag to compare

Round-3 dogfood (the board run as a customer, every finding reported). MINOR — new config keys + deterministic behavior.

Added

  • rigorLensTiers — a deterministic rigor→lens-tier map (factory relaxed/standard → haiku · high → sonnet · nasa → opus). The lens model now scales with rigor and is READ from a table, so the assignment is identical every run — fixing both all-haiku-at-nasa under-powering and run-to-run non-determinism. The judge stays top-tier; the adversary always takes the rigor tier (≥ sonnet), never undetermined.
  • excludePaths is now a functional scan/audit exclude (was reserved/inert). The factory default unions the build/vcs dirs with the always-hard dev-contamination floor (CLAUDE.md/MEMORY.md/AGENTS.md/.claude/.agents); config adds to the floor, never weakens it (a lens must never read the dev governance).

Changed

  • CoalTipple ranking adopted (optional, series-interop) — inherit CT's ranking.json if installed (alias-floor authority + stable tier-structure + modelTiers pins + validity-lock + spawn-fail-fall); else the alias floor + rigorLensTiers suffice. CB stands alone.
  • .github / workflows = a SECURITY unit, never "just CI" — workflows are classified + audited (action SHA-pins, scanned/action version correctness, pull_request_target + untrusted checkout, ${{ github.event.* }} injection, over-broad permissions). Boarding-scope enumerates units FROM the scan, never re-derives "the tools" (the recurring .github skip-bias).
  • Pre-spawn scan is enumerate-only (classify by extension/path, no content read) — avoids burning 200k+ tokens and bloating main's context before any lens runs.
  • Warm-resume prefers platform SendMessage-resume over re-spawn-fresh (keeps the dead lens's accumulated work), triggered on budget-return (the quota reset OR a user refill, whichever first), never a fixed clock; any scheduled resume is idempotent.
  • Judge narrates verifies-vs-is-a-lens so a watcher is not alarmed when main runs ground-truth post-collapse; after a budget-collapse to an inline judge, the dead lens's domain is flagged NOT-CHECKED, never inline-generated.

Fixed

  • CT/CB issue-template version placeholders were stale (v1.0.0) and ungated → replaced with a number-free vX.Y.Z format hint that cannot rot.

Gate: build + verify + 28 tests PASS.