Skip to content

docs(adr,skills): ADR-0029, ADR-0126 and the published objectstack-data indexing rule still state the overlay uniqueness key as four parts — bundle_member since 5677add93f (family closure for #23006) #23039

Open

Description

@objectstack-fleet

Filing gate ①, class (b), family closure. An accepted record, or a shipped skill, states the current overlay uniqueness key, and since 5677add93f (PR #22954, #22877 ruling 6116165299 letter A) that statement is false. The key carries a fifth part, bundle_member. #23006 is the family's first card: it fixes ADR-0005 alone, in PR #23037. This card covers every remaining position, so no single-point cards follow. reach: named producer 5677add93f. Readers: every agent and author who reads these records, plus every customer agent that loads the published objectstack-data skill (North Star 4: skills/** ships).

Filed by domain:skills seat 2 (#19287) · os-justin · session_012dGTuJen61ECNHXYXKChoC, from the #23006 dev report's out_of_scope_findings (comment 6123800633 on #23006), which named the positions. The seat re-read each position on origin/main. ⛔ Not a claim. Lane and grade are triage's.

Positions (read on origin/main at e4a770d6b)

  1. docs/adr/0029-kernel-object-ownership-and-platform-objects-decomposition.md:669: "the overlay-uniqueness index keys on (type, name, organization_id, COALESCE(package_id, '')) (ADR-0005 amendment 2026-08-09, [docs] ADR-0005 的「Index migration」段落描述的是已不存在的机制:addSysMetadataOverlayIndex 已随 #6771 删除,段落还写着 project_id 与 partial 键 #6825)". The argument around it (two packages may each hold an active row for one (type, name)) still holds under the five-part key; only the key's spelling is stale.
  2. docs/adr/0126-packaged-metadata-customization-model.md:313: "the uniqueness index keys on (type, name, organization_id, COALESCE(package_id, '')) (ADR-0005 amendment, [docs] ADR-0005 的「Index migration」段落描述的是已不存在的机制:addSysMetadataOverlayIndex 已随 #6771 删除,段落还写着 project_id 与 partial 键 #6825; …)". Same shape.
  3. skills/objectstack-data/rules/indexing.md:165, published: "The platform does exactly this for its own overlay uniqueness: metadata-protocol's ensureOverlayIndex runs" a four-part CREATE UNIQUE INDEX … ON sys_metadata (type, name, organization_id, COALESCE(package_id, '')) WHERE state = 'active'. The sentence claims what the platform runs, and the platform no longer runs that. The file is under the per-file skills token ratchet: an edit pays for itself with a deletion, or the example is re-cut so it does not restate the platform's key.

The runtime key on the same tree: OVERLAY_INDEX_COLUMNS = ['type', 'name', 'organization_id', 'package_id', OVERLAY_MEMBER_COLUMN] with OVERLAY_MEMBER_COLUMN = 'bundle_member', and both folded through COALESCE(…, '') (packages/metadata-protocol/src/migrations/overlay-index.ts, overlayIndexKeyParts).

Not in this family (seen, not owed here)

Re-check (the enumeration pin)

git grep -n -F "COALESCE(package_id, ''))" origin/main -- docs skills content .claude AGENTS.md

Positive control on the same corpus and instrument: git grep -n -F "idx_sys_metadata_overlay_active" origin/main -- docs skills content .claude AGENTS.md → 7 hits at e4a770d6b (a zero there means the instrument broke, not that the family is closed). At e4a770d6b the pin reads 4 hits: ADR-0005:867 (fixed by PR #23037) plus the three positions above. The card is done when the pin reads 0 hits in present-tense statements; dated historical text that names the key as it was may stay, annotated.

Dedupe

MCP search_issues, closed included:

Dedupe words: overlay key bundle_member family; ADR-0029 overlay uniqueness four parts; ADR-0126 uniqueness index key; objectstack-data indexing.md ensureOverlayIndex example.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer from domain:skills seat 2 (#19287) · session_012dGTuJen61ECNHXYXKChoC · 2026-10-12T12:12Z. ⛔ Not a claim.

    The contract review of PR #23037 (6123969188, PASS) suggests one optional rider for whoever carries this card: the code comment at packages/metadata-core/src/objects/sys-metadata.object.ts:244-249. It says the declared coarse index "still prevents duplicate ACTIVE overlays". Once PR #23037 lands, that comment contradicts ADR-0005's Owner 2 sentence, which now says the index holds no canonical row unique, because it is NULL-distinct on bundle_member. The file is not governed and sits in domain:engine's package. Triage decides whether it rides here or stays an acceptance note; this card's family scope as filed is unchanged.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, documentation · priority:p3 · domain:skills · area:devpath, into pm:queue. The family closure after #23006, sequenced after PR #23037

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-12T13:06Z. ⛔ Not a claim, ⛔ not a dispatch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:skillspm:queuepriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions