The SpecShip engineering blog

Field notes on shipping with agents.

Deep dives on knowledge graphs, harness engineering, spec drift, token economics, and the workflow design behind SpecShip — written by the people building it.

123
Integrations

Using JIRA with SpecShip: a step-by-step walkthrough

Hands-on, start to finish: connect your board, pick a ticket into a spec, publish it back as a Story with Sub-tasks, implement it behind the plan gate, and let the board move itself to In Review and Done — then the advanced knobs: transition control, workflow validation, release stamping, corporate TLS, and headless secrets.

Read 9 min
Integrations

Drive work from your JIRA board: pick an id, get a reviewed PR

SpecShip’s first outbound integration turns a JIRA ticket into a real spec — summary to title, description to body, subtasks to acceptance criteria — implements it behind the plan gate, and raises a PR only when the tests pass, with the issue assigned, transitioned, and linked back. Local-first, secret-safe, one issue at a time.

Read 7 min
~640<250
Dashboard

A dashboard that installs anywhere: retiring Angular for server-rendered HTML

The desktop dashboard shipped ~640 npm packages — bleeding-edge Angular, a 73 MB code editor, native build tooling — and choked behind locked-down enterprise registries. We replaced it with a server-rendered UI that ships inside the server itself: well under 250 mainstream packages, no native builds, the same look.

Read 7 min
Doors

The reads door: one entrance for every “understand the code” question

Explore an area, trace a flow across dynamic-dispatch hops grep can’t follow, or get a change’s blast radius — through a single door. You name the symbols; the graph hands back their source, already Read. Six tools, one entrance, and the agent never has to pick.

Read 9 min
Doors

The intent door: from a one-line idea to shipped, linked code

Browse the spec funnel, author or fast-path a requirement, implement it in an isolated worktree, review it against a rubric, triage a bug to the spec it belongs to, or capture a domain fact — all behind one door. Intent becomes a first-class artifact, and the spec is the contract.

Read 10 min
Doors

The gate door: the checkpoint your agent has to pass

Run the enforcement gate, work the drift queue, repair a broken spec↔code link, and read graph-derived code health — one door that keeps intent and code honest. Drift is a signal, not a failure, and the gate only bites when you ask it to.

Read 9 min
Claude Code

A quality score for the way you prompt your agent

Two prompts asking for the same change can cost 10× apart. SpecShip now grades every prompt in a session — does it name a concrete target, is it scoped, is it cache-friendly, did it go structural or brute-force — and hands you the one-line fix. Rule-based, no LLM, and it never invents a number it can’t measure.

Read 6 min
Product

We made SpecShip smaller on purpose

A first install used to hand you 17 commands and a spec workflow you never asked for. Now it gives you just the wedge — the agent exploring the index instead of re-reading files — and the spec-driven depth is one opt-in flag away.

Read 7 min
Status Line

A status line that refuses to lie about tokens saved

Your status line is prime real estate — so what earns a spot? SpecShip’s segment shows index sync state, drift, and how many times it was actually called. Not “tokens saved”: that number has no honest source at runtime, so we don’t fake it.

Read 7 min
Domain Knowledge

The domain knowledge base that builds itself — your next hire’s shortcut

On a large codebase, the “why” lives in people’s heads — the ubiquitous language, the rules, the decisions. SpecShip captures it as you work, links it to the specs and code it governs, and keeps it honest with drift. New team members read the domain, not the tribe.

Read 9 min
Knowledge Graph

Why we model codebases as graphs, not file trees

A file tree tells you where code lives. It says nothing about what calls what, which test covers which function, or which requirement a symbol satisfies — exactly where agents waste their time.

Read 9 min
Workflows

Why every agent run gets its own git worktree

Branches and stashes share one working tree; clones and containers are heavyweight. A git worktree is the sweet spot — a real isolated checkout that shares the repo, so a failed agent run never touches yours.

Read 8 min
Harness Engineering

The harness: maintainability, fitness, and a gate your agent must pass

Letting an agent write code is easy. Stopping it from quietly rotting your architecture is the hard part. SpecShip turns the graph into checks — coupling, god-files, cycles, layering rules — composed into one opt-in CI gate.

Read 10 min
Spec Drift

The day a renamed field broke a "verified" requirement

Specs are nodes with edges to the code that satisfies them. Rename that code and the edge breaks — which is exactly the signal you want, landing in a review queue instead of silently shipping.

Read 6 min
Workflows

Approval gates: letting the agent ship, safely

A workflow that plans, implements, and tests in an isolated worktree — but pauses at a human gate before anything merges. Real control flow, not a one-shot prompt.

Read 7 min
Tokens

137× less context: anatomy of one MCP query

A "find the callers of this function" task, run two ways: grep-and-read versus one structured graph query. The token bill between them is not close.

Read 7 min
Cost

The economics of cache hits in long agent sessions

Most of a long session’s token bill is cache reads, not fresh input — until your system prompt drifts and the hit rate falls off a cliff. Here’s how to see it.

Read 8 min
Memory

Reading the whole CLAUDE.md hierarchy at a glance

Managed, user, project, and subdirectory memory all stack — with @imports resolving across them. When the agent surprises you, the answer is usually a line you forgot was in scope.

Read 6 min