[Bug]: PowerShell common.ps1 uses wrong base path for specs directory

Open Beginner friendly
#1,923 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
88/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
powershell
Domain
tooling

Research direction

Start in .specify/scripts/powershell/common.ps1, focusing on Get-CurrentBranch and Get-FeatureDir. Run .specify/scripts/powershell/setup-plan.ps1 -Json on a feature branch and inspect the generated paths. Done means files are placed under .specify/specs/ without an extra feature/ directory, while existing workflows continue to work.

Written by the indexing model from the issue text.

Description

stale
Bug Description

The PowerShell common functions in .specify/scripts/powershell/common.ps1 use incorrect paths, causing spec files to be created in specs/ at the repository root instead of .specify/specs/ as documented and expected by the framework.

Steps to Reproduce
  1. Clone a spec-kit project
  2. Check out a feature branch (e.g., feature/US123-my-feature)
  3. Run .specify/scripts/powershell/setup-plan.ps1 -Json
  4. Observe files are created in specs/feature/US123-my-feature/ instead of .specify/specs/US123-my-feature/
Expected Behavior

All spec files should be created under the .specify/specs/ directory as documented throughout the framework and in .specify/specs/README.md.

Actual Behavior
  • Files are created in specs/ at the repository root (wrong location)
  • When using feature branches like feature/something, an extra nested feature/ directory is created: specs/feature/something/
  • This violates the documented .specify/ prefix convention
  • Requires manual cleanup after every planning operation
Specify CLI Version

0.2.1

AI Agent

GitHub Copilot

Operating System

Windows 10.0.26200 AMD64

Python Version

3.12.4

Error Logs

Additional Context

Component

Scripts (.specify/scripts/)

AI Agent (if applicable)

Affects all agents that use /speckit.plan, /speckit.tasks, and related commands

Additional Context

File: .specify/scripts/powershell/common.ps1

Line 38 (in Get-CurrentBranch function):

$specsDir = Join-Path $repoRoot "specs"

Should be:

$specsDir = Join-Path $repoRoot ".specify/specs"

Line 98 (in Get-FeatureDir function):

Join-Path $repoRoot "specs/$Branch"

Should be:

$dirName = $Branch -replace '^feature/', ''  # Strip branch prefix
Join-Path $repoRoot ".specify/specs/$dirName"

Proposed Fix

function Get-FeatureDir {
    param([string]$RepoRoot, [string]$Branch)
    # Strip feature/ prefix if present for specs directory naming
    $dirName = $Branch -replace '^feature/', ''
    Join-Path $RepoRoot ".specify/specs/$dirName"
}

Also update line 38 in Get-CurrentBranch:

$specsDir = Join-Path $repoRoot ".specify/specs"
Dominant language
Python
Stars
138k
Forks
12.4k
Avg merge
3d 6h
Merged PRs (30d)
136

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/spec-kit

All issues in github/spec-kit

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.