Skip to content

Commit 4229247

Browse files
Revert "refactor: migrate tools and templates to .specify directory"
This reverts commit f2df6ac.
1 parent 63cbc7a commit 4229247

File tree

11 files changed

+50
-52
lines changed

11 files changed

+50
-52
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ Here are a few things you can do that will increase the likelihood of your pull
4141
When working on spec-kit:
4242

4343
1. Test changes with the `specify` CLI commands (`/specify`, `/plan`, `/tasks`) in your coding agent of choice
44-
2. Verify templates are working correctly in `.specify/templates/` directory
45-
3. Test script functionality in the `.specify/scripts/` directory
46-
4. Ensure memory files (`.specify/memory/constitution.md`) are updated if major process changes are made
44+
2. Verify templates are working correctly in `templates/` directory
45+
3. Test script functionality in the `scripts/` directory
46+
4. Ensure memory files (`memory/constitution.md`) are updated if major process changes are made
4747

4848
## Resources
4949

README.md

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -304,25 +304,24 @@ The produced specification should contain a set of user stories and functional r
304304
At this stage, your project folder contents should resemble the following:
305305

306306
```text
307-
├── .specify
308-
│ ├── memory
309-
│ │ ├── constitution.md
310-
│ │ └── constitution_update_checklist.md
311-
│ ├── scripts
312-
│ │ ├── check-task-prerequisites.sh
313-
│ │ ├── common.sh
314-
│ │ ├── create-new-feature.sh
315-
│ │ ├── get-feature-paths.sh
316-
│ │ ├── setup-plan.sh
317-
│ │ └── update-claude-md.sh
318-
│ └── templates
319-
│ ├── plan-template.md
320-
│ ├── spec-template.md
321-
│ └── tasks-template.md
307+
├── memory
308+
│ ├── constitution.md
309+
│ └── constitution_update_checklist.md
310+
├── scripts
311+
│ ├── check-task-prerequisites.sh
312+
│ ├── common.sh
313+
│ ├── create-new-feature.sh
314+
│ ├── get-feature-paths.sh
315+
│ ├── setup-plan.sh
316+
│ └── update-claude-md.sh
322317
├── docs
323318
│ └── specs
324319
│ └── 001-create-taskify
325320
│ └── spec.md
321+
└── templates
322+
├── plan-template.md
323+
├── spec-template.md
324+
└── tasks-template.md
326325
```
327326

328327
### **STEP 3:** Functional specification clarification
@@ -357,23 +356,17 @@ The output of this step will include a number of implementation detail documents
357356

358357
```text
359358
.
360-
├── .specify
361-
│ ├── memory
362-
│ │ ├── constitution.md
363-
│ │ └── constitution_update_checklist.md
364-
│ ├── scripts
365-
│ │ ├── check-task-prerequisites.sh
366-
│ │ ├── common.sh
367-
│ │ ├── create-new-feature.sh
368-
│ │ ├── get-feature-paths.sh
369-
│ │ ├── setup-plan.sh
370-
│ │ └── update-claude-md.sh
371-
│ └── templates
372-
│ ├── CLAUDE-template.md
373-
│ ├── plan-template.md
374-
│ ├── spec-template.md
375-
│ └── tasks-template.md
376359
├── CLAUDE.md
360+
├── memory
361+
│ ├── constitution.md
362+
│ └── constitution_update_checklist.md
363+
├── scripts
364+
│ ├── check-task-prerequisites.sh
365+
│ ├── common.sh
366+
│ ├── create-new-feature.sh
367+
│ ├── get-feature-paths.sh
368+
│ ├── setup-plan.sh
369+
│ └── update-claude-md.sh
377370
├── docs
378371
│ └── specs
379372
│ └── 001-create-taskify
@@ -385,6 +378,11 @@ The output of this step will include a number of implementation detail documents
385378
│ ├── quickstart.md
386379
│ ├── research.md
387380
│ └── spec.md
381+
└── templates
382+
├── CLAUDE-template.md
383+
├── plan-template.md
384+
├── spec-template.md
385+
└── tasks-template.md
388386
```
389387

