From f7ce75861de6e088444bccbe0a6456575a757702 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 12 Aug 2026 12:33:59 +0000 Subject: [PATCH 1/3] docs: correct stale PR-body-sync wording to match the diff-based check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit process-hardening.md and testing.md still described the pr_policy_body CI gate as firing on file *presence*, which was the bug fixed in af8e717 (#230 — an inherited PR_POLICY_BODY.md from a main merge could overwrite an unrelated PR's description). The gate now checks the PR's own diff. --- docs/process-hardening.md | 2 +- docs/testing.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/process-hardening.md b/docs/process-hardening.md index a82bf2a304..1e0a3c9960 100644 --- a/docs/process-hardening.md +++ b/docs/process-hardening.md @@ -14,7 +14,7 @@ Playwright workers or revive the refuted cache/shard hacks listed there. - `ci-change-scope.mjs` is the shared fail-closed classifier for local PR handoff and hosted CI. Only recognised documentation and workflow/policy paths take a light route; product code, tests, executable config, dependencies, database/container/RAG surfaces, mixed scope, and unknown non-document paths retain heavy verification. - `verify:pr-local` no longer treats every handoff as lint + typecheck + full unit + RAG fixtures. It always checks runtime, installed-lock parity, and changed-file formatting, then selects documentation checks, focused workflow contracts, or the heavy executable plan. Its self-test makes those routing decisions a repository contract. - `static-pr` remains required but step-routes the same signals. Workflow-only edits run focused workflow tests instead of full coverage and safety/RAG; documentation changes run documentation integrity checks; heavy/unknown changes retain lint, typecheck, coverage, safety/RAG, and all applicable build/UI/database/container jobs. `PR required` remains `if: always()` and requires every in-scope job, including `safety` whenever `static_heavy_changed` is true. -- Repeated low-yield provider work was removed from ordinary PRs: dependency audit runs when a lockfile/npm configuration can change the dependency tree (and on the scheduled full-run sentinel), eval-canary liveness moved to the daily Ops Digest cadence, and PR-body synchronization runs only when `PR_POLICY_BODY.md` exists. +- Repeated low-yield provider work was removed from ordinary PRs: dependency audit runs when a lockfile/npm configuration can change the dependency tree (and on the scheduled full-run sentinel), eval-canary liveness moved to the daily Ops Digest cadence, and PR-body synchronization runs only when the current PR's own diff changes `PR_POLICY_BODY.md`. - The operating rule is incremental value, not a fixed command count: each added check must cover a distinct plausible failure path. Never rerun an unchanged pass, and do not stack broad gates when one suitable gate already covers the risk. ## Multi-worktree reconciliation hardening (2026-07-23) diff --git a/docs/testing.md b/docs/testing.md index 73d21ad138..7299497710 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -270,7 +270,7 @@ PR CI uses the same fail-closed classifier as `verify:pr-local`. `static-pr` alw UI scope runs a fail-fast `@critical` Chromium job on pull requests / merge queues, then required production Chromium journeys (`test:e2e:pr:shard`) across three **duration-aware explicit file groups** (`scripts/playwright-pr-shards.mjs`). Those later groups exclude `@critical`; main, scheduled, and ordinary manual runs skip the fail-fast job and retain the complete set. The dated per-file timing profile is the single source for membership and keeps both full and post-critical estimates within 30 seconds; filesystem/config parity tests fail closed on orphans, duplicates, or matcher drift. Cross-job webpack-cache transport is deliberately absent after the merged PR's final run moved a 1.09 GB artifact three times for no critical-path benefit. `.github/actions/setup-ui-e2e/**` is UI-scoped so changing the browser environment exercises its owner. `src/app/api/**` does not set `ui_changed` or `db_changed` — API handlers stay on unit/coverage (and offline RAG when retrieval-scoped). The `PR required` aggregate keeps `if: always()` and distinguishes `cancelled` from `failure` in its messages. `release-browser-matrix` runs on UI/performance/lockfile-relevant `main` pushes and on every release-branch, ordinary manual, and scheduled run; its Playwright wrapper owns the isolated production build, and successful in-run production Chromium leaves only Chromium mockups plus Firefox/WebKit. Missing prior Chromium proof falls back to the full matrix. The Lighthouse-baseline refresh dispatch is a focused measurement operation rather than a synthetic full run. Container scope calls the reusable Docker workflow and requires both app and worker image builds through the aggregate. -PR body synchronization is skipped unless the checked-out head actually contains `PR_POLICY_BODY.md`. The eval-canary liveness API probe runs once with the daily Ops Digest cadence rather than on every PR. These remove repeated provider-side work without weakening a required result. +PR body synchronization is skipped unless the current PR's own diff changes `PR_POLICY_BODY.md` — an inherited copy merely present on the checked-out head (e.g. from a `main` merge) no longer triggers it (`#230`). The eval-canary liveness API probe runs once with the daily Ops Digest cadence rather than on every PR. These remove repeated provider-side work without weakening a required result. Two further jobs are advisory (deliberately outside `pr-required`): `visual-baseline` on UI scope (soft-fail only the classified pixel-drift step) and `lighthouse-budget` on the narrower perf scope From acd8e1a471f8f9d142f47b4da124805f76bcdfc5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 12 Aug 2026 12:34:56 +0000 Subject: [PATCH 2/3] docs: record branch-review-ledger row for PR #1855 --- docs/branch-review-ledger.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/branch-review-ledger.md b/docs/branch-review-ledger.md index 7ee6ef98c9..c4ad683645 100644 --- a/docs/branch-review-ledger.md +++ b/docs/branch-review-ledger.md @@ -901,3 +901,4 @@ Records before 2026-07-28 were written by hand and had drifted: 146 lines carrie | 2026-08-12 | 1815 | 27ce96e1755055ceee2eeae02d6efdf11259fcde | babysit | fixed | Unit coverage: targeted vitest passed: tests/shared-home-empty-state.dom.test.tsx (17 passed). PR required still blocked on pre-existing check failure at old remote head before sync. | | 2026-08-12 | claude/rag-canary-test-review-seprbt | bcf357a96fde74d39fc4726ffabb5079a744ef28 | eval-canary review: workflow, compare tooling, snapshot builder, alias tiering, rag-behaviour docs | PR #1843 opened; no retrieval behaviour change; snapshot refresh handed off as /issues #304 | verify:pr-local (green except env-only #296), eval:rag:offline 574/574, focused suites 40/40 | | 2026-08-12 | codex/pr-workflow-safety-230-296 | bc0a491fdf4146775629f9b2b03e2a2cc61bd7cb | pr-1830 unblock | unblocked: merged origin/main (outstanding-issues conflict), PR body RAG impact + governance, resolved Copilot thread; merge-tree clean; required CI in progress | check:outstanding-issues pass; evaluatePullRequestPolicy ok; merge-tree clean; PR policy/mergeability/Change scope in progress | +| 2026-08-12 | claude/content-deletion-pr-issues-lq2xhv | f7ce75861de6e088444bccbe0a6456575a757702 | docs/process-hardening.md, docs/testing.md | docs-fix: corrected stale PR-body-sync wording (references #230 fix af8e717); PR #1855 opened | prettier --check (pass) | From b9a318b9771f95c8ef82eef7a70550240a6bfe5e Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Wed, 12 Aug 2026 21:28:35 +0800 Subject: [PATCH 3/3] docs(review): record PR 1855 review --- docs/branch-review-ledger.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/branch-review-ledger.md b/docs/branch-review-ledger.md index c4ad683645..f6834cef3f 100644 --- a/docs/branch-review-ledger.md +++ b/docs/branch-review-ledger.md @@ -902,3 +902,4 @@ Records before 2026-07-28 were written by hand and had drifted: 146 lines carrie | 2026-08-12 | claude/rag-canary-test-review-seprbt | bcf357a96fde74d39fc4726ffabb5079a744ef28 | eval-canary review: workflow, compare tooling, snapshot builder, alias tiering, rag-behaviour docs | PR #1843 opened; no retrieval behaviour change; snapshot refresh handed off as /issues #304 | verify:pr-local (green except env-only #296), eval:rag:offline 574/574, focused suites 40/40 | | 2026-08-12 | codex/pr-workflow-safety-230-296 | bc0a491fdf4146775629f9b2b03e2a2cc61bd7cb | pr-1830 unblock | unblocked: merged origin/main (outstanding-issues conflict), PR body RAG impact + governance, resolved Copilot thread; merge-tree clean; required CI in progress | check:outstanding-issues pass; evaluatePullRequestPolicy ok; merge-tree clean; PR policy/mergeability/Change scope in progress | | 2026-08-12 | claude/content-deletion-pr-issues-lq2xhv | f7ce75861de6e088444bccbe0a6456575a757702 | docs/process-hardening.md, docs/testing.md | docs-fix: corrected stale PR-body-sync wording (references #230 fix af8e717); PR #1855 opened | prettier --check (pass) | +| 2026-08-12 | 1855 | acd8e1a471f8f9d142f47b4da124805f76bcdfc5 | full PR diff and unresolved review feedback | No P0-P2 findings; documentation now matches diff-based PR policy-body routing | workflow/source cross-check passed; diff-check passed |