Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ delete any comments that you made, but you can't delete comments anybody else ma

After this prompt is entered, you should see Claude Code kick off the planning and spec drafting process. Claude Code will also trigger some of the built-in scripts to set up the repository.

Once this step is completed, you should have a new branch created (e.g., `001-create-taskify`), as well as a new specification in the `specs/001-create-taskify` directory.
Once this step is completed, you should have a new branch created (e.g., `001-create-taskify`), as well as a new specification in the `docs/specs/001-create-taskify` directory.

The produced specification should contain a set of user stories and functional requirements, as defined in the template.

Expand All @@ -314,9 +314,10 @@ At this stage, your project folder contents should resemble the following:
│ ├── get-feature-paths.sh
│ ├── setup-plan.sh
│ └── update-claude-md.sh
├── specs
│ └── 001-create-taskify
│ └── spec.md
├── docs
│ └── specs
│ └── 001-create-taskify
│ └── spec.md
└── templates
├── plan-template.md
├── spec-template.md
Expand Down Expand Up @@ -366,16 +367,17 @@ The output of this step will include a number of implementation detail documents
│ ├── get-feature-paths.sh
│ ├── setup-plan.sh
│ └── update-claude-md.sh
├── specs
│ └── 001-create-taskify
│ ├── contracts
│ │ ├── api-spec.json
│ │ └── signalr-spec.md
│ ├── data-model.md
│ ├── plan.md
│ ├── quickstart.md
│ ├── research.md
│ └── spec.md
├── docs
│ └── specs
│ └── 001-create-taskify
│ ├── contracts
│ │ ├── api-spec.json
│ │ └── signalr-spec.md
│ ├── data-model.md
│ ├── plan.md
│ ├── quickstart.md
│ ├── research.md
│ └── spec.md
└── templates
├── CLAUDE-template.md
├── plan-template.md
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ to be doing that are obvious from reading this. Because I don't know if there's
Finally, implement the solution:

```text
implement specs/002-create-taskify/plan.md
implement docs/specs/002-create-taskify/plan.md
```

## Key Principles
Expand Down
2 changes: 1 addition & 1 deletion scripts/bash/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ check_feature_branch() {
fi; return 0
}

get_feature_dir() { echo "$1/specs/$2"; }
get_feature_dir() { echo "$1/docs/specs/$2"; }

