19 results

desktop

on your machine

skills

Kanon

Instructions, memories, hooks and skills, with their sources and stale references.

Kanon (κανών) means measuring rod. The tool names the texts that steer a session and the sources they came from.
Kanon pane beside Claude Code, grouping instructions, memories, hooks, skills and compaction with foreign and stale entries marked
The pane is rendered by Kanon from a planted session. The scripted conversation illustrates a memory referring to a deleted release script.
On this pageSee what steers the session

See what steers the session ​

Instructions arrive from your project, your own configuration, parent directories, imports and dependencies. Memories, hooks and invoked skills add more context. A rule can keep steering a session long after the file or script it describes has disappeared.

How instructions you never wrote end up in a session, for example a CLAUDE.md inside node_modules, is in Your dependencies ship a CLAUDE.md, and Claude Code reads it.

Kanon names those sources and brings them together in a pane beside Claude Code. Type /kanon to open it, and again to close it. Select a file, hook or skill to read its details and text. The pane refreshes at the end of a turn and never opens by itself.

Five views of the context ​

SectionWhat it shows
InstructionsLoaded files, their origin, loading reason and files expected but not loaded
MemoryProject memories and subagent memories, with stale-reference findings
HooksConfigured hooks by source, plus recorded injections, counts and character totals
SkillsAvailable skills by source, with invoked skills marked
CompactionRecorded context compactions

The pane marks foreign sources, references to gone files, items that may be stale, and findings you have acknowledged. Open a flagged item to see its path, origin, evidence and text. Press a to acknowledge it or b to return. On wide terminals the preview sits beside the list. In print or SDK sessions where no pane can render, /kanon prints a report instead.

A memory opened in the Kanon pane, flagged gone because scripts/release.sh no longer exists
A gone finding includes the reference that could not be found, alongside the memory itself.

Catch references that no longer hold ​

A rule or memory pointing at a missing file is gone. A missing function, flag or script, or a referenced file with newer commits, can make it may-be-stale. Only a missing path earns gone; URLs, globs, placeholders and Claude Code's own configuration locations are excluded.

Checks are bounded to keep the brief responsive. Items that could not be checked receive no verdict. Your own global files receive path checks; project files and project memories receive the broader checks. Managed and foreign files are not checked for staleness.

At session start, Kanon gives Claude a short source summary. A clean session costs one line. A foreign file is named with its first directive; a gone item includes the missing reference. The brief tells Claude to ask before following foreign directives or relying on a gone item. This is guidance to the agent, not a permission gate. Acknowledgement records your decision without silently rewriting the source.

If a foreign instruction file loads later, Kanon raises it at the next prompt. The brief is sent as both model context and a visible transcript message, so you can inspect what Claude was told.

Getting started ​

Requires Bun 1.1 or newer on the machine running Claude Code:

bash
claude plugin marketplace add https://github.com/AraneaDev/aranea-marketplace
claude plugin install kanon@aranea

Start a new session after installation. Instruction loads from earlier sessions cannot be reconstructed. Desktop sessions running in WSL do not load plugins, so the pane is unavailable there.

Reports, source lookup and audits ​

/kanon:report prints the session report, including loaded instruction files, missing or quiet rules, drift, memories, hooks, skills and compaction. With no session selected, reporting stays within the current repository.

/kanon:whose <phrase> looks up the source of a rule in instruction files. Other sources in the pane are outside this lookup. It is a literal search with case and whitespace normalisation, not a judgement about which instruction should win.

/kanon:audit lists instruction files that could load from a checkout, even before a session has been recorded. It includes dependency and dot directories but excludes .git. Its loading routes are predictions, not observed events.

Changes between sessions ​

Kanon keeps a digest of instruction files seen in a repository. It reports newly seen files as appeared, changed bytes as changed, and files removed from disk as vanished. A vanished file is reported once. This detects an updated dependency's instruction file even when the file list itself stays the same; it does not interpret the content change.

Recorded instruction-load events remain separate from loading predictions. When a file loads through a route the prediction model did not expect, Kanon marks its NOT LOADED findings unreliable for that session. Reports carry a ruleset stamp to identify that model.

Scope and local storage ​

Kanon provides provenance and evidence for stale references. It does not rank instructions, score their quality, scan for prompt injection or block sessions and configuration changes. Coverage follows the events and transcript evidence available; it is not a complete record of every byte in the model context, including MCP server instructions.

It makes no network requests, needs no API key and sends no telemetry. It stores its own data under ~/.kanon/, reads ~/.claude/ without writing there, and removes data older than 90 days on the next run.