Repository navigation
speccoder 0.1.0
The first release. speccoder implements GitHub Spec Kit features and
OpenSpec changes task by task, and ticks a task only on evidence the model
cannot produce or edit.
Added
Judged by evidence
- Per task: baseline checks, spec-derived acceptance tests that must fail
first (red) and pass after (green), the project's checks again, and a
diff audit for weakened tests, skips and config edits. Verdicts:
verified,regression_onlyorfailed; a task the model cannot do
honestly stops asblocked. - Acceptance strength: plausible wrong versions of the change must fail
the tests; a test that rejects what the spec allows goes to a person.
Optional held-out tests, mutation testing and a gaming monitor. - Every tick is a commit with its evidence in trailers and an in-toto
attestation in git notes (speccoder attest verify). - When the spec changes, ticks proven against the earlier wording say so,
word by word;run --convergere-checks the code against the spec as it
is and adds tasks for what no longer holds.
Safe by construction
- Work on
speccoder/<feature>in its own worktree, or in place. - An OS sandbox for every command: Seatbelt on macOS, Landlock and seccomp
on Linux — writes only to the worktree, no credentials, no network
beyond loopback, no Unix sockets outside the workspace. - A policy classifies every tool call before it runs: allowed, sent to a
person, or denied. Approvals for once, the task or the run, inline, in
an editor (ACP), in the app or later — each recorded with who decided. - Every model and tool call journaled by agentplane: a killed run resumes
without repeating finished calls; any recorded run replays offline.
The person's work
- Needs You (
speccoder inbox): every decision waiting in every feature,
the most urgent first, each settled in place. - Spec review (
speccoder review): approve each requirement's wording or
request changes; answer open questions in place; reword a requirement;
see what changed and the spec's history.[review] requiredmakes a
run wait for it. - Quick changes (
speccoder do "…"): a story, an approved requirement and
a task in a standing feature, committed and run like any task. - The model's account: what the model says beside its calls, live and
afterwards (task show --account), always shown as a claim.
Interfaces
- A terminal dashboard for
runand barespeccoder;--plain, screen
reader mode, ASCII and colour themes. - The app (
speccoder ui,--windowfor a native window):
Needs You, Overview, Board, Code, Spec & Plan, Report and
Settings; a menu bar, a status bar, context menus, a command palette and
a setup assistant. Local only, on 127.0.0.1 with a per-start token. - Editors over ACP; MCP servers as tools, pinned by digest.
--jsonand--eventson every command with published JSON Schemas;
every failure carries a stable code and the command that fixes it.
Spec formats and planning
- Spec Kit 0.13 to 1.2: its planning skills hosted with speccoder's model
(speccoder spec specify|plan|tasks|…), extension hooks, and a step
type for Spec Kit workflows (speccoder workflow install). - OpenSpec 1.0 and newer: changes, spec deltas,
openspec archive
preflight,speccoder spec propose|archive.
Models and agents
- Anthropic, OpenAI and any OpenAI-compatible server (Ollama, vLLM, …);
keys from the environment only. Claude Code, Codex or any command as
the agent making the attempts, judged the same way. - Parallel
[P]tasks in lanes, best-of-n attempts, retries with the
verifier's facts, token and cost reporting.
GitHub, without gh
speccoder auth loginthrough speccoder's GitHub App (a short code in
the browser; keychain storage);issue start 42specifies a feature
from an issue and can comment on it;propens a draft whose
description is the evidence.
Distribution
- Release archives for macOS (Apple silicon) and Linux (x86_64, aarch64)
with SHA-256 checksums and build-provenance attestations; a shell installer
(--verify-attestation); a Homebrew tap; the crates on crates.io. - Documentation at https://hupe1980.github.io/speccoder/.