get_feature_paths() {
local repo_root=$(get_repo_root)
Expand Down
2 changes: 1 addition & 1 deletion scripts/bash/create-new-feature.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ if [ -z "$FEATURE_DESCRIPTION" ]; then
fi

REPO_ROOT=$(git rev-parse --show-toplevel)
SPECS_DIR="$REPO_ROOT/specs"
SPECS_DIR="$REPO_ROOT/docs/specs"
mkdir -p "$SPECS_DIR"

HIGHEST=0
Expand Down
2 changes: 1 addition & 1 deletion scripts/bash/update-agent-context.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -e
REPO_ROOT=$(git rev-parse --show-toplevel)
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
FEATURE_DIR="$REPO_ROOT/specs/$CURRENT_BRANCH"
FEATURE_DIR="$REPO_ROOT/docs/specs/$CURRENT_BRANCH"
NEW_PLAN="$FEATURE_DIR/plan.md"
CLAUDE_FILE="$REPO_ROOT/CLAUDE.md"; GEMINI_FILE="$REPO_ROOT/GEMINI.md"; COPILOT_FILE="$REPO_ROOT/.github/copilot-instructions.md"; CURSOR_FILE="$REPO_ROOT/.cursor/rules/specify-rules.mdc"; QWEN_FILE="$REPO_ROOT/QWEN.md"; AGENTS_FILE="$REPO_ROOT/AGENTS.md"
AGENT_TYPE="$1"
Expand Down
2 changes: 1 addition & 1 deletion scripts/powershell/common.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function Test-FeatureBranch {

function Get-FeatureDir {
param([string]$RepoRoot, [string]$Branch)
Join-Path $RepoRoot "specs/$Branch"
Join-Path $RepoRoot "docs/specs/$Branch"
}

function Get-FeaturePathsEnv {
Expand Down
2 changes: 1 addition & 1 deletion scripts/powershell/create-new-feature.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ if (-not $FeatureDescription -or $FeatureDescription.Count -eq 0) {
$featureDesc = ($FeatureDescription -join ' ').Trim()

$repoRoot = git rev-parse --show-toplevel
$specsDir = Join-Path $repoRoot 'specs'
$specsDir = Join-Path $repoRoot 'docs/specs'
New-Item -ItemType Directory -Path $specsDir -Force | Out-Null

$highest = 0
Expand Down
2 changes: 1 addition & 1 deletion scripts/powershell/update-agent-context.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ $ErrorActionPreference = 'Stop'

$repoRoot = git rev-parse --show-toplevel
$currentBranch = git rev-parse --abbrev-ref HEAD
$featureDir = Join-Path $repoRoot "specs/$currentBranch"
$featureDir = Join-Path $repoRoot "docs/specs/$currentBranch"
$newPlan = Join-Path $featureDir 'plan.md'
if (-not (Test-Path $newPlan)) { Write-Error "ERROR: No plan.md found at $newPlan"; exit 1 }

Expand Down
16 changes: 8 additions & 8 deletions spec-driven.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ This command transforms a simple feature description (the user-prompt) into a co
1. **Automatic Feature Numbering**: Scans existing specs to determine the next feature number (e.g., 001, 002, 003)
2. **Branch Creation**: Generates a semantic branch name from your description and creates it automatically
3. **Template-Based Generation**: Copies and customizes the feature specification template with your requirements
4. **Directory Structure**: Creates the proper `specs/[branch-name]/` structure for all related documents
4. **Directory Structure**: Creates the proper `docs/specs/[branch-name]/` structure for all related documents

### The `/plan` Command

Expand Down Expand Up @@ -125,7 +125,7 @@ Total: ~12 hours of documentation work

# This automatically:
# - Creates branch "003-chat-system"
# - Generates specs/003-chat-system/spec.md
# - Generates docs/specs/003-chat-system/spec.md
# - Populates it with structured requirements

# Step 2: Generate implementation plan (5 minutes)
Expand All @@ -135,12 +135,12 @@ Total: ~12 hours of documentation work
/tasks

# This automatically creates:
# - specs/003-chat-system/plan.md
# - specs/003-chat-system/research.md (WebSocket library comparisons)
# - specs/003-chat-system/data-model.md (Message and User schemas)
# - specs/003-chat-system/contracts/ (WebSocket events, REST endpoints)
# - specs/003-chat-system/quickstart.md (Key validation scenarios)
# - specs/003-chat-system/tasks.md (Task list derived from the plan)
# - docs/specs/003-chat-system/plan.md
# - docs/specs/003-chat-system/research.md (WebSocket library comparisons)
# - docs/specs/003-chat-system/data-model.md (Message and User schemas)
# - docs/specs/003-chat-system/contracts/ (WebSocket events, REST endpoints)
# - docs/specs/003-chat-system/quickstart.md (Key validation scenarios)
# - docs/specs/003-chat-system/tasks.md (Task list derived from the plan)
```

In 15 minutes, you have:
Expand Down
6 changes: 3 additions & 3 deletions templates/plan-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ scripts:
# Implementation Plan: [FEATURE]

**Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
**Input**: Feature specification from `/specs/[###-feature-name]/spec.md`
**Input**: Feature specification from `/docs/specs/[###-feature-name]/spec.md`

## Execution Flow (/plan command scope)
```
Expand Down Expand Up @@ -59,7 +59,7 @@ scripts:

### Documentation (this feature)
```
specs/[###-feature]/
docs/specs/[###-feature]/
├── plan.md # This file (/plan command output)
├── research.md # Phase 0 output (/plan command)
├── data-model.md # Phase 1 output (/plan command)
Expand Down Expand Up @@ -214,4 +214,4 @@ ios/ or android/
- [ ] Complexity deviations documented

---
*Based on Constitution v2.1.1 - See `/memory/constitution.md`*
*Based on Constitution v2.1.1 - See `.specify/memory/constitution.md`*
2 changes: 1 addition & 1 deletion templates/tasks-template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tasks: [FEATURE NAME]

**Input**: Design documents from `/specs/[###-feature-name]/`
**Input**: Design documents from `/docs/specs/[###-feature-name]/`
**Prerequisites**: plan.md (required), research.md, data-model.md, contracts/

## Execution Flow (main)
Expand Down