-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: reorganize specs to docs/specs and fix .specify path references #364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: reorganize specs to docs/specs and fix .specify path references #364
Conversation
Update all references, paths, and directory structures from `specs/` to `docs/specs/` across documentation, scripts, and templates to better organize specifications as part of the docs hierarchy. This includes README.md, quickstart.md, spec-driven.md, bash and PowerShell scripts, and template files.
Update paths in documentation, scripts, and templates to reflect the new .specify subdirectory structure for memory files, scripts, and templates. This consolidates development tools while maintaining consistency across the project.
@ahmet-cetinkaya I am not sure why we need to move the specs to |
@localden Thanks for the feedback 😄
These changes enhance project organization, path consistency, and provide a more robust approach for LLM-based context engineering. |
This reverts commit f2df6ac.
4229247
to
e5da237
Compare
@ahmet-cetinkaya I really like this idea! One potential improvement would be to let the user specify a @localden what do you think? For example: specify init --here --ai copilot --script ps --specs-dir docs/specs Or just use a env variable like |
And also:
Can you explain why this is the case? The content is already in a separate |
Good idea!
The main motivation isn’t that specs/ is insufficient on its own, but that docs/ becomes the single entry point for all project knowledge artifacts. When you look at it from a context-engineering perspective, grouping heterogeneous documents (PRDs, RFCs, specs, risk logs, guides, domain knowledge, design system etc.) under one namespace has a few advantages: Cross-document relationships: Specs rarely live in isolation — they often reference RFCs, design docs, or even user manuals. Having them co-located makes it easier for agents/LLMs to traverse links and build a richer mental model of the project. Directory semantics: A docs/ directory is a widely recognized convention. External tools (indexers, doc generators, search pipelines) often look for it by default, so folding specs into that structure reduces special-casing. Consistency with other doc types: Right now specs/ is the only doc family outside of docs/. By pulling it in, we reduce cognitive load — one folder for docs, one folder for framework (.specify/), one for code. Context windows & retrieval: Empirically, when we’ve tested retrieval setups, flatter and semantically-clear hierarchies (docs/specs/feature-x.md vs specs/feature-x.md) improved recall because embeddings and retrievers had a single anchor (docs/). It’s less about specs being weak, and more about the surrounding structure making the project easier to reason about — both for humans and for automated context pipelines. |
Summary
Rationale
The specs folder should be organized under docs/ because projects typically have multiple types of documentation including:
Moving specs to docs/specs provides better organization and follows common project documentation patterns.
Changes Made
1. Specification Path Migration (specs/ → docs/specs/)
Files updated:
README.md
- Directory structure examples and implementation pathsspec-driven.md
- SDD methodology documentationdocs/quickstart.md
- Quick start guide examplestemplates/plan-template.md
- Template input pathstemplates/tasks-template.md
- Template input pathsscripts/bash/common.sh
- Feature directory functionscripts/bash/create-new-feature.sh
- Specs directory pathscripts/bash/update-agent-context.sh
- Feature directory pathscripts/powershell/common.ps1
- Feature directory functionscripts/powershell/create-new-feature.ps1
- Specs directory pathscripts/powershell/update-agent-context.ps1
- Feature directory path2. .specify Path Reference Fixes
/memory/
→/.specify/memory/
/scripts/
→/.specify/scripts/
/templates/
→/.specify/templates/
Files updated:
CONTRIBUTING.md
- Development workflow pathsREADME.md
- Constitution link and directory examplesspec-driven.md
- Constitution referencememory/constitution_update_checklist.md
- Template update pathstemplates/plan-template.md
- Script paths and constitution referencetemplates/commands/plan.md
- Script and template pathstemplates/commands/specify.md
- Script and template pathstemplates/commands/tasks.md
- Script and template pathsscripts/bash/create-new-feature.sh
- Template file pathscripts/bash/update-agent-context.sh
- Template file pathscripts/powershell/create-new-feature.ps1
- Template file pathscripts/powershell/update-agent-context.ps1
- Template file path3. Directory Structure Updates
Updated README.md directory tree examples to show:
Verification
Impact