DOCS · START HERE
Glossary
Every term specd uses, defined once, in the order you will meet them.
If a word on another page is unfamiliar, it is defined here. Nothing here assumes you have read anything else.
The core objects
- Project
- One unit of work in specd: a set of repositories, a model credential, an optional tracker, a board and a knowledge base. Everything is scoped to a project.
- Knowledge base (
knowledge/) - Plain markdown in your repository — architecture, conventions, decisions, runbooks, delivered specs. Git is the source of truth; specd keeps a derived index it can rebuild from scratch.
AGENTS.md- The working agreements installed into your repo at grounding: read
knowledge/first, cite what you relied on, update the docs in the same pull request.CLAUDE.mdimports it, so Claude Code picks it up automatically. - Spec
- The reviewable unit of change: EARS requirements, a cited design, and tasks each sized to one pull request. Versions are append-only.
- The gate
- The approval step at station 04. A named human approves a specific version of a spec; nothing downstream runs without it.
- As-built spec
- The verbatim record of what was approved, filed into
knowledge/specs/by the last task of every spec. It is a historical record — never rewritten, only appended to with a "Deviations" section if reality diverged.
The pipeline
- Station
- One of the six fixed steps: Connect, Ground, Spec, the human gate, Build, Learn. They cannot be added, reordered, skipped or removed.
- Connect
- Registering a repository, a model credential and (optionally) a tracker. The only station that takes configuration.
- Ground / onboarding
- The read-only scan that produces your first knowledge base and opens the setup pull request.
- Adoption
- Merging the setup branch. The merge is the signal — there is no separate button in the hosted path.
- Build station
- The agent run that implements an approved spec, one commit per task, on the spec's own branch.
- Learn
- What happens on merge: the as-built spec is filed and the index refreshes, so the next spec starts better grounded.
How claims are checked
- Citation
- A pointer from a design claim to the passage that supports it, written as a
CITE-ASstring a reviewer can look up and a tool can verify. supported- Verdict: the cited passage exists and says what the claim says it says.
unsupported- Verdict: checked, and wrong — no such document, or no such section.
unknown- Verdict: the corpus could not answer. The document never reached the prompt, holds no indexed content, or was cut for budget. Deliberately distinct from
unsupported: "I found no evidence" and "no evidence exists" are different answers. stale- Verdict: the passage is real, but it describes code that has changed since the doc was last touched.
UNVERIFIED- A marker on a claim the agent could not ground at all. It is a question for a human, never a licence to fill the gap in from guesswork.
- EARS
- Easy Approach to Requirements Syntax — the "when ‹trigger›, the system shall ‹response›" shape specd writes acceptance criteria in. It exists to make a requirement testable by construction.
The engine
- Index run
- One atomic pass that chunks, embeds and links documents. Queued as a row and woken by Postgres
LISTEN/NOTIFY— there is no broker. - Chunk
- A document split on headings. The unit that is embedded, retrieved and cited.
- Link kinds
- The five deterministic edge types extracted by parser rules:
citation,wikilink,symbolref,mdlink,coderef. No model runs at index time — a hallucinated edge would poison retrieval invisibly. - RRF (Reciprocal Rank Fusion)
- How the two retrieval arms are combined: vector similarity over pgvector and full-text search over Postgres
tsvector, merged by rank rather than by score. - Graph expansion
- The one hop taken from the retrieved seed documents across resolved links. Every added chunk carries the edge that pulled it in.
- Code node
- A declaration extracted from your source — a function, class or method — so a doc citing
Service.method()can resolve to real code and serve it as a citable excerpt. - Coupling
- Doc↔code drift mined from a bounded window of git history: "6 commits touched this directory since this doc last moved with it". Measured against the code, not against a 90-day timer.
- Shrink guard
- The refusal to commit an index run that would gut the index — an empty listing against a non-empty index is rejected at any size.
- Health
- The scored count of broken links, dangling anchors, orphans and stale code references in a knowledge base.
Running it
- Runner
- A machine paired to a project that claims and executes jobs — spec, onboard, build — using its own local Claude Code and its own git credentials.
- Lease
- The window a claimed job is held for. A runner that stops heartbeating loses the job back to the queue (180s; builds 900s), and after three reclaims the job is failed as repeatedly abandoned.
- Subscription runner mode
SPECD_AI_MODE=subscription_runner— specd drives the Claude Code CLI already signed in on the machine. It never sees, stores or proxies the credential, which is also why a hosted specd could not offer this mode.- MCP
- Model Context Protocol.
specd mcp serveputs the retrieval engine behind it, so an agent in Claude Code, Cursor or Windsurf can ask the knowledge base instead of grepping. Read-only by construction.