Skip to content

ci(docs-truth): machine-check R-15 gate status across the contract and the ledger (#933) - #934

Merged
qnbs merged 2 commits into
mainfrom
ci/933-r15-status-guard
Oct 1, 2026
Merged

qnbs merged 2 commits into
mainfrom
ci/933-r15-status-guard

Conversation

@qnbs

@qnbs qnbs commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

Resolves #933 (Linear QNB-177; parent learning lane #780 / QNB-90). This is the recurrence-prevention mechanism for a validated defect class.

Recurring defect: R-15 gate status was hand-maintained in three places (contract header §0, contract §21, Core Migration Ledger row 10). Reviewers caught contradictions between them in four consecutive PRs: #917, #928, #929 and #930, for example "Gates 3–7 not admitted" next to "Gate 3 slice 3A implemented". Each one cost a correction wave.

Mechanism: the gate status becomes executable instead of prose-only.

Piece What
Single source Contract §20 gets one machine-readable R15_GATE_STATUS block (R15_GATE1A … R15_GATE7)
Guard standalone scripts/check-r15-gate-status.mjs, chained into pnpm docs:check (CI) and its own ci:prepush stage. It is deliberately outside the protected merge-admission evaluator graph: check-doc-metrics.mjs changes only through a base-owned protected transition, and it is byte-identical to base here.
Rule 0 Exactly one block; no duplicate or unknown gate ids; statuses limited to an allowlist
Rule 1 Ledger row 10 entries must equal the block (duplicates and unknown ids are findings)
Rule 2 The ledger must carry every gate that is not NOT_ADMITTED
Rule 3 No current (non-historical) clause in the contract or ledger may call a gate "not admitted"/"unadmitted" when the block marks it implemented, or partial (SLICE_*) without "the rest of" that gate

The current docs pass. Each seeded contradiction fails, including both shapes reviewers caught.

Tests (tests/unit/checkR15GateStatus.test.ts, 12 tests)

The parser keeps gate references with their status across commas and soft wraps, separates sentences and contrastive clauses, resolves Gate 1a/1b and slice references (Gate 3B, Gate 3 slice 3B) exactly, and ignores historical sections, code fences and HTML comments. After the first review epoch it also rejects conflicting duplicates (in either order), extra tokens and typo statuses.

Also

sync:readme now also updates the project-tree line "Vitest unit tests (the N+ total …)", which docs:check already verified but no synchronizer rule covered. README metrics stay generated, not hand-edited.

Scope

Not included: gate decisions themselves (gate PRs still update the block), public-doc parity (#724/#932), roadmap reset (#559), and required-check or branch-protection changes.

Local proof

docs:check OK; checkDocMetrics and checkR15GateStatus tests pass (142 total); pnpm run ci:prepush passes.

Fixes #933
Part of #780

Summary by Sourcery

Enforce synchronized R-15 gate status across the storage contract and migration ledger through automated documentation validation.

New Features:

  • Add machine-readable R-15 gate status as the canonical source for contract and migration-ledger documentation.

Bug Fixes:

  • Prevent contradictions between recorded R-15 gate progress and current contract or ledger prose from passing documentation checks.

Enhancements:

  • Validate gate entries, ledger coverage, status consistency, and historical/current prose references with a dedicated documentation guard.
  • Extend README metric synchronization to update the project-tree test-count line.

CI:

  • Run the R-15 gate status validation as part of documentation checks and pre-push CI.

Documentation:

  • Update the R-15 contract and migration ledger with synchronized gate-status information and refresh documented test metrics.

Tests:

  • Add unit coverage for canonical status validation, ledger agreement, prose contradiction detection, parsing edge cases, and historical/code/comment exclusions.

Chores:

  • Record the documentation-truth safeguards in the unreleased changelog.

Summary by cubic

Machine-checks R-15 gate status so the storage contract and Core Migration Ledger can't drift. Gate status was hand-maintained in three places and reviewers caught contradictions across four consecutive PRs; the contract's §20 R15_GATE_STATUS block is now the single source, enforced by a new standalone guard run from docs:check and ci:prepush.

  • The guard fails when the ledger's row-10 R15_GATE* tokens differ from the block, when the ledger omits a gate that isn't NOT_ADMITTED, or when current prose calls an implemented or partial gate "not admitted".
  • Prose is scanned as current text only: historical sections, code fences and HTML comments are stripped, soft wraps are joined, and clauses split at sentences, semicolons and contrastive joints so each status stays bound to its own gate reference.
  • Entries are validated rather than collapsed — exactly one block, no duplicate or unknown gate tokens, statuses limited to an explicit allowlist — and Gate 1a/1b and slice references resolve exactly.
  • Adds 12 unit tests covering both reviewer-caught contradiction shapes, token mismatch, missing and extra gates, slice references, and malformed entries.
  • sync:readme now also updates the project-tree "Vitest unit tests (the N+ total …)" line, and the changelog records the guard, so README and changelog metrics stay generated.

Written for commit 59ee541. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Documentation
    • Updated the displayed test totals to 8,514+ tests across 633 files.
    • Documented the current implementation status of R-15 migration gates.
  • Chores
    • Documentation checks now flag inconsistencies between R-15 gate statuses and related migration records.

@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
worldscript-studio Ready Ready Preview Oct 1, 2026 11:43am UTC

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 10 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 79 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: f93cd0c4-f883-411b-8b99-e0e74b087a6a

📥 Commits

Reviewing files that changed from the base of the PR and between f16586d and 59ee541.

📒 Files selected for processing (10)
  • CHANGELOG.md
  • README.md
  • docs/native/CORE-MIGRATION-LEDGER.md
  • docs/native/R15-SECURE-STORAGE-CONTRACT.md
  • package.json
  • scripts/check-r15-gate-status.d.mts
  • scripts/check-r15-gate-status.mjs
  • scripts/ci-prepush-lowend.mjs
  • scripts/sync-readme-metrics.mjs
  • tests/unit/checkR15GateStatus.test.ts
📝 Walkthrough

Walkthrough

The pull request adds machine-readable R-15 gate statuses and checks their consistency with the migration ledger and current contract wording. It also extends README test-metric synchronization and updates the displayed test totals.

Changes

R-15 Gate-Status Consistency

Layer / File(s) Summary
Canonical gate statuses
docs/native/R15-SECURE-STORAGE-CONTRACT.md, CHANGELOG.md
The contract records Gates 1a, 1b, and 2 as implemented headless, Gate 3 as durable-staging slice 3A, and Gates 4–7 as not admitted. The changelog records the documentation check.
Documentation audit enforcement
scripts/check-doc-metrics.d.mts, scripts/check-doc-metrics.mjs
The checker parses gate statuses, compares the contract with the ledger, checks current prose for status conflicts, and adds findings to the existing documentation audit.
Status parsing and validation tests
tests/unit/checkR15GateStatus.test.ts
Tests cover status agreement, missing or mismatched entries, prose conflicts, Gate 1 expansion, historical sections, and token parsing order.

README Test Metrics

Layer / File(s) Summary
Synchronize displayed test totals
scripts/sync-readme-metrics.mjs, README.md
The synchronizer updates the project-tree test total when a test count is available. README test totals now report 8,514+ tests across 633 files.

Priority: ⬇️ Low

Severity of issue fixed: Low

Merge Risk: 🟡 Moderate · up to f1658

The new documentation check can accept inconsistent statuses and reject valid wording. Correct these parsing defects before merging; the established impact is documentation enforcement, not storage runtime behavior.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@codeant-ai

codeant-ai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: 59ee5411
Scan Time: 2026-10-01 12:10:05 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED Rating S: No issues

View Full Results

@sourcery-ai

sourcery-ai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This PR replaces hand-maintained R-15 status consistency with a machine-checked contract-to-ledger truth model, including targeted detection of contradictory current prose and regression tests for the previously recurring drift patterns. It also closes a README metric synchronization gap and updates generated documentation metrics.

Sequence diagram for R-15 documentation truth validation

sequenceDiagram
  participant CI as Existing CI or ci:prepush
  participant Check as docs:check
  participant Contract as Contract §20
  participant Ledger as Core Migration Ledger
  participant Guard as scanR15GateStatusTruth

  CI->>Check: run docs:check
  Check->>Contract: read R15-SECURE-STORAGE-CONTRACT.md
  Check->>Ledger: read CORE-MIGRATION-LEDGER.md
  Check->>Guard: scanR15GateStatusTruth(contract, ledger)
  Guard->>Guard: parseR15GateTokens(contract)
  Guard->>Guard: parseR15GateTokens(ledger)
  Guard-->>Check: findings or empty result
  Check-->>CI: pass or fail
Loading

Flow diagram for R-15 consistency rules

flowchart TD
  Start[Read contract and ledger] --> Block{R15_GATE_STATUS block present?}
  Block -->|No| Fail[Report documentation finding]
  Block -->|Yes| Compare[Compare ledger R15_GATE tokens with canonical block]
  Compare --> Rules[Check non-NOT_ADMITTED gates are present in ledger]
  Rules --> Prose[Scan current contract and ledger prose]
  Prose --> Contradiction{Implemented or partial gate called not admitted?}
  Contradiction -->|Yes, without the rest-of exemption| Fail
  Contradiction -->|No or exempt| Pass[docs:check passes]
Loading

File-Level Changes

Change Details Files
Made the contract’s R-15 gate status the canonical machine-readable source and enforced contract/ledger/prose consistency in the existing documentation check.
  • Added the §20 R15_GATE_STATUS block covering gates 1A through 7.
  • Parsed and compared ledger R15_GATE* tokens against canonical statuses.
  • Required ledger entries for every admitted or partial gate.
  • Detected current prose that incorrectly describes implemented or partial gates as not admitted, while allowing “the rest of”/“remainder of” wording and ignoring historical sections.
  • Wired the guard into docs:check without changing CI workflows.
docs/native/R15-SECURE-STORAGE-CONTRACT.md
scripts/check-doc-metrics.d.mts
scripts/check-doc-metrics.mjs
Added regression coverage for status drift and the contradiction patterns previously caught during review.
  • Tested live-document agreement plus missing blocks or entries and mismatched ledger tokens.
  • Covered implemented and partial-gate contradiction shapes, Gate 1A/1B expansion, historical prose exclusion, and unnamed-gate clauses.
  • Verified token parsing behavior.
tests/unit/checkR15GateStatus.test.ts
Expanded generated README metric synchronization to cover the project-tree test-count line.
  • Updated the synchronizer to replace the project-tree Vitest total.
  • Regenerated README test totals and file counts.
  • Recorded the documentation-truth guard in the unreleased changelog.
scripts/sync-readme-metrics.mjs
README.md
CHANGELOG.md

Assessment against linked issues

Issue Objective Addressed Explanation
#933 Add a canonical, machine-readable R-15 gate status block to the binding contract and reconcile the contract and Core Migration Ledger documentation with that source of truth. ✅
#933 Implement and integrate a pure scanR15GateStatusTruth check into the existing docs:check path, detecting missing or mismatched ledger tokens and contradictions in current contract or ledger prose while ignoring historical sections and allowing 'the rest of' exemptions for partial gates. ✅
#933 Provide unit-test coverage for agreement, missing blocks or gates, token mismatches, omitted progressed gates, both known prose contradiction patterns, historical-section handling, and confirm that the reconciled live documents pass. ✅

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@deepsource-io

deepsource-io Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 01230de...59ee541 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Docker Oct 1, 2026 11:42a.m. Review ↗
Python Oct 1, 2026 11:42a.m. Review ↗
Rust Oct 1, 2026 11:42a.m. Review ↗
Shell Oct 1, 2026 11:42a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

codescene-access[bot]

This comment was marked as outdated.

@qnbs
qnbs marked this pull request as ready for review October 1, 2026 10:52
@codeant-ai

codeant-ai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR f16586d Oct 01, 2026 · 10:52 10:54

@codeant-ai

codeant-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Oct 1, 2026
codescene-access[bot]

This comment was marked as outdated.

@sourcery-ai sourcery-ai 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.

Hey - I've found 2 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="scripts/check-doc-metrics.mjs" line_range="1289-1293" />
<code_context>
+  /\b(?:(the (?:rest|remainder) of )?Gates? ([1-7])(?:[ab])?(?:\s*[–-]\s*([1-7]))?)/gi;
+
+/** `{ gate → status }` from every `R15_GATE<id>=<STATUS>` token in `text`. */
+export function parseR15GateTokens(text) {
+  const tokens = new Map();
+  for (const [, gate, status] of text.matchAll(R15_GATE_TOKEN)) tokens.set(gate, status);
+  return tokens;
+}
+
+function r15GateKind(status) {
</code_context>
<issue_to_address>
**issue (bug_risk):** Duplicate `R15_GATE*` tokens are silently collapsed into one map entry, so a ledger containing both a stale and a current value for the same gate passes whenever the last occurrence matches the canonical block. The guard therefore does not enforce that every ledger token equals the canonical status.

**Triggers:** When a duplicated gate token is introduced in the ledger or canonical status block.

**Suggested fix:** Reject duplicate gate IDs or report every token occurrence instead of overwriting earlier values in the `Map`.

```suggestion
export function parseR15GateTokens(text) {
  const tokens = new Map();
  for (const [, gate, status] of text.matchAll(R15_GATE_TOKEN)) {
    if (tokens.has(gate)) throw new Error(`duplicate R15 gate ID: ${gate}`);
    tokens.set(gate, status);
  }
  return tokens;
}
```
</issue_to_address>

### Comment 2
<location path="scripts/check-doc-metrics.mjs" line_range="1282-1286" />
<code_context>
+export const R15_CONTRACT_DOC = 'docs/native/R15-SECURE-STORAGE-CONTRACT.md';
+export const R15_LEDGER_DOC = 'docs/native/CORE-MIGRATION-LEDGER.md';
+export const R15_GATE_IDS = ['1A', '1B', '2', '3', '4', '5', '6', '7'];
+const R15_GATE_TOKEN = /\bR15_GATE([0-9][A-Z]?)=([A-Z0-9_+]+)/g;
+const R15_STATUS_BLOCK = /```text\nR15_GATE_STATUS\n([\s\S]*?)```/;
+const R15_NOT_ADMITTED = /\b(?:not admitted|unadmitted)\b/i;
+const R15_GATE_REF =
+  /\b(?:(the (?:rest|remainder) of )?Gates? ([1-7])(?:[ab])?(?:\s*[–-]\s*([1-7]))?)/gi;
+
+/** `{ gate → status }` from every `R15_GATE<id>=<STATUS>` token in `text`. */
</code_context>
<issue_to_address>
**issue (bug_risk):** The token parser accepts arbitrary gate identifiers and arbitrary uppercase status values, while validation only checks that the eight expected IDs exist and that ledger entries agree with whatever the block says. A canonical block can therefore contain an invalid status such as `R15_GATE4=IMPLEMENTED_TYPO`, and the guard classifies it as implemented and accepts it rather than rejecting the malformed status.

**Triggers:** When a status block contains a typo or an unsupported status value.

**Suggested fix:** Validate canonical IDs and statuses against an explicit allowlist, and reject unknown or malformed `R15_GATE*` entries.
</issue_to_address>

Sourcery assessment

Approval pending. 2 findings to address first.

Blocking findings: scripts/check-doc-metrics.mjs:1293, scripts/check-doc-metrics.mjs:1286


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated

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

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: 5970014f-28c9-4ce5-9238-167d429353e5

📥 Commits

Reviewing files that changed from the base of the PR and between 01230de and f16586d.

📒 Files selected for processing (7)
  • CHANGELOG.md
  • README.md
  • docs/native/R15-SECURE-STORAGE-CONTRACT.md
  • scripts/check-doc-metrics.d.mts
  • scripts/check-doc-metrics.mjs
  • scripts/sync-readme-metrics.mjs
  • tests/unit/checkR15GateStatus.test.ts

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated

@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: f16586d24a

ℹ️ 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 thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 7 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated

@cubic-dev-ai cubic-dev-ai 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.

cubic analysis

Review completed against the latest diff

Linked issue analysis

Linked issue: qnbs/WorldScript-Studio#933: ci(docs-truth): machine-check R-15 gate status agreement between the contract and the Core Migration Ledger

Status Acceptance criteria Notes
✅ Add a canonical machine-readable R-15 gate-status block to the contract. The contract adds an `R15_GATE_STATUS` block with entries for Gates 1A–7.
⚠️ Require the ledger’s R15_GATE tokens to match the contract block, detecting missing, extra, or different values. Different and extra ledger tokens are detected, and missing progressed-gate tokens are detected. However, missing `NOT_ADMITTED` tokens are allowed, so the implementation does not enforce full token equality as specified.
✅ Detect current prose that calls a gate range not admitted when the canonical block marks a gate in that range partial or implemented, while ignoring historical sections. The scanner checks current contract and ledger prose for the specified contradiction, allows the documented “rest of” partial-gate wording, and strips historical sections.
⚠️ Add unit tests for agreement, token mismatch, missing gates, range contradictions, and historical-section handling. Tests cover agreement, mismatches, a missing gate from the block, missing progressed gates from the ledger, contradictions, and historical sections. They do not cover omission of a `NOT_ADMITTED` ledger token, which the implementation also permits.
✅ Run the guard through the existing docs:check path and reconcile the live documents. The checker invokes the guard on both live documents, and a live-repository test asserts they produce no findings. The PR reports docs:check passes.

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread tests/unit/checkR15GateStatus.test.ts Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
Comment thread scripts/check-doc-metrics.mjs Outdated
codescene-access[bot]

This comment was marked as outdated.

sourcery-ai[bot]
sourcery-ai Bot previously approved these changes Oct 1, 2026

@sourcery-ai sourcery-ai 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.

Sourcery assessment

Approved.

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

[check-pr-size] PR size is over the target tier (normal profile): 10 files, 567 meaningful lines, 2 commits — limit ≤8 files / ≤400 lines / ≤6 commits. Consider splitting into smaller, independently reviewable PRs.

Comment thread scripts/check-r15-gate-status.mjs Fixed
@qnbs

qnbs commented Oct 1, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: 900c31cf52

ℹ️ 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 thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 9 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs
…d the ledger (#933)

The contract's single R15_GATE_STATUS block is canonical. scripts/check-r15-gate-status.mjs
requires it to be well formed (every gate once, fixed statuses or a slice of the same gate),
ledger row 10 to agree with it, and no current prose to call a gate or a delivered slice not
admitted. Runs in pnpm docs:check and ci:prepush, outside the protected merge-admission
evaluator graph.
Comment thread scripts/check-r15-gate-status.mjs Outdated
Comment thread scripts/check-r15-gate-status.mjs
Comment thread scripts/check-r15-gate-status.mjs Outdated

@sourcery-ai sourcery-ai 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.

Sourcery assessment

Approved.

@codescene-access codescene-access 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.

Gates Passed
3 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@qnbs

qnbs commented Oct 1, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: 59ee5411b3

ℹ️ 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 thread scripts/check-r15-gate-status.mjs
Comment thread scripts/check-r15-gate-status.mjs
Comment thread scripts/check-r15-gate-status.mjs

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 4 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread scripts/check-r15-gate-status.mjs
Comment thread scripts/check-r15-gate-status.mjs
Comment thread scripts/check-r15-gate-status.mjs
@codecov

codecov Bot commented Oct 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@qnbs
qnbs merged commit c424012 into main Oct 1, 2026
49 checks passed
@qnbs
qnbs deleted the ci/933-r15-status-guard branch October 1, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(docs-truth): machine-check R-15 gate status agreement between the contract and the Core Migration Ledger

2 participants