Skip to content

I1985 — A knowledge candidate relates to its own decision and commit, not to the whole episode

Derive each candidate's relates_to and derived_from from the decision or event it records, deduplicate against facts the ledger already states, and skip decisions a later decision superseded.

DONE wave 1 · p2 · implementation profile · parallel safe

Part of adopter-upgrades — An adopting repository survives a Majordomus upgrade, and what the tool vendors into it is adopter-neutral.

Objective

Derive each candidate's relates_to and derived_from from the decision or event it records, deduplicate against facts the ledger already states, and skip decisions a later decision superseded.

Why

In OSCILLA every candidate of one episode carries the same 52 relates_to targets and the same derived_from commits, so a decision of 10-01 cites commits from 10-04. Fact candidates restate a ledger line ('Task ... completed; verified by ...'), and a decision a later one superseded is copied verbatim.

Current state

lib/knowledge.sh relates each candidate to the episode's whole footprint.

Desired state

Each candidate cites what it is about. Superseded decisions and pure ledger echoes produce no candidate.

Scope

  • lib/knowledge.sh
  • lib/decision.sh
  • test/cases

Dependencies

Acceptance criteria

  • A fixture episode with two decisions at two commits yields two candidates, each citing only its own commit
  • A superseded decision yields no candidate

Validation

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>

Evidence required

  • candidate_provenance_case

Evidence

coverstypecommandresultat commit
candidate_provenance_casecigh run view --job 118758854505 --log (validate run 39438896504, suite-shard (3), runs bash test/run.sh 3210_a_candidate_cites_its_own_commit)ok 3210_a_candidate_cites_its_own_commit 15s in suite-shard (3) of validate run 39438896504 on master 9a5a9b77520 (carries merge 2d3ee66dacf; case blob 10cdb3dfd0c identical on origin/master). The case proves both criteria: D1 cites only commit A and alpha.md, D3 only B and beta.md; superseded D2 yields no candidate ('2 written, 0 unchanged, 1 skipped'), knowledge check passes and a re-derive writes nothing91c0b5d

Timeline

started
2026-10-17T10:00:20Z
verified
—
completed
2026-10-20T21:53:17Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I1985.yaml. Read it back with majordomus plan show I1985.

Searches the titles and descriptions of every page this site publishes.