Scope documentation freshness checks to changed sources - #531
Merged
Merged
Conversation
|
sirdeggen
marked this pull request as ready for review
September 14, 2026 20:52
ty-everett
approved these changes
Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



An unrelated PR currently fails when any documentation page passes its review deadline. For example, the wallet-relay change in #530 is blocked by the expired Chaintracks, WAB, wallet UTXO lifecycle, and generated service-operations pages.
This change enforces review expiry for edited pages and documentation associated with directly changed source paths. Package/shared-source and service associations come from the existing inventories; other page relationships are declared in the documentation policy. GitHub PRs use their merge-base diff, pushes use their before/after range, and local checks include branch and working-tree changes. Structural checks remain global, and an explicit
--allcommand retains the full maintenance audit. The four unrelated expired pages retain their existing dates.Draft blocker: current main has an unrelated expired
nanoid-postcss-advisory-overrideexception (2026-09-13). It still fails repository health. This PR does not change dependency exceptions, extend their dates, or claim a green merge gate.Program and scope
Impact
Affected packages/services and intended patch versions: None. This changes repository CI policy, its documentation, and generated stack-facts review metadata. No published bytes or package manifests change; no SemVer bump or consumer migration is required.
Verification
node --test scripts/documentation-freshness.test.mjs scripts/generated-documentation.test.mjs: 15 tests passed, covering unrelated and affected pages, shared sources, explicit full audits, deadline boundaries, invalid comparisons, PR divergence, pushes, renames, and local staged/unstaged/untracked files.pnpm health:check: fails solely on the pre-existing expirednanoid-postcss-advisory-override; the documentation policy and other script tests pass. The remaining health commands were also run directly: contributor policy, generated operations, resource profiles, browser artifacts, compiler governance, licenses, and synchronized service policies pass; the final repository-health command reports the same expired exception.pnpm lint,pnpm format:check,pnpm build, andpnpm typecheck: passed. Typecheck was rerun successfully after generating the workspace build outputs required by VeriFast's self-importing browser examples.pnpm docs:facts:check,pnpm --filter docs-site test(7 tests),pnpm --filter docs-site validate, andpnpm docs:build: passed; 122 source pages validated and 127 rendered pages passed link checks.pnpm audit:security: passed with the existing governed audit configuration; no dependency configuration changed.node scripts/ci-affected-scope.mjs --base origin/main --head HEAD: selects documentation, with no affected packages or infrastructure.node scripts/documentation-policy.mjs --base origin/main --head HEAD: 34 public READMEs, 45 package pages, 102 date records, only 3 affected pages checked for expiry, zero findings.pnpm conformancepassed structural validation of 77 files / 6,694 vectors; no protocol behavior changes.compatibility, public API, artifacts, dependencies, docs, and operations
scope-based skip is expected and validated by the merge gate
Security and dependencies
audit results were reviewed
(including accepted or false-positive issue states) and zero unreviewed hotspots;
Sonar's aggregate
Quality Gate passedverdict alone is not merge evidenceand removal condition
Git runs through
/usr/bin/gitwith an argument array and no shell. Revision inputs are restricted to commit IDs/named refs with optional ancestry suffixes, then resolved with--verify --end-of-options. Invalid or unavailable comparisons fail explicitly. Tests cover invalid references, source-directory boundaries, and filenames containing whitespace/newlines. No workflow credentials or permissions change.Dependency evidence
Release and operations
controlling program
No image, publication, or deployment changes. Contributor migration: default checks enforce elapsed review deadlines only for affected documentation;
--base <ref> [--head <ref>]selects an explicit comparison and--allruns the full maintenance audit. Policy and maintenance guidance are updated together.Completion evidence
passing checks, resolved alerts, measurements, or an approved exception
guidance are current or concretely not applicable
being handed to another contributor as “complete”
restriction is assumed