Repository navigation
[Preset]: Add Inventory Alignment (inventory-alignment) #4227
Description
Preset ID
inventory-alignment
Preset Name
Inventory Alignment
Version
0.1.0
Description
Classifies each requirement against a read-only inventory of live IDs before writing, so reworded requirements are updated instead of duplicated.
Author
Yash Chindam
Repository URL
https://github.com/Yash-Chindam/spec-kit-inventory-alignment
Download URL
Documentation URL
https://github.com/Yash-Chindam/spec-kit-inventory-alignment/blob/main/inventory-alignment/README.md
License
MIT
Required Spec Kit Version
=0.9.0
Required Extensions (optional)
speckit-inventory >=0.1.0 — submitted separately alongside this one.
Note that preset.yml's requires: can only declare speckit_version, so this dependency cannot currently be declared formally in the manifest. The wrappers degrade safely: without the extension installed, the core workflow runs unchanged and the inventory checks are skipped. @mnriem flagged this same gap in #4164 (comment) as a small, separable core enhancement worth tracking on its own issue.
Templates Provided
1 template — tasks-template (append strategy), documenting the optional covers: field that links a task to the requirement IDs it implements.
Commands Provided
2 commands, both using the wrap strategy with the {CORE_TEMPLATE} placeholder so they fall through to the original command body:
speckit.specify— prepends a pre-pass that loads the inventory and classifies each proposed requirement as already-true / edit-existing / conflict / genuinely-new before writing.speckit.analyze— prepends a pre-pass that loads the complete live ID set as an input to cross-artifact coverage and conflict review.
Number of Scripts (optional)
0
Tags
inventory, alignment, requirements, traceability, workflow
Key Features
Filed at @mnriem's request in #4164 — this is the preset half of the extension + preset pair proposed in #4164 (comment). The companion extension speckit-inventory is submitted separately.
The problem. A user reworks a UI requirement mid-feature. The agent finds related work by grepping similar wording across spec.md, plan.md, and tasks.md. After the reword — "charge on Pay" becomes "show a confirm modal" — nothing matches, so the agent adds a second live requirement instead of updating the first. /speckit.analyze cannot catch it, because the contradicting line was never loaded into context.
What this preset changes.
- Classify before writing. The
speckit.specifypre-pass requires each proposed requirement to be resolved against the complete live set as already-true, edit-existing, conflict, or genuinely-new — matching on meaning rather than wording, and preserving existing IDs when updating. - Analyze against a complete input. The
speckit.analyzepre-pass supplies the full ID set instead of grep results, and instructs the agent to report IDs present in one artifact but missing from others, uncovered requirements, and dangling references. - Optional
covers:field. Theappendoverride oftasks-templatedocuments linking a task to the requirements it implements, which is what lets the companion extension return a per-task context pack instead of a whole-file dump. It is explicitly optional — setup and tooling tasks omit it. - No core changes, no second source of truth, no embeddings. Embeddings were Phase 2 of the original proposal and are deliberately out of scope.
Testing Checklist
- Preset installs successfully via
specify preset add - Template resolution works correctly after installation
- Documentation is complete and accurate
- Tested on at least one real project
Submission Requirements
- Valid
preset.ymlmanifest included - Linked README (Documentation URL) explains how to use this preset and includes a valid
specify preset add ...command (preferablyspecify preset add --from <download-url>using the exact download URL) - LICENSE file included
- GitHub release created with version tag
- Preset ID follows naming conventions (lowercase-with-hyphens)
Additional Context
Testing details. Tested on Windows 11 with Spec Kit 0.16.5.dev0 (built from main), Python 3.11.14, in a project scaffolded with specify init --integration copilot. To be precise about that checkbox: this is a purpose-built test project, not a long-running production one.
All checks ran against the published release archive rather than a local checkout:
- Installed via
specify preset add inventory-alignment --from <download-url>— installed at priority 10. specify preset resolve tasks-templatereturns the expected composition chain:1. [base] core, then2. [append] inventory-alignment v0.1.0. This confirms theappendstrategy composes rather than replacing the core template.- Verified both
wrapoverrides composed correctly: the pre-pass precedes the full core body (355 lines forspeckit.specify, 271 forspeckit.analyze), with zero unresolved{CORE_TEMPLATE}placeholders, and the core frontmatterscripts:block preserved inspeckit.analyze. - Confirmed all four classification buckets — already-true, edit-existing, conflict, genuinely-new — are present in the composed
speckit.specifyoutput. - Confirmed the download URL returns HTTP 200 and the downloaded bytes match the archive I built and tested.
Not covered: template composition and command registration are verified above, but /speckit.specify and /speckit.analyze were not invoked end-to-end inside a live coding-agent session to observe the pre-pass in action. I have the test matrix written and am happy to run it and post results if you want that evidence before vetting.
Suggested docs row for docs/community/presets.md, alphabetically between Intake Sequencing Governance and iSAQB Architecture Governance:
| Inventory Alignment | Classifies each requirement against a read-only inventory of live IDs before writing, so reworded requirements are updated instead of duplicated. | 1 template, 2 commands | speckit-inventory extension | [spec-kit-inventory-alignment](https://github.com/Yash-Chindam/spec-kit-inventory-alignment) |Proposed catalog entry for presets/catalog.community.json:
"inventory-alignment": {
"name": "Inventory Alignment",
"id": "inventory-alignment",
"version": "0.1.0",
"description": "Classifies each requirement against a read-only inventory of live IDs before writing, so reworded requirements are updated instead of duplicated.",
"author": "Yash Chindam",
"repository": "https://github.com/Yash-Chindam/spec-kit-inventory-alignment",
"download_url": "https://github.com/Yash-Chindam/spec-kit-inventory-alignment/releases/download/v0.1.0/inventory-alignment.zip",
"sha256": "8ea62813aeb88d85001f54d91d8eceb011f5fb872bc764d5ea83e8e7ab92a2c1",
"homepage": "https://github.com/Yash-Chindam/spec-kit-inventory-alignment",
"documentation": "https://github.com/Yash-Chindam/spec-kit-inventory-alignment/blob/main/inventory-alignment/README.md",
"license": "MIT",
"requires": {
"speckit_version": ">=0.9.0"
},
"provides": {
"templates": 1,
"commands": 2
},
"tags": [
"inventory",
"alignment",
"requirements",
"traceability",
"workflow"
],
"created_at": "2026-08-20T00:00:00Z",
"updated_at": "2026-08-20T00:00:00Z"
}Supersedes a PR. I originally opened #4220 editing the catalogs directly, because the issue asked for a PR. @mnriem redirected me here. That PR is being closed in favor of this submission and the companion extension submission.
AI disclosure. Filed on behalf of @Yash-Chindam by Claude Code (model: Claude Opus 5). Per CONTRIBUTING, this contribution used substantial AI assistance for code generation, not just documentation. The preset was first drafted with ChatGPT (Codex, model: GPT-5). It was then reviewed and corrected with Claude Code (model: Claude Opus 5), acting autonomously on my behalf, which found that the append override of tasks-template and the companion extension's before_specify / before_analyze hooks — both explicitly requested in @mnriem's comment — were missing entirely from that draft, and which added them, strengthened the classification prompts, and wrote this submission. Every check in Testing details was executed by Claude Code on my machine at my direction and the results reviewed by me; I am not claiming I re-ran each command by hand. Repository commits carry Assisted-by: trailers accordingly.
Activity
github-actions commentedon Aug 20, 2026
cc @github/spec-kit-maintainers — new catalog submission for review.
Add Inventory Alignment preset to community catalog
github-actions commentedon Aug 20, 2026
Pull request created: #4229
mnriem commentedon Aug 20, 2026
Thank you!
[preset] Add Inventory Alignment preset to community catalog (github#…