Source for two community packages listed in GitHub Spec Kit's community catalog:
| Package | Kind | Catalog |
|---|---|---|
speckit-inventory |
Extension | extensions/catalog.community.json |
inventory-alignment |
Preset | presets/catalog.community.json |
Both implement the Phase 1 primitive discussed in Spec Kit issue #4164, and were accepted through the official submission workflow in #4226 and #4227.
Spec Kit agents locate requirements by grepping Markdown. That makes a reworded requirement look
like a new one, so the agent writes FR-013 alongside the FR-007 it was actually restating, and
the spec accumulates duplicates that no longer agree with each other.
speckit-inventory removes the guesswork: it re-derives every live FR-, NFR-, SC-, AC-,
and T- ID from spec.md and tasks.md on each run and prints JSON. There is no sidecar file and
no second source of truth, so a tasks.yaml ↔ tasks.md sync problem cannot arise.
inventory-alignment wraps speckit.specify and speckit.analyze so the agent classifies each
requirement against that live set before writing — updating a reworded requirement rather than
duplicating it.
specify extension add speckit-inventory
specify preset add inventory-alignmentThe preset declares the extension as a formal dependency, so installing it without the extension
reports the problem at install time rather than leaving you with prompts that quietly do nothing.
That dependency mechanism (requires.extensions) shipped in Spec Kit v1.0.4 via
github/spec-kit#4250.
specify extension add --dev ./speckit-inventory
specify preset add --dev ./inventory-alignment| Package | Spec Kit | Depends on |
|---|---|---|
speckit-inventory |
>=0.9.0 |
— |
inventory-alignment |
>=1.0.4 |
speckit-inventory >=0.1.1 |
python -m pytest tests/ -qRelease artifacts are built with a fixed timestamp and normalized permissions, so identical sources produce byte-identical archives:
python build.pyThis writes dist/speckit-inventory.zip and dist/inventory-alignment.zip and prints the SHA-256
of each — the values the Spec Kit catalog pins.