Skip to content

chore: mirror the pr-review rubric provenance contract from orbit-ui-mobile - #467

Open
thomasluizon wants to merge 1 commit into
fix/gitattributes-skill-md-eolfrom
chore/mirror-pr-review-rubric-provenance
Open

chore: mirror the pr-review rubric provenance contract from orbit-ui-mobile#467
thomasluizon wants to merge 1 commit into
fix/gitattributes-skill-md-eolfrom
chore/mirror-pr-review-rubric-provenance

Conversation

@thomasluizon

Copy link
Copy Markdown
Owner

Stacked on #466. Base is fix/gitattributes-skill-md-eol, so this checkout materializes LF and the copied file is byte-identical to the UI original on disk as well as in git. Merge #466 first.

What this is

The pr-review skill is single-sourced in orbit-ui-mobile and mirrored here. tools/launch-worker.mjs refuses an API review when the two copies disagree by committed blob, so this is the mirror half of orbit-ui-mobile#701 and the two must land together.

The contract change

A review artifact now carries rubric provenance instead of a single base SHA:

Was Is
rubricBaseOid rubricRepositoryKey, rubricCommitOid, rubricBlobOid
rubricArtifactPath rubricArtifactPath (unchanged)

record-readiness.mjs proves all of it with git and refuses the receipt when it does not hold, so a review bound to the wrong or a stale rubric cannot reach READY.

For this repository the binding is always own-base: orbit-api carries .claude/skills/pr-review/rubric.md, so rubricRepositoryKey is api and rubricCommitOid is the pull request's own base SHA. That is exactly the strength the old rule had.

The second binding, canonical-main, exists for orbit-landing-page, which has no .claude tree at HEAD or at any commit and could therefore never mint a READY receipt at all. Four complete landing pull requests reported REVIEW_STALE on 2026-08-08 for that reason.

Verification

Body copied verbatim from the UI original. Both files hash to:

86d428358a2b460db68d1a5c7db99d8aa5a5472bb2ed7ac093f69a819044decf

Merge order

Merge this together with orbit-ui-mobile#701. The blob-parity gate refuses every ui and api review in the window where only one of the two has landed. Order across the whole set:

  1. orbit-api fix: pin .claude markdown to LF so the pr-review parity gate compares equal bytes #466 (the .gitattributes eol pin)
  2. orbit-ui-mobile #700 (the write-target guards)
  3. orbit-ui-mobile #701 and this pull request, together

Refs ORB-215

…mobile

The pr-review skill is single-sourced in orbit-ui-mobile and mirrored here, and
tools/launch-worker.mjs refuses an API review when the two copies disagree by
committed blob. This is the mirror half of orbit-ui-mobile#701.

The contract change: a review artifact now carries rubricRepositoryKey,
rubricCommitOid, rubricBlobOid and rubricArtifactPath instead of rubricBaseOid.
record-readiness.mjs proves all four with git and refuses the receipt when they do
not hold, so a review bound to the wrong or a stale rubric cannot reach READY.

For this repository the binding is always own-base: orbit-api carries
.claude/skills/pr-review/rubric.md, so rubricRepositoryKey is api and
rubricCommitOid is the pull request's own base SHA. The canonical-main binding
exists for orbit-landing-page, which has no .claude tree at any commit and could
therefore never mint a READY receipt at all.

Body copied verbatim. Verified byte-identical to the UI copy:
  86d428358a2b460db68d1a5c7db99d8aa5a5472bb2ed7ac093f69a819044decf

MERGE THIS TOGETHER WITH orbit-ui-mobile#701. The blob-parity gate refuses every
ui and api review in the window where only one of the two has landed.

Refs ORB-215

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7750b001f7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +192 to +193
- **The repository carries no rubric** (orbit-landing-page has no `.claude` tree at any commit).
`rubricRepositoryKey` is `ui` and `rubricCommitOid` is orbit-ui-mobile's current `origin/main`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Materialize landing rubrics from the UI repository

For an orbit-landing-page review, this binding requires the rubric from orbit-ui-mobile, but the unchanged Resolve scope procedure still runs git show {baseRefOid}:.claude/skills/pr-review/rubric.md in the target repository, which this section explicitly says has no .claude tree. Following the skill therefore fails before a landing review can produce a receipt. Update the snapshot capture and blob-resolution steps to fetch and read rubricCommitOid from the repository identified by rubricRepositoryKey.

Useful? React with 👍 / 👎.

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.

1 participant