Repository navigation
feat: add deterministic OpenMetadata admission preview receipts - #97
Draft
seonghobae wants to merge 32 commits into
Draft
seonghobae wants to merge 32 commits into
seonghobae wants to merge 32 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
pushed a commit
that referenced
this pull request
Sep 7, 2026
main has no docs/adr/ directory yet, but five open PRs each add ADRs under the same four-digit ids for unrelated decisions. ADR 0001 is claimed by #72 (product-authority-boundary), #73 (ontology-catalog-plane), #88 (measurement-context-registry) and #96 (openmetadata-anti-corruption-boundary). ADR 0002 is claimed by #72 (semantic-web-grounding), #73 (corporate-master-resolution-owner) and #97/#99 (openmetadata-admission-preview-receipts). #97 and #99 sharing a path is expected since they are the same succession lane. Whichever PR merges first takes the number; the rest either hit add/add conflicts or quietly land a different decision under an id that is already cited elsewhere. This baseline itself cites #73's corporate-master decision as "ADR 0002", which would silently point at #72's semantic-web-grounding if #72 merged first. Per the repair rule a number collision is a rename, not a redesign, so no PR is closed and no content changes. Records a default allocation derived mechanically from the merge order already documented here, and notes that the allocation follows the order if the order changes. Docs only. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpbqAeggRho3fQA1gn34UY
seonghobae
pushed a commit
that referenced
this pull request
Sep 7, 2026
Second finding in the ADR lane, separate from the number collision. main has no docs/adr/ directory, yet #73's two ADRs already declare Accepted: 0001-ontology-catalog-plane.md ("Status: Accepted", dated 2026-08-18) and 0002-corporate-master-resolution-owner.md ("Status: Accepted target contract"). #73 is still open and, per this baseline, failing trivy-fs and strix. Every other ADR-bearing PR uses a correct pre-merge status: #72 Draft, #88 Proposed, #96 Proposed, #97/#99 Proposed. #73 is the only outlier. A decision that exists solely inside an unmerged PR but claims Accepted makes decisions on the protected branch indistinguishable from proposals when reading the documents alone. Queued, pending and unmerged states are not acceptance evidence. The repair is one status line per file, not a content change: hold Proposed until #73 lands, then raise to Accepted. Also confirm the #97 to #99 succession from primary evidence rather than inference: #99's ADR states "대체 대상: PR #97의 유효 delta를 검증 후 승계", so the merge-order note no longer hedges. Notes that #73's ADRs already use the owner/repo#num convention for cross-repository references, which is why the lineage row's bare #74 was the exception rather than the local norm. Docs only. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpbqAeggRho3fQA1gn34UY
seonghobae
pushed a commit
that referenced
this pull request
Sep 9, 2026
…ur writers This document flagged the #97/#99 relationship as "successor, but verify the delta before closing either". Verified: it is not a full succession. #99 carries every file #97 touches except one — `tests/test_openmetadata_admission_evidence_verification.py`, whose three test functions are absent by name from #99's entire diff. #99 also adds work #97 lacks. The two PRs hold delta in both directions, so closing #97 as superseded would drop three receipt-verification tests. Recorded with its limit: name absence is not proof that no differently-named test covers the same guarantee, and the burden sits with the successor. Separately, both PRs edit this file — #97 at +28/-8 and #99 at +154/-134, which is a section-level rewrite. With #79 as its single writer and #102 stacked on that branch, this file now has four writers and will conflict whichever lands first. Raised as a repair finding, not a close: the baseline delta belongs on #79's branch, and the adapter PRs should stay inside their own boundary. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpbqAeggRho3fQA1gn34UY
seonghobae
pushed a commit
that referenced
this pull request
Sep 9, 2026
This baseline had no diagram, though the merge order it defines is a dependency graph and the repository already uses mermaid in docs/prd-trd.md. At 679 lines, the ordering was only recoverable by reading a hundred lines of prose. Adds two figures next to the merge order: the PR dependency DAG across the four groups (security unlock, catalog plane, docs, OpenMetadata), and a second showing which owner each failing check belongs to. The prose stays normative and the figures are a summary of it; that is stated inline so the two cannot silently diverge. The DAG also carries the open question rather than hiding it — #81 is drawn as the root because trivy-fs scans the merge ref, with a note that #73 has already cleared the same CVE on its own head, so which PR holds that root is unsettled. The #97 to #99 edge is dotted and labelled as an incomplete succession. Verified before commit: fences balanced, both mermaid blocks have balanced quotes, brackets and parens, and every PR number in the figures resolves to a currently open pull request. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpbqAeggRho3fQA1gn34UY
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.
Buyer problem
A normalized projection alone is not enough for reliable cross-product admission. Operators and downstream consumers need to prove which source installation, exact verified compatibility profile, submitted snapshot, and safe projection produced a candidate—without copying sample rows, SQL, DDL, transformation text, or other omitted source values into a general receipt.
Bounded successor
This PR is stacked on #96 and owns only the deterministic, non-mutating admission-preview contract.
context-graph-contractsPR head is consumed.RED contract
Commit
14d4151913c5c2a466a59a7fd5d9e517e96f5876was written before production code. It requires:2.0.1and2.0.1-release;POST /integrations/openmetadata/v1/table-snapshots:admission-preview;Focused RED verification fails at import because
preview_openmetadata_table_admissiondoes not exist. Production implementation follows on this branch.Intended receipt
The receipt will be suitable as the input contract for the next 3NF persistence slice, but it is not itself a durable admission or source-origin attestation.
Merge discipline
Part of #95.