Skip to content

Releases: CaseReed/flight-deck

1.13.0

Choose a tag to compare

@CaseReed CaseReed released this 07 Aug 11:50

Added

  • skills/workspace-discipline/SKILL.md is a new skill covering five rules on confirming repository root, branch, and worktree state before a write, each tied to a real incident.
  • hooks/workspace-guard.sh is a new non-blocking PreToolUse hook nudging toward explicit-path staging on indiscriminate git add/git stage, and separately on git commit -a/-am/--all, each with its own reminder. A plain git commit, git commit -m, or git commit --amend stays quiet, and it ships with no PowerShell counterpart, following verify-reminder.sh's precedent since it gates nothing.
  • tools/test-workspace-guard.sh is a new 37-case test suite exercising workspace-guard.sh's staging and commit reminders across matching, non-matching, and off-topic Bash commands, plus a reduced-PATH run matching tools/doctor.sh's own environment.
  • .gitignore gains a docs/ rule keeping local design and planning notes untracked, since they quote incident material from private repositories rather than public ones.

Changed

  • skills/test-discipline/SKILL.md extends its never-asserted-from-memory rule to claims about external systems: an API's behavior, a flag, a library version, or whether a practice is current.
  • skills/mission-control/SKILL.md and skills/design-fidelity/SKILL.md replace their own restated source-checking instructions with a pointer to test-discipline's rule, keeping only their local specifics.
  • skills/mission-control/SKILL.md's concision section now also governs merge-request and pull-request descriptions, tickets, and messages written for a team, not only its own reports.
  • skills/mission-control/SKILL.md's worktree explanation keeps its existing summary intact and adds a pointer to the new workspace-discipline skill for full lifecycle doctrine. Nothing was removed, so the file grows rather than shrinks, and the summary alone still suffices when workspace-discipline is not installed.
  • skills/mission-control/SKILL.md's PLAN step 3 now flags that a clean file split can still hide a shared invariant, a count, an enumeration, or a dependency one lot's file assumes. It must be named and assigned to a lot's done criteria or checked at VERIFY, and a corrective lot given only known occurrences must find every one itself.
  • README.md, tools/doctor.sh, and RELEASING.md now enumerate the fifth skill and fourth hook everywhere the package lists its components by hand.
  • RELEASING.md's doctor confirmation step now cites a count verified against a real full-install fixture rather than computed by hand.

Fixed

  • hooks/workspace-guard.sh's matching now fires when a flag abuts a closing quote, such as bash -c "git add -A", which previously slipped through undetected. The accepted trade is one narrow new false positive on a quoted string containing a control operator, documented in the script and in hooks/HOOKS.md.
  • hooks/workspace-guard.sh now blanks quoted -m/-am/--message content and tightens the flag group between git and the subcommand, closing the quoted-flag and git checkout stage . false positives.
  • tools/doctor.sh's hook-execution check and its jq-missing fallback had both omitted workspace-guard.sh, so a registered but non-running hook still reported healthy. Two stale comments naming only two PreToolUse hooks are corrected to name three.
  • README.md and tools/doctor.sh told users to run the deprecated /output-style command in six places, including doctor's remediation text; all now point to /config or the outputStyle setting. The command was deprecated in Claude Code v2.1.73 and removed in v2.1.91.
  • tools/doctor.sh's hook-execution check now catches a registered hook that starts, fails mid-run on a missing dependency, and still exits 0, since every shipped hook is documented fail-open. A broken hook like this previously reported as healthy and left the exit code unaffected; it now reports BROKEN and fails the check.
  • hooks/workspace-guard.sh now recognizes a VAR=value prefix before git and a quoted flag argument like git -C "dir" as valid segment starts, closing two missed reminders. It also blanks a -m message flag whose quote abuts it with no space, such as -m"docs: explain the -a flag".

1.12.0

Choose a tag to compare

@CaseReed CaseReed released this 03 Aug 13:35

