Skip to content

v0.4.0

Choose a tag to compare

@MohammedAlkindi MohammedAlkindi released this 22 Jul 11:12
· 33 commits to main since this release

Added

  • fleet init --check: verify the four onboarding artifacts without writing anything — read-only, lock-free, exit 1 on drift, --json for scripts. Wire it into CI so the agent-facing convention cannot silently rot after an upgrade. Broken AGENTS.md markers are reported as broken rather than thrown, so one damaged file still yields a full report.
  • fleet sync --all: catch every registered agent up with its base in one sweep. Each agent gets the exact single-agent treatment (same dirty checks, same abort-on-conflict contract), but failures are collected and reported instead of thrown, so one dirty worktree or conflicting merge never strands the rest of the fleet. Exits 1 if any agent failed.
  • fleet init: brings a repository into the fleet workflow in one command. Writes .fleet/ into .git/info/exclude, a starter .fleetrc.json wired to the config schema, the Claude Code skill into .claude/skills/switchyard/, and an agent-neutral protocol block into AGENTS.md (created if absent). Idempotent — re-run after upgrading to refresh the agent-facing docs. --force overwrites an existing .fleetrc.json; --json prints the result.

Changed

  • The shipped skill now installs itself. 0.3.0 shipped it in the tarball and documented a manual cp into .claude/skills/, which meant the convention usually never reached the agents that needed it. fleet init installs it, and re-running refreshes it.
  • Agents other than Claude Code can now learn the convention. The AGENTS.md block carries the short version for anything that reads that file — Codex, Cursor, and others — where previously only a Claude Code skill existed.

Notes

  • What fleet init overwrites is split on ownership. .fleetrc.json is your file and is never replaced without --force; the skill and the AGENTS.md block are package-managed and refreshed every run. In AGENTS.md only the region between <!-- switchyard:begin --> and <!-- switchyard:end --> is rewritten. Broken markers are an error, not a guess.
  • No new runtime dependencies, and no change to state.json (still version: 1) — fleet init adds no persisted fleet state of its own.
  • The MCP surface is unchanged and still read-only.
  • Switchyard has a website: switchyardhq.vercel.app (the public/ directory of this repo; not part of the npm package).