Skip to content

Answer late review findings on #62, #78 and #79 - #85

Merged
polewskm merged 5 commits into
mainfrom
late-feedback
Oct 31, 2026
Merged

polewskm merged 5 commits into
mainfrom
late-feedback

Conversation

@polewskm

Copy link
Copy Markdown
Contributor

Answers the review threads left open on #62, #78 and #79 after they merged. The light review now runs only when every changed file is on an allowlist of documentation types. Release notes read code fences as CommonMark does. Each fix comes with tests.

Fixed findings:

Decisions

Refs #62
Refs #78
Refs #79

A fence closes only on its own marker, at least as long; an unclosed fence is named in the error. Answers late review findings F1 and F2 on #62.
Any file that isn't Markdown, text or reStructuredText, or an image or PDF in docs/, gets the standard review, template updates included. A light review whose hygiene call failed on a part of the diff says so and doesn't approve. Answers late review findings F1-F5 on #78.
…backs

Answers late review findings F1, F2, F4 and F5 on #79.
@polewskm
polewskm deployed to code-review October 31, 2026 19:09 — with GitHub Actions Active

@ncode-review ncode-review 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.

🤖 NCode Review at f296477: 3 new findings on the changed lines.

Not on a changed line:

  • 🟡 F2 Nit: No test for a closing-fence candidate with trailing text tools/release-notes.ts:31. A fence closes only when nothing follows the marker run (!rest.trim()), and no test checks that a line like ```markdown inside an open fence leaves it open. **Fix:** In the 'closes a fence only with its own marker' test, add ````markdown ```` inside a backtick fence, follow it with a heading, and assert that the heading stays in the section.

Comment thread tools/release-notes.ts Resolved
Comment thread src/review.ts Resolved
Comment thread src/review.ts Resolved
@ncode-review

ncode-review Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

🤖 Review complete

Verdict: 💬 Comment — This PR replaces the loose documentation regex in src/gather.ts with an allowlist: Markdown, reStructuredText and text files anywhere, plus images and PDFs under doc/ or docs/. It also leaves out public API listings and build or dependency .txt lists, and has reviewOrder use the same isDocumentation check. It's a small, low-risk change, and having one shared definition is better than the two regexes it replaces. Treating every .txt file as documentation means the exceptions have to be listed by name, so the list will likely keep growing.

7 reviewers run — 1 finding (run details)

Reviewer Model Findings Top
synthesis opus-5-5 1 🟡
architecture sonnet-5-5 1 🟡
completeness sonnet-5-5 0 🟢
conventions sonnet-5-5 0 🟢
correctness sonnet-5-5 0 🟢
hygiene haiku-5-5 0 🟢
rule-check sonnet-5-5 0 🟢
tests haiku-5-5 0 🟢

Skipped: api-compat, data-model, infrastructure, intent, performance, security

Findings
  • 🟡 F1 src/gather.ts:109: The documentation allowlist depends on a growing list of .txt names to exclude

Trial: findings are posted as review threads and in the check run. $0.46 on Amazon Bedrock, 76s, at d08efe8. (how to interact)

…fence edge cases

The check run's light-review line now says documentation or a template version file. Tests pin that a backtick line whose info string holds a backtick is inline code, and that a marker run followed by text doesn't close a fence.
@polewskm

Copy link
Copy Markdown
Contributor Author

Autopilot: answering #85 (review)

  • F2 (tools/release-notes.ts:31, closing-fence candidate with trailing text): fixed in 6bff291. The "closes a fence only with its own marker" test now has a ```markdown line inside the open ``` fence, followed by a heading, and asserts that the heading stays in the section.

@polewskm

Copy link
Copy Markdown
Contributor Author

Autopilot: Round 1 answered. This PR continues threads that already went three rounds on #62, #78 and #79, so it took only small, clearly correct changes: F1, F2 and F4 are fixed in 6bff291, and F3 is declined (SVGs in docs/ already got the light review before this PR, which narrows that rule), with a possible follow-up under #84. No blocker or should-fix is left open. Recommend merging once you've resolved the threads.

@polewskm

Copy link
Copy Markdown
Contributor Author

/review

@ncode-review ncode-review 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.

🤖 NCode Review at 6bff291: 3 new findings on the changed lines.

Comment thread src/review.ts Resolved
Comment thread CHANGELOG.md Resolved
Comment thread tools/release-notes.ts Resolved
…rder

gather.ts's isDocumentation is now the allowlist the light review uses, and reviewOrder ranks by it, so a script or config file in docs/, a build or dependency list and a public API listing no longer go last in an oversized diff.
@polewskm

Copy link
Copy Markdown
Contributor Author

Autopilot: Round 2 answered. No blocker or should-fix is left open; the remaining threads are nits, answered above. Recommend merging once you've resolved them.

@polewskm
polewskm marked this pull request as ready for review October 31, 2026 19:29
@polewskm
polewskm deployed to code-review October 31, 2026 19:29 — with GitHub Actions Active
@polewskm
polewskm enabled auto-merge October 31, 2026 19:29
@polewskm
polewskm merged commit 0398d5a into main Oct 31, 2026
6 checks passed
@polewskm
polewskm deleted the late-feedback branch October 31, 2026 19:29

@ncode-review ncode-review 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.

🤖 NCode Review at d08efe8: 1 new finding on the changed lines.

Comment thread src/gather.ts

export function isDocumentation(file: string): boolean {
return docPattern.test(file);
if (publicApiPath.test(file) || listingFile.test(file)) return false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Nit: The documentation allowlist depends on a growing list of .txt names to exclude F1 · architecture

Every .txt file counts as documentation unless its name matches publicApiPath or listingFile, so other machine-read .txt files still get classified as docs, such as license or dependency lists, test fixtures and data inputs.

Consequence: Each new kind of non-prose .txt needs another entry here. Until someone adds it, a pull request that changes such a file gets only the light hygiene review and is ordered last when the diff is over budget. How much this matters depends on how common these files are in the target repositories.

Fix: Count .txt as documentation only by location or name, such as the repository root or doc/ and docs/. Or keep the exclusions in one shared list that the README and the tests also read.

Evidence

src/gather.ts: documentationFile = /\.(md|rst|txt)$/i, then exceptions for listingFile (CMakeLists.txt, requirements/constraints) and publicApiPath.

Confidence 0.30.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Autopilot: declined for now: a nit on code that has already merged, after three review rounds on this chain. The point stands: .txt counts as documentation everywhere except the named exclusions. Narrowing .txt to doc/, docs/ and the repository root (or one shared exclusion list that the README and tests read) is now an item in the follow-up checklist #84.

This branch was successfully deployed

1 active deployment
code-review — d08efe8c Deployed Oct 31, 2026 by polewskm via review #254
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