Skip to content

Releases: selvakumarEsra/specship

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 02:51

[0.21.0] - 2026-07-17

New Features

  • SpecShip now greets you with a one-screen cheat-sheet at the start of a session — the four doors, explore-first retrieval, JIRA, the drift/health gate, lessons/memory, and the verify chain — so the commands are discoverable without leaving the terminal. It prints once when a session starts (not on resume), and you can silence it with SPECSHIP_NO_CHEATSHEET=1.

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 14:25

[0.20.0] - 2026-07-16

New Features

  • Publish a spec to JIRA with the new specship_jira_publish tool: it creates a Story whose Sub-tasks mirror the spec's acceptance criteria, records the issue key in the spec so branches, PRs, and tracking pick it up automatically, and is safe to re-run (it updates the existing Story instead of duplicating it). After authoring a spec with JIRA connected, SpecShip now offers this in one prompt.
  • Commits for a JIRA-backed spec are prefixed with the issue key (PROJ-123: …), so JIRA's development panel and smart commits link them to the issue.
  • Verifying an acceptance criterion now advances its published JIRA Sub-task toward Done (and the Story once every Sub-task is done), and a spec that drifts posts a one-time comment on its issue — both configurable via the SPECSHIP_JIRA_TRANSITION_DONE and SPECSHIP_JIRA_PROJECT settings.
  • New specship jira release <version> command stamps a released version onto your JIRA issues as fixVersion with a shipped-in comment, creating the project version if needed; re-running it is a no-op.
  • When no publish project is set, SpecShip now shows the JIRA projects your account can access and lets you choose — interactively during specship jira configure (or via its new --project flag), and as a pick-list when publishing a spec.
  • specship_jira_track now also lists published specs and flags issues that were edited in JIRA after publishing, so specs and their JIRA mirrors can't silently diverge.
  • New specship jira transition <key> [state] command (and a specship_jira_transition tool) move a JIRA issue to any state its workflow offers — or list the available transitions when you omit the state. A state the workflow can't reach is reported with the options instead of applied, so nothing is written by mistake.
  • specship jira test now checks your configured lifecycle transition names (In Progress / In Review / Done) against your live JIRA workflow and flags any it can't fire, so a workflow that lacks (say) an "In Review" state surfaces up front instead of silently skipping when a run completes.
  • New specship memory commands let you teach SpecShip from mistakes: memory capture records a lesson or anti-pattern as a reviewable memory rule — targeting a portable ~/.claude memory note or your project CLAUDE.md — so a mistake you don't want repeated gets loaded into the next session; memory list shows the memory rules SpecShip has applied; and memory remove / memory edit take an item down or revise its body, each previewed before it's written. Human-gated and reversible like every reflection change: nothing is written until you confirm.

Fixes

  • Verified and broken spec links no longer silently reset to unverified when a spec is re-extracted for an unrelated reason (for example, appending another requirement to the same spec file) — a link's verdict is now preserved as long as the requirement's own text hasn't changed. Editing the requirement itself now flags its links as drifted (so they show up for re-verification) instead of quietly dropping the verdict.

v0.19.1

Choose a tag to compare

@github-actions github-actions released this 15 Jul 11:57

[0.19.1] - 2026-07-15

Fixes

  • Orphaned spec links now re-attach automatically when their target symbol reappears (e.g. a rename is reverted or a file is restored), instead of staying orphaned until manually re-asserted — and Class.method / Class::method are now treated as the same symbol when resolving spec links, so specs and code comments that spell the separator differently no longer produce broken or duplicate links.

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 02:59

[0.19.0] - 2026-07-15

New Features

  • JIRA Data Center behind a corporate or self-signed certificate now works. specship jira configure gained --ca-cert <pem> to trust your corporate CA bundle (preferred) and --insecure-tls to skip certificate verification as a last resort — both scoped to SpecShip's JIRA requests only, also settable via SPECSHIP_JIRA_CA_CERT and SPECSHIP_JIRA_INSECURE_TLS. Base URLs with a context path (e.g. https://jira.company.com:8443/jira) are fully supported — include the context path in the base URL.

Fixes

  • Connection failures during specship jira configure / specship jira test now explain the likely causes (corporate certificate, missing context path in the base URL, VPN/network) and surface the underlying TLS error code instead of a bare "fetch failed".

v0.18.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 23:54

[0.18.1] - 2026-07-14

