Releases: selvakumarEsra/specship
Release list
v0.21.0
[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
[0.20.0] - 2026-07-16
New Features
- Publish a spec to JIRA with the new
specship_jira_publishtool: 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_DONEandSPECSHIP_JIRA_PROJECTsettings. - 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--projectflag), and as a pick-list when publishing a spec. specship_jira_tracknow 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 aspecship_jira_transitiontool) 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 testnow 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 memorycommands let you teach SpecShip from mistakes:memory capturerecords a lesson or anti-pattern as a reviewable memory rule — targeting a portable~/.claudememory note or your projectCLAUDE.md— so a mistake you don't want repeated gets loaded into the next session;memory listshows the memory rules SpecShip has applied; andmemory remove/memory edittake 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
[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::methodare 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
[0.19.0] - 2026-07-15
New Features
- JIRA Data Center behind a corporate or self-signed certificate now works.
specship jira configuregained--ca-cert <pem>to trust your corporate CA bundle (preferred) and--insecure-tlsto skip certificate verification as a last resort — both scoped to SpecShip's JIRA requests only, also settable viaSPECSHIP_JIRA_CA_CERTandSPECSHIP_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 testnow 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
[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
--globalor--path <repo>(-Global/-Pathon Windows); without a terminal the safe default is global.
v0.18.0
[0.18.0] - 2026-07-14
Breaking Changes
- Spec-driven development is now installed by default. A plain
specship installprovisions the full surface — the/specship:specand/specship:checkdoors plus the "author a spec first" steering — alongside retrieval. Pass--no-sddfor a retrieval-only install (the previous default); the legacy--sddflag 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:learncommand (andspecship reflect --capture) crystallizes the current session's workflow on demand. -
The graph now remembers your work.
specship_exploresurfaces 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 asspec-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=1still 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
[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_MODELswitch so these behaviors are validated per model tier.
v0.16.0
[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-jiraand/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/chatendpoints. 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
/modelswitches track too; the status line andSPECSHIP_MODELare 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 installadds a lightweight per-prompt nudge that reminds Claude Code to answer structure/flow questions withspecship_explorebefore reaching for file reads — the pattern our benchmarks show saves the most time. It only speaks in projects with a SpecShip index, andSPECSHIP_NO_STEERING=1turns it off entirely.specship uninstallremoves it. - Rejecting a workflow run no longer destroys the work. Reject now parks the run as
rejectedwith its worktree and artifacts intact, and resuming drives the gate'son_rejectrevise 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 explicitspecship 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
verifiedwhen a test linked to it as evidence has passed. Declare evidence with averifies:block in the spec (- <test-file>:<test-symbol>) or an@verifies REQ-Xcomment on the test; both are indexed as durable test links. Specs without evidence stayimplementedand 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=1remains 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 aboveexport function/export classwas silently dropped by the extractor, which also disabled the@implements/@verifiescomment-link backstop for exported symbols. - Asserted spec links now survive a full reindex.
specship_link_assertwrites the link into the spec file'simplementations: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 onspecship 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
[0.15.0] - 2026-07-09
Breaking Changes
specship uninstallnow removes SpecShip completely. It used to only unwire SpecShip from Claude Code, leaving the CLI, your indexes, and your~/.specshipdata behind. It now also deletes the current project's index, the user-level~/.specshipdirectory (including any saved JIRA credentials and worktrees), and thespecshipprogram itself — returning the machine to its pre-install state. It first shows exactly what will be deleted and asks for confirmation (--yes/--forceskips the prompt). To keep the old wiring-only behavior, runspecship 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
[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.