Skip to content

An agreement keeps its identity through its amendments - #706

Merged
WaylandYang merged 6 commits into
devfrom
fix/an-agreement-keeps-its-identity-through-amendment
Sep 14, 2026
Merged

WaylandYang merged 6 commits into
devfrom
fix/an-agreement-keeps-its-identity-through-amendment

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

Closes #700.

Problem

On the lease bench (the Blackbaud HQ lease chain, 18 as-of questions), one lease became three entities: Lease Agreement, Lease Agreement dated May 16, 2016 and Lease Agreement dated May 16, 2016, as amended. Terms of the same lease landed on different holders, so an as-of answer found half of them. Two things kept the entities apart:

  1. The identity rules said nothing about a document staying one thing through its amendments. The model read "as amended" and "dated …" as naming another agreement.
  2. The governance gate (0025 decision 10) never applied a same verdict on a Version or Phrase name shape on its own, even at 0.95. The shape can raise a doubt, but here the facts already answered it.

Change

  • IDENTITY_RULES gains one sentence. A document, agreement or filing cited in many ways stays one thing through its amendments, when parties and subject do not contradict. When it was signed and that it was amended describe it. Each amendment is its own document, and an agreement for other premises, another phase or other parties is a different one.
  • A same verdict on a doubtful shape goes to the second look. This is the same tool loop that already rechecks a different verdict on identical names. If the loop reads both sides' facts and text and still says same, the gate reads the pair without its shape (settled_shape). Type conflicts and precedent reverts still hold as before.
  • govern.mjs no longer counts a document whose extraction was deferred (ontology index still embedding) as finished. It used to score an empty base.
  • 0025 status and decision 10 are updated.

Measured

Governance bench (ai-timeline duplicate labels). Both runs reset the agent's decisions and re-decided on the same extraction:

before after
agreement with labels 156/162 (96.3%) 152/155 (98.1%)
wrong merges 2 1
wrong keeps 4 2
left for people 30 34
automatic share 90.8% 89.7%

One run each. The version pairs that were the risk (Claude Mythos 5 / Claude Mythos, ChatGPT Pro / ChatGPT) did not merge. The second look kept them apart or left them for a person.

Tests

  • a_doubtful_shape_stops_counting_once_the_evidence_was_read
  • cargo test -p utopia-extract -p utopia-server, clippy and fmt clean

🤖 Generated with Claude Code

WaylandYang and others added 5 commits September 14, 2026 14:33
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
@WaylandYang
WaylandYang merged commit aff9da3 into dev Sep 14, 2026
4 checks passed
@WaylandYang
WaylandYang deleted the fix/an-agreement-keeps-its-identity-through-amendment branch September 14, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An agreement splits into one entity per way it is cited

1 participant