config-audit/docs/v5.14-doctor-overlap-brief.md
2026-08-03 11:36:57 +02:00

11 KiB
Raw Blame History

Brief — /doctor-overlapp og ny kontekst-doktrine (v5.14-inngang)

Skrevet: 2026-08-03, økt #52 (Opus 5/high) Skrevet for: neste økt — Fable 5 / high (operatørens modellvalg; rubrikken ga Opus 5/high, rule=path=partial) Status ved overlevering: ingenting implementert. Denne økten leverte kun analyse + denne briefen.


0. Hva denne økten gjorde (så du slipper å gjenta det)

Fant og leste originalartikkelen bak videoen operatøren limte inn:

«The new rules of context engineering for Claude 5 generation models» Thariq Shihipar, Member of Technical Staff, Anthropic — 24. juli 2026 https://claude.com/blog/the-new-rules-of-context-engineering-for-claude-5-generation-models

Verifisert direkte mot artikkelen (WebFetch, to pass). Tre ting videoen tok feil på — ikke gjenta dem:

  1. Forfatteren heter Thariq Shihipar, ikke «Tariq».
  2. Artikkelen sier ingenting om tokens, kostnad, caching eller måling. Videoens token-budsjett-argument er skaperens påbygg. Det er riktig, men det er ikke Anthropics påstand — og det betyr at vi ikke kan sitere artikkelen som hjemmel for token-argumenter i registeret (Verifiseringsplikt).
  3. Videoens /doctor-liste (fem ting) står ikke i artikkelen. Artikkelen har én setning: «We rolled out a new command called claude doctor, which will help you do this automatically.» Alt annet i videoen er skaperens observasjon fra sin egen kjøring. Behandle den som uverifisert.

Målt ground truth (CC 2.1.220, denne maskinen):

$ claude doctor --help
Check the health of your Claude Code installation. Reads settings files in the
current directory without a trust prompt. For a full checkup that can also fix
issues, run /doctor in a session.

CLI-en claude doctor = kun install-helse. Det er /doctor i sesjon som overlapper oss («a full checkup that can also fix issues»). Ikke bland dem.


1. OPPGAVE A — mål /doctor, og fjern det vi dupliserer

Dette er økten sin hovedoppgave, og den har en beslutning i seg som skal tas, ikke utsettes.

Premisset som skal falsifiseres

Anthropic leverer nå en innebygd, gratis kommando som gjør noe av det config-audit finnes for. Vi vet ikke hvor mye. Vi har aldri målt det. Hver funksjon i config-audit som /doctor gjør like godt eller bedre, skal ut — ikke omdøpes, ikke «beholdes for kompletthet», ikke pakkes inn i en flagg. Ut.

Begrunnelsen er pluginens egen doktrine, snudd mot oss selv: BP-SUB-001 sier at en blokk som ikke lenger tjener sin plass skal vurderes fjernet. En scanner som duplikerer en innebygd kommando tjener ikke sin plass — den koster vedlikehold, tester, byte-stabile baselines og operatørens oppmerksomhet, for et svar hen kan få gratis.

