Skip to main content

Specfuse

Two things live here: the specfuse pip package — one install that owns the whole script suite — and the Claude Code plugin marketplace for the Specfuse gate-cycle methodology.

The split is deliberate. The scripts are one install because choosing between them is not a decision anyone wants to make; the plugins stay separate because which Claude assets a repository enables is exactly the decision it should make.

Install

uv tool install specfuse      # or: pipx install specfuse
cd <your repo> && specfuse init

That's the whole suite — driver, spec-authoring kit, orchestrator — behind one command. No extras, no --include-deps, no bracket quoting. Upgrade with:

specfuse upgrade              # runs your installer for you

Then, in Claude Code, install the plugins the repo needs:

/plugin marketplace add specfuse/specfuse
/plugin install specfuse@specfuse

specfuse init already wires the marketplace and the specfuse plugin into the repo's .claude/settings.json, so that second command is usually all that's left. Add --plugins authoring,orchestrator to enable those too.

Hitting a platform bug, or migrating off the retired specfuse[all] extras? See docs/troubleshooting.md, and run specfuse doctor.

The specfuse command

One command, one name on PATH.

specfuse init [DIR]           # scaffold .specfuse/ + wire .claude/ — or upgrade what's there
specfuse upgrade [DIR]        # the same thing, named for the other direction
specfuse doctor [--fix]       # check every suite command resolves here; --fix clears dead shims
specfuse --version            # the umbrella version + every component's resolved version

init and upgrade are one idempotent operation under two names — neither is ever the wrong one to run — and DIR defaults to the current directory. Both take --dry-run (writes nothing), --plugins, and --no-self-upgrade.

The component tools are subcommands:

Subcommand What it does Component
specfuse run run the gate-cycle driver specfuse-loop
specfuse lint lint a feature plan specfuse-loop
specfuse monitor, monitor-lint the monitoring CLI and its linter specfuse-loop
specfuse stats event statistics for a repo's loop specfuse-loop
specfuse authoring design / validate / bundle specs specfuse-authoring
specfuse pm multi-repo initiative coordination specfuse-orchestrator
specfuse poller, runner the orchestrator's poller and agent runner specfuse-orchestrator
specfuse validate-event, validate-frontmatter orchestrator validators specfuse-orchestrator

The old flat commands still work. specfuse-loop, specfuse-lint, specfuse-authoring and the rest are deprecated aliases, removed in 1.0.0. specfuse doctor lists the ones still on PATH. One name on PATH is the point: the flat names are also the standalone packages' console scripts, so two installs could fight over them and the loser's upgrades silently changed nothing about what ran. See docs/plan-bundle-suite-distribution.md.

specfuse init lays down .specfuse/ (templates, rules, docs, verification.yml) and merge-safely wires .claude/ (including this plugin's config) — pip-native scaffolding via specfuse.loop.scaffold, no init.sh checkout required. Every specfuse run also self-provisions (version-syncs .specfuse/ from the installed package), so an upgrade reaches existing projects on their next run.

The suite is one distribution with three components as hard dependencies (specfuse-loop, specfuse-authoring, specfuse-orchestrator) — that is what makes one install and one upgrade cover everything. They contribute to the shared specfuse.* import namespace, so specfuse.loop, specfuse.authoring and specfuse.orchestrator coexist in one environment.

See specfuse/loop for the methodology, the driver, and getting-started docs.

Plugins

Installed per repo, via the marketplace — pick the toolset that repo needs.

Plugin What it ships Source repo
specfuse Gate-cycle skills (pick / draft / arm / diagnose / wrap, authoring, verification) specfuse/loop plugins/specfuse/
specfuse-authoring Spec-craft: design OpenAPI/AsyncAPI/Arazzo, validate, bundle + the specs agent (idea → validated initiative) specfuse/authoring plugins/specfuse-authoring/
specfuse-orchestrator Multi-repo initiative coordination (onboard, pm) specfuse/orchestrator plugins/specfuse-orchestrator/

Update with /plugin update specfuse@specfuse; reload after changes with /reload-plugins. The skills drive the pip-installed commands above.

Layout

.claude-plugin/marketplace.json   # catalog: per plugin { name, source, source_repo, managed }
plugins/<name>/                    # GENERATED copies — do not hand-edit (see below)
  .claude-plugin/plugin.json
  skills/<skill>/SKILL.md
  agents/<agent>.md

How the plugins are sourced (contributors)

Edit a plugin in its origin repo, never here. Each plugin's canonical source lives in its own repo at plugins/<name>/ (for the loop, .specfuse/skills/ is vendored from plugins/specfuse/skills/ for its dogfood — the plugin dir is still the source). The copies under plugins/ in this repo are generated output, produced by specfuse/publish.py.

  • Publish on release. When a source repo publishes its package to PyPI, its release workflow dispatches to this repo; the publish step regenerates that plugin from the source at tag v<version>, stamps plugin.json.version to the released version (plugin@X == package@X == tag vX), and opens a PR only if the plugin changed.
  • Drift-guard. The plugin-drift-guard CI (required check) re-derives every managed plugin from its source at the pinned tag and fails on any diff — so a hand-edit, a bad merge, or an agent's "quick fix" cannot land in plugins/. The only way in is a faithful publish.
  • Manual publish (testing / backfill): the plugin-publish workflow's workflow_dispatch (plugin, version) runs the same path by hand.

See docs/plan-unify-plugin-sourcing.md for the full design. Skills reach a target repo through the installed plugin (under the /specfuse: etc. namespaces), not by copying files into the repo.

License

Apache License 2.0. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

specfuse-0.10.0.tar.gz (41.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

specfuse-0.10.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file specfuse-0.10.0.tar.gz.

File metadata

  • Download URL: specfuse-0.10.0.tar.gz
  • Upload date:
  • Size: 41.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for specfuse-0.10.0.tar.gz
Algorithm Hash digest
SHA256 230cc85266435adceab4d272e82d83c81266d2e04d5bcc32bec645768b5e098a
MD5 93dcf20c2d23c872b3d719e706a39b8a
BLAKE2b-256 15b94215ba64168f20826b99ea83c37f831ab0aa1610d19c861c475bcfe07408

See more details on using hashes here.

Provenance

The following attestation bundles were made for specfuse-0.10.0.tar.gz:

Publisher: release.yml on specfuse/specfuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file specfuse-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: specfuse-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for specfuse-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 085dce26deb31c406711be3af2dbe7f9174bd9bd98cd4e36dcca8cc9ca9e202c
MD5 149b012e697f7fbf704c514ea545b503
BLAKE2b-256 153269d8083ee48b75211fb577ca454e03b71891f8f1853d2455fc6897c595a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for specfuse-0.10.0-py3-none-any.whl:

Publisher: release.yml on specfuse/specfuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page