Skip to content

ORB-164: name the harness dimension as the rubric twins' UI-only divergence - #444

Merged
thomasluizon merged 2 commits into
mainfrom
thomasluizon/orb-164-c2-rubric-twin
Jul 31, 2026
Merged

ORB-164: name the harness dimension as the rubric twins' UI-only divergence#444
thomasluizon merged 2 commits into
mainfrom
thomasluizon/orb-164-c2-rubric-twin

Conversation

@thomasluizon

@thomasluizon thomasluizon commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Harness-Lockstep-Peer: 666

ORB-164, the orbit-api half of ORB-163 section C2. The paired orbit-ui-mobile pull request splits tools/test-tools.mjs into one case module per tool under tools/__tests__/ and rewrites dimension 15 of its rubric to point at that layout. This is the twin's side of that change.

What changed

One paragraph of .claude/skills/pr-review/rubric.md. It claimed the sanctioned divergences between the two rubric copies are "backend-only material, such as dimension 13's transaction-teardown bullet". That is false in one direction and the false direction is the one C2 touches: the largest sanctioned divergence is dimension 15, which is orbit-ui-mobile-only, and it is the exact hunk whose declared fingerprint the paired pull request recomputes. The paragraph now names both directions and says why a harness dimension cannot exist in this repository: neither the runner nor the tools/__tests__/ case modules are checked out here, so a reviewer here has no Harness Execution job to cite.

Decisions taken unattended

  1. Dimension 15 is not added to this copy. ORB-163's work order asks for dimension 15 "updated in BOTH repos identically". Read against the files, that is not executable: this repository's rubric has 14 dimensions and no harness dimension, because .claude/ here contains no reference to test-tools.mjs at all (grep -rn test-tools .claude/ AGENTS.md CLAUDE.md returns nothing) and tools/ here holds five entries, none of them a harness. Adding dimension 15 would make every orbit-api review cite a Harness Execution job that does not exist. The Linear ticket outranks the work order, and ORB-164 scope item 3 asks only to "land the rubric twin edit that the orbit-ui-mobile test-file split forces", so the edit landed is the one the split actually forces.
  2. The paragraph correction is in scope rather than deferred. It is wrong today, it sits in the file this ticket edits, and it describes precisely the divergence whose fingerprint the paired pull request recomputes. The repository rule is to fix what you find in a file you are already in, not to report it.
  3. REQUIRED_PATHS is not extended. check-lockstep.mjs fixes it at six paths and readManifest rejects a manifest declaring any other set, so nothing under tools/__tests__/ acquires a lockstep obligation. The paired pull request states that affirmatively in tools/README.md.

Verification

Every command below had its exit code written to a file and read back separately, never through a pipe. Repo-tool appeal: this pull request's only claim is a lockstep verdict, so the checker's invocation and its exit code are the evidence.

  • node tools/check-lockstep.mjs --ui-root <ui worktree> --api-root <this worktree> Repo-tool appeal: ORB-164's acceptance criteria require this exact invocation and its exit code pasted as the pull request's proof. Run from the orbit-ui-mobile worktree: exit 0, HARNESS LOCKSTEP OK: 6 pairs checked, after the two stale fingerprints were replaced in the paired pull request. Before that replacement the same command exited 1 and named both stale declarations, which is the evidence that the pairing is load bearing rather than decorative.
  • The two fingerprints the rubric edits invalidated, both in declaration repository-rubric-dimensions: 775306439e6ac6b29368e6d372c1ea592906c8c1ef3c791e924c5690b547230a for the header paragraph this pull request rewrites, and 04a771464204f4f33f213c0fac476376860253f9ca841550fa899fb60da4a849 for dimension 15. Their replacements are f82c87488ad948028fd54e0227835119051e9534a7e00df14b0e7b5ecc92605b and 757aa4ef2ad3e6f3ccad8e46fe0e26934be69be1c6df9e12e68c9d66bbfb37a2. Both were read off the checker's own drift output, never computed by hand.
  • No em dash was added: every added line of this diff was scanned for U+2014 and the count is zero. The Dash Ban job skips .claude/ wholesale, so this was checked by hand.

…rgence

The orbit-ui-mobile test-file split (ORB-163 section C2) moves every decision-path
case body out of tools/test-tools.mjs and into one module per tool under
tools/__tests__/, and rewrites dimension 15 of the orbit-ui-mobile rubric to point
at that layout. Dimension 15 has no counterpart here, so the split forces no
dimension edit in this copy. What it does force is an honest description of the
divergence, because this file currently claims the sanctioned differences are
"backend-only material", and the largest one runs the other way: dimension 15 is
orbit-ui-mobile-only, and it is the exact hunk whose declared fingerprint the
paired pull request recomputes.

The paragraph now names both directions and says why the harness dimension cannot
exist here: neither the runner nor the tools/__tests__/ case modules are checked
out in this repository, so a reviewer here has no Harness Execution job to cite.

Verified, not assumed: node tools/check-lockstep.mjs run from the orbit-ui-mobile
worktree with --api-root pointed at this one exits 0 with
"HARNESS LOCKSTEP OK: 6 pairs checked" after the paired fingerprint update, with
the exit code read from a file rather than through a pipe. Repo-tool appeal: the
lockstep checker's invocation and its exit code are the evidence this commit
claims, so naming them is the record.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bojq5cLFZ87iBD8zhnoSWH

@claude claude 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.

Code Review: PR #444

Scope: single file, .claude/skills/pr-review/rubric.md (+7/-3, one paragraph)
Recommendation: APPROVE

