22 lines
1.7 KiB
Markdown
22 lines
1.7 KiB
Markdown
# commands/
|
|
|
|
Slash-command entry points for the doc-hygiene plugin. Thin dispatchers — they
|
|
parse `$ARGUMENTS`, route to a skill or run a read-only state read, and surface
|
|
the result. They own no analysis logic of their own (invariant #6 lives in the
|
|
scripts/skills they call).
|
|
|
|
## Contents
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `hygiene.md` | `/hygiene` — the single user entry point. Parses the first token of `$ARGUMENTS` as the subcommand and passes the rest through. Subcommands: **`check [--scope <glob-or-path>] [--category <class\|subtype>]`** invokes the `hygiene-check` skill verbatim (the skill owns the full scan → classify → finalize → validate → write → stamp `last_check` workflow; the command does NOT scan or classify); **`status`** is read-only (no skill, no model, no scan) — calls `state_store.py` via `python3 -c` and prints the three lifecycle timestamps (`last_check`/`last_clean`/`last_reminded`) plus report presence; **`clean`** / **`sweep`** are reserved and respond "not yet implemented (Phase 4)". No args or an unrecognized subcommand prints usage then runs the `status` read. Scripts resolve under `${CLAUDE_PLUGIN_ROOT}/scripts/` (mirrors `hooks/hooks.json`). |
|
|
|
|
## Arg semantics (pass-through to `hygiene-check`)
|
|
|
|
- `--scope <glob-or-path>` — narrows the scan. A glob (contains `*`) maps to the
|
|
scanner's `--globs`; a bare path is handled by the skill as a post-scan prefix
|
|
filter (the scanner's glob matcher is unreliable for mid-pattern `**`).
|
|
- `--category <class|subtype>` — filters which **entries** are produced, applied
|
|
by the skill *after* classification (the scanner is category-agnostic). `class`
|
|
∈ { `stale`, `bloat` }; `subtype` is one of the closed enum values.
|