Added

  • RELEASING.md documents the release sequence step by step, with the reason each step sits where it does, after 1.11.0 nearly shipped a stale VERSION file.
  • tools/check-release.sh verifies on every invocation that the VERSION file matches the CHANGELOG's top section, and the tag too when one is passed, exiting 1 with a per-failure fix. It needs only bash, grep and sed, so it behaves identically locally and on a runner.
  • .github/workflows/release-check.yml, the repo's first CI workflow, runs that script on pushes to main, on pull requests, and on v* tags, plus on demand with a tag argument so the tag path can be exercised without creating a tag. main carries no branch protection, so the check reports a mismatch rather than blocking it.
  • tools/check-published.sh verifies the tag is annotated and pushed, the GitHub release is published with a body matching CHANGELOG.md, and the badge carries the right version. Run it by hand as the last release step; it needs gh authenticated and skips its gh-dependent checks visibly otherwise.
  • mission-control's VERIFY phase gains a rule that a correction is not done until every place stating the old truth is fixed, not only the one found first.
  • mission-control's VERIFY phase gains a rule to verify a mechanism by triggering it for real rather than reimplementing its rules, unless the trigger is destructive, costly, or irreversible.
  • test-discipline gains a fifth procedure step requiring a metric from an angle the work did not target: a count against a known total, or an independently drawn sample.
  • code-craft's runtime-cost section gains a rule to measure a suspected cost center before launching an optimization effort on it, distinct from fixing one of the four named triggers by reading.

1.11.0

Choose a tag to compare

@CaseReed CaseReed released this 29 Jul 18:02

Added

  • skills/mission-control/SKILL.md gains a routing-grid rule sending any lot that judges an image to opus, one tier above the same lot on text, and splitting a browser tour between mechanical capture and the read of the frames.

Changed

  • skills/design-fidelity/SKILL.md states in its composition contract that capturing frames and scoring them are separate lots at separate tiers, and that the scoring pass keeps a pinned model when mission-control is absent.
  • README.md documents the visual-judgment tier bump under Usage, beside the routing paragraph, with the reason it exists: the tiers share one image pipeline and separate on reasoning, not on perception.
  • CLAUDE-md-activation.md carries the same rule into its routing bullet, so a project pasting the activation block into its own CLAUDE.md gets the tier bump without installing anything further.

1.10.0

Choose a tag to compare

@CaseReed CaseReed released this 28 Jul 12:40

Added

  • skills/code-craft/ is a new skill owning the shape and runtime cost of a code change, through four cuts on scope, documentation, defensive coding, and abstractions.
  • code-craft also carries the runtime-cost triggers, the idiom rules, and the trust boundary that keeps minimalism off untrusted input, auth, payments, and irreversible actions.
  • tools/make-badges.py merges the README badges into a single svg, since GitHub renders README images as block elements and strips inline styles, which stacks separate badges one per line. Run it after each release, as the version badge is baked into the image.

Changed

  • README.md is reorganised around a banner hero, a badge strip and tables, with the installer and uninstall prompts, the manual steps, the Windows detail and the ultracode discussion folded into details blocks. Both prompts are byte-identical to 1.9.1.
  • The install and uninstall steps and the "What it does" and "What's inside" tables in README.md now cover the fourth skill, code-craft, alongside test-discipline and design-fidelity.
  • Over-engineering doctrine that lived redundantly across mission-control's SKILL.md, CLAUDE-md-activation.md, and the trailing line of test-discipline's Proportionality section is consolidated into code-craft, and several files now route to it by name.
  • skills/mission-control/references/rationale.md drops "The pricing argument" section because its payoff-scales-with-the-tier-gap claim survives in README.md, not because the file restates it earlier.
  • skills/mission-control/references/rationale.md folds "The opusplan lineage" into one sentence under History instead of keeping its own heading.
  • skills/mission-control/SKILL.md drops its frontier-model framing paragraph and its four-symptom over-delivery restatement in favor of invoking code-craft, landing at 237 lines, still over the file's own ~200-line target.
  • The same edit also deleted the routing-grid bullet stating "opus stays the exception", now restored as a short clause inside the "torn between two tiers" bullet.
  • skills/design-fidelity/SKILL.md and README.md add code-craft to the build contract, the degradation clause, and the sibling-skill list, alongside mission-control and test-discipline.
  • skills/mission-control/README.md updates its install step and code-lot paragraph to name code-craft alongside test-discipline as a mandatory companion skill.

Removed

  • The completed docs/plans/ and docs/specs/ design-fidelity planning documents, superseded by the shipped skill.

Fixed

  • The README hero pointed at flight-deck-x-banner.png, a gitignored social-media asset, so it resolved to a 404 on GitHub; a resized copy now ships at .github/assets/banner.jpg.
  • The README's opening paragraph counted two skills where the package ships four, undercounting by two once code-craft and design-fidelity are included.
  • tools/doctor.sh's required skill-folder check omitted code-craft, so an install missing only that folder still passed clean; the enumeration comment and loop now include it.
  • The installer prompt's step 6 hook registration JSON hardcoded $HOME/.claude, ignoring the CLAUDE_CONFIG_DIR override from step 1; README and hooks/HOOKS.md now reference the resolved config directory.

