Phase B-provide of epic #1258. Adds a build-generated skills/ dir + a skills manifest field so plugin-installed GSD exposes gsd-core:<skill> the native Claude Code way. Closes the gap where plugin-only installs lacked the skill surface because bin/install.js never ran. - scripts/gen-plugin-skills.cjs: build step converting commands/gsd/*.md to skills/gsd-<stem>/SKILL.md via convertClaudeCommandToClaudeSkill - .claude-plugin/plugin.json: add "skills": "./skills/" - package.json: add skills to files, gen:plugin-skills to build chain - tests/issue-766-plugin-manifest.test.cjs: Section H conformance (manifest field + dir + frontmatter + count parity) + C2 skills symlink - docs/adr/766-*.md: dated amendment adding skills surface row - .changeset/rapid-bears-hum.md: type Added - skills/: 69 generated gsd-<stem>/SKILL.md files (build-committed) Closes #1596
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
|
|
- 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>
|