You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Start a project from one line of intent.speccoder new (and New
Project in the app) plans git init, the stack's own scaffold (cargo,
uv + pytest, npm + vitest, go), the format's own init (Spec Kit with the
speccoder preset, or OpenSpec), speccoder init --yes and one commit as
you. Every command is shown, network steps name the hosts they reach, and
each runs sandboxed. The run is bound to the plan's digest and resumable; --undo moves an untouched folder to the Trash or reverts the commit.
Plan through: speccoder spec specify "…" --through tasks (and issue start N --through tasks) runs the format's own skills in order,
stopping only for open questions and your approval of the spec. feature similar finds a requirement a description duplicates.
The composer and New Feature. ⌘N suggests the rung — bug fix, quick
change, feature — from the words, with its reason; the New Feature sheet
shows the skills that will run, what they write and what they cost.
A welcome outside a project: New Project, Open Project…, Clone from
GitHub…, Try the Sample, recent projects. speccoder sample replays a
recorded run strictly, without a model key.
A test file the runner never collected fails the verdict
(TESTS-NOT-COLLECTED), decided from the toolchain's rule (Cargo, pytest,
vitest/jest, Go), the check's JUnit report, or a listing from the check's
own command (or its list command). When speccoder cannot tell, the task
stops, never ticked (TESTS-COLLECTION-UNKNOWN).
Every regression-only tick says why — no story, no scenarios,
acceptance off, no usable tests, none collected, not red first, or already
passing (naming the task that implemented it) — in the trailer, the signed
statement, status, report, the board, the TUI and ACP. A feature with
mostly regression-only ticks gets one Little Was Verified item.
Tests go where the runner finds them. speccoder detects the test
layout and gives it to the implementer and the test authors; its own
acceptance tests go to one file per story.
Plan checks before the run (doctor --feature, Before you run):
tests named where the runner won't collect them, a story's behaviour in
Setup or Foundational, tasks that only write tests. speccoder task acceptance-at T --story US writes a story's acceptance tests at that task.
speccoder preset add: a bundled Spec Kit preset whose tasks template
plans for evidence, installed by specify preset add. Spec Kit's scripts
get the installed specify's Python (SPECKIT_PYTHON_EXECUTABLE), which
has PyYAML; doctor warns when there is none.
Changed
Built on agentplane 0.54.0.
One binary.speccoder-verify is now speccoder attest verify --branch (with attest tour and attest badge); the evidence Action
downloads speccoder. The check and its payload are unchanged; exit codes
are speccoder's (0, 26 failure, 15 neutral). --require-signed is
on by default with --branch.
Watch a project while a run works on it.status, report --approvals, inbox, task show --account and the app read a running
journal at once instead of waiting. Only a second writer is refused, at
once. A run killed before closing its journal leaves it for the next
writer to repair; the listings say so.
OpenAI's words beside its calls are shown (Responses API), live, in
waiting calls and in task show --account.
speccoder eval stops on a refused account by the provider's error
code, not by words in the message. Not yet recognised: Anthropic's
"credit balance is too low" (invalid_request_error).
Fixed
A call that could not be asked about (--no-prompt) said only "not a
configured check or allowed command"; it now names the command and how to
allow it.
review approve --run and run on a feature without tasks said "feature
done"; now NO-TASKS (exit 16) names speccoder spec tasks.
On macOS, mktemp failed inside the sandbox, so Spec Kit's scripts could
fail.
A planning skill that stopped incomplete gave no reason; it now quotes the
skill.
Flags after a description were read as part of it; a description starting
with - goes after --.
Reading a project (task show --account, a replay, doctor) no longer
creates a journal or the state directory.
The test suite no longer writes to your real state directory.
Upgrading
A 0.2.0 journal still opens and its runs still list and show. A decision
recorded under 0.2.0 does not read in this build: the attempt that waited
on it fails once, saying so, and the next speccoder run asks again.
Ticks and attempt refs in git are untouched.
Upgrade every speccoder that works on a project together: a 0.2.0
process holds the journal alone.