Agent agnostic -- Keep agent-specific state out of .specify/
#4740
Replies: 3 comments 3 replies
|
Thanks for raising this. Spec Kit does support multiple agents in one project: after That addresses a team whose contributors use different agents, but not quite the preference you describe. Spec Kit still has one project-wide default. I would avoid ignoring all three files without that design change: |
|
@ChristopherBull We ran into the same churn on a team with mixed Claude Code and Copilot users. What helped was splitting shared decisions from personal tool choices. Anything agent-specific is gitignored and regenerated by a small bootstrap script each dev runs after cloning. We kept one short, agent-neutral context file in git (via enactapp.io) that the specs point to. That way every agent starts from the same project facts, whatever wrapper it runs in. |
|
This lines up with something I wrote about recently: Managing Spec-Kit Extensions, Presets, Workflows, and Bundles as Packages. The article is about extensions, presets, workflows and bundles, but I think the same model applies to integrations. The underlying issue is that
Right now integration state mixes all three, sometimes inside a single file. That's why no simple One principle I'd highlight: an installation record should always share the fate of the files it describes. If those files are committed, commit the record. If they're per-developer, the record is too. That keeps uninstall safe while still allowing a per-developer agent choice. This seems like part of the broader separation asked for in #2612 and #2681, so it might be worth solving there once rather than case by case. AI disclosure: This comment was drafted with OpenCode (model: claude-opus-5.5, human-supervised) on behalf of @markuswondrak and reviewed before posting. |
Uh oh!
There was an error while loading. Please reload this page.
Running
specify init --here --integration claudeputs project decisions and developer preferences together in.specify/. Some files are needed by every collaborator: the constitution, templates, scripts and workflows. Other files, and parts of files, record which agent I chose. Because both live in the same folder, a team can't commit.specify/without also committing one person's agent choice.Files that aren't agent-agnostic after a clean init (Spec Kit v1.0.12.dev0):
.specify/integration.json"installed_integrations": ["claude"]"integration_settings": { "claude": { ... } }"integration": "claude", "default_integration": "claude".specify/init-options.json"ai": "claude""integration": "claude".specify/integrations/claude.manifest.jsonSpec Kit's specs, plans and constitution work with any agent, which is a big part of its appeal. In a shared repo, though, each contributor may use a different agent (Claude, Copilot, Gemini, Cursor and so on). These files would likely get committed, deliberately or accidentally, and If these files are committed:
.gitignorerules for themselvesProposal:
All reactions