spec-kitty / spec-kitty/spec-kitty

Implement-review changed-file lint recipe is not portable to zsh

Open
#2,703 2 comments 0 reactions 0 assignees View on GitHub
catfooding doctrine priority:P2 workflow
Dominant language
Python
Stars
1.6k
Forks
165
Avg merge
14h 52m
Merged PRs (30d)
303

Description

Observed from the generated implement-review guidance during #2658 (TF-036).

## Reproduction

Under zsh with multiple changed Python files:

```zsh
CHANGED_SRC=$(git diff --name-only ...HEAD -- "*.py")
uv run ruff check $CHANGED_SRC
```

Ruff receives one newline-containing filename and reports E902 because zsh scalar expansion does not perform Bash-style word splitting. An array or `xargs` invocation passes.

## Expected

Generated shell recipes should either declare the required shell or use a portable array/null-delimited form that works under supported operator shells.

Contributor guide

Open the contributing guide

Research direction

Start with the generator for the implement-review guidance described in the issue, then reproduce the recipe under zsh using multiple changed Python files. Check how CHANGED_SRC is expanded before Ruff runs; done means the generated recipe works under supported shells without E902, or explicitly declares its required shell.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, zsh
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.