* enhance(#3085): add Grep to allowed-tools for 21 skills
29 of 71 skills omit Grep from allowed-tools, forcing Bash grep for
structured search instead of the dedicated tool. Adds Grep to the
21-skill subset confirmed safe in prior review (excludes the 6
gsd-ns-* dispatchers, gsd-help, and gsd-surface, which have no
plausible structured-search need).
Hand-edits commands/gsd/*.md only; skills/*/SKILL.md is regenerated
via `npm run gen:plugin-skills` from that source. Updates the one
hardcoded copilot-install test assertion affected by gsd-health's
new tool order.
* chore(#3085): backfill changeset PR number
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* test(#2618): assert the Needs clause on the structured field, not the path-length-dependent bullet
The bullet embeds the todo file's ABSOLUTE path, so its total length
varies by runner tmpdir: on macOS CI, /private/var/folders/… plus the
test harness's gsd-test-run-* wrapper pushed the full bullet to 244
chars — past renderPendingTodoBullet's intended 240-char cap, whose
documented first degradation step drops the Needs clause. The product
behavior is correct (#2618 design); the assertion was runner-dependent.
The extraction is now pinned on json.todos[0].needs; the rendered-bullet
shape stays covered by the path-independent title assertion and the
renderer's own unit rows.
Found blocking #4186's CI on the macOS shard (test landed 30 minutes
earlier in b7406b293f / PR #4384).
---------
Co-authored-by: sim <sim@local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
name, description, argument-hint, allowed-tools
| name | description | argument-hint | allowed-tools | |||||
|---|---|---|---|---|---|---|---|---|
| gsd:workspace | Manage GSD workspaces — create, list, or remove isolated workspace environments | [--new | --list | --remove] [name] |
|
Mode routing:
- --new: Create an isolated workspace with repo copies and independent .planning/ → new-workspace workflow
- --list: List active GSD workspaces and their status → list-workspaces workflow
- --remove: Remove a GSD workspace and clean up worktrees → remove-workspace workflow
| Flag | Action | Workflow |
|---|---|---|
| --new | Create workspace with worktree/clone strategy | new-workspace |
| --list | Scan ~/gsd-workspaces/, show summary table | list-workspaces |
| --remove | Confirm and remove workspace directory | remove-workspace |
<execution_context>
@/.claude/gsd-core/workflows/new-workspace.md
@/.claude/gsd-core/workflows/list-workspaces.md
@/.claude/gsd-core/workflows/remove-workspace.md
@/.claude/gsd-core/references/ui-brand.md
</execution_context>
Parse the first token of $ARGUMENTS:
- If it is
--new: strip the flag, pass remainder (--name, --repos, --path, --strategy, --branch, --auto flags) to new-workspace workflow - If it is
--list: execute list-workspaces workflow (no argument needed) - If it is
--remove: strip the flag, pass remainder (workspace-name) to remove-workspace workflow - Otherwise (no flag): show usage — one of --new, --list, or --remove is required