* 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>
33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
---
|
||
name: gsd:health
|
||
description: Diagnose planning directory health and optionally repair issues
|
||
argument-hint: "[--repair] [--context]"
|
||
allowed-tools:
|
||
- Read
|
||
- Bash
|
||
- Grep
|
||
- Write
|
||
- AskUserQuestion
|
||
requires: [thread]
|
||
---
|
||
<objective>
|
||
Validate `.planning/` directory integrity and report actionable issues. Checks for missing files, invalid configurations, inconsistent state, and orphaned plans.
|
||
|
||
`--context` runs an orthogonal check: the running session's context utilization. The workflow asks for the model's tokensUsed + contextWindow, calls `gsd-tools query validate.context`, and renders one of three states:
|
||
|
||
| Utilization | State | Action |
|
||
|-------------|----------|-------------------------------------------------------|
|
||
| < 60% | healthy | no action — context is comfortable |
|
||
| 60% – 70% | warning | recommend `/gsd:thread` to start fresh |
|
||
| ≥ 70% | critical | reasoning quality may degrade past the fracture point |
|
||
</objective>
|
||
|
||
<execution_context>
|
||
@~/.claude/gsd-core/workflows/health.md
|
||
</execution_context>
|
||
|
||
<process>
|
||
Execute end-to-end.
|
||
Parse `--repair` and `--context` flags from arguments and pass to workflow.
|
||
</process>
|