390388
Check the `research.md` document to ensure that the right tech stack is used, based on your instructions. You can ask Claude Code to refine it if any of the components stand out, or even have it check the locally-installed version of the platform/framework you want to use (e.g., .NET).
@@ -431,7 +429,7 @@ This helps refine the implementation plan and helps you avoid potential blind sp
431429
You can also ask Claude Code (if you have the [GitHub CLI](https://docs.github.com/en/github-cli/github-cli) installed) to go ahead and create a pull request from your current branch to `main` with a detailed description, to make sure that the effort is properly tracked.
432430

433431
>[!NOTE]
434-
>Before you have the agent implement it, it's also worth prompting Claude Code to cross-check the details to see if there are any over-engineered pieces (remember - it can be over-eager). If over-engineered components or decisions exist, you can ask Claude Code to resolve them. Ensure that Claude Code follows the [constitution](.specify/memory/constitution.md) as the foundational piece that it must adhere to when establishing the plan.
432+
>Before you have the agent implement it, it's also worth prompting Claude Code to cross-check the details to see if there are any over-engineered pieces (remember - it can be over-eager). If over-engineered components or decisions exist, you can ask Claude Code to resolve them. Ensure that Claude Code follows the [constitution](base/memory/constitution.md) as the foundational piece that it must adhere to when establishing the plan.
435433
436434
### STEP 6: Implementation
437435

scripts/bash/create-new-feature.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ git checkout -b "$BRANCH_NAME"
4545
FEATURE_DIR="$SPECS_DIR/$BRANCH_NAME"
4646
mkdir -p "$FEATURE_DIR"
4747

48-
TEMPLATE="$REPO_ROOT/.specify/templates/spec-template.md"
48+
TEMPLATE="$REPO_ROOT/templates/spec-template.md"
4949
SPEC_FILE="$FEATURE_DIR/spec.md"
5050
if [ -f "$TEMPLATE" ]; then cp "$TEMPLATE" "$SPEC_FILE"; else touch "$SPEC_FILE"; fi
5151

scripts/bash/update-agent-context.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ NEW_FRAMEWORK=$(grep "^**Primary Dependencies**: " "$NEW_PLAN" 2>/dev/null | hea
1313
NEW_DB=$(grep "^**Storage**: " "$NEW_PLAN" 2>/dev/null | head -1 | sed 's/^**Storage**: //' | grep -v "N/A" | grep -v "NEEDS CLARIFICATION" || echo "")
1414
NEW_PROJECT_TYPE=$(grep "^**Project Type**: " "$NEW_PLAN" 2>/dev/null | head -1 | sed 's/^**Project Type**: //' || echo "")
1515
update_agent_file() { local target_file="$1" agent_name="$2"; echo "Updating $agent_name context file: $target_file"; local temp_file=$(mktemp); if [ ! -f "$target_file" ]; then
16-
echo "Creating new $agent_name context file..."; if [ -f "$REPO_ROOT/.specify/templates/agent-file-template.md" ]; then cp "$REPO_ROOT/.specify/templates/agent-file-template.md" "$temp_file"; else echo "ERROR: Template not found"; return 1; fi;
16+
echo "Creating new $agent_name context file..."; if [ -f "$REPO_ROOT/templates/agent-file-template.md" ]; then cp "$REPO_ROOT/templates/agent-file-template.md" "$temp_file"; else echo "ERROR: Template not found"; return 1; fi;
1717
sed -i.bak "s/\[PROJECT NAME\]/$(basename $REPO_ROOT)/" "$temp_file"; sed -i.bak "s/\[DATE\]/$(date +%Y-%m-%d)/" "$temp_file"; sed -i.bak "s/\[EXTRACTED FROM ALL PLAN.MD FILES\]/- $NEW_LANG + $NEW_FRAMEWORK ($CURRENT_BRANCH)/" "$temp_file";
1818
if [[ "$NEW_PROJECT_TYPE" == *"web"* ]]; then sed -i.bak "s|\[ACTUAL STRUCTURE FROM PLANS\]|backend/\nfrontend/\ntests/|" "$temp_file"; else sed -i.bak "s|\[ACTUAL STRUCTURE FROM PLANS\]|src/\ntests/|" "$temp_file"; fi;
1919
if [[ "$NEW_LANG" == *"Python"* ]]; then COMMANDS="cd src && pytest && ruff check ."; elif [[ "$NEW_LANG" == *"Rust"* ]]; then COMMANDS="cargo test && cargo clippy"; elif [[ "$NEW_LANG" == *"JavaScript"* ]] || [[ "$NEW_LANG" == *"TypeScript"* ]]; then COMMANDS="npm test && npm run lint"; else COMMANDS="# Add commands for $NEW_LANG"; fi; sed -i.bak "s|\[ONLY COMMANDS FOR ACTIVE TECHNOLOGIES\]|$COMMANDS|" "$temp_file";

scripts/powershell/create-new-feature.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ git checkout -b $branchName | Out-Null
3838
$featureDir = Join-Path $specsDir $branchName
3939
New-Item -ItemType Directory -Path $featureDir -Force | Out-Null
4040

41-
$template = Join-Path $repoRoot '.specify/templates/spec-template.md'
41+
$template = Join-Path $repoRoot 'templates/spec-template.md'
4242
$specFile = Join-Path $featureDir 'spec.md'
4343
if (Test-Path $template) { Copy-Item $template $specFile -Force } else { New-Item -ItemType File -Path $specFile | Out-Null }
4444

scripts/powershell/update-agent-context.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ $newProjectType = Get-PlanValue 'Project Type'
3333

3434
function Initialize-AgentFile($targetFile, $agentName) {
3535
if (Test-Path $targetFile) { return }
36-
$template = Join-Path $repoRoot '.specify/templates/agent-file-template.md'
36+
$template = Join-Path $repoRoot 'templates/agent-file-template.md'
3737
if (-not (Test-Path $template)) { Write-Error "Template not found: $template"; return }
3838
$content = Get-Content $template -Raw
3939
$content = $content.Replace('[PROJECT NAME]', (Split-Path $repoRoot -Leaf))

spec-driven.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ The templates transform the LLM from a creative writer into a disciplined specif
268268

269269
## The Constitutional Foundation: Enforcing Architectural Discipline
270270

271-
At the heart of SDD lies a constitution—a set of immutable principles that govern how specifications become code. The constitution (`.specify/memory/constitution.md`) acts as the architectural DNA of the system, ensuring that every generated implementation maintains consistency, simplicity, and quality.
271+
At the heart of SDD lies a constitution—a set of immutable principles that govern how specifications become code. The constitution (`memory/constitution.md`) acts as the architectural DNA of the system, ensuring that every generated implementation maintains consistency, simplicity, and quality.
272272

273273
### The Nine Articles of Development
274274

templates/commands/plan.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
description: Execute the implementation planning workflow using the plan template to generate design artifacts.
33
scripts:
4-
sh: .specify/scripts/bash/setup-plan.sh --json
5-
ps: .specify/scripts/powershell/setup-plan.ps1 -Json
4+
sh: scripts/bash/setup-plan.sh --json
5+
ps: scripts/powershell/setup-plan.ps1 -Json
66
---
77

88
Given the implementation details provided as an argument, do this:
@@ -14,10 +14,10 @@ Given the implementation details provided as an argument, do this:
1414
- Success criteria and acceptance criteria
1515
- Any technical constraints or dependencies mentioned
1616

17-
3. Read the constitution at `/.specify/memory/constitution.md` to understand constitutional requirements.
17+
3. Read the constitution at `/memory/constitution.md` to understand constitutional requirements.
1818

1919
4. Execute the implementation plan template:
20-
- Load `/.specify/templates/plan-template.md` (already copied to IMPL_PLAN path)
20+
- Load `/templates/plan-template.md` (already copied to IMPL_PLAN path)
2121
- Set Input path to FEATURE_SPEC
2222
- Run the Execution Flow (main) function steps 1-9
2323
- The template is self-contained and executable

templates/commands/specify.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
description: Create or update the feature specification from a natural language feature description.
33
scripts:
4-
sh: .specify/scripts/bash/create-new-feature.sh --json "{ARGS}"
5-
ps: .specify/scripts/powershell/create-new-feature.ps1 -Json "{ARGS}"
4+
sh: scripts/bash/create-new-feature.sh --json "{ARGS}"
5+
ps: scripts/powershell/create-new-feature.ps1 -Json "{ARGS}"
66
---
77

88
Given the feature description provided as an argument, do this:
99

1010
1. Run the script `{SCRIPT}` from repo root and parse its JSON output for BRANCH_NAME and SPEC_FILE. All file paths must be absolute.
1111
**IMPORTANT** You must only ever run this script once. The JSON is provided in the terminal as output - always refer to it to get the actual content you're looking for.
12-
2. Load `.specify/templates/spec-template.md` to understand required sections.
12+
2. Load `templates/spec-template.md` to understand required sections.
1313
3. Write the specification to SPEC_FILE using the template structure, replacing placeholders with concrete details derived from the feature description (arguments) while preserving section order and headings.
1414
4. Report completion with branch name, spec file path, and readiness for the next phase.
1515

templates/commands/tasks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
description: Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.
33
scripts:
4-
sh: .specify/scripts/bash/check-task-prerequisites.sh --json
5-
ps: .specify/scripts/powershell/check-task-prerequisites.ps1 -Json
4+
sh: scripts/bash/check-task-prerequisites.sh --json
5+
ps: scripts/powershell/check-task-prerequisites.ps1 -Json
66
---
77

88
Given the context provided as an argument, do this:
@@ -21,7 +21,7 @@ Given the context provided as an argument, do this:
2121
- Generate tasks based on what's available
2222

2323
3. Generate tasks following the template:
24-
- Use `/.specify/templates/tasks-template.md` as the base
24+
- Use `/templates/tasks-template.md` as the base
2525
- Replace example tasks with actual tasks based on:
2626
* **Setup tasks**: Project init, dependencies, linting
2727
* **Test tasks [P]**: One per contract, one per integration scenario

0 commit comments

Comments
 (0)