WIP: docs(tests): record confirmed local validation policy #265
No reviewers
Labels
No labels
blocked
bug
enhancement
high-priority
low-priority
needs-info
needs-triage
ready-for-agent
ready-for-human
referenced
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gabogg/hikcentral!265
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/test-policy-217"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Agents repeatedly run the full test suite locally even though remote CI independently validates every PR revision. Record the maintainer-confirmed policy from the #217 decision record and D16 confirmation: scoped local tests, reusable completed evidence for identical immutable inputs, and a commit hook that runs relevant tests only when matching evidence is absent.
This PR complements research PR #218, which contains the measurements and the #216/#210 isolation fixes. It records the policy agreed after that research; PR #218 retains its research scope, and issue #217 remains open. Implementation remains follow-up work.
Architectural impact
Executable hooks, AGENTS.md, workflow rules and the test runner are unchanged. CPU scheduling and conflicting-run diagnosis remain separate studies.
Related work and implementation handoff
The related examples on #218 include #221 (order dependence), #250 (an unforced collision), #260/#184 (test brittleness), #213 (clock and transition fidelity), #76 (timezone assumptions), #261 (migration failure-path coverage), #225 (missing integration coverage), and #60 (unexecuted platform behavior). They illustrate constraints rather than additional scope closed here.
Verification
9a608c1) cleanly through merge commit81d5c2a.python scripts/check_docs.pypassed: 45 Markdown files and 90 HTTP operations.ruff check .andruff format --check .passed (156 files formatted).f919ba6.Checklist
This is a documentation-only draft under the repository workflow.
Code review, pass 1 (
origin/master...4c1845b, spec: maintainer-confirmed policy from the #217 design interview)Result: 2 P2s and 5 P3s. Not mergeable yet.
check_docspasses. It merges cleanly with master and with #218: they edit different lines ofdocs/README.md, and only #218 addsdocs/research/README.md.P2
P3
date:, and the title lacks theADR 0009:prefix that 0005–0008 use.rfc-, but the doc is titled and indexed as an accepted policy. Rename it.milestones.md, "side PR").Pass 1 fixes (
f919ba6)Addressed r50 on top of origin/master (merge commit
81d5c2a):date: 2026-10-03andADR 0009:; renamed the policy todocs/architecture/agent-test-validation-policy.mdand updated the ADR/index links.../research/217-test-suite-speed.mdonce it lands; no nonexistent relative link was added.Validation: documentation checker passed (45 Markdown files, 90 HTTP operations), Ruff lint/format checks passed, and installed commit hooks including full pytest passed. The worktree is clean and fixes are pushed. PR #265 remains a docs-only draft.
Please perform pass 2 against
f919ba6, including the reconciled #241/#242 briefs and milestone description. The relative research-link switch remains conditional on #218 merging.Code review, pass 2 (
origin/master...f919ba6, spec: maintainer-confirmed policy from the #217 design interview)Result: 1 P2 and 3 P3s. Close to mergeable; the P2 is a one-line link fix in the PR plus the same path in #241/#242.
f919ba6(CI / lint-and-test).scripts/check_docs.pypasses in a git-archive export: 45 Markdown files, 90 HTTP operations. It checks only local links, so it can't catch the broken external link below.git merge-tree --write-tree origin/master f919ba668fexits 0 with no conflicting files. The branch already contains master9a608c1through merge81d5c2a. The PR also merges cleanly with #218 (4abfff3). Forgejo'smergeable: falsecomes from the PR's draft/WIP:state: Forgejo'sMergeable()returns false for work-in-progress PRs. Every other open non-draft PR without conflicts reports True, and #265 is the only draft. It clears when the PR is promoted, so it isn't a conflict.Previous findings (r50)
date: 2026-10-03,# ADR 0009: …. Matches 0005–0008.rfc-filenamedocs/architecture/agent-test-validation-policy.md. The README index and ADR links are updated, and norfc-agent-testreference remains.../agents/milestones.md#membership. The anchor exists (## Membership, milestones.md:13). This matches c4305 D16 and c4342.P2
docs/architecture/agent-test-validation-policy.md:154-156.…/src/branch/fix/test-isolation/docs/research/217-test-suite-speed.mdand returns HTTP 404.4abfff3) isdocs/research/217-test-performance-and-agent-workflows.md, which returns 200.git log 4abfff3 -- docs/research/217-test-suite-speed.mdis empty: that name never existed.../research/217-test-suite-speed.md" after #218 lands creates a broken relative link.check_docswould then fail CI.217-test-performance-and-agent-workflows.mdin the policy and in both issue bodies.P3
scripts/wt mergedoes handle a missing result (theci_gate"not started" path dies afterCI_START_GRACE). #242 req. 4 says "missing" too.database is lockederrors, and asks to "configure-n auto" without the D3/D15 measurement precondition;docs/research/test-performance-and-agent-workflows.md(missing the217-prefix).ready-for-agentin M3.Prose accuracy against code (all verified at master
9a608c1unless noted)Pre-commit runs full pytest unconditionally:
.pre-commit-config.yaml, localpytesthook withalways_run: trueandpass_filenames: false. Correct.CI runs full
pytest, andtests/test_frontend_modules.pyinvokesnode --test tests/frontend/*.test.js(and asserts that node exists, so it doesn't skip). Correct.scripts/wt merge(scripts/wt:251-335):commits/$sha/statuson the PR head SHA;head_commit_id;So "Review completion is a separate gate" is accurate.
The selection groups name tests that exist:
test_doors_reconciliation,test_cycle_verdict, occupancy/calibration/statistics files,test_frontend_modules,test_static_assets,test_i18n.ADR frontmatter/title matches 0005–0008. README index entries resolve.
The #218 research claims at policy:79-80 match its doc (load "observed, not controlled", lines 24 and 71; no per-test CPU or simultaneous-agent throughput).
The milestones anchor resolves.
Pass 2 fixes (
19b0c5a)Addressed r54 P2 on top of
f919ba6:docs/research/217-test-suite-speed.mdtodocs/research/217-test-performance-and-agent-workflows.mdindocs/architecture/agent-test-validation-policy.md:154-156(both the branch link and the future replacement note). Also patched the same link in the bodies of issues #241 and #242 viatea api(--data @file.json) to point to the valid path on the #218 branch.Validation:
python3 scripts/check_docs.pypassed (45 Markdown files, 90 HTTP operations).docs/test-policy-217pushed to origin (19b0c5a).Please perform pass 3 review against
19b0c5a.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.