1.9.1

Choose a tag to compare

@CaseReed CaseReed released this 24 Jul 21:31

Added

  • A README section positions Flight Deck next to Claude Code's ultracode setting: ultracode raises reasoning effort and grants standing orchestration permission, while Flight Deck governs what that orchestration may spend and how its output is checked.

Fixed

  • Unquoted $HOME in the hook registration JSON (hooks/HOOKS.md, skills/mission-control/README.md) broke silently on any platform, in every release, when the home or config path contained a space: the hook died non-blocking, so the fanout guard could appear installed while enforcing nothing. The path is now quoted everywhere; the PowerShell guard's args array was never affected.
  • The installer prompt in README.md now states the quoting requirement for the hooks' registration JSON, with the one-line reason, so an assistant generating that JSON at install time cannot reintroduce the bug.
  • tools/doctor.sh now invokes each registered hook with a harmless no-op payload in a sandboxed PATH, confirming no shell-level path error and naming the quoting fix on failure; it skips rather than false-passing an unparseable command.
  • Both guards' settings.json fallback now honors CLAUDE_CONFIG_DIR, matching tools/doctor.sh, so a relocated config directory reads consistently everywhere the fallback applies.
  • The PowerShell guard now decodes stdin as UTF-8 explicitly instead of the console input codepage, so a non-ASCII payload (an accented word, a non-Latin path) no longer risks mis-decoding under Windows PowerShell 5.1.

1.9.0

Choose a tag to compare

@CaseReed CaseReed released this 24 Jul 20:54

Added

  • fable5-fanout-guard.ps1, a PowerShell twin of the fanout guard, runs on native Windows without Git Bash, with no jq or curl dependency, and registers in exec form (interpreter as command).
  • The guard's decision table, JSON parsing, and fail-open behavior are proven by a 32-case suite on PowerShell 7 in a Linux container; Windows-specific path handling and registration have not been exercised on a real Windows machine.
  • WSL needs nothing new, since it already behaves as ordinary Linux.
  • verify-reminder.sh and flight-deck-update-check.sh stay bash-only and are simply absent on native Windows without Git Bash; since neither gates a tool call, that costs a nudge rather than a safeguard.
  • Installer and uninstaller prompts are now platform-aware, with a Windows/WSL section in the README and a platform matrix in hooks/HOOKS.md. Detecting the platform first resolves the config directory (honoring CLAUDE_CONFIG_DIR), copy-vs-symlink, chmod +x, and which hooks to offer.
  • tools/doctor.sh now detects macOS, Linux, WSL, and native Windows under Git Bash, honors CLAUDE_CONFIG_DIR, and accepts either fanout-guard variant (.sh or .ps1) as a valid install. It flags a missing jq only when a bash hook is installed, since a PowerShell-only install needs none.
  • design-fidelity gained a scout pass for the Claude Design import surface: run on a session's first handoff, or whenever the surface seems to have changed, it checks current capabilities and the exchange format against the real documentation and schema rather than memory.
  • Phase-2 design-fidelity primitives are documented ahead of the work: the DesignSync tool and the /design-sync skill drive it, using one HTML preview per component.
  • Two gotchas carry forward: get_file's 256 KiB cap, exceeded by previews with embedded fonts (regenerate from code rather than editing in place), and design systems shaped like an app, which fall outside the converter's envelope (write previews directly).

Changed

  • The routing grid and CLAUDE.md activation block are recalibrated for the current model lineup: Haiku for zero-judgment mechanics, Sonnet as the default for real code, Opus for complex agentic work, Fable for the hardest, longest-horizon reasoning.
  • A hard ceiling caps parallel agents at 20; past that, the user must have asked for it explicitly, since current frontier models reach for subagents on their own.
  • Verifier subagents are demoted from a default to an exception: checking another agent's deliverable is the orchestrator's own job, and a verifier subagent spins up only when the check itself is heavy or an independent adversarial read is deliberately wanted.
  • The effort ladder is restated accurately: high is already the default on the top tiers, so setting it no longer implies a change; low and medium are the real cost control on execution lots, and max is session-scope only, never a valid per-call value.
  • A scope-discipline line is added throughout: the plan now states where a lot stops and holds it there, since current models widen a task or lot on their own without saying so.
  • Close-out is hardened from guidance into a hard rule: the knowledge pass fires as the first action on any close-out signal, before any mechanical teardown. A single file touched earlier, or a not-yet-merged state, no longer discharges or defers it.

