Repository navigation
Fix variant J README badges and preserve authored rows - #13
CompleteDotTech wants to merge 158 commits into
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c07796e7fb
ℹ️ 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".
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1792e3fdfb
ℹ️ 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".
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…age, plain link-title reference, fake badge beside type image) (#7) Commits the paragraph-split local image, plain link-title reference and unsplit control in tests/test_readmelint.py; the fake-badge-beside-type-image controls in tests/test_reference_badge_count.py were authored by Haiku. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ntrols (#7) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Evidence (untracked, left in place): C:/Users/timot/AppData/Local/showcase-orchestration/20261031/{probe_e0d_label_shortcut.py,gfm-e0d-label-shortcut.json,gfm-e0d-shortcut_fallback.html,gfm-e0d-unresolved.html,label-shortcut-e0d9745c-vm.json}. Old-SHA evidence. Source unchanged.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
body_sha strips whitespace, so an authored indented badge row hashed the same as its unindented migrated row and was wrongly exempted from the readme-shrink guard. badge_body now emits badge_sha in replaces= and preservation() matches against badge_sha. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…nk openers - Destination parsing rejects a paragraph boundary in the leading whitespace, the whitespace before the title or `)`, the title itself and the whitespace after it. The boundary check is one bisection per region over cached blank-line starts. - The inline link span scan keeps a stack of link-text openers. Each `](` consumes one opener, so a completed link's opener cannot back an orphan destination. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ounded titles and consumed openers (#7) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Add _search_comment, which returns the first unescaped HTML comment that is either an HTML block opener (inside html_spans) or contains no paragraph break. A mid-line comment crossing a blank line is invalid per CommonMark/GFM, so `<!--` stays literal and the search resumes one character on. Replace the three comment call sites in readmelint.py with it. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
GitHub GFM renders two badges for the completed-link plus orphan `](x "<!--")` header (gfm-f774-orphan_comment_badge.html), and one local image for the matching local-image case (gfm-f774-orphan_comment_local.html). The round-4 assertion expected a single badge and contradicted that oracle. - Assert no "2-4 header badges required" failure for the completed-link and code-span header cases instead of asserting the one-badge expectation. - Add the local-image counterpart: the missing file must still be reported. - Add controls: a blank-line block comment and a single-paragraph inline comment still hide an image; an inline comment closed in its paragraph does not fail the badge count. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…ultiline labels and tab columns Regression tests for the #7 f774/26c4933 findings. Existing tests are unchanged. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ition labels, tab residual indentation (#7) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…residual columns (#7) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
1 similar comment
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…uption regressions (#7) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…arkers other than 1. do not interrupt a paragraph (#7) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ption in README lint (#7) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Resolves #7
What and why
Variant J (
.github) READMEs now derive a GitHub-profile type badge using the standard's badge category and brand palette, alongside the captured license badge, soreadme --writefills the badge block andlint readmepasses (R7). Generated badge rows carry a content digest: untouched generated rows refresh with metadata or badge-mode changes, while custom and edited authored rows (including four-space or tab indented ones and duplicate badge blocks) survive upgrade and header refresh (no morereadme-shrinkon hand-written badges). Historical generated Markdown rows are recognized by exact format, order and palette. A CRLF generated row is recognized and refreshed, normalized to LF. HTML and Markdown image parsing supports the badge syntax documented in the README reference. Missing licenses are not invented. The card category is unchanged.The Markdown/HTML image scanner (
readmelint, shared parsing behaviour, reviewed as shared code) was hardened against GitHub's renderer through the review rounds: container fences and continuation, reference definitions (valid, invalid, balanced and unbalanced destinations, multiline labels, inert definition openers, list-continuation and tab-column handling), link titles (bounded by their paragraph, heading or list block), comment openers inside tags and orphan openers, backtick-bearing labels and destinations, shortcut-reference fallback and fake badges beside a real type image. The scanner stays non-recursive, with deterministic work-count regressions.Updates specialist instructions, README reference and changelog. No sibling shared files changed. There are no task sub-issues for #7.
Prior work
Searched this repository's open and closed issues and PRs again (badge, variant J, readme lint markdown, reference definition). Issue #7 covers this defect and this is the only fix PR (#13). Related, not duplicated: issue #125 (content images and escaped backticks, tracked separately) and merged PRs #19, #20.
Tests and evidence (head
e8a3e226164f409f1c57243af6c79e043b250232, base main2243010d67725c17a163223d84f91a119f7262dd)vm-e8a3e226...-result.json): package tests, package validator, full pytest and quality validator all passed: 2026 passed, 11 skipped, 37 subtests passed. The skips are absent external fixtures.parser-preflight113-e8a3e226...json): all 113 semantic cases match the GitHub renderer, with the digest, template-ownership and duplicate-block preservation controls and two deterministic indexed-work scaling probes. These are synthetic probes with GitHub's own rendering as the oracle, not a whole-parser complexity proof.i7-r5-full) was INTERRUPTED (its process was terminated; the log stopped early and no receipt was produced), which is NOT a pass; a serialized retry (i7c-pytest) then completed: 2019 passed, 18 skipped, 37 subtests, with the package tests (OK, 2 skipped), the package validator and the quality validator also passing. The two are reported separately and the retry is not presented as the VM result.1.interrupts a paragraph (0.and2.do not), plus the integration of current main.Boundaries
Read-only GitHub behavior, activation keys, consent, private assets and approval gates are preserved. No release, merge, visibility or settings change is requested.
🤖 Generated with Claude Code