Docs/04 Placement

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:

RelationAction
duplicatenothing stored; the hit is recorded
refinesfold into the matched lesson's own lineage, then patch its ancestors
contradictskeep both, mark both disputed, attach a question
specialisesattach as a sibling under the more general lesson
orthogonalnew 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.