speckit-extract-runlisted
Install: claude install-skill opsmill/infrahub-mcp
## User Input
```text
$ARGUMENTS
```
You **MUST** consider the user input before proceeding (if not empty).
## Outline
Goal: Analyze one or more completed spec directories and extract durable knowledge into the project's documentation system (`dev/knowledge/`, `dev/guidelines/`, `dev/adr/`), then mark each spec as extracted.
This command accepts multiple specs as input (space-separated) and processes them sequentially. It operationalizes the documentation lifecycle: `specs/ → knowledge/ or guidelines/` (see `dev/guidelines/markdown.md`).
## Phase 0: Setup & Validation
<thinking>
First, resolve all spec directories from the user's arguments and validate each one contains the expected artifacts.
</thinking>
1. **Parse arguments** — split `$ARGUMENTS` into individual spec identifiers (space-separated). If `$ARGUMENTS` is empty, list available spec directories and ask the user to pick one or more.
2. **Resolve each spec directory**:
- For each identifier in the arguments:
- If it matches `specs/NNN-*` or `NNN-*`, resolve to `REPO_ROOT/specs/NNN-*`
- If it is a bare name like `graphql-name-lookup`, search `specs/` for a matching directory
- If no match found for an identifier, report it and continue resolving the rest
- If **no** identifiers could be resolved, list available spec directories and ask the user to pick
3. **Validate each resolved spec**:
- `spec.md` MUST exist — skip that spec with an error if missing
- `research.md` SHOULD exist