github / github/spec-kit

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

オープン
#1,923 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
stale
主要言語
Python
スター
137k
フォーク
12.3k
平均マージ
2日 12時間
マージ済み PR(30日)
159

説明

### 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

```shell

```

### Additional Context

## Component

Scripts (.specify/scripts/)

## AI Agent (if applicable)

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

## Additional Context

- This affects all PowerShell-based workflows
- The bash version (`common.sh`) likely has similar issues if it exists
- Working fix tested in production: https://ghe.coxautoinc.com/deCipher/TestingbyRallyCards/commit/abc54be

- ## Root Cause

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

**Line 38** (in `Get-CurrentBranch` function):
```powershell
$specsDir = Join-Path $repoRoot "specs"
```
Should be:
```powershell
$specsDir = Join-Path $repoRoot ".specify/specs"
```

**Line 98** (in `Get-FeatureDir` function):
```powershell
Join-Path $repoRoot "specs/$Branch"
```
Should be:
```powershell
$dirName = $Branch -replace '^feature/', '' # Strip branch prefix
Join-Path $repoRoot ".specify/specs/$dirName"
```
## Proposed Fix

```powershell
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`:
```powershell
$specsDir = Join-Path $repoRoot ".specify/specs"
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。