Skip to content

v1.17.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 13:02
· 20 commits to main since this release

harness-bootstrap

Added

  • The eight harness-management commands now ship with the plugin, not only into a bootstrapped
    repo. Until now harness-bootstrap/ held a skill and nothing else, so /harness-tune,
    /harness-toggle, /harness-update, /agent-permissions, /board-audit, /code-graph,
    /docs-graph and /skill-wire existed only after a bootstrap had written them into that
    repo's .claude/commands/. Installing the plugin and typing /harness-tune found nothing,
    which read as the commands being broken rather than absent. They are now also in
    harness-bootstrap/commands/, available anywhere as /harness-bootstrap:<name>.
  • The plugin copies are repo-agnostic where the scaffolded ones are substituted: they read the
    deploy command, the destructive commands, the sensitive paths and the reviewer layout out of
    settings.json and the roster and quote them back, rather than having intake's answers baked
    in, and each one states plainly when the current directory has no .claude/. The delivery
    commands stay scaffold-only on purpose - a /deploy that guesses is worse than no /deploy.

Changed

  • harness-toggle.py toggles agent seats. A parked seat moves to .claude/disabled/agents/
    and comes back byte-identically, exactly like a rule. Every seat is at least SOFT (--yes),
    because the orchestrator's routing table still lists it and a parked seat leaves a dispatch
    pointing at nothing; orchestrator, code-reviewer, security-reviewer, reviewer and
    spec-guardian are HARD (the typed phrase), because only the orchestrator spawns and the review
    seats are the code-review gate. Adding or retiring a seat is still /harness-update.
    Both scanners already read .claude/disabled/agents/, so graph parity is unaffected - verified
    byte-identical with a seat parked.

spec-builder

Fixed

  • No change in this skill. Released with the repo 1.17.0 plugin-commands and viewer-editing work.

Tools

Downloadable builds for Windows, macOS and Linux are attached to this release.

harness-view

Added

  • Command steps are editable. Selecting a command renders its numbered steps as a chain of
    cards that can be reordered by dragging a step's number, switched off, and retitled, with one
    Save writing everything at once and Revert discarding it. Nothing reaches disk until Save, so a
    mis-drop costs a Revert rather than a file.
  • POST /command, the write path behind it. It takes a bare command NAME and builds the path
    itself, so the only file it can write is .claude/commands/<name>.md: .., a separator or a
    drive letter fail the character check before a path exists. Same-origin gate as POST /toggle,
    512 KB cap, empty bodies refused.
  • Serialization is surgical: only the line spans the steps occupy are rewritten, and an unedited
    step is written back as the bytes it arrived as. Three tests pin the consequences - every fixture
    command re-serializes byte-identically when nothing was edited (line endings included),
    switching a step off and back on restores the original, and reordering leaves a section's closing
    prose at the end instead of dragging it up the page behind the step it was attached to.

Changed

  • HARD-protected controls can be disabled from the page. They used to refuse with 403 and
    offer no way forward, which meant the viewer could show a control it could never act on. The
    request now takes confirm_hard, and the page prompts for the phrase disable <name> and sends
    what was typed, byte for byte - nothing trimmed, nothing case-folded, so a near miss is refused
    again. This is the same gate /harness-toggle applies as --confirm; in the CLI the rule is
    that the model must never compose the phrase, and in the browser there is no model in the loop
    at all, so the human typing it is the gate.
  • Agent seats toggle. kind: "agent" is accepted, the detail panel offers the control, and a
    parked seat greys out in the graph. Every seat is at least SOFT and the sole spawner plus the
    review seats are HARD - matching harness-toggle.py, which gained the same tiers in this
    release.

Install

  • unzip harness-bootstrap-v1.17.0.zip -d ~/.claude/skills/
  • unzip spec-builder-v1.17.0.zip -d ~/.claude/skills/
  • Verify with sha256sum -c SHA256SUMS