Skip to content

v0.4.0 -- Low overlap is not disagreement

Choose a tag to compare

@ScottColeSW ScottColeSW released this 01 Oct 16:10
· 44 commits to main since this release

Four reasoning gaps found by reading Aegis Vector's memory-gate results, closed without giving up any rule from earlier releases.

What changed:

  • Low word overlap is not disagreement where figures are involved (consult.py). In a one-true-value domain, consult() used to fall through to COLLIDES whenever overlap was low, even with no figure to disagree about. Now two claims that don't compete on a figure are a different aspect of the same fact (COEXISTS), and a claim that drops the figure at low overlap is UNCONFIRMED (marked for review), not an asserted collision. A collision still needs a different figure or, in a figureless attribute like hair color, differing wording.
  • A reversal can't reinforce. "No longer need CFO approval" used to reinforce "must get CFO approval" and raise its weight. Words like "no longer", "without" and "any amount" now withhold confirmation (UNCONFIRMED in an attribute domain, COEXISTS in an event domain). It only ever adds a flag, never clears one. It is a short cue list, not language understanding.
  • resolve() lets a person close an open collision or a review item (vindicated, mooted, wrong, reconciled together). A reason is required, the decision is dated, no weights change, and a resolved edge can't be quietly resolved again. The demo scenario uses it.
  • scan_other_domains() checks a claim against every attribute-domain claim, not just its own referent, so a document the filing step misplaced is still caught when it restates a known claim with a different figure. It reports value conflicts only, and treats a different scope as a review item, never a collision.

Behavior change: a claim with a shared figure but different wording, or one that adds a figure to a figureless claim, no longer collides. Previously the real $10,000 limit arriving beside a "CFO approves above the limit" rule was held as a collision.

Measured on Aegis Vector's battery (five small local models, nine forged payloads): the gate still quarantines all nine and holds adoption at 0% with 90% utility. With hand labels, legitimate documents held drop from 2 to 1, and both no-number forgeries are now labeled UNCONFIRMED instead of COLLIDES. The cross-fact scan flags none of the 20 legitimate documents, changed no verdict there (every payload was already filed correctly), and would catch only 3 of the 9 if they were misfiled. A claim about a fact the memory doesn't hold is still admitted.

109 tests, all passing. store.py's Elasticsearch backend is still unverified against a live cluster. Nothing acts on a resolution yet (a vindicated claim doesn't supersede the old one), by design.