Skip to content

speccoder 0.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 09:11
· 32 commits to main since this release

Added

  • 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.