* 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>
54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
---
|
|
name: gsd:debug
|
|
description: Systematic debugging with persistent state across context resets
|
|
argument-hint: "[list | status <slug> | continue <slug> | --diagnose] [issue description]"
|
|
allowed-tools:
|
|
- Read
|
|
- Write
|
|
- Bash
|
|
- Grep
|
|
- Agent
|
|
- AskUserQuestion
|
|
---
|
|
|
|
<objective>
|
|
Debug issues using scientific method with subagent isolation.
|
|
|
|
**Orchestrator role:** Gather symptoms, spawn gsd-debugger agent, handle checkpoints, spawn continuations.
|
|
|
|
**Flags:**
|
|
- `--diagnose` — Diagnose only. Returns a Root Cause Report without applying a fix.
|
|
|
|
**Subcommands:** `list` · `status <slug>` · `continue <slug>`
|
|
</objective>
|
|
|
|
<available_agent_types>
|
|
Valid GSD subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
- gsd-debug-session-manager — manages debug checkpoint/continuation loop in isolated context
|
|
- gsd-debugger — investigates bugs using scientific method
|
|
</available_agent_types>
|
|
|
|
<execution_context>
|
|
@~/.claude/gsd-core/workflows/debug.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
User's input: $ARGUMENTS
|
|
|
|
Parse subcommands and flags from $ARGUMENTS BEFORE the active-session check:
|
|
- If $ARGUMENTS starts with "list": SUBCMD=list, no further args
|
|
- If $ARGUMENTS starts with "status ": SUBCMD=status, SLUG=remainder (trim whitespace)
|
|
- If $ARGUMENTS starts with "continue ": SUBCMD=continue, SLUG=remainder (trim whitespace)
|
|
- If $ARGUMENTS contains `--diagnose`: SUBCMD=debug, diagnose_only=true, strip `--diagnose` from description
|
|
- Otherwise: SUBCMD=debug, diagnose_only=false
|
|
|
|
Check for active sessions (used for non-list/status/continue flows):
|
|
```bash
|
|
ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
```
|
|
</context>
|
|
|
|
<process>
|
|
Execute end-to-end.
|
|
</process>
|