1.8.0

Choose a tag to compare

@CaseReed CaseReed released this 09 Jul 13:07

Added

  • design-fidelity now degrades gracefully when its sibling skills are absent or untriggered, running the build as an ordinary craft task with the repo's named check inline; it never hard-depends on mission-control or test-discipline.

Changed

  • The fanout guard now arms on frontier sessions generally (Fable 5 and Opus), not Fable 5 alone: an unpinned Agent call or any Workflow on Opus is held to the same explicit-model and approval-token rules. The hook filename is unchanged for install compatibility.
  • The routing grid resolves the equal-tier case: equal-tier delegation is explicitly allowed (same token rate, fresh context and parallelism), while up-delegation to a model above the session requires the user's explicit approval. The ceiling rule now reads "at or below, never above".
  • VERIFY now re-runs the named check for a code lot instead of trusting the executing agent's quoted output.
  • Parallel-lot isolation now covers shared mutable state (the git index, lockfiles and installs, dev ports, test databases), not only shared files.
  • The Workflow deny message now states the two real options (fall back to pinned parallel Agent calls, or pass the approval token) instead of the dead-end suggestion to pin the script.

Fixed

  • A duplicated frontier-subagent-prompting section in mission-control's SKILL.md collapsed into a pointer. The file still runs over the ~200-line adherence target since this release's added doctrine outweighs the trim; a further slim is queued.
  • Smaller coherence fixes: the inline-execution exception generalized beyond one-line edits, typography tolerance defined for pixel-only references, the up-delegation cutoff rephrased to an observable stop condition, and the guard's first-turn fail-open documented honestly in HOOKS.md.

1.7.1

Choose a tag to compare

@CaseReed CaseReed released this 09 Jul 09:01

Added

  • A capture protocol in the design-fidelity rubric takes every screenshot with animations frozen and reduced motion, after fonts load and the page is foregrounded and settled (not network idle), at 2x scale, full page and per breakpoint, with dynamic regions masked.
  • A "read before you score" analysis protocol (rubric section 2.0) has the gate describe each region, run a breakage-signature checklist, cross-reference the accessibility snapshot against the screenshot for unpainted DOM elements, require cited evidence for a PASS, and zoom into suspicious regions.
  • A recommended-session note in the README and mission-control's per-model section recommends running Flight Deck on Opus 4.8 at High reasoning effort by default, with xHigh reserved for the hardest lots.

Changed

  • design-fidelity gate moves 2 and 3 now point at the new capture and reading protocols; the adversarial re-check re-runs the breakage checklist and the DOM-versus-pixel cross-check.

1.7.0

Choose a tag to compare

@CaseReed CaseReed released this 09 Jul 07:35

Added

  • design-fidelity's close-out now purges Playwright MCP screenshots (transient gate evidence) once the user signs off on the frontend, and adds the capture directory to .gitignore in a git project.

Changed

  • design-fidelity's fidelity gate now renders visual comparisons through the Playwright MCP by default, in place of the claude-in-chrome extension, which becomes a documented fallback. The stable-primitives rule, README, and rubric are updated to match.

1.6.0

Choose a tag to compare

@CaseReed CaseReed released this 08 Jul 15:30

Added

  • tools/analyze-run.py, a read-only post-hoc transcript analyzer, prints an objective mission-control scorecard (orchestrator model, Agent-call inventory and model-pinning, per-tier token split, verification signal). Zero runtime cost; nothing added to the skill.
  • tools/doctor.sh, a read-only install check, reports what is present vs missing (skills, activation block, hooks and their registration, jq/curl, VERSION, output style), required vs optional, with a remedy per gap.
  • A "What to expect per session model" section in the mission-control README, plus a one-time non-frontier nudge in the activation block, tells a Sonnet/Haiku user mission-control is installed and opt-in, silent by design until triggered.
  • A compatibility declaration in the skill frontmatter states Claude Code only, subagents required, hooks optional.

Changed

  • The fanout-guard's FABLE_OK escape hatch now requires the token as the first non-empty line of prompt/string args, or a dedicated {"FABLE_OK": true} key/element for structured Workflow args; relaying it in prose no longer disarms the guard.
  • The recall and knowledge-pass steps no longer assume a specific MEMORY.md auto-memory feature.