Fixes

  • The offline bundle installer now asks where to wire Claude Code — globally (every project) or a specific repo, which it also indexes — instead of silently writing project-local wiring into the extracted bundle directory. Scripted installs use --global or --path <repo> (-Global / -Path on Windows); without a terminal the safe default is global.

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 00:06

[0.18.0] - 2026-07-14

Breaking Changes

  • Spec-driven development is now installed by default. A plain specship install provisions the full surface — the /specship:spec and /specship:check doors plus the "author a spec first" steering — alongside retrieval. Pass --no-sdd for a retrieval-only install (the previous default); the legacy --sdd flag is still accepted. Existing installs are never silently changed on upgrade.

New Features

  • SpecShip now learns from what worked — with you in the loop. The reflection engine gained success crystallization: a completed multi-step workflow run becomes a reusable recipe proposal, and a shell command you kept correcting into a working form becomes a "use this form" rule proposal — alongside the existing waste detectors, all human-gated (preview → apply → undo). A new /specship:learn command (and specship reflect --capture) crystallizes the current session's workflow on demand.

  • The graph now remembers your work. specship_explore surfaces a "Prior work" section when past sessions edited the files you're exploring — date, what was asked, files touched, workflow runs in that window — computed deterministically from the local task history, never summarized by a model, and never from another project's sessions.

  • spec-implement-mixed — frontier judgment, small-model execution. A new bundled workflow with the same steps and gates as spec-implement, but Sonnet runs the planning step while Haiku runs the mechanical ones (implement, link, coverage); the test run and approval gates verify the work externally. Most of the tokens at Haiku prices, with correctness coming from the machinery. The dashboard's Tips also now spot a Haiku/Sonnet session drowning in file re-reads and recommend escalating to a bigger model or this workflow.

  • The agent is steered to the graph for ALL code work. The per-prompt nudge now covers implementing, fixing, and refactoring — not just "how does X work" questions — after adoption telemetry showed plan-execution and feature prompts were the heaviest file re-readers. SPECSHIP_NO_STEERING=1 still turns it off.

  • Behavior switches can live in SpecShip settings files. Put env-var-named keys in <repo>/.specship/settings.json (per-project, travels with the repo) or ~/.specship/settings.json (machine-wide) — e.g. {"SPECSHIP_NO_STEERING": "1"}. Precedence: an actual environment variable > project file > machine file. Covers the steering, compaction, and model-tier switches.

  • Environment variables are documented in one place — the README, the site's Configuration page (settings files + env-block methods), and the generated CLI reference.

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 00:51

[0.17.0] - 2026-07-13

New Features

  • Better guidance on smaller models — and fewer dead ends on every model. A "not found" from any code-graph tool now names the closest real symbols and ends with a ready-to-send follow-up call instead of leaving the agent to guess. On Haiku sessions, SpecShip goes further: the per-prompt nudge becomes a precise do-this template (and steers away from costly subagent fan-out), call-path answers render as numbered step-by-step hops with each connection explained inline, and the tool menu slims to the three core tools so tool choice stays reliable — all without removing any evidence, and all off on frontier models. The benchmark harness also gained an EVAL_MODEL switch so these behaviors are validated per model tier.

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 16:35

[0.16.0] - 2026-07-11

Breaking Changes

  • JIRA and Designer are now opt-in integrations. The core install is 100% local by construction — the tool groups that talk to an external service (JIRA → your Atlassian instance, Designer → claude.ai) are no longer exposed by default. Enable them with specship install --with-jira and/or --with-designer; a later plain re-install preserves the opt-in. If you used these tools before, re-run install once with the flags (a blocked call tells you exactly this). Designer is labeled experimental — it drives claude.ai through a debug Chrome session and can break without notice. JIRA tools are never auto-allowed, so Claude Code prompts per call.
  • The dashboard Chat page is gone. It duplicated what the graph, specs, and search pages (and Claude Code itself) already do, so it was removed along with its /api/chat endpoints. The reviewer workflow it hinted at — read the plan, approve or reject with a comment, follow the revision — lives on the Workflows + Runs page.

