config-audit/STATE.md
Kjell Tore Guttormsen e3b044a476 feat(ost): v5.6 C — output-style scanner (CA-OST, count 13→14)
New orchestrated scanner output-style-scanner.mjs — first new family since
SKL. Three findings, each pinned to a CONFIRMED V-row of the steering-model
plan + re-verified against code.claude.com/docs/en/output-styles:

- CA-OST-001 (medium, V10): user/project custom style missing
  keep-coding-instructions:true (default false) → silently strips built-in
  software-engineering instructions when active. Scoped to user/project.
- CA-OST-002 (low, V11): plugin style with force-for-plugin:true overrides the
  user's selected outputStyle. Verifiseringsplikt correction — the plan bullet
  said "project/user style," but force-for-plugin is plugin-styles-only per the
  docs, so the check keys on source==='plugin'.
- CA-OST-003 (medium): settings outputStyle matching no built-in
  (Default/Explanatory/Learning/Proactive, case-insensitive) nor discovered
  custom style → dead config.

Byte-stability — a scanner addition, not a field addition. Growing the
scanners array + scanners_ok cannot be hidden by a field strip, but re-seeding
frozen v5.0.0 (the SKL precedent) would now bake in B2's hotspot triple +
claudeMd drift. So, per the B2 lesson, frozen v5.0.0 snapshots are PRESERVED
and the OST entry is stripped at compare time via new
tests/helpers/strip-added-scanner.mjs (wired into json/raw-backcompat + the
Step 5/6 humanizer tests); only SC-5 default-output is regenerated (additive
OST entry, diff reviewed). OST is fixture-gated (no output styles on
marketplace-medium / hermetic HOME → silent).

Wiring: orchestrator; humanizer (OST→Configuration mistake) + humanizer-data
OST family (title-coupled); scoring (OST→Settings, keeps 10 areas). Suite
1012→1023 (+11). Badges: scanners 14, tests 1023, TRANSLATIONS families 15.
Lore swept: README, CLAUDE.md, scanner-internals, humanizer.md. self-audit A/A.

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

