KeiSeiKit-1.0/skills/self-audit/phase-2-classify.md
Parfii-bot 0be354a920 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

55 lines
1.8 KiB
Markdown

# Phase 2 — Classify
Tag each finding with a category and a severity; `CLASSIFIED` is produced.
## 2a — Category (automatic, no click)
For each finding in `FINDINGS`:
- `scope == "in-session"` AND `count ≥ 2``category = recurring`
- `scope == "cross-session"` AND `count ≥ 2``category = recurring`
- `scope == "in-session"` AND `count == 1``category = one-off`
- otherwise → `category = unknown`
## 2b — Severity hint (automatic heuristic)
Grep the finding's `event_class`:
| Contains | Severity |
|--------------------------------------|------------|
| `permission_denied`, `panic`, `security` | `critical` |
| `error`, `failed`, `timeout`, `worktree_error` | `high` |
| `cargo_workspace`, `tool_use:*` | `medium` |
| anything else | `low` |
## 2c — Severity confirm click (single AskUserQuestion)
Emit ONE `AskUserQuestion` batch grouping the severity confirm into a
single question:
```json
{
"questions": [
{
"question": "Confirm severity for top finding?",
"header": "Severity",
"multiSelect": false,
"options": [
{"label": "critical", "description": "Security / data loss / irreversible"},
{"label": "high", "description": "Blocks work or leaks to production"},
{"label": "medium", "description": "Slows work; fix this week"},
{"label": "low", "description": "Nice to fix; not urgent"}
]
}
]
}
```
Apply the user's pick only to the TOP finding (highest `count`). All
other findings keep their heuristic severity.
## Verify-criterion
- Every finding has a `category` and a `severity`.
- `CLASSIFIED` is the full list with those two fields added.
- Exactly one `AskUserQuestion` call was emitted.