The agent judges identity by written rules, and a labeled set says whether it did (0025 decision 10) - #457
Merged
Conversation
…says whether it did Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
…a moot bucket in the score Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
…em gets a second look Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
…and the labeled set Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follows #446. Adds decision 10 to record 0025 (Governance reads the ledger before it decides); the status line, the new decision with its table, and the README row are updated.
The labeled set and the harness
scripts/bench/truth/ai-timeline.duplicates.json: every pair the resolver raised on one governed import of eight interlocking articles (615 pairs, 411 distinct name pairs), labeled by hand from each side's facts and source passages:same,different, orunknownwhere no reader could tell either. Keyed by the two names, either order, case-insensitive.scripts/bench/govern.mjs:--freshimports and scores;--kb <id>resets a base's agent decisions without going through the API (the API would leavemerge.revertin the ledger, which the next run would read as precedent), runs the governor, and scores: decided on its own, agreed with the labels, wrong merges, wrong keeps, left for people, moot after a merge. About twenty-five minutes per run on the bench base. Documented inscripts/bench/README.md.What the labels changed
IDENTITY_RULES, one text read by both prompts: a version, tier, division, subsidiary or legal entity added at the end of a name is a different thing; a phrase containing a name is not the name; a list is not its members; a common noun is not a proper name; a front qualifier dropped, a corporate suffix, a surname for a full name, a parenthetical acronym are the same thing; a different type label, a missing fact, a different partner or role is not a contradiction.name_shape(identical, abbreviation, suffix, version, extension, phrase, unrelated): asameverdict on a version or a phrase is never applied on its own.type_familyfolds the extractor's labels into person, organization, place and event; only a difference across families is a conflict, so Organization against Corporation no longer blocks a merge and Person against Organization still does.differentverdict on identical, compatible names gets the tool loop's second look before it is applied.Measured on the same 589 pairs, reset and re-run after each change
Wall clock is for 589 pairs with the model capped at three concurrent calls; about twenty-five pairs a minute, one batch call per cluster of up to twelve pairs (roughly sixty per run) plus the loop calls shown.
The last two differ by the model's run-to-run noise; the shipped version keeps the extractor's labels wherever they carry information, because the run before it merged a periodical into a service. Of the four wrong merges, two follow a precedent left by a simulated person accepting proposals blindly, which is the ledger working as designed on a bad decision. What still disagrees is mostly judgment (whether "Claude Mythos 5" is "Claude Mythos"), and the share left for people does not go to zero on purpose: the version and phrase rules hold back a few right merges to stop dozens of wrong ones, and a record with no facts cannot be settled by anyone.
Verified
Unit tests for the shapes, the families, and the gate with them; the prompt-shape tests; the governor's real-database test. Four full runs on the bench base as above.
🤖 Generated with Claude Code