Changelog

Everything we’ve shipped, newest first.

  1. Command line

    CLI0.29.0

    Intake now resolves an evidence-rich context, and the vulnerable multilspy dependency pin has been removed.

    Added

    • Intake now resolves an evidence-rich context, and the vulnerable multilspy dependency pin has been removed.
    CLI docs
  2. Command line

    CLI0.28.0

    Added extraction of ontology code relationships.

    Added

    • Added extraction of ontology code relationships.
    CLI docs
  3. Command line

    CLI0.27.0

    Added support for provider-neutral intake writeback.

    Added

    • Added support for provider-neutral intake writeback.
    CLI docs
  4. Command line

    CLI0.26.0

    Added support for a collaborative intake scope.

    Added

    • Added support for a collaborative intake scope.
    CLI docs
  5. Command line

    CLI0.25.0

    Intake now supports grouped workflow bindings.

    Added

    • Intake now supports grouped workflow bindings.
    CLI docs
  6. Release automation

    LGTM1.3.2

    No user-visible changes.

    LGTM docs
  7. Command line

    CLI0.24.0

    You can now continue intake workflows directly from Slack.

    Added

    • You can now continue intake workflows directly from Slack.
    CLI docs
  8. Command line

    CLI0.23.0

    API routes are now versioned.

    Added

    • API routes are now versioned.
    CLI docs
  9. Command line

    CLI0.22.0

    Added deterministic intake workflow contracts.

    Added

    • Added deterministic intake workflow contracts.
    CLI docs
  10. Command line

    CLI0.21.0

    Ontology contributor identities are now collected.

    Added

    • Ontology contributor identities are now collected.
    CLI docs
  11. Command line

    CLI0.20.0

    No user-visible changes.

    CLI docs
  12. Command line

    CLI0.19.0

    You can now continue incomplete agent builds.

    Added

    • You can now continue incomplete agent builds.
    CLI docs
  13. Command line

    CLI0.18.3

    Projected serial PR claims are now accepted.

    Fixed

    • Projected serial PR claims are now accepted.
    CLI docs
  14. Command line

    CLI0.18.2

    Required checks defined in rulesets are now correctly enforced.

    Fixed

    • Required checks defined in rulesets are now correctly enforced.
    CLI docs
  15. Command line

    CLI0.18.1

    Fixed an issue where the intake ontology could remain stale by refreshing it.

    Fixed

    • Fixed an issue where the intake ontology could remain stale by refreshing it.
    CLI docs
  16. Command line

    CLI0.18.0

    No user-visible changes.

    CLI docs
  17. Command line

    CLI0.17.0

    Pull requests now support protected merge orchestration.

    Added

    • Pull requests now support protected merge orchestration.
    CLI docs
  18. Command line

    CLI0.16.0

    Intake runners now emit telemetry, including build provenance facts.

    Added

    • Intake runners now emit telemetry, including build provenance facts.
    CLI docs
  19. Command line

    CLI0.15.0

    No user-visible changes.

    CLI docs
  20. Command line

    CLI0.14.1

    Intake summaries are now written without requiring an app lookup.

    Fixed

    • Intake summaries are now written without requiring an app lookup.
    CLI docs
  21. Command line

    CLI0.14.0

    Ontology refresh runs are now measured.

    Added

    • Ontology refresh runs are now measured.
    CLI docs
  22. Command line

    CLI0.13.3

    Correctly identify the GitHub App when writing back to issues.

    Fixed

    • Correctly identify the GitHub App when writing back to issues.
    • Added support for GitHub App issue writeback.
    CLI docs
  23. Command line

    CLI0.13.2

    Ontology search repositories are now normalized.

    Fixed

    • Ontology search repositories are now normalized.
    CLI docs
  24. Command line

    CLI0.13.1

    Intake ontology is now scoped to installation repositories.

    Fixed

    • Intake ontology is now scoped to installation repositories.
    CLI docs
  25. Command line

    CLI0.13.0

    Added a private intake worker.

    Added

    • Added a private intake worker.
    CLI docs
  26. Command line

    CLI0.12.3

    Build pull requests are now linked to their source issues.

    Fixed

    • Build pull requests are now linked to their source issues.
    CLI docs
  27. Command line

    CLI0.12.2

    Codex automation now uses supported flags.

    Fixed

    • Codex automation now uses supported flags.
    • Resolved conflicting Codex sandbox flags.
    CLI docs
  28. Command line

    CLI0.12.0

    Builds can now be orchestrated through huddles.

    Added

    • Builds can now be orchestrated through huddles.
    CLI docs
  29. Command line

    CLI0.11.1

    No user-visible changes.

    CLI docs
  30. Command line

    CLI0.11.0

    Added semantic ontology routing.

    Added

    • Added semantic ontology routing.
    CLI docs
  31. Command line

    CLI0.10.0

    Added an issue build agent runner.

    Added

    • Added an issue build agent runner.
    CLI docs
  32. Command line

    CLI0.9.0

    Ingestion summaries are now written to issues.

    Added

    • Ingestion summaries are now written to issues.

    Fixed

    • Writeback now inspects all issue comments instead of only some.
    CLI docs
  33. Command line

    CLI0.8.1

    Added support for the Anthropic ingestion schema.

    Fixed

    • Added support for the Anthropic ingestion schema.
    CLI docs
  34. Command line

    CLI0.8.0

    GitHub issue events are now enriched during ingestion.

    Added

    • GitHub issue events are now enriched during ingestion.
    CLI docs
  35. Command line

    CLI0.7.0

    Release changelogs are now published to S3.

    Added

    • Release changelogs are now published to S3.
    CLI docs
  36. Command line

    CLI0.6.0

    Release changelogs can now be generated automatically with AI.

    v0.6.0

    Added

    • Release changelogs can now be generated automatically with AI.
    CLI docs
  37. Command line

    CLI0.5.3

    Install LGTM v1.1.1 with Codex marketplace compatibility by @ike4est in https://github.com/sparepartslabs/spareparts-cli/pull/21

    What's Changed

    Full Changelog: https://github.com/sparepartslabs/spareparts-cli/compare/v0.5.2...v0.5.3

    CLI docs
  38. Command line

    CLI0.5.2

    Install LGTM for supported coding agents by @ike4est in https://github.com/sparepartslabs/spareparts-cli/pull/19

    What's Changed

    Full Changelog: https://github.com/sparepartslabs/spareparts-cli/compare/v0.5.1...v0.5.2

    CLI docs
  39. Release automation

    LGTM1.3.1

    Changelog entries are now published under the canonical changelog prefix.

    Fixed

    • Changelog entries are now published under the canonical changelog prefix.
    LGTM docs
  40. Release automation

    LGTM1.3.0

    Release changelogs are now published to S3.

    Added

    • Release changelogs are now published to S3.
    LGTM docs
  41. Release automation

    LGTM1.2.0

    Plugin release changelogs can now be generated with AI.

    v1.2.0

    Added

    • Plugin release changelogs can now be generated with AI.
    • Plugin releases can now be created from semantic commits.
    LGTM docs
  42. Release automation
  43. Release automation

    Changelog0.2.0

    chore: bump @vercel/ncc from 0.38.4 to 0.44.1 in the development group by @dependabot[bot] in https://github.com/sparepartslabs/spareparts-changelog/pull/7

    What's Changed

    New Contributors

    Full Changelog: https://github.com/sparepartslabs/spareparts-changelog/compare/v0.1.0...v0.2.0

    Changelog docs
  44. Release automation

    Changelog0.1.0

    feat: add end-user changelog action by @ike4est in https://github.com/sparepartslabs/spareparts-changelog/pull/1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/sparepartslabs/spareparts-changelog/commits/v0.1.0

    Changelog docs
  45. Command line

    CLI0.5.1

    chore(ec): install shared constitution workflow by @ike4est in https://github.com/sparepartslabs/spareparts-cli/pull/16

    What's Changed

    Full Changelog: https://github.com/sparepartslabs/spareparts-cli/compare/v0.5.0...v0.5.1

    CLI docs
  46. Command line

    CLI0.5.0

    Install the LGTM agent command for Claude, Codex, Cursor, GitHub Copilot, Gemini, or OpenCode.

    sp plugin

    The new plugin command installs pinned, verified agent tools:

    sp plugin list
    sp plugin install lgtm --agent claude --dir .
    sp plugin install lgtm --agent cursor --agent gemini
    sp plugin install lgtm --all --dir .

    Targets are claude, codex, cursor, copilot, gemini, and opencode. Existing files are preserved unless --force is passed.

    The CLI verifies the LGTM archive before rendering each agent's native wrapper. Installation adds neither a Git hook nor a hidden memory edit. Without an agent target, sp plugin install lgtm retains the Codex marketplace path.

    See Agent plugins for first-use behavior.

    CLI docs
  47. Release automation

    LGTM1.1.0

    Run LGTM from Claude, Codex, Cursor, GitHub Copilot, Gemini, or OpenCode before your agent publishes code.

    Added

    • One agent-neutral command now installs for all six supported coding agents.
    • On first use, LGTM can ask your agent to remember the quiz before its own pushes and pull-request creation, using a visible host mechanism only.
    • The Codex marketplace path remains available alongside project-native targets.
    sp plugin install lgtm --agent claude --dir .
    sp plugin install lgtm --agent cursor --agent gemini --dir .
    sp plugin install lgtm --all --dir .

    Agent installation is separate from sp lgtm install, which adds a local Git hook.

    LGTM docs
  48. Command line

    CLI0.4.1

    Synced huddles now keep their repository specification links intact.

    Fixed

    Workspace reconciliation preserves each huddle row's link to its repo-scoped specification directory.

    CLI docs
  49. Command line

    CLI0.4.0

    Pull shared huddles from the Spare Parts workspace API into a local multi-repository workspace.

    Added

    sp ec workspace sync reconciles shared huddles from the workspace API into the local .sp/huddles store while repo specifications remain repo-scoped.

    CLI docs
  50. Command line

    CLI0.3.2

    Workspace synchronization now keeps long repository statuses within the API limit.

    Fixed

    sp ec caps synchronized node status text so a detailed local status cannot make an otherwise valid workspace sync fail.

    CLI docs
  51. Command line

    CLI0.3.1

    Homebrew release resources no longer pull in optional model-provider dependencies.

    Fixed

    The Homebrew release path keeps engineering-context commands dependency-light. Commands that do not call a model no longer inherit optional provider SDKs.

    CLI docs
  52. Command line

    CLI0.3.0

    Engineering context can now sync repository trajectories into the Spare Parts workspace API.

    Added

    sp ec can send a repository's current specification trajectory to its matching workspace node while keeping local Markdown authoritative.

    CLI docs
  53. Command line

    CLI0.2.0

    Engineering context joins the Spare Parts CLI, with Spec Kit commands, shared .sp workspaces, huddles, and project synchronization.

    sp ec

    sp ec install adds engineering-context commands to a repository for the coding agents already in use there. It can detect one agent, target one by name, or install commands for every supported agent:

    sp ec install
    sp ec install --agent claude
    sp ec install --all
    sp ec install --dir path/to/repo

    The installed workflow follows Spec Kit's specification, planning, task, and implementation structure while keeping /huddle as the cross-repository coordination command.

    One .sp workspace

    Generated context now lives under .sp/, replacing the earlier .blitz/ layout. Each repository keeps its own specs and command state. When installation targets a directory containing several repositories, the workspace root also gets a shared constitution and huddle store without receiving a pooled repository scaffold.

    The installer carries over the existing ignore behavior: generated .sp state and templates are ignored, while .sp/memory/constitution.md remains trackable. Existing blanket .sp/ ignore rules are preserved and reported rather than silently rewritten.

    Huddles and GitHub Projects

    A workspace can use a GitHub Project as its huddle store. Configuration and manual synchronization are available from the command line:

    sp ec project configure https://github.com/orgs/example/projects/1 --dir ..
    sp ec project status --dir ..
    sp ec project sync ../.sp/huddles/001-example/huddle.md --dry-run
    sp ec project sync ../.sp/huddles/001-example/huddle.md

    /huddle prefers installed GitHub MCP tools that can manage Projects and falls back to gh project through the CLI. Every synchronized draft item carries a stable huddle-path marker, so another sync updates the same item instead of creating a duplicate. The Markdown document remains authoritative if remote synchronization is unavailable.

    Guided setup

    Two commands make integration requirements visible before a huddle needs them:

    sp ec doctor
    sp ec project setup

    They report the configured huddle store, GitHub CLI authentication, and visible Linear MCP or API configuration. Missing capabilities include the next command or configuration step needed to enable them. GitHub Projects is fully synchronized in this release; Linear setup and detection establish the path for its work-management integration.

    Install

    brew upgrade sparepartslabs/tap/spareparts-cli
    pip install --upgrade spareparts-cli

    See the Spare Parts CLI documentation for installation options and the complete sp ec workflow.

    CLI docs
  54. Command line

    CLI0.1.0

    The first release. The sp command line, with sp lgtm as its first module, on PyPI and the Homebrew tap.

    sp is the Spare Parts command line. Modules are imported lazily, so the module named on the command line is the only one loaded: running one never pays for another's imports, and one with a broken dependency cannot take the rest of the command line down with it.

    sp lgtm

    Generates a few multiple-choice questions about a range of commits and asks them in your terminal, before the code leaves your machine.

    sp lgtm                       # what this branch adds since it left main
    sp lgtm main...feature/x      # someone else's branch, before you merge it
    sp lgtm --staged              # what is staged
    sp lgtm --dry-run             # what it would ask about, no model call

    Press ? on any question to print the hunk it came from. Wrong answers are never a failure: you are told which files to look at again, and it re-asks as many times as you like.

    It reads .github/lgtm.yml, the same file the GitHub Action reads, so a repository is configured once. Fields that only mean something to the Action are accepted and ignored.

    As a git hook

    sp lgtm install                       # pre-push, advisory
    sp lgtm install --hook pre-commit     # earlier, and once per commit
    sp lgtm install --blocking            # wrong answers stop the push

    pre-push is the default, and advisory is the default. A hook that costs a minute and can stop you is one you delete within a week. Even with --blocking, only a wrong answer blocks: could-not-ask, meaning no API key, a vendor outage, or nothing quizzable, never costs you a push.

    The hook quizzes exactly what you are about to push, reading the ref range git puts on stdin, and falls back to what the branch adds since it left the default branch when the remote has never seen it. It skips itself silently where there is no terminal, such as a rebase, a GUI client, or CI. sp lgtm install honours core.hooksPath and refuses to overwrite a hook it did not write.

    Vendors

    No vendor is the assumed one. On pip each SDK is an extra, so you install the client for the vendor you actually call and nothing else.

    Vendor Extra Key Default model
    anthropic [anthropic] ANTHROPIC_API_KEY claude-opus-5
    openai [openai] OPENAI_API_KEY gpt-5.5
    gemini [gemini] GEMINI_API_KEY or GOOGLE_API_KEY gemini-pro-latest

    Name no vendor and sp uses whichever key is set. The defaults were chosen by listing each vendor's models against a live key rather than from memory.

    Split the proposer and the verifier across two vendors if you have the keys for it. A model asked to find fault with its own reasoning mostly does not, so this is the strongest arrangement available, and it costs one extra vendor's tokens and almost no extra wall clock:

    sp lgtm --provider anthropic --verifier openai

    Install

    brew install sparepartslabs/tap/spareparts-cli
    pip install "spareparts-cli[anthropic]"     # or [openai], [gemini], [all]

    The Homebrew formula carries all three vendors and brings its own Python rather than touching the one you develop against. Dependencies are otherwise thin on purpose: everything the terminal rendering needs is in the standard library.

    Exit codes

    Code Meaning
    0 Confirmed
    1 Not confirmed, meaning wrong answers or you quit
    2 Could not ask, meaning no API key, git failed, or nothing quizzable

    Treat only 1 as a failure. A tool that cannot run must not block a commit.

    CLI docs
  55. Release automation

    LGTM1.0.1

    The Marketplace listing is now named Spare Parts LGTM.

    Fixed

    • The action published as LGTM, a name generic enough to be hard to find and easy to mistake for someone else's. It is Spare Parts LGTM now.

    Listing metadata only, with no change to behaviour, inputs or outputs. Workflows pinned to sparepartslabs/spareparts-lgtm@v1 already point at it.

    LGTM docs
  56. Release automation

    LGTM1.0.0

    The first release. LGTM runs as a GitHub Action anyone can install, on any of three model vendors.

    LGTM asks the reviewer two or three questions about the pull request they just approved, generated from the diff and reported as a check run. It has no opinion on whether the change is good, only on whether anyone read it.

    The shape it ships in

    Two workflow files and two secrets. There is no server to run, no database to provision, and no checkout: the diff and the configuration are both read through the API. Quiz state lives in the comment and the check run, configuration in .github/lgtm.yml.

    The install is split in half on purpose. lgtm-collect.yml listens for pull_request_review with permissions: {} and does nothing but write the event to an artifact, because that event carries no secrets on a pull request from a fork. lgtm.yml is the privileged half and picks the relayed event up through workflow_run, treating the artifact as untrusted.

    Questions

    Three stages run on the diff, after a file screen that makes the common skip cost nothing.

    • Propose. One call writes candidates about what the change does: what a new guard prevents, which edit touches existing rows, what an error path now returns.
    • Verify. An independent call that never saw the proposer's reasoning is told to refute each candidate. It survives only if that call agrees the answer is right and that someone who skipped the diff could not guess it.
    • Ground. The cited file and hunk are checked against the parsed diff in code, and the options are checked for structural tells.

    Everything is conservative in one direction. A quiz with no survivors is not posted and the check concludes neutral. The answer key is never published: the comment carries a keyed hash per correct option, so an edited quiz is reissued rather than graded.

    Asking a question back

    Mention @lgtm at the start of a line to get background questions answered, with web search where a source helps. Questions that ask LGTM to read the pull request for you are declined, and you get a pointer at which file answers it instead. Write access only, rate limited per asker per pull request, and answerQuestions: false turns it off.

    Vendors

    Anthropic, OpenAI and Gemini, behind one provider seam, and any of the three can run the web search. Each repository supplies its own model key, so adoption costs the adopter.

    Enforcing

    Off by default. enforce: true in .github/lgtm.yml holds a merge until the quiz is answered. LGTM can never mark a review as failed, and unlimited attempts are the point rather than a concession.

    LGTM docs