04 Placement
Reconciling a new lesson with what is already known, before storing it.
New knowledge is reconciled with old before it is stored, never appended blindly.
Scope, decided first#
Where a lesson lands decides whether it can ever be found again. A lesson about a vendor API filed under one repo is invisible from every other one, so nothing downstream can rescue it — not recall, not compression, not descent.
So scope asks: does this depend on this repository, or
would it be true for anyone using these tools anywhere? Global lessons go
to ~/.rose, project lessons stay local. The error is
asymmetric: a global lesson filed locally is lost, a project lesson
filed globally is merely noise.
Then the relation#
related walks the graph for lessons on the same subject, and
reconcile classifies:
| Relation | Action |
|---|---|
duplicate | nothing stored; the hit is recorded |
refines | fold into the matched lesson's own lineage, then patch its ancestors |
contradicts | keep both, mark both disputed, attach a question |
specialises | attach as a sibling under the more general lesson |
orthogonal | new family |
Refinement must reach the apex. Folding detail into a level-0 node
leaves every ancestor missing it. Rather than invalidating working
compressions, the detail is registered as a rescue on each ancestor, so
recall re-attaches it immediately and repair folds it in
permanently once it proves necessary.
Contradictions are never resolved silently. Last-write-wins is how a memory rots. Both lessons stay servable, and the question is raised at recall time:
> Unresolved: Is 5434 the new permanent host port mapping, or was 5433 > only temporarily unavailable at the time?
rose conflicts lists them,
rose resolve <id> [--drop] settles them.