github / github/spec-kit

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

Đang mở
#1,923 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
stale
Ngôn ngữ chính
Python
Star
137k
Fork
12.3k
Merge trung bình
2 ngày 7 giờ
Pull request đã merge (30 ngày)
155

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.