35 lines
5.1 KiB
Markdown
Raw Permalink 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.6 C KOMPLETT på main — HELE v5.6 ferdig, IKKE release-cuttet)
v5.5.0 released. v5.6 Foundation (`62d910e`) + B1 manifest (`bb647ce`) + B2 token-hotspots (`778b517`) + **C output-style-scanner (denne økten)** landet på main (TDD). **Hele v5.6 (Foundation + B + C) er ferdig.** Suite **1023** (1012→1023, +11 OST), self-audit **A/A** (health 100, quality 93), scanner-count **14** (C la `CA-OST`). v5.6 IKKE release-cuttet (krever eget GO).
**→ NESTE SESJON: v5.6 release-cut er neste, men KREVER eget GO (som v5.5.0).** Ikke start release uten klarsignal. Følg vanlig sesjonsstart (les denne, sjekk git), bekreft, spør om GO for release-cut.
## Gjort denne økten (2026-06-20, lør — pushet hvis i vindu)
**C (output-style-scanner `CA-OST`, count 13→14):** ny orkestrert scanner. 3 findings, hver pinnet til CONFIRMED V-rad + re-verifisert mot `code.claude.com/docs/en/output-styles`:
- **`CA-OST-001`** (medium, V10): user/project custom style uten `keep-coding-instructions:true` (default false) → stripper built-in SWE-instruksjoner når aktiv. Scoped til user/project.
- **`CA-OST-002`** (low, V11): **plugin**-style med `force-for-plugin:true` → overstyrer brukerens `outputStyle`. **Verifiseringsplikt-korreksjon:** planens bullet sa «project/user style», men docs sier force-for-plugin er **plugin-only** → keyer på `source==='plugin'`.
- **`CA-OST-003`** (medium): settings `outputStyle` som matcher ingen built-in (Default/Explanatory/Learning/Proactive, case-insensitiv) eller custom style → dead config.
- **Scanner-tillegg ≠ felt-tillegg (byte-stabilitet):** 14. scanner vokser `envelope.scanners` + bumper `scanners_ok` UANSETT findings → strip-helper kan IKKE skjule det. SKL-presedens (`7bb2547`) re-seedet frozen, men det er FØR B2s strip-regime; re-seed nå ville bake inn B2s hotspot-triple + claudeMd-drift (verifisert i seed-diff). Derfor **bevart frozen v5.0.0** + **strippet OST ved compare**: ny `tests/helpers/strip-added-scanner.mjs` (`stripAddedScanners` fjerner OST-entry + dekrementerer `scanners_ok`; `stripAddedScannerStderr` dropper `[OST]`-linja) wiret i json/raw-backcompat + Step 5/6 humanizer-tester. cli-humanizer brøt IKKE (dens v5.0.0-compare vokser ingen scanners-array). KUN **SC-5 default-output** (scan-orch + posture) regenerert (additiv OST-entry — diff reviewet). OST fixture-gated: marketplace-medium + hermetisk HOME har ingen output styles → fyrer ikke der.
- **Wiring:** orchestrator import+SCANNERS; `humanizer.mjs` (`OST:'Configuration mistake'`); `humanizer-data.mjs` OST-familie (tittelkoblet); `scoring.mjs` (`OST:'Settings'` — holder 10 areas). Tester +11. Badges: scanner 14, tests 1023, TRANSLATIONS-familier 14→15 (PLH er familie men ikke orkestrert). Lore: README (badge/prosa/scanner-rad), CLAUDE.md (Finding ID + testtelling + ny OST-seksjon), scanner-internals, humanizer.md.
## Åpne tråder / neste steg (prioritert)
1. **v5.6 release-cut — KREVER EGET GO:** tag + catalog-bump (separat repo), oppdater README «What's New» (står på v5.4.0 — bevisst, oppdateres ved release), version-badge 5.5.0→5.6.0. Som v5.5.0-prosessen.
2. **v5.7:** D (mechanism-fit, heuristisk, precision-gated — positiv+negativ korpus, behind flag hvis støy). Egen GO.
3. **llm-security KRITISK** (annet repo) + 3 aktive plugins + STATE-sveip — uendret. Egne GO.
## Gotchas (UFRAVIKELIG)
- **Scanner-tillegg = strip, IKKE re-seed (POST-B2).** Ny scanner → bevar frozen v5.0.0 via `strip-added-scanner.mjs`; re-seed KUN SC-5 default-output. Re-seed av frozen baker inn B2-hotspot-triple + claudeMd-drift. SKL-presedensen (re-seed) er utdatert.
- **To motsatte byte-stabilitets-regimer:** manifest = env-aware → mode-equivalence. TOK + scanner-array embedder i scan-orch+posture → frozen-v5.0.0-komparatorer i **json/raw-backcompat + cli/posture/scan-orch-humanizer**. Grep ALLE før blast-radius-antakelse. To strip-helpere nå: `strip-hotspot-load-pattern` (B2-felt) + `strip-added-scanner` (C-scanner).
- **OST keyer:** 001=user/project (ikke plugin), 002=plugin-only (`force-for-plugin` er plugin-only per docs). 003 case-insensitiv built-in-match.
- **manifest har INGEN findings** → ingen humanizer/fix-tittelkobling (kun finding-scannere). Skill on-demand (body); harness-config = external.
- tests-badge = EKSAKT ` tests N` (self-audit `countTestCases`); `readmeCheck.passed:true`/`mismatches:[]`. **1023** nå, scanner **14**. Versjon KUN i plugin.json + README version-badge.
- **docs-gate (non-marketplace) krever ≥3 ikke-ws-linjer i README OG CLAUDE.md for `feat:`.** Path-guard blokkerer Write på `.claude-plugin/`+settings/hooks. Push-vindu: hverdag 2023, helg fritt.
## Scope-gjerde
Hele v5.6 (Foundation+B+C) godkjent (GO) og landet på main. **Release-cut (tag + catalog-bump) + v5.7 D + andre repos = egne GO.** Ikke start release uten klarsignal.
## Kontinuitet
Tre lag: STATE.md (tracked) + auto-memory + CLAUDE.md. Oppdater DENNE som siste handling.