Skip to content

fix(listing): PermID listing only on OpenCheck's own GLEIF statement - #473

Merged
StephenAbbott merged 2 commits into
mainfrom
fix/permid-listing-own-statement
Oct 21, 2026
Merged

StephenAbbott merged 2 commits into
mainfrom
fix/permid-listing-own-statement

Conversation

@StephenAbbott

Copy link
Copy Markdown
Owner

Notion: https://app.notion.com/p/3ff7f3dc29288131be9dcdf425178cab

Option C of the ticket. listing.apply_to_bods used to put publicListing on the first subject statement whose source resolved to gleif. Open Ownership's stored GLEIF statements resolve to gleif by their description, so in curated bulkBods bundles (BP, Rosneft…) the listing could end up inside another publisher's recordDetails, which breaks the Phase 317 rule.

  • New listing.own_gleif_target(bods, lei): the entity statement that carries the LEI, is stamped source.opencheckSourceId: "gleif" and is published by OpenCheck. That statement is the only possible target.
  • No fallback. This differs from integrated_ownership.annotation_target, because writing a field into recordDetails changes a statement more than adding an annotation. Without OpenCheck's own GLEIF statement, the BODS carries no listing. The listing event, the page line, the report and the MCP listing field are unchanged.
  • Saved reports rebuild their export from the frozen event, so they get the new target with no migration.
  • Tests: the fixture is now OpenCheck-published and stamped. New tests cover Open Ownership's statement coming first (left untouched) and three no-target cases. The pipeline test seeds an Open Ownership-shaped bundle; it now checks that the event carries the listing and the BODS does not. No golden file expected publicListing on an OO statement.
  • Docs: docs/listing.md and the Phase 236 section of CLAUDE.md. Changeset in .phases/pending/.

Local: uv run pytest -q → 8119 passed, 29 skipped, 3 xfailed; mypy ratchet clean; stamp_phase.py --check ok.

After deploy: look up BP (213800LH1BZH3DI6G760) and Rosneft (253400JT3MQWNDKMJE44). Confirm publicListing sits only on the statement whose publisher is OpenCheck.


Generated by Claude Code

…F statement

Option C of the "PermID publicListing can be written onto Open Ownership's
verbatim GLEIF statement" ticket. apply_to_bods picked the first statement
resolving to gleif by description, which could be Open Ownership's stored
statement in a curated bundle. The target is now listing.own_gleif_target:
carries the LEI, stamped opencheckSourceId "gleif", published by OpenCheck.
No fallback; without it the BODS carries no listing and the event and page
line are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018BtA1PTjVwQtHVQNpe8Rha
Brings the branch up to date with main (Phases 389–390) before merging.

Co-Authored-By: Claude <noreply@anthropic.com>
Release-Steward: scheduled run 2026-10-21
@StephenAbbott
StephenAbbott merged commit 4a281f7 into main Oct 21, 2026
8 checks passed
@StephenAbbott
StephenAbbott deleted the fix/permid-listing-own-statement branch October 21, 2026 05:59
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.

2 participants