🌳 trigger-tree — documentation health

Example report — generated from synthetic demo data so you can see the full format. Real reports are produced locally by /tt insights and never leave your machine.

BDocumentation health · 89/100
2 of 11 evaluable docs untouched · 1 router gaps (untouched and unreferenced) · distributed search ratio 0.0

Period 2026-08-01T09:00:00Z → 2026-08-21T15:21:00Z (20.26 days) · maturity: mature

112readsReads by period18
3searchesSearches by period1
0skill uses
11sessions
9/11current files touched
2current files untouched

Current inventory: 12 files = 11 evaluable + 1 always loaded. Evaluable coverage reconciles as 9 touched + 2 untouched = 11.

a rule that is never read protects nothing — use the evidence below to improve routes, not to confuse discovery with understanding. Glossary.

Instruction adherence

Did the instructions change what happened? Each rate comes from deterministic, per-session evidence. Unobserved means evidence was not captured; it does not mean violated.

3/4observable directives
25%unobservable
0never triggered
0awaiting capture
0capture disabled
Your always-loaded context is ~40 tokens per session. No directive went untriggered wherever its capture was active (11 sessions over 20.26 days).

Token counts are estimates at four characters per token. Never-triggered is a review prompt, not a removal recommendation.

DirectiveSourceOpportunitiesFollowedUnobservedRateConfidence
avoid-generated-filesCLAUDE.md:600no violationsheld wherever checkable
match-code-styleCLAUDE.md:5unobservablerequires reading the diff, not the event stream
route-design-workCLAUDE.md:354180%mature
test-before-commitCLAUDE.md:464267%mature

Agent personas

A persona's name and description sit in the system prompt on each request; the body is paid only when the agent runs, so the two are counted separately. A persona that is never invoked is recurring cost. Never-invoked is a review prompt, not a removal recommendation.

3/4definitions invoked
~13tokens per session
~24tokens when invoked
11measurable sessions
PersonaInvocationsSessionsLast usedDefined
backend-engineer11112026-08-21yes
docs-writer442026-08-19yes
ux-designer222026-08-19yes

Never invoked: release-manager. Worth reviewing.

Current heat

The same indented tree used by the live dashboard: color shows last-read recency, while bar length and h show decayed attention volume. Untouched files collapse to a · summary.

Documentation tree: heat amount with last-read recency colordocs/design/ · h46.342 · 63 lifetime reads · last 2026-08-21T15:21:00Zdocs/design/h46.34 · 63× ui-patterns.md · h22.142 · 30 lifetime reads · last 2026-08-21T15:21:00Z ui-patterns.mdh22.14 · 30× principles.md · h16.552 · 22 lifetime reads · last 2026-08-21T15:21:00Z principles.mdh16.55 · 22× index.md · h6.442 · 9 lifetime reads · last 2026-08-17T10:08:00Z index.mdh6.44 · 9× accessibility.md · h1.206 · 2 lifetime reads · last 2026-08-03T11:01:00Z accessibility.mdh1.21 · 2×docs/database/ · h23.406 · 33 lifetime reads · last 2026-08-21T12:10:00Zdocs/database/h23.41 · 33× migrations.md · h13.046 · 18 lifetime reads · last 2026-08-21T12:10:00Z migrations.mdh13.05 · 18× index.md · h5.590 · 8 lifetime reads · last 2026-08-15T17:07:00Z index.mdh5.59 · 8× principles.md · h4.770 · 7 lifetime reads · last 2026-08-13T16:06:00Z principles.mdh4.77 · 7×docs/ · h7.336 · 10 lifetime reads · last 2026-08-19T11:09:00Zdocs/h7.34 · 10× README.md · h7.336 · 10 lifetime reads · last 2026-08-19T11:09:00Z README.mdh7.34 · 10×docs/operations/runbooks/ · h3.989 · 6 lifetime reads · last 2026-08-11T15:05:00Zdocs/operations/runbooks/h3.99 · 6× rollback.md · h3.989 · 6 lifetime reads · last 2026-08-11T15:05:00Z rollback.mdh3.99 · 6×

Color is time since last read: hot ≤1 day, warm ≤3 days, active ≤7 days, cool ≤30 days, cold >30 days. Heat is attention volume with a 30-day half-life; lifetime reads never decay. Cold means inactive now, not unimportant.

