Skip to content

I3425 — A standing conclusion is reused only while the files it cites are unchanged since it was recorded

Before reusing a prior conclusion on the same subject, compare each file evidence reference it cites, at the conclusion's recorded head, with the current tree, and check an optional declared age window. When a cited file has changed or the window has passed, plan review again and name the evidence that moved.

BLOCKED wave 4 · p2 · implementation profile · parallel safe

Part of an-inference-names-its-source-and-budget — Every inference a decision rests on names its model and source, stays inside a declared budget, counts independent sources rather than answers, and is never reached from a hook path.

Blocked. This issue cannot start until I3423, milestone:an-inference-names-its-source-and-budget are done. The status is derived from that, not declared.

Objective

Before reusing a prior conclusion on the same subject, compare each file evidence reference it cites, at the conclusion's recorded head, with the current tree, and check an optional declared age window. When a cited file has changed or the window has passed, plan review again and name the evidence that moved.

Why

The owner's 2026-10-19 Cognitive Fabric pack allows identical reasoning to be cached only within safe scopes and explicit validity windows (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/04_REASONING_MESH.md).

Current state

prior_on_subject (apps/majordomus-cli/src/reasoning/store.rs:446-497) matches subjects after folding whitespace and case. The policy reuses the conclusion unless the caller declares new_evidence (policy.rs:408-419). The envelope keeps head (record.rs:925) and evidence references (record.rs:123-130), and neither is used for validity.

Desired state

The reuse outcome carries the head it validated against. A changed cited file yields a consult or local-review plan with reason evidence_changed, naming the file. An unchanged tree behaves as today.

Scope

  • apps/majordomus-cli/src/reasoning/policy.rs
  • apps/majordomus-cli/src/reasoning/store.rs
  • apps/majordomus-cli/src/capability/builtin/reasoning.rs
  • docs/REASONING.md

Out of scope

  • Hashing non-file evidence
  • Expiring records from the store

Dependencies

What waits on this

Acceptance criteria

  • With the cited files unchanged, the plan reuses as today
  • With a cited file changed since the conclusion's head, the plan does not reuse and names the file
  • A conclusion older than a declared window is not reused, and the plan says so

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib reasoning
  • bash test/run.sh 734_reasoning_survives_the_session

Evidence required

  • a_conclusion_whose_evidence_moved_is_not_reused

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

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/I3425.yaml. Read it back with majordomus plan show I3425.

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