New Features

  • SpecShip compacts its output for smaller models. When a session runs on Haiku or Sonnet — detected automatically on every default install (the per-prompt hook reads the session transcript, so mid-session /model switches track too; the status line and SPECSHIP_MODEL are additional channels) — code-graph tool responses compress their prose scaffolding — boilerplate notices become terse one-liners and, on Haiku, long dependency lists cap with an explicit "+N more" — while source code, paths, and line numbers stay byte-for-byte intact. Compacted responses say so and name the off switch (SPECSHIP_COMPACT=0); on frontier models nothing changes.
  • The docs site's reference pages are now generated from source. The CLI command list, MCP tool list, environment variables, and supported language/framework matrix on specship.cc are derived from the code at build time; the site build and the test suite both fail if a committed reference block drifts from source — documented-but-fictional commands can no longer ship.
  • SpecShip now steers the agent toward the graph. specship install adds a lightweight per-prompt nudge that reminds Claude Code to answer structure/flow questions with specship_explore before reaching for file reads — the pattern our benchmarks show saves the most time. It only speaks in projects with a SpecShip index, and SPECSHIP_NO_STEERING=1 turns it off entirely. specship uninstall removes it.
  • Rejecting a workflow run no longer destroys the work. Reject now parks the run as rejected with its worktree and artifacts intact, and resuming drives the gate's on_reject revise prompt with your rejection comment before pausing again for re-review — a real feedback loop instead of disposal. Deleting a worktree is now only ever done by the new explicit specship workflow purge <runId> (also available on the run page); cancel keeps the worktree too.
  • Workflow verify steps stopped false-failing for environmental reasons. Test steps in the bundled workflows now install dependencies and build the worktree before running tests, and workflow shell steps run on the same Node runtime SpecShip itself uses — so a verify failure means the tests failed, not that the environment was missing.
  • "Verified" now means proven. A spec can only be promoted to verified when a test linked to it as evidence has passed. Declare evidence with a verifies: block in the spec (- <test-file>:<test-symbol>) or an @verifies REQ-X comment on the test; both are indexed as durable test links. Specs without evidence stay implemented and are visibly flagged, and a failing linked test demotes only the specs it evidences — a green suite no longer blanket-promotes everything.

Fixes

  • Release bundles always package the current dashboard. The bundle build now builds the desktop UI itself (installing its dependencies from its own lockfile when missing) instead of copying whatever earlier build happened to be on disk — a standalone or offline bundle build could previously ship a stale dashboard, or none, without failing. A bundle that ends up without its dashboard now fails the build loudly; SPECSHIP_SKIP_WEB_BUILD=1 remains the explicit opt-out for non-shipping builds.
  • Published benchmark numbers can no longer drift from measurement. The README's performance numbers are now rendered from a dated, version-stamped results file written by the A/B benchmark harness, and the test suite fails if the README block and the measurements diverge — or if a hand-typed percentage claim appears anywhere outside the governed block.
  • Doc comments on exported symbols are now indexed. A /** ... */ or // comment directly above export function / export class was silently dropped by the extractor, which also disabled the @implements / @verifies comment-link backstop for exported symbols.
  • Asserted spec links now survive a full reindex. specship_link_assert writes the link into the spec file's implementations: block (idempotently, creating the block when needed), so links are git-versioned, reviewable in PRs, and rebuilt from the file on every index — instead of living only in the local database and silently vanishing on specship index.
  • No more confident $0.00 for unpriced sessions. When a session's model has no pricing row (e.g. a brand-new Claude model), the dashboard now marks it "unpriced" in the cost tile, sessions list, and session detail instead of showing $0.00 — and cost totals disclose how many unpriced sessions they exclude. Adding a pricing row heals everything retroactively.
  • Transcript ingest shows its parse coverage. The dashboard now reports how many transcript lines the latest ingest pass parsed vs. skipped, so a Claude Code format change surfaces as a visible stat instead of silently missing analytics.

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 23:34

[0.15.0] - 2026-07-09

Breaking Changes

  • specship uninstall now removes SpecShip completely. It used to only unwire SpecShip from Claude Code, leaving the CLI, your indexes, and your ~/.specship data behind. It now also deletes the current project's index, the user-level ~/.specship directory (including any saved JIRA credentials and worktrees), and the specship program itself — returning the machine to its pre-install state. It first shows exactly what will be deleted and asks for confirmation (--yes / --force skips the prompt). To keep the old wiring-only behavior, run specship uninstall --keep-data. Indexes in other projects aren't auto-discovered (SpecShip keeps no registry of them), so it says so rather than implying a machine-wide sweep.

v0.14.3

Choose a tag to compare

@github-actions github-actions released this 08 Jul 17:43

[0.14.3] - 2026-07-08

New Features

  • The dashboard shows its version. The running SpecShip release version now appears at the bottom-left of the dashboard sidebar (and stays visible, compact, when the sidebar is collapsed), so you can see at a glance which release the dashboard is on.