PathHeat7dLifetimeAgentsLast read
docs/design/ui-patterns.md22.142630main 24 · sub 6 (Explore 6)2026-08-21T15:21:00Z
docs/design/principles.md16.552622main 18 · sub 4 (Explore 4)2026-08-21T15:21:00Z
docs/database/migrations.md13.046318main 15 · sub 3 (Explore 3)2026-08-21T12:10:00Z
docs/README.md7.336210main 8 · sub 2 (Explore 2)2026-08-19T11:09:00Z
docs/design/index.md6.44219main 8 · sub 1 (Explore 1)2026-08-17T10:08:00Z
docs/database/index.md5.59008main 7 · sub 1 (Explore 1)2026-08-15T17:07:00Z
docs/database/principles.md4.77007main 6 · sub 1 (Explore 1)2026-08-13T16:06:00Z
docs/operations/runbooks/rollback.md3.98906main 5 · sub 1 (Explore 1)2026-08-11T15:05:00Z
docs/design/accessibility.md1.20602main 2 · sub 02026-08-03T11:01:00Z

Folder heat & cold map

Folder color follows its most recently read current file; folder heat still sums decayed attention volume. Coverage and lifetime reads remain separate; cold means inactive now and never proves removal is safe.

FolderHeat7dCoverageLifetimeRetired read shareMedian file ageLast read
docs/design/46.342134/4 (100%)630%0.0 days2026-08-21T15:21:00Z
docs/database/23.40633/3 (100%)330%0.0 days2026-08-21T12:10:00Z
docs/7.33621/1 (100%)100%0.0 days2026-08-19T11:09:00Z
docs/operations/runbooks/ · no index file3.98901/1 (100%)60%0.0 days2026-08-11T15:05:00Z
(root)/0.00000/1 (0%)00%— days
docs/legacy/ · no index file0.00000/1 (0%)00%— days
docs/operations/0.00000/1 (0%)00%— days

Untouched review

Measurement is mature, but low reads can still mean rare-but-critical.

Never read during the measurement period. This is a review queue, not a removal recommendation.

PathInbound refsFlags
docs/operations/index.md2unread router
docs/legacy/old-api.md0router gap

Low reads can mean rare-but-critical; verify purpose and owners before archiving.

Out of scope (always loaded via system prompt / Skill tool): CLAUDE.md

Unread routers: docs/operations/index.md. Router files are never classified as templates.

Trend

Search/read ratio per period. Movement after a note is correlation, not proof that the recorded edit caused it.

Reads and searches by periodreads 18searches 1Search ratio by periodsearch ratio 0.06

Movement after a note is correlation, not proof that the recorded edit caused it.

PeriodReadsSearchesSearch ratio
2026-W311300.0
2026-W324910.02
2026-W333210.03
2026-W341810.06

Notes (router changes & annotations)

FolderSearchesSessionsToolsPattern
docs/database33/11{'Grep': 3}concentrated

A search event records explicit search activity, not its cause. Concentrated bursts may be intentional bulk work; distributed recurrence can support, but does not prove, a routing hypothesis.

Task clusters

Doc-and-skill sets per prompt, grouped by similarity (Jaccard ≥ 0.6) across sessions.

×VariantsExample promptPaths
95why is the deploy failing?docs/README.md
docs/database/index.md
docs/database/migrations.md
docs/database/principles.md
docs/design/index.md
docs/design/principles.md
docs/design/ui-patterns.md
docs/operations/runbooks/rollback.md
22review the rollback runbookdocs/README.md
docs/database/migrations.md
docs/design/principles.md
docs/design/ui-patterns.md

Folder-router coverage

RouterListedUnlisted direct files
CLAUDE.md0/0
docs/README.md0/0
docs/database/index.md1/2docs/database/principles.md
docs/design/index.md2/3docs/design/accessibility.md
docs/operations/index.md0/0

Unlisted means absent from that folder's existing README.md, _index.md, index.md, or CLAUDE.md; links elsewhere do not count as folder-router reachability.

Most often read together

Pair×
docs/database/migrations.md + docs/design/principles.md11
docs/database/migrations.md + docs/design/ui-patterns.md11
docs/design/principles.md + docs/design/ui-patterns.md11
docs/README.md + docs/database/migrations.md10
docs/README.md + docs/design/principles.md10
docs/README.md + docs/design/ui-patterns.md10
docs/README.md + docs/design/index.md9
docs/database/migrations.md + docs/design/index.md9
docs/design/index.md + docs/design/principles.md9
docs/design/index.md + docs/design/ui-patterns.md9