Summary

Documentation-only correction to the rubric's own self-description of sanctioned divergences between the orbit-api and orbit-ui-mobile copies of rubric.md. It replaces a one-directional (backend-only) claim with a two-directional one, naming dimension 15 (harness-execution evidence) as the sanctioned orbit-ui-mobile-only counterpart to dimension 13's backend-only transaction-teardown bullet.

Verification performed

  • Confirmed this repo's rubric.md has 14 dimensions (1–14, ending at "FEATURES.md parity"), no dimension 15 — consistent with the new text's claim that dimension 15 has no counterpart here, and consistent with the PR body's decision to not add a dimension-15 stub to this copy.
  • Confirmed dimension 13 in this file does contain the "Transaction teardown" bullet citing ORBIT0002 — matches the unchanged half of the sentence.
  • Grepped for test-tools/check-lockstep/tools/__tests__/"dimension 15"/"harness" across the repo — nothing relevant, confirming those paths genuinely don't exist here. tools/ holds exactly the 5 unrelated scripts the PR body cites.
  • Checked added lines for U+2014 (em dash) — none found, matching the PR body's manual-scan claim.
  • The unchanged closing sentence ("a drift between the two is a defect, not a variant") still reads correctly against the now-bidirectional "sanctioned divergences" framing.

Findings

Critical: None
High: None
Medium: None
Low / Info:

  • The new paragraph also asserts structure about the sibling repo (tools/test-tools.mjs splitting into tools/__tests__/ in orbit-ui-mobile). Not independently verifiable from this checkout — orbit-ui-mobile isn't checked out here. Not a defect: the PR body documents the check-lockstep.mjs invocation and fingerprint replacement as evidence for that side.

Rubric dimensions

Only Correctness (#1) and Comment policy (#4, N/A — prose, not source the linter targets) have surface here. All other dimensions are N/A — the diff is a one-paragraph markdown edit inside .claude/, touching none of their surfaces.

Subagents

Agent Verdict
security-reviewer N/A — no src/ code changed
contract-aligner N/A — no DTO/Controller/packages/shared type changed

Validation

Skipped per CI adaptation — Build/Unit Tests/SonarCloud run as separate required checks; no .cs files in this diff.

What's good

The correction is precise and self-verifying: every claim it makes about this repo checks out under grep, and the PR body supplies the check-lockstep.mjs exit-code evidence for the half that lives in the sibling repo. The author explicitly declined to add a dimension-15 stub here rather than mechanically satisfying a work-order instruction that would have made this repo's rubric cite a nonexistent Harness Execution job.

Recommendation

Approve as-is. No action required.

@claude claude 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.

PR Review: #444 — ORB-164, rubric.md sanctioned-divergence correction

Recommendation: APPROVE

Scope

Single-file, single-paragraph change to .claude/skills/pr-review/rubric.md. No source code, DTOs, controllers, or cross-repo contract surface touched.

What changed

The rubric previously claimed sanctioned divergences between the orbit-api and orbit-ui-mobile copies of rubric.md are "backend-only material, such as dimension 13's transaction-teardown bullet." That was one-directional and incomplete: the largest sanctioned divergence — dimension 15 (harness-execution evidence) — is orbit-ui-mobile-only. This PR corrects the paragraph to name both directions and explains why dimension 15 has no counterpart here (the harness runner and its case modules live only in orbit-ui-mobile).

Independent verification (facts re-checked directly, not taken on faith)

  • tools/ in this repo contains exactly 5 entries (arch-map.mjs, check-dashes.mjs, check-frontmatter.mjs, check-push-target.mjs, dash-baseline.json) — no harness runner. Confirmed via ls.
  • grep -rn test-tools .claude/ AGENTS.md CLAUDE.md returns nothing — confirms no dimension-15 material exists in this repo. Confirmed directly.
  • .claude/skills/pr-review/rubric.md has exactly 14 ### N. dimension headers (1 through 14, ending "FEATURES.md parity"), no dimension 15 — matches the PR's deliberate decision not to add one here. Confirmed via grep.
  • The diff itself (git diff 688a7b94 HEAD -- .claude/skills/pr-review/rubric.md) is a clean, coherent paragraph edit; reads correctly in context with the surrounding unchanged text.
  • No TODO/FIXME/narration-comment issues — this is prose, not code.

Re-review note

headRefOid for this PR is 807c29b2be7aef238708d29caccc66d6b6966320, which is the exact commit already reviewed and APPROVED by this reviewer on 2026-07-31T03:28:18Z. There is no new diff since that review (the only subsequent commit, 57ac9ff6, is GitHub's synthetic merge-ref commit for the mergeable check, not new content). This pass is a re-verification of the standing approval, not a fresh review — all facts above were independently re-checked and confirm no discrepancies.

Findings

Critical / High / Medium: None.
Low / Info: The PR also describes structure on the orbit-ui-mobile side (tools/test-tools.mjstools/__tests__/ split). That repo is not checked out in this job, so that half is not independently verifiable here — not a defect, just out of scope for this checkout.

Dimensions not applicable

All rubric dimensions except #1 (Correctness) and #4 (Comment policy) are N/A — the diff touches no code, UI, i18n, DTOs, or FEATURES.md surface. Both applicable dimensions check out clean.

@sonarqubecloud

Copy link
Copy Markdown

@thomasluizon
thomasluizon merged commit 37e54e8 into main Jul 31, 2026
23 checks passed
@thomasluizon
thomasluizon deleted the thomasluizon/orb-164-c2-rubric-twin branch July 31, 2026 03:55
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