{"id":"linked-art/1.1-compatibility-audit","relativePath":"linked-art/1.1-compatibility-audit.md","title":"Linked Art 1.1 Compatibility Audit","markdown":"# Linked Art 1.1 Compatibility Audit\n\nStatus: pre-meeting boundary  \nPrepared: July 28, 2026  \nDecision meeting: August 5, 2026\n\nThis audit prevents proposed Linked Art 1.1 terms from entering Meta Museum\ncontracts before their names, domains, ranges, and endpoint placement are final.\nThe executable source of truth is\n`LINKED_ART_1_1_COMPATIBILITY_BOUNDARY` in `src/utils/linked-art.ts`.\n\n## Current boundary\n\n| State | Terms and patterns | Current behavior |\n|---|---|---|\n| Supported | `added_member_by`, `removed_member_by`; auction/lot/purchase separation; exemplar-level Set provenance | Preserved by current contracts and covered by regression fixtures. |\n| Candidate vocabulary/profile | possibly/probably attribution terms; brief/full response profiles | Existing implementation can demonstrate the behavior, but final 1.1 names remain pending. |\n| Candidate properties | `erased_by`, `distinct_from`, `used_object_of_type`, `top_concept_of`, `Name.created_by`, `overlaps_with`, `portrayed`, `ascribed_dimension` | Not added to endpoint allowlists before the community decision. |\n| Candidate classes | `Erasure`, `Portrayal` | Not mapped to a core endpoint before final class constraints are published. |\n| Deferred | `AuditoryWork`, `InteractiveWork`, `Fund`, `TKLabel`, `Phase` | Source information may be retained, but no local endpoint class or proprietary substitute is introduced. |\n\n`Name.created_by` is listed as a candidate because nested source structures are\ncurrently preserved without a Name-specific 1.1 schema gate. Preservation must\nnot be described as normative support until the accepted constraint is recorded.\n\n## Verified behavior\n\nThe compatibility regression suite proves that:\n\n1. Every audited term has one unique decision state.\n2. Pending properties remain outside their proposed endpoint-family allowlists.\n3. Pending and deferred classes remain outside the core endpoint map.\n4. The active terms-ontology member lifecycle inverses remain accepted.\n\nThe candidate fixture pack also proves that current storage and inspection\npreserve `Name.created_by`, Removal, Joining, and Leaving structures without\npromoting their pending 1.1 constraints into the normative endpoint profile.\n\nRun:\n\n```text\npnpm exec tsx --test tests/quality/linked-art-1-1-compatibility-boundary.test.ts\n```\n\n## Post-meeting procedure\n\nFor each accepted term:\n\n1. Record the issue resolution, final spelling, domain, range, context URI, and\n   target release in the agenda tracker and reference ledger.\n2. Change its decision state from `candidate` to `supported`.\n3. Add only the required endpoint or nested-structure allowlist entry.\n4. Add a positive fixture and retain a negative fixture for invalid placement.\n5. Run the compatibility, agenda-fixture, route, documentation, and schema suites.\n\nDeferred or unresolved terms must remain gated.\nIssue #637 now has an\n[internal confirmed-negative reconciliation contract](negative-reconciliation-contract.md).\nIt preserves curator, evidence, timestamp, rationale, and score provenance while\nwithholding any negative Linked Art projection. Automated `no-link` outcomes\nremain unresolved candidates rather than confirmed assertions.\n\nIssue #362 now has a\n[provisional response-profile contract](response-profile-contract.md). It\ndefines bounded server-side `brief` and `full` behavior while keeping those\nlabels internal until the community settles the final profile mechanism.\n","sections":[{"level":2,"heading":"Current boundary","anchor":"current-boundary"},{"level":2,"heading":"Verified behavior","anchor":"verified-behavior"},{"level":2,"heading":"Post-meeting procedure","anchor":"post-meeting-procedure"}],"html":"<h1 id=\"linked-art-1-1-compatibility-audit\">Linked Art 1.1 Compatibility Audit</h1>\n<p>Status: pre-meeting boundary  </p>\n<p>Prepared: July 28, 2026  </p>\n<p>Decision meeting: August 5, 2026</p>\n<p>This audit prevents proposed Linked Art 1.1 terms from entering Meta Museum</p>\n<p>contracts before their names, domains, ranges, and endpoint placement are final.</p>\n<p>The executable source of truth is</p>\n<p>`LINKED_ART_1_1_COMPATIBILITY_BOUNDARY` in `src/utils/linked-art.ts`.</p>\n<h2 id=\"current-boundary\">Current boundary</h2>\n<p>| State | Terms and patterns | Current behavior |</p>\n<p>|---|---|---|</p>\n<p>| Supported | `added_member_by`, `removed_member_by`; auction/lot/purchase separation; exemplar-level Set provenance | Preserved by current contracts and covered by regression fixtures. |</p>\n<p>| Candidate vocabulary/profile | possibly/probably attribution terms; brief/full response profiles | Existing implementation can demonstrate the behavior, but final 1.1 names remain pending. |</p>\n<p>| Candidate properties | `erased_by`, `distinct_from`, `used_object_of_type`, `top_concept_of`, `Name.created_by`, `overlaps_with`, `portrayed`, `ascribed_dimension` | Not added to endpoint allowlists before the community decision. |</p>\n<p>| Candidate classes | `Erasure`, `Portrayal` | Not mapped to a core endpoint before final class constraints are published. |</p>\n<p>| Deferred | `AuditoryWork`, `InteractiveWork`, `Fund`, `TKLabel`, `Phase` | Source information may be retained, but no local endpoint class or proprietary substitute is introduced. |</p>\n<p>`Name.created_by` is listed as a candidate because nested source structures are</p>\n<p>currently preserved without a Name-specific 1.1 schema gate. Preservation must</p>\n<p>not be described as normative support until the accepted constraint is recorded.</p>\n<h2 id=\"verified-behavior\">Verified behavior</h2>\n<p>The compatibility regression suite proves that:</p>\n<ol><li>Every audited term has one unique decision state.</li></ol>\n<ol><li>Pending properties remain outside their proposed endpoint-family allowlists.</li></ol>\n<ol><li>Pending and deferred classes remain outside the core endpoint map.</li></ol>\n<ol><li>The active terms-ontology member lifecycle inverses remain accepted.</li></ol>\n<p>The candidate fixture pack also proves that current storage and inspection</p>\n<p>preserve `Name.created_by`, Removal, Joining, and Leaving structures without</p>\n<p>promoting their pending 1.1 constraints into the normative endpoint profile.</p>\n<p>Run:</p>\n<pre><code>\npnpm exec tsx --test tests/quality/linked-art-1-1-compatibility-boundary.test.ts\n</code></pre>\n<h2 id=\"post-meeting-procedure\">Post-meeting procedure</h2>\n<p>For each accepted term:</p>\n<ol><li>Record the issue resolution, final spelling, domain, range, context URI, and</li></ol>\n<p>   target release in the agenda tracker and reference ledger.</p>\n<ol><li>Change its decision state from `candidate` to `supported`.</li></ol>\n<ol><li>Add only the required endpoint or nested-structure allowlist entry.</li></ol>\n<ol><li>Add a positive fixture and retain a negative fixture for invalid placement.</li></ol>\n<ol><li>Run the compatibility, agenda-fixture, route, documentation, and schema suites.</li></ol>\n<p>Deferred or unresolved terms must remain gated.</p>\n<p>Issue #637 now has an</p>\n<p>internal confirmed-negative reconciliation contract(negative-reconciliation-contract.md).</p>\n<p>It preserves curator, evidence, timestamp, rationale, and score provenance while</p>\n<p>withholding any negative Linked Art projection. Automated `no-link` outcomes</p>\n<p>remain unresolved candidates rather than confirmed assertions.</p>\n<p>Issue #362 now has a</p>\n<p>provisional response-profile contract(response-profile-contract.md). It</p>\n<p>defines bounded server-side `brief` and `full` behavior while keeping those</p>\n<p>labels internal until the community settles the final profile mechanism.</p>","updatedAt":"2018-10-20T01:46:40.000Z","checksum":"2a31162c172cd84b1835cd359e4ab70aa6a5f46f50cbac53446a5aaa2239ab4a","checksumPrefix":"2a31162c172c","anchorCount":3,"lineCount":67,"rawUrl":"/api/docs/content?path=linked-art%2F1.1-compatibility-audit.md","htmlUrl":"/docs?doc=linked-art%2F1.1-compatibility-audit.md","apiUrl":"/api/docs/content?path=linked-art%2F1.1-compatibility-audit.md"}