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

5.1 KiB
Raw Blame History

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.