config-audit/STATE.md
Kjell Tore Guttormsen e7833b65fc feat(opt): optimization lens CA-OPT-001 (procedure→skill) — v5.7 Fase 1 Chunk 2a
First detector of the 'is the config OPTIMAL?' axis (vs the existing 'correct?' scanners). New orchestrated scanner family CA-OPT (count 14->15), the deterministic half of the hybrid optimization lens.

CA-OPT-001 (low, Missed opportunity): a multi-step procedure in CLAUDE.md (>=6 consecutive numbered steps) that belongs in a skill. Reads recommendation + provenance from the best-practices register (BP-MECH-003). Conservative by design; the negative corpus proves null false-positives. Prose-judgment cases (lifecycle->hook, 'never'->permission) are deferred to the Chunk 2b opus analyzer.

Wiring mirrors OST: orchestrator entry, humanizer (OPT->'Missed opportunity' + family), scoring (OPT->'CLAUDE.md', existing area -> no new posture row -> byte-stable), strip-helper (OST,OPT), SC-5 regenerated under hermetic HOME (additive OPT entry only). 10 new tests; suite 1045->1055, self-audit A/A, readmeCheck passed (all verified with a clean HOME).

Note: the pre-existing TOK test reads the real ~/.claude (non-hermetic) -> run the suite with a clean HOME for deterministic results. Tracked as a separate follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 23:10:03 +02:00

39 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# STATE — config-audit
_Current state-of-play for DENNE pluginen. Auto-injisert ved sesjonsstart. Overskrives (ikke append) ved sesjonsslutt. Historikk → git (STATE.md er tracked). Stier relative til plugin-mappa._
## Aktiv kontekst (v5.7 Fase 1 Chunk 2a DONE — neste: Chunk 2b = opus-analyzer)
v5.6.0 released. **v5.7 Fase 1 Chunk 1 (register) + Chunk 2a (linse `CA-OPT-001`) ferdig & verifisert.** Suite **1055** (hermetisk HOME), scanner **15** (`CA-OPT`), self-audit **A/A** (plugin 100 / config 94, hermetisk HOME), readmeCheck passed. Plan: `docs/v5.7-optimization-lens-plan.md`.
## v5.7 Fase 1 — låste beslutninger (2026-06-20)
- **Rekkefølge:** Fase 1 (linse + kunnskapsbase) FØRST, så Fase 2 (kampanje + backlog, eget GO).
- **Kunnskaps-format:** strukturert **JSON**-register (zero-dep avgjorde); markdown som speil.
- **Linse-motor:** ny familie `CA-OPT` + hybrid motor. **Chunk 2 splittet i 2a (determ.) + 2b (agent)** av chunk-sizing + arkitektur («scannere emitter byte-stabilt; agenter beriker»).
- **OPT-scoring → `'CLAUDE.md'`-area** (eksisterende → ingen ny posture-rad → byte-stabil; unngår GAP-utilization-konflikt som `'Feature Coverage'` ville gitt). Humanizer-kategori `'Missed opportunity'` (mulighet, ikke feil).
## Chunking
1. **Chunk 1 — Register-fundament: ✅ DONE** (`55f83a3`). best-practices.json + register-modul + 22 tester.
2. **Chunk 2a — Linsen, determ. del: ✅ DONE** (denne økten). `CA-OPT-001`: ≥6-stegs nummerert prosedyre i CLAUDE.md → skill (BP-MECH-003), konservativ, negativt korpus = null FP. Full wiring (orchestrator/humanizer/scoring/strip/SC-5 regenerert). 10 nye tester.
3. **Chunk 2b — Linsen, opus-analyzer — NESTE, KREVER GO:** ikke-deterministisk agent (søster av feature-gap-agent) for prose-judgment-tilfellene linsen bevisst hopper over: lifecycle→hook (BP-MECH-001), unscoped path-spesifikk→rule (BP-MECH-002), «never»→permission (BP-MECH-004). Leser registeret + CA-OPT-001-kandidatene. Ikke i byte-stabil suite (egen kommando). lensCheck-feltene i registeret navngir detektorene.
4. **Chunk 3 — `knowledge-refresh`:** semi-auto poller (`--dry-run`, stale/candidate, human-godkjente skriv).
## Åpne tråder / neste steg (prioritert)
1. **Chunk 2b (opus-analyzer) — KREVER GO.** Les plan-doc + registeret (BP-MECH-001/002/004).
2. **TOK-test mangler HOME-isolasjon (pre-eksisterende, OUT-OF-SCOPE for 2a):** `tests/scanners/token-hotspots.test.mjs` `runScanner` overstyrer ikke HOME → TOK leser ekte `~/.claude` → «emits zero findings»-asserten er miljøavhengig (rød på ekte HOME, grønn på ren HOME). Kjør suiten med ren HOME for determinisme. **Foreslått liten egen fix (eget GO):** hermetisk HOME i `runScanner`.
3. **Fase 2 (kampanje + backlog) — utsatt, eget GO** etter linse-validering.
4. **Åpne design-detaljer** (i planen): refresh-kilder/kadens, `/repo-init`-synergi.
5. **llm-security KRITISK** (annet repo) + 3 aktive plugins — uendret. Egne GO.
## Gotchas (UFRAVIKELIG)
- **Verifiser suiten med ren HOME.** Flere tester (TOK + dermed SC-5/orchestrator via TOK) leser ekte `~/.claude` → ikke-hermetiske. `HOME=$(mktemp -d) node --test 'tests/**/*.test.mjs'`. Regenerer ALDRI SC-5 med ekte HOME (baker inn sesjons-drift) — bruk ren HOME.
- **CLAUDE.md-lengde drar config-grade.** Hold architecture-tillegg i pluginens egen CLAUDE.md lean; full detalj → `docs/`. Mål self-audit mot baseline (ren HOME) FØR commit. Nå: 379 linjer / 25.8k chars (under 500/40k).
- **Scanner-/familie-tillegg = strip, IKKE re-seed.** `strip-added-scanner.mjs` ADDED_SCANNERS = {OST, OPT}; re-seed KUN SC-5 (ren HOME). Hardkodet scanner-count i `scan-orchestrator-humanizer.test.mjs` (`scanners.length`).
- **Release-cut = 3 filer + annotert tag + catalog.** tests-badge ` tests N`, scanner-badge, `readmeCheck.passed`. Nå: **1055**, scanner **15**. Knowledge-badge teller kun `.md`.
- **Persistens (verifisert):** sesjoner i `~/.claude/config-audit/sessions/` overlever reinstall/oppgradering.
- Push-vindu: hverdag 2023, helg fritt. Auto-commit per chunk + push når naturlig (operatør-beslutning, se memory `chunk-commit-push-flow`).
## Scope-gjerde
Chunk 1 + 2a komplett, verifisert (ren HOME), committet. **Chunk 2b (opus-analyzer) + TOK-fix + Fase 2 = egne GO.**
## Kontinuitet
Tre lag: STATE.md + auto-memory (`config-audit-vision`, `chunk-commit-push-flow`) + CLAUDE.md. Plan → `docs/v5.7-optimization-lens-plan.md`. Oppdater DENNE som siste handling.