Skip to content

Summary comment format fixes, unsigned-commit row, phase 5 records - #26

Merged
irvingpop merged 5 commits into
mainfrom
comment-format
Nov 4, 2026
Merged

irvingpop merged 5 commits into
mainfrom
comment-format

Conversation

@irvingpop

Copy link
Copy Markdown
Member

Summary

Summary comment format fixes from the pilot, plus phase 5 records.

  • One row per cause: passes that failed for the same reason share one row.
  • A dependency review failure caused by a disabled Dependency graph is labeled as a repo setting for a repo admin, not an author fault. The label needs GitHub's error message as evidence; a bare 403 keeps the neutral wording.
  • File paths show as plain code spans (escaping unchanged; pipes stay escaped for table cells, including a backslash before a pipe).
  • An empty token table collapses to one line.
  • New informational row: the number of commits that are not verified-signed, with a link to GitHub's commit signing guide. It never changes the verdict or risk, and any read error gives no row.
  • Docs: P5-8 owner acceptance, P5-9 re-run tests, P5-10 bypass matrix and rollback rehearsal, P5-11 phase 5 exit, P6-1/P6-2 comment format as built.

Test plan

  • cd review && uv run pytest tests/unit: 2928 passed (was 2873 on main)
  • Adversarial review + scoped re-review of the fixes: clean
  • Owner: make release-plan / make release after merge (comment code changed)

🤖 Generated with Claude Code

irvingpop and others added 5 commits November 3, 2026 21:13
…im pilot detail

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unsigned commits row

- Dedupe: the dependency-review job result and step outcome show as one
  row (table and record); passes that failed for one reason share a row.
- Repo setting: when dependency review failed and GitHub answers the
  dependency comparison with a non-rate-limit 403 (Dependency graph off),
  the row, callout, checks strip and record name it a repo setting that
  only a repo admin can fix. The author is not given that step.
- Paths show as plain text in code spans (same _code_span rules), and
  reason details too, instead of backslash-escaped prose.
- Token usage: one line instead of an all "not recorded" table.
- Informational row: count of PR commits that are not verified-signed,
  with GitHub's signing guide link. Read by the gate job from
  GET /pulls/{n}/commits; never a gate input, never in the heading count.

Display only: the gate result, reasons, exit code and waiver line do not
change. Unit tests: 2873 -> 2896.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rix (P5-10), phase 5 exit (P5-11)

Spec "Summary comment": one row per cause, repo setting rows (the
Dependency graph probe), plain paths in code spans, the one-line token
usage, and the informational unsigned-commit row, all display only.
Decision log: P5-9 acceptance re-run (8 of 8 pass, unsigned commits
block finding), P5-10 bypass matrix and switch rehearsal (pass, stage 4
return test), P5-11 phase 5 exit, P6-1. Build plan: phase 5 items and
exit criteria checked; phase 6 release item for the comment format.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eeds evidence, safe pipes

- Unsigned-commit row: the summary is rendered without it first; it is
  kept only when the body with it differs by the row alone (no new cut,
  no overflow). Any error or exception in the commit read gives no row.
- Repo setting label: a 403 alone is no longer enough. The label needs
  GitHub's JSON error message to say the Dependency graph is disabled,
  with no rate limit; otherwise the neutral dependency row stays. The
  transport keeps an error body up to the byte cap for this.
- Code spans in tables: a backslash run before a pipe is split from it
  with a ZWSP, so each pipe has exactly one escaping backslash.

Tests: near-limit boundary (signed vs unsigned, same exit and body),
read errors, 14 probe answers that are not evidence, hostile file names
under two table-splitting rules. Unit tests 2896 -> 2928.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@irvingpop
irvingpop requested a review from a team as a code owner November 4, 2026 06:15
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

🔴 Hold deployment: Claude of Duty identified 1 item requiring attention

Mission: Review the code. Protect the branch. Deploy the future.

Caution

Out of range. This change is too large for the model review. File checks ran, but model checks did not. A maintainer can waive this.
Next step for the author: split the change, or ask a maintainer for a waiver (under "Waiver" below).

Severity Effect Where Finding Found by
⚠️ Not run Blocks, waivable Model passes Too large for automatic review. File checks ran, model checks did not. Workflow (code, no model)
File checks Review Security Supply chain Dependency review Coverage
✅ ok, 3 signals ⚠️ skipped, too large ⚠️ skipped, too large ⚠️ skipped, too large ✅ ok ✅ complete

Run 41784305401, attempt 1 for head 543a739 into main. The required workflow in the merge box is the result that counts.

Claude of Duty never approves a PR. A human reviewer gives the final approval.

🔑 Waiver: how a maintainer clears this

This PR fails for waivable reasons only. A person with write or admin access, who is not the PR author, posts this exact line as a new comment and replaces <reason> with the reason. Then they re-run the newest run of the required workflow through the GitHub REST API (POST .../actions/runs/{run_id}/rerun). Do not edit the comment afterwards. Do not close and reopen the PR to apply the waiver.

/oc-review override 543a7395827109fdaf05452f10095fe58d103c99 1aeacd0c1eee77d49084d057efade706a998fb98 <reason>

A waiver covers the code at this exact head and merge base. Any new push needs a new waiver.

📋 Full review record: reasons, checks, signals, finding details, model summaries, token usage

Reviewed snapshot

Head SHA Merge base SHA Base branch Run
543a7395827109fdaf05452f10095fe58d103c99 1aeacd0c1eee77d49084d057efade706a998fb98 main 41784305401, attempt 1

Reasons the gate failed

Reason Waivable? Detail
Change too large for the model review ✅ yes too large for automatic review

Checks (code, no model)

Check Result Detail
Hard blocks ✅ none
Coverage ✅ complete files in comparison 6, files collected 6, trees complete
Dependency changes ✅ none
Dependency review job ✅ success

Signals (context only, never block)

  • ℹ️ Very long line: lines longer than 500 characters, in docs/build-plan.md, lines 60 223
  • ℹ️ Hidden zero-width character: zero-width characters U+200B, in docs/claude-review-design.md, lines 588
  • ℹ️ Very long line: lines longer than 500 characters, in docs/claude-review-design.md, lines 43 588 605 608 609 610 611 612 616 620 and more

Dependency changes

None.

Finding details

Model output from untrusted input. Check it before you act on it. Verified means only that the quoted text is at that place. It does not mean the claim is true.

Blocking is decided by code from category and severity, never by the model. A finding in a blocking category blocks only at high or critical severity.

No findings from the passes that ran. The Review, Security, Supply chain pass did not run, so this is not a clean result.

Model summaries

Model output from untrusted input. Check it before you act on it. Verified means only that the quoted text is at that place. It does not mean the claim is true.

Pass Status Model Summary
Review ❌ skipped-size No summary. Reason: bundle status skipped-size
Security ❌ skipped-size No summary. Reason: bundle status skipped-size
Supply chain ❌ skipped-size No summary. Reason: bundle status skipped-size

Token usage

Pass Input Output Cache write Cache read Attempts
Review not recorded not recorded not recorded not recorded not recorded
Security not recorded not recorded not recorded not recorded not recorded
Supply chain not recorded not recorded not recorded not recorded not recorded
Recorded total not recorded not recorded not recorded not recorded not recorded

@irvingpop
irvingpop merged commit 364058d into main Nov 4, 2026
4 of 5 checks passed
@irvingpop
irvingpop deleted the comment-format branch November 4, 2026 14:51
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