`inactive` is populated only by Pi. The skill described it as a Pi
capability but never said what its absence means elsewhere, so an agent
querying a Claude Code session with `includeInactive: true` reads an empty
result as "nothing was abandoned here". Across 43 local Claude transcripts,
20 contained branches off the surviving path, so that reading is wrong far
more often than it is right.
Claude Code and Codex transcripts record no supersession event to attest
from; Kimi records one but the adapter drops those messages while indexing.
The added sentence covers all three without naming them, so it stays correct
if Kimi later marks retracted history instead of discarding it.
External PRs here have consistently arrived lint-clean, typechecking, and
green on their own tests, then stalled on the same handful of causes: a
capability advertised in the description but unreachable in code, assertions
written against the implementation rather than the requirement, destructive
migrations that cannot resume after an interruption, concepts reinvented next
to an existing one, transcript content treated as trusted, and verification
run against a head that a later merge invalidated.
Generic style rules would not have caught any of those, so CONTRIBUTING.md
states them directly, alongside hard per-area constraints for the
renderer/Electron, provider adapter, schema migration, main process, and
indexing/daemon boundaries. The PR template mirrors those as collapsible
per-area checklists so a renderer change is not asked about tokenizer
migrations, and gives deliberately-out-of-scope work its own place above the
fold rather than leaving it as a caveat inside a shipped diff.
README points at the document and repeats the four rules worth knowing before
reading it.