# okstra-inspect facet — error-zip

Loaded lazily by the dispatch table in `SKILL.md` (core). Shared rules — Step 0 preflight, the standard task-key resolution rule (0/1/N), the no-task fallback, and Output Rules — live in the core file and still apply here.

## error-zip

Trigger phrases: "okstra error-zip", "error zip", "error feedback", "error bundle", "cross-project errors".

Collect and anonymize the okstra run errors (`runs/*/logs/errors-*.jsonl`) of every target project on the machine into the global run-index, then bundle them as a `.zip` (aggregate report + anonymized JSONL). Read-only over every target's `.okstra/`.

### error-zip.1 — Decide the output path (picker)

First run the fixed text projection below. If `Previous output path` is not `-`,
offer it as the recommended first option. Otherwise recommend
`~/okstra-error-feedback-<YYYY-MM-DD>.zip`. Keep `Enter directly` last.

```bash
okstra model-io error-zip-input
```

### error-zip.2 — Run the renderer

```bash
okstra error-zip --out <resolved-path> --text
```

### error-zip.3 — Report the summary

Use the fixed text labels and report:

| Field | Source |
|---|---|
| Output zip | `outPath` |
| Total errors | `errorCount` |
| Logs (runs) | `runCount` |
| Unreachable runs | `unreachableRuns` |
| Cluster count | `clusterCount` |
| Project count | `projectCount` |

- If `unreachableRuns > 0`, surface it (no silent omission).
- End with the next step: "To fix okstra itself with this zip, build a brief with the error-feedback variant of `/okstra-brief-gen`, then run `okstra-run --task-type error-analysis` in the okstra repo."
