Kanon
Instructies, geheugen, hooks en skills, met hun herkomst en verouderde verwijzingen.
Kanon (κανών) betekent meetlat. De tool laat zien welke teksten een sessie sturen en waar ze vandaan komen.
- TypeScript
- Bun
- Claude Code
- hooks
GitHub (opent in een nieuw tabblad)README (opent in een nieuw tabblad)Changelog (opent in een nieuw tabblad)
Op deze paginaZicht op wat de sessie stuurt
Zicht op wat de sessie stuurt
Instructies komen uit je project, je eigen configuratie, bovenliggende mappen, imports en dependencies. Geheugenbestanden, hooks en aangeroepen skills voegen context toe. Een regel kan nog steeds richting geven terwijl het bestand of script waarnaar die verwijst al verdwenen is.
Hoe instructies die je zelf nooit schreef in een sessie terechtkomen, bijvoorbeeld een CLAUDE.md in node_modules, beschrijf ik in Je dependencies leveren een CLAUDE.md mee, en Claude Code leest hem.
Kanon brengt die bronnen samen in een paneel naast Claude Code. Open het met /kanon en sluit het met hetzelfde commando. Selecteer een bestand, hook of skill om de details en tekst te lezen. Het paneel ververst aan het einde van een beurt en opent nooit uit zichzelf.
Vijf onderdelen van de context
| Onderdeel | Wat je ziet |
|---|---|
| Instructions | Geladen bestanden, hun herkomst, laadreden en bestanden die verwacht maar niet geladen werden |
| Memory | Projectgeheugen en geheugen van subagents, met bevindingen over verouderde verwijzingen |
| Hooks | Geconfigureerde hooks per bron, met vastgelegde injecties, aantallen en tekstlengte |
| Skills | Beschikbare skills per bron, met een markering bij aangeroepen skills |
| Compaction | Vastgelegde contextcompacties |
Het paneel markeert vreemde bronnen, verwijzingen naar verdwenen bestanden, mogelijk verouderde items en bevindingen die je hebt bevestigd. Open een gemarkeerd item voor het pad, de herkomst, de onderbouwing en de tekst. Met a bevestig je het; met b ga je terug. Op brede terminals staat de voorvertoning naast de lijst. Kan er geen paneel worden getekend, zoals in print- of SDK-sessies, dan drukt /kanon het rapport af.
Verwijzingen die niet meer kloppen
Een regel of geheugenbestand met een verwijzing naar een ontbrekend bestand krijgt gone. Een functie, optie of script dat niet meer in de code voorkomt, of een bestand met recentere commits, kan may-be-stale opleveren. Alleen een ontbrekend pad krijgt gone. URL's, globs, placeholders en de configuratielocaties van Claude Code zelf vallen buiten deze controle.
De controles hebben een tijdslimiet zodat de briefing snel blijft. Wat niet gecontroleerd kon worden, krijgt geen oordeel. Eigen globale bestanden krijgen padcontroles; projectbestanden en projectgeheugen krijgen de uitgebreidere controles. Beheerde en vreemde bestanden worden niet op veroudering gecontroleerd.
Aan het begin van de sessie krijgt Claude een korte bronnensamenvatting. Zonder bevindingen is dat één regel. Een vreemd bestand wordt met zijn eerste instructie genoemd; bij een verdwenen verwijzing staat wat ontbreekt. De briefing vraagt Claude toestemming te vragen voordat het vreemde instructies volgt of op een gone-item vertrouwt. Dit stuurt de agent, maar dwingt geen toestemmingscontrole af. Een bevestiging legt je keuze vast zonder het bronbestand te herschrijven.
Laadt later een vreemd instructiebestand, dan meldt Kanon dat bij de volgende prompt. Dezelfde briefing gaat naar het model en je zichtbare transcript, zodat je kunt nalezen wat Claude meekreeg.
Aan de slag
Bun 1.1 of nieuwer is vereist op de machine waarop Claude Code draait:
claude plugin marketplace add https://github.com/AraneaDev/aranea-marketplace
claude plugin install kanon@araneaBegin na installatie een nieuwe sessie. Eerdere instructieladingen zijn niet te reconstrueren. Desktopsessies via WSL laden geen plugins; daar is het paneel niet beschikbaar.
Rapporteren, bronnen zoeken en vooraf controleren
/kanon:report drukt het sessierapport af: geladen instructiebestanden, ontbrekende of niet getriggerde regels, veranderingen tussen sessies, geheugen, hooks, skills en compacties. Zonder gekozen sessie blijft de rapportage binnen de huidige repository.
/kanon:whose <phrase> zoekt de bron van een regel in instructiebestanden. De andere bronnen in het paneel vallen buiten deze zoekactie. De zoekactie vergelijkt tekst zonder onderscheid in hoofdletters en normaliseert witruimte. Ze bepaalt niet welke instructie voorrang moet krijgen.
/kanon:audit toont welke instructiebestanden vanuit een checkout zouden kunnen laden, ook zonder eerdere sessie. Dependencies en verborgen mappen tellen mee; .git niet. De laadroutes zijn voorspellingen, geen waargenomen events.
Wat veranderde tussen sessies
Kanon bewaart een digest van instructiebestanden die het in de repository heeft gezien. Een nieuw bestand heet appeared, gewijzigde inhoud changed en een van schijf verdwenen bestand vanished. Een verdwenen bestand wordt één keer gemeld. Zo wordt ook een gewijzigde instructie in een dependency zichtbaar als de bestandslijst gelijk bleef. Kanon interpreteert de inhoudelijke verandering niet.
Vastgelegde laadevents staan los van voorspellingen over het laden. Gebruikt een bestand een route die het model niet voorspelde, dan markeert Kanon de NOT LOADED-bevindingen voor die sessie als onbetrouwbaar. Het rapport vermeldt met een ruleset-stempel welk model werd gebruikt.
Reikwijdte en lokale opslag
Kanon geeft herkomst en onderbouwing bij verouderde verwijzingen. Het rangschikt instructies niet, beoordeelt hun kwaliteit niet en scant niet op promptinjectie. Sessies en configuratiewijzigingen worden niet geblokkeerd. De dekking volgt de beschikbare events en transcripts; het is geen volledig overzicht van elke byte in de modelcontext. MCP-serverinstructies vallen er bijvoorbeeld buiten.
Kanon maakt geen netwerkverzoeken, heeft geen API-sleutel nodig en verstuurt geen telemetrie. Eigen gegevens staan onder ~/.kanon/. Het leest ~/.claude/ zonder daar te schrijven. Gegevens ouder dan 90 dagen worden bij de volgende uitvoering verwijderd.