Repository navigation
ci: report closing syntax inside PR body text - #296
Conversation
GitHub treats a closing keyword followed by an Issue reference as closing syntax even inside a negated sentence. Agents following the non-closing reference rule wrote such sentences, and merges closed human-owned Issues. Add a pr-references job to the ready lane. It fails when closing syntax appears inside PR body text and allows a line that holds only the keyword and one reference. It reads the body at each ready-lane event and is not a required check. Document the rule in working rule 6, the contributing guide and the PR template. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Signed-off-by: Dong1017 <55723162+Dong1017@users.noreply.github.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. |
Dong1017
left a comment
There was a problem hiding this comment.
Scoped LGTM for the accepted R1 slice at b86caeb1. All six current-head Ready jobs and the declaration check passed; no confirmed blocker remains in the inspected delta. This is a review conclusion, not formal approval or acceptance of the other #273 remedies.
- Inspected all six changed files and the workflow invocation. Sentence-embedded/negated directives are reported; explicit standalone lines remain allowed. Existing events and required-check settings are unchanged.
- Independently checked the published-head parser with 172 cases in an isolated, empty environment. Documented keyword/case/colon/reference forms, absent input and malicious-body handling passed. PR text remains an environment value rather than shell source; reported physical lines receive a fixed prefix.
- The completed native review reports no findings, and the current review/thread lists contain no outstanding opinions requiring disposition. The author's Windows locale/path failures are not presented as a local full-suite pass; both Linux full-check jobs now pass.
- Limits: this is an advisory syntax check, not closure authorization or full GitHub parser equivalence. Cross-line keyword/reference recognition is not covered; GitHub recognition of that form was not established, so it is not asserted as a verified blocker. Commit messages and sidebar links remain outside accepted scope.
Inspected revisions and evidence
Head: b86caeb1f898bca7468ee4bea6803f47a4433f8e; base: 218565698d850e955f85d0d394a5f0e5e3619812.
Accepted decision, Ready CI, declaration CI, native review.
This review used the actual PR implementation, not the separate unpublished-PR local candidate. Independent tests were scoped to the parser; full-suite evidence comes from hosted CI. No model, device or paid experiment was run for this review. No reviewer thread was resolved or repository setting changed.
Governing Issue and delivery slice
Refs #273
pr-referencesjob inci-ready.ymlon the ready lane's existing events, not a required check, delivered by one PR without a separate task Issue.editedtrigger, a required status, or R2–R6 of [Investigation] Agent-led workflow gaps: closure, decision visibility, review provenance and focus #273.Knowledge authorship declaration
Not applicable: this PR changes no path protected by
docs/knowledge-model-policy.md.Changed artifacts and evidence
tools/check_pr_references.pytests/test_pr_references.pyuses the eight negated sentences from #273 F1; all are reported. Local run passed.github/PULL_REQUEST_TEMPLATE.mdtest_pull_request_template_passes.github/workflows/ci-ready.yml, jobpr-references: read-only token, body passed throughenv, printed lines start withlineso PR text cannot form a workflow commanddocs/agent-collaboration.mdrule 6,docs/contributing.md, PR template commentWhy the existing ready-lane events suffice: for each of the eight closures in #273 F1, the closing sentence was already in the PR body at the last ready-lane event before merge. This was checked on 2026-10-31 by comparing each PR's body edit history (GraphQL
userContentEdits) with itsci-readyrun times and timeline events. A body edit after the last push is checked only at the next push.Checks and dependencies
pytest tests/test_pr_references.py tests/test_qualify_kv_reclamation.py tests/test_qualify_kv_edit_actor.py tests/test_knowledge_model_policy.pygave 187 passed and 3 failed. WithPYTHONUTF8=1, the two tests that readci-ready.ymlpass, andtests/test_pr_references.pypasses.ruff check src tests toolspassed.test_retained_actual_outputs_have_labelled_path_redactionsfails on Windows because it expects POSIX paths; this PR changes neither that test nor its code. WithoutPYTHONUTF8=1, the twoci-ready.ymlreaders fail on a GBK locale because the file's first line already contains an em dash. The full suite was not run locally; the ready lane runs it on Linux.ci-readyrun ID, so an added job does not affect it. No existing job, trigger or concurrency setting changes.Remaining work and Issue closure
🤖 Generated with Claude Code