Metode (samme mal som de ti dogfood-chunkene — fasit FØR kjøring)

  1. Skriv docs/doctor-overlap-fasit.local.md FØR du kjører noe. Nummererte prediksjoner: for hver av våre 16 scannere, forutsi om /doctor dekker den (JA / DELVIS / NEI) og hvorfor. Eksplisitte avkreftelser: hvilke scannere du er sikker på at /doctor ikke rører. Forpliktende breddetall: «jeg forventer at N av 16 overlapper». Aldri rediger fasiten for å matche utfalletjudge-the-judge-build-fasit-first.
  2. Kjør /doctor i en sesjon og fang hele outputen. Merk: /doctor kan fikse ting — kjør den der en utilsiktet fiks er billig, og les hva den foreslår før du godtar noe.
  3. Kjør claude doctor (CLI) også, separat, så de to ikke smelter sammen i notatene.
  4. Sammenlign mot vår faktiske inventar — ikke mot README-ens beskrivelse av den. Kildene er scanners/*.mjs (16) og CA-ID-rommet.
  5. Premiss-verifiser fasiten mot utfallet, og rapporter avviket før du handler.

Beslutningen som skal tas i denne økten

For hver scanner/kommando, ett av tre utfall — skrevet ned med begrunnelse:

Utfall Betyr Handling
FJERNES /doctor gjør dette like godt eller bedre Egen v5.14-chunk: slett scanner + tester + CA-ID + README/CLAUDE.md-rader. Frosne baselines må re-seedes bevisst.
BEHOLDES, SKJERPES Vi gjør noe /doctor ikke gjør, men README selger det ikke slik Omskriv posisjoneringen så forskjellen er eksplisitt
BEHOLDES Ingen overlapp Ingen handling

Hypotesen min (skriv din egen fasit først — les denne etterpå)

Der jeg tror vi faktisk skiller oss, som bør overleve målingen: determinisme + byte-stabile baselines, drift mot lagret baseline, suppressions med revisjonsspor, backup/rollback, campaign på tvers av repo, plugin-health + polyrepo-katalog, og det provenansstemplede registeret med confidence-nivåer. Der jeg tror overlappet er reelt: deler av posture, og deler av feature-gaps t1-nivå.

Men dette er en hypotese fra en økt som ikke har kjørt /doctor. Den er ikke fasit, og den skal ikke få lov til å ankre din.

Utfall som ikke er lov

  • «Vi beholder alt, men dokumenterer forskjellen bedre.» Det er svaret man gir når man ikke vil måle.
  • Å utsette fjerningen til «senere». Beslutningen tas her; utførelsen er en egen chunk (byte-stabilitet + frosne baselines gjør sletting til flerfilsarbeid).

2. OPPGAVE B — oppdater de videre planene

Når oppgave A har landet en beslutning, skal planverket reflektere den. Ikke før — rekkefølgen er poenget, ellers planlegger vi rundt et overlapp vi ikke har målt.

B1. Registeret (knowledge/best-practices.json) — høyest verdi, lavest risiko

To ting, og de er forskjellige:

(a) Provenans. Alle BP-MECH-*, BP-SIZE-001 og BP-SUB-001 siterer «Steering Claude Code»-bloggen. Den nye artikkelen bekrefter og forsterker dem — legg den til som kilde. Særlig BP-SUB-001, som nå har nesten ordrett dekning: «briefly describe what your repo is for, but spend most of the tokens on gotchas inside of the codebase» og «Avoid stating 'the obvious' things Claude should know by looking at your file system or your repo».

(b) En defekt i vår egen ferskhetsgaranti — dette er det viktigste funnet. BP-SUB-001 er stemplet verified: 2026-07-31. Artikkelen kom 24. juli. Vi re-verifiserte altså den gamle kilden en uke etter at den nye lå ute, og fanget den ikke.

Årsaken er strukturell: knowledge-refresh-cli.mjs gjør kun assessFreshness — den aldrer eksisterende oppføringer etter dato. Den har ingen måte å uttrykke «en ny kilde har supersedert en gammel». En oppføring kan derfor være grønn og substansielt foreldet samtidig. Det er en garanti vi gir som ikke holder.

Fiksen er en datamodell-endring (sources[] og/eller supersededBy) + en freshness-regel som ser på kildens alder, ikke bare oppføringens. Dette er den eneste posten her som er nær-ren TDD og har sterk verifikasjon.

B2. Ny lens-akse for artikkelens regel 1 (skjønn over regler)

BP-SUB-001 fanger blokker som gjentar generell ingeniør-atferd. Artikkelens regel 1 er en annen defektklasse: instruksjoner som er lokale og spesifikke, men som overspesifiserer og burer skjønnet. Anthropics eget eksempel var ikke redundant — «never write multi-paragraph docstrings, one short line max» er presis og lokal. Den ble slettet fordi den begrenset en modell som nå dømmer bedre selv.

Viktig, og lett å gjøre feil: dette kan ikke bli en utvidelse av --subtract. scanners/lib/floor-exclusion.mjs beskytter «policy invariants» og «local facts» fra å bli slettekandidater — nettopp kategorien artikkelen sier ofte er for stram. Gulvet gjør riktig jobb for --subtract; regel 1 trenger sin egen akse: behold innholdet, løsne formuleringen, ikke fjern blokka. Å blande dem er ÅS#5-defektklassen om igjen (to akser presset inn i ett vokabular).

Foreslått: BP-JUDG-001 + CA-OPT-002, med samme presisjonsgate som optimization-lens-agent allerede har (siter regel + kilde, ti stille når usikker).

B3. Regel 4 — vi måler feil akse

Vi har duplikatdeteksjon (claude-md-linter 3+ repetisjon, conflict-detector hook-duplikater, CA-TOK-002 permissions). Alt er innenfor ett lag. Artikkelens regel 4 handler om samme instruksjon i to lag — hos oss: CLAUDE.md og en rule, rule og en skill-beskrivelse, CLAUDE.md og en agent-prompt. Sannsynligvis en utvidelse av conflict-detector (den kjenner allerede flere lag), ikke en ny scanner.

B4. Regel 2 og 6 — ekte hull, men tynnere

  • Regel 2 (eksempler → grensesnitt): ingen scanner ser på om en skill/agent lener seg på eksempler der en parameter-enum ville gjort jobben. skill-listing-scanner teller tegn, ikke form.
  • Regel 6 (rike referanser): «prefer files that are in code as it provides clear, high-fidelity instructions», «a HTML mockup of a design will generally produce better results than a description or screenshot». Vi har ingen oppfatning om referanse-form. Som eier av @-referanser (import-resolver.mjs) er vi det naturlige stedet.

Regel 3 og 5 krever ingenting. Progressiv avdekking er BP-LOAD-001..006 + BP-MECH-003 + token-hotspots + manifest; router-mønsteret dekkes av t2_2/t2_3; auto-memory av t2_4. Bekreftet, ikke endret.

B5. Skriv om docs/v5.13-model-routing-effort-deadref-plan.md (v5.14-planen)

Den bærer i dag: C-SKL1 (#37), M-BUG-26, M-BUG-28, M-BUG-41 (to armer), arg-sluk-klassens CLI-arm (optimize-lens-cli + token-hotspots-cli), P6/M-BUG-44 scanner-siden. Alt dette står fortsatt. Oppgave A og B1B4 skal flettes inn og prioriteres mot det — ikke legges oppå som en parallell plan. Detaljene på de åpne postene ligger i STATE.md; ikke gjenskap dem her.


3. Rekkefølge

  1. Fasit for /doctor-overlappet → kjør → premiss-verifiser → beslutning per scanner
  2. B1 registerfiksen (TDD, sterk verifikasjon — den eneste posten her som har det)
  3. B5 omskriving av v5.14-planen med A + B1B4 innflettet
  4. Oppdater STATE.md + README/CLAUDE.md-posisjonering mot /doctor

Scope-grense: ingen sletting av scannere i denne økten. Beslutningen tas og skrives ned; utførelsen er egne chunks, fordi frosne baselines og byte-stabilitet gjør sletting til flerfilsarbeid med egen verifikasjon.


4. Om modellvalget

Rubrikken ga Opus 5/high (rad 3, rule=path=partial). Operatøren valgte Fable 5 for denne økten. Konsekvenser å være klar over:

  • Ingen advisor. Fable godtar kun Fable-advisor, og Fable er ikke valgbar som advisor i CC 2.1.220. Fallback-raden (Sonnet 5/xhigh --advisor opus) er derfor ikke tilgjengelig som billigere utvei i denne økten.
  • route-last for neste økt skal registrere model=Fable 5; effort=high + om oppgave A faktisk ble lukket. Det er dataene som avgjør om Fable-radene i rubrikken noen gang blir levende policy.