Skip to content

Commit 2e56a96

Browse files
Merge origin/main into feat/argument-hint-claude-commands
2 parents bdfab45 + a858c1d commit 2e56a96

40 files changed

+3039
-689
lines changed

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ The following community-contributed extensions are available in [`catalog.commun
211211
| QA Testing Extension | Systematic QA testing with browser-driven or CLI-based validation of acceptance criteria from spec | `code` | Read-only | [spec-kit-qa](https://github.com/arunt14/spec-kit-qa) |
212212
| Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) |
213213
| Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
214+
| Repository Index | Generate index for existing repo for overview, architecture and module level. | `docs` | Read-only | [spec-kit-repoindex](https://github.com/liuyiyu/spec-kit-repoindex) |
214215
| Retro Extension | Sprint retrospective analysis with metrics, spec accuracy assessment, and improvement suggestions | `process` | Read+Write | [spec-kit-retro](https://github.com/arunt14/spec-kit-retro) |
215216
| Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | `docs` | Read+Write | [spec-kit-retrospective](https://github.com/emi-dm/spec-kit-retrospective) |
216217
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification | `code` | Read-only | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) |
@@ -280,7 +281,7 @@ Community projects that extend, visualize, or build on Spec Kit:
280281
| [Kiro CLI](https://kiro.dev/docs/cli/) || Use `--ai kiro-cli` (alias: `--ai kiro`) |
281282
| [Amp](https://ampcode.com/) || |
282283
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) || |
283-
| [Claude Code](https://www.anthropic.com/claude-code) || |
284+
| [Claude Code](https://www.anthropic.com/claude-code) || Installs skills in `.claude/skills`; invoke spec-kit as `/speckit-constitution`, `/speckit-plan`, etc. |
284285
| [CodeBuddy CLI](https://www.codebuddy.ai/cli) || |
285286
| [Codex CLI](https://github.com/openai/codex) || Requires `--ai-skills`. Codex recommends [skills](https://developers.openai.com/codex/skills) and treats [custom prompts](https://developers.openai.com/codex/custom-prompts) as deprecated. Spec-kit installs Codex skills into `.agents/skills` and invokes them as `$speckit-<command>`. |
286287
| [Cursor](https://cursor.sh/) || |
@@ -400,8 +401,8 @@ specify init my-project --ai claude --debug
400401
# Use GitHub token for API requests (helpful for corporate environments)
401402
specify init my-project --ai claude --github-token ghp_your_token_here
402403

403-
# Install agent skills with the project
404-
specify init my-project --ai claude --ai-skills
404+
# Claude Code installs skills with the project by default
405+
specify init my-project --ai claude
405406

406407
# Initialize in current directory with agent skills
407408
specify init --here --ai gemini --ai-skills
@@ -415,7 +416,11 @@ specify check
415416

416417
### Available Slash Commands
417418

418-
After running `specify init`, your AI coding agent will have access to these slash commands for structured development.
419+
After running `specify init`, your AI coding agent will have access to these structured development commands.
420+
421+
Most agents expose the traditional dotted slash commands shown below, like `/speckit.plan`.
422+
423+
Claude Code installs spec-kit as skills and invokes them as `/speckit-constitution`, `/speckit-specify`, `/speckit-plan`, `/speckit-tasks`, and `/speckit-implement`.
419424

420425
For Codex CLI, `--ai-skills` installs spec-kit as agent skills instead of slash-command prompt files. In Codex skills mode, invoke spec-kit as `$speckit-constitution`, `$speckit-specify`, `$speckit-plan`, `$speckit-tasks`, and `$speckit-implement`.
421426

extensions/catalog.community.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,43 @@
941941
"created_at": "2026-03-14T00:00:00Z",
942942
"updated_at": "2026-03-14T00:00:00Z"
943943
},
944+
"repoindex":{
945+
"name": "Repository Index",
946+
"id": "repoindex",
947+
"description": "Generate index of your repo for overview, architecuture and module",
948+
"author": "Yiyu Liu",
949+
"version": "1.0.0",
950+
"download_url": "https://github.com/liuyiyu/spec-kit-repoindex/archive/refs/tags/v1.0.0.zip",
951+
"repository": "https://github.com/liuyiyu/spec-kit-repoindex",
952+
"homepage": "https://github.com/liuyiyu/spec-kit-repoindex",
953+
"documentation": "https://github.com/liuyiyu/spec-kit-repoindex/tree/main/docs",
954+
"changelog": "https://github.com/liuyiyu/spec-kit-repoindex/blob/main/CHANGELOG.md",
955+
"license": "MIT",
956+
"requires": {
957+
"speckit_version": ">=0.1.0",
958+
"tools": [
959+
{
960+
"name": "no need",
961+
"version": ">=1.0.0",
962+
"required": false
963+
}
964+
]
965+
},
966+
"provides": {
967+
"commands": 3,
968+
"hooks": 0
969+
},
970+
"tags": [
971+
"utility",
972+
"brownfield",
973+
"analysis"
974+
],
975+
"verified": false,
976+
"downloads": 0,
977+
"stars": 0,
978+
"created_at": "2026-03-23T13:30:00Z",
979+
"updated_at": "2026-03-23T13:30:00Z"
980+
},
944981
"retro": {
945982
"name": "Retro Extension",
946983
"id": "retro",
@@ -1331,5 +1368,6 @@
13311368
"created_at": "2026-03-16T00:00:00Z",
13321369
"updated_at": "2026-03-16T00:00:00Z"
13331370
}
1371+
13341372
}
13351373
}

scripts/bash/common.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ get_current_branch() {
7878
latest_timestamp="$ts"
7979
latest_feature=$dirname
8080
fi
81-
elif [[ "$dirname" =~ ^([0-9]{3})- ]]; then
81+
elif [[ "$dirname" =~ ^([0-9]{3,})- ]]; then
8282
local number=${BASH_REMATCH[1]}
8383
number=$((10#$number))
8484
if [[ "$number" -gt "$highest" ]]; then
@@ -124,9 +124,15 @@ check_feature_branch() {
124124
return 0
125125
fi
126126

127-
if [[ ! "$branch" =~ ^[0-9]{3}- ]] && [[ ! "$branch" =~ ^[0-9]{8}-[0-9]{6}- ]]; then
127+
# Accept sequential prefix (3+ digits) but exclude malformed timestamps
128+
# Malformed: 7-or-8 digit date + 6-digit time with no trailing slug (e.g. "2026031-143022" or "20260319-143022")
129+
local is_sequential=false
130+
if [[ "$branch" =~ ^[0-9]{3,}- ]] && [[ ! "$branch" =~ ^[0-9]{7}-[0-9]{6}- ]] && [[ ! "$branch" =~ ^[0-9]{7,8}-[0-9]{6}$ ]]; then
131+
is_sequential=true
132+
fi
133+
if [[ "$is_sequential" != "true" ]] && [[ ! "$branch" =~ ^[0-9]{8}-[0-9]{6}- ]]; then
128134
echo "ERROR: Not on a feature branch. Current branch: $branch" >&2
129-
echo "Feature branches should be named like: 001-feature-name or 20260319-143022-feature-name" >&2
135+
echo "Feature branches should be named like: 001-feature-name, 1234-feature-name, or 20260319-143022-feature-name" >&2
130136
return 1
131137
fi
132138

@@ -146,7 +152,7 @@ find_feature_dir_by_prefix() {
146152
local prefix=""
147153
if [[ "$branch_name" =~ ^([0-9]{8}-[0-9]{6})- ]]; then
148154
prefix="${BASH_REMATCH[1]}"
149-
elif [[ "$branch_name" =~ ^([0-9]{3})- ]]; then
155+
elif [[ "$branch_name" =~ ^([0-9]{3,})- ]]; then
150156
prefix="${BASH_REMATCH[1]}"
151157
else
152158
# If branch doesn't have a recognized prefix, fall back to exact match

0 commit comments

Comments
 (0)