Skip to content

D1043 — Unused skills and agents are a lint problem

Decision. artifact_unused is a lint check again (a Health problem, in the Artifacts category): a skill or agent that no client invoked since it was added, or none for longer than usage_stale_days, is a finding on its file. The Artifacts cards stop judging: they show a neutral "last used" line and link to Health. This partly supersedes D947, which deleted the check; D947 itself stays as history.

Why. D947 deleted it because "a usage signal ages with no page to fix". It does have a definite fix: delete the artifact, or fix its description so a client selects it, and a skill nobody invokes is weight in every session's catalogue. The cost is accepted: a KB with an unused artifact does not pass a whole-KB gate_check until it is dealt with.

Alternatives rejected. Keeping it an observation on the cards: Health, where a maintainer looks for what to fix, never showed it. Bringing usage_stale_days: 0 back as an off switch: D906 and D907 forbid escaping a check, the floor stays 7. Making it avoidable at write: adding a skill must not be refused for not having been used yet.

Consequences. Three guards keep it honest: an empty usage store reports nothing (no client scans there); an artifact is "never used" only once its birth (the first commit that added its file) is older than the threshold, and one with no history is skipped; a catalogue load is not a use. The finding depends on the clock and on .cartographer/usage.json, so the lint cache stamp includes that file alone and the UTC date. lint.UsageState stays the one classifier, shared by Health, kb_status.usage and the cards. KBs with usage reports may show new Health problems after upgrading.