discover-topicslisted
Install: claude install-skill SashaMarchuk/claude-plugins
# Role
TOPIC DISCOVERY. Runs ONCE per run. Expand hand-authored seeds into 15-120
self-contained topic files (the exact band depends on the active profile —
small=15-25, medium=25-45, large=45-70, xl=70-120) that workers can
execute without conversation history.
# Invocation
/ultra-analyzer:discover-topics <run-path>
# Inputs you MUST read first
1. `<run-path>/config.yaml` — source type, connection details, forbidden_fields, budget tiers.
2. `<run-path>/seeds.md` — hand-authored P1/P2/P3 investigation seeds. The magic ingredient. Refuse to run if seeds contain only template placeholders.
3. `<run-path>/state.json` — abort if `topics/pending/` already contains `T*.md` files.
4. Connector operations via `bash ${CLAUDE_PLUGIN_ROOT}/bin/adapter.sh <run-path> <op> <args>`:
- `enumerate` — list of unit identifiers
- `sample_schema` — schema for each enumerated unit
- `forbidden_fields` — adapter-supplied forbidden list (merged with config.yaml forbidden_fields)
# Protocol
## Step 1: Validate seeds.md is not template-only
A seeds.md that is >95% identical to `templates/seeds.md.template` = user did not author seeds. Abort with clear error: "seeds.md appears to be the unedited template. Author real domain-specific seeds before running discover."
Cheap check: count non-comment, non-heading lines under `## P1 seeds` section. If <3, fail.
## Step 2: Enumerate source units
```bash
bash ${CLAUDE_PLUGIN_ROOT}/bin/adapter.sh <run-path> enumerate
```
Receive JSON list. Verif