• v0.35.0 b278dbd23d

    v0.35.0 Stable

    ktg released this 2026-09-17 23:39:56 +00:00 | 0 commits to main since this release

    Signed by ktg
    SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q

    Added

    • PLAN column in the board table, and plan= in --row. A filesystem
      reading of the repo root: - = no file named exactly PLAN.md; Nd =
      whole days the plan's mtime lies behind the last commit (0d when as new or
      newer); ? = a plan with no commit to compare against. A symlinked
      PLAN.md is aged by its target. The content is never
      read, and the column does not judge whether a criterion can be falsified -
      the legend says so. The name is matched byte for byte, because APFS's
      case-insensitivity makes [ -f PLAN.md ] true for plan.md. Display only:
      not a sort key, not in --plan, not summed. board-selftest section 34
      (written red before the column existed) pins all of it.

    Fixed

    • board.sh --dispatch put three other record fields in front of neste=.
      The index that takes "the last field onward" was written when the record had
      14 fields and was never moved as ORDRE, FLY and VOY were inserted before
      neste, so a dispatch block read neste=0|-|0|<the NESTE prose>. It now
      takes the field after the last column onward (field 18, since the PLAN
      column below moved it again), and a selftest check pins the exact start of
      the prose so the next inserted field turns it red.
    • --row and --dispatch for a repo with no STATE.md carried shifted
      values.
      That record is written by its own printf, which lacked the VOY
      field, so --row read voy=(ingen STATE.md) and an empty neste=. The
      record is now complete; a fixture with no STATE.md pins it.
    • --inbox-plan cut NESTE at its first |. It read neste as one field
      instead of "that field onward"; the whole prose now comes through, as it
      already did in --row and --dispatch.
    • README said "macOS or Linux". board.sh uses BSD stat throughout and
      renders no rows under GNU stat; the requirement now says macOS.
    Downloads
  • v0.21.0 dd8f3ce042

    v0.21.0 Stable

    ktg released this 2026-08-09 20:05:16 +00:00 | 59 commits to main since this release

    Changed

    • route.sh no longer routes to Fable (rows 5-6). The --opus-xhigh-failed
      flag was, until 2026-08-06, the only way to reach the Fable rows — mirroring
      a global policy that Fable could only be suggested after a failed Opus
      5/xhigh session. The operator removed that policy ("for ofte ER Fable
      riktig"); route.sh's output range shrinks to rows 1-4 rather than gaining
      a new trait-derived path to Fable, matching the updated policy's own
      framing: a Fable choice is now always a deliberate deviation from the
      rubric, recorded in STATE as an override, never produced by the calculator.
      The flag itself is gone — passing it now exits 2 like any other unknown
      argument. board.sh is untouched and still parses "Fable 5/high" /
      "Fable 5/xhigh" written by hand into a board line.

      route-selftest.sh: 73 -> 69 checks (three checks tested a command
      row_advisor() can no longer produce; the two row-5/row-6 reachability
      checks in section 1 collapsed into one "the flag is gone" check).

    Fixed

    • route-selftest.sh section 14 was gating the wrong CLI fact. It checked
      whether claude --advisor fable is rejected, but row_advisor() never
      emits --advisor fable — it depends on the opposite direction, whether
      opus/sonnet can advise a fable main model. Both checks happened to
      agree when the section was written; they diverged once the CLI's capability
      ordering changed; measured against the installed CC 2.1.226, fable is now
      itself accepted as an advisor for opus/sonnet mains, while opus/sonnet
      advising a fable main is still rejected. Re-pointed at the fact
      row_advisor() actually depends on.
    Downloads
  • v0.20.2 5c182578e6

    v0.20.2 Stable

    ktg released this 2026-08-03 08:17:02 +00:00 | 65 commits to main since this release

    Added

    • README badges for the "CLI scripts" and "selftest checks" axes (8 and
      398). The catalog's stat-mirror gate is per-axis and badge-gated: an axis
      the plugin does not badge is skipped silently rather than checked, and
      these two were the ones measured stale (6 and 251 against a true 8 and
      398). Adding the badges lets the gate start enforcing them from this tag
      forward.
    Downloads