Repository navigation
Require and independently verify the community validation check on main #85
Description
Describe the change
Context and request
Make the file-validation result mandatory for PSModule community-default PRs before review readiness and merge. This is the separately owned operational-enforcement leaf of PSModule/.github#83, not authorization to mutate live governance from the validation-code assignment.
Acceptance criteria
- A separately authorized governance maintainer requires the exact hosted check
Community file validationand its verified GitHub Actions integration forrefs/heads/maininPSModule/.github, without weakening or changing existing organization-wide rules or unrelated repositories. - Independently captured applied-rule evidence confirms that failed, pending, stale, or absent validation does not meet the required-check gate. Strict up-to-date enforcement and draft coverage are verified with anonymous fixtures; a manual workflow dispatch or Copilot review is not file validation.
- The named check first exists from a real PR event at the validation-code candidate head. Its actual head, workflow path, check integration, execution, and non-empty affected-file scan are recorded before activation.
- After code integration, the independently owned scaffold PR receives a real PR-event check on its refreshed current head. The unchanged legacy base template is not presented as proof of new-format completeness.
- An independent verifier in a separate session that did not execute the rule change verifies every criterion and records durable audit evidence before this operational Task is closed. The user explicitly approved both sessions using the same linked GitHub account; this does not claim a second human identity or human code approval. The parent outcome stays open until its native children and aggregate criteria are complete.
Constraints and non-goals
Execution is not authorized by the code assignment. No organization-wide GitHub Flow ruleset mutation, permission expansion, release publisher, merge, auto-merge, publication, tag or label changes, or consumer rollout. Recording this issue or a proposed rule is not completion.
Technical decisions
The active rules for main are inherited from organization ruleset 19735208 and contain no required_status_checks rule. Preserve that organization's existing policy. Proposed minimal enforcement is an additive repository-scoped rule for this repository's main only, requiring Community file validation from the exact integration observed on the real candidate check, with strict up-to-date checking and no new bypass actor. The governance owner must obtain explicit approval for the exact target and consequence before making any change; this body is only the proposal.
Execution owner: this Project, acting through the linked Marius Storhaug (@MariusStorhaug) account after the user approved the exact repository-only strict rule. Independent verifier: the separately coordinated PSModule defaults/scaffold session, which did not implement this validation code or apply the rule. Both use the linked account, as explicitly disclosed and approved. Record distinct execution/verification sessions and their observed evidence; do not claim a second human account or an unperformed merge attempt.
Bootstrap ordering: register and verify the named check on the code draft, then activate and independently inspect the additive requirement before readiness or merge. Do not block rule activation on code Task closure: code closure requires merge, and that merge needs enforcement first. Once the workflow is integrated through normal review, the scaffold owner refreshes its independent PR and obtains fresh PR-event evidence. Native containment records the two deliverables; intermediate milestones do not create a false whole-issue dependency cycle.
Implementation plan
- Obtain explicit authorization for the exact repository-scoped rule and name the execution owner and independent verifier.
- Capture the real validation-code draft's current-head check name, GitHub Actions integration, PR event, and non-empty affected-file evidence.
- Before activation, establish anonymous failed, pending, stale, and absent evidence cases and the expected rejection criteria without modifying another owner's PR.
- Apply only the authorized additive
mainrequirement and preserve the existing organization rules. - Independently verify the applied rules and rejection/success behavior, recording durable actor/time/target/evidence details.
- After normal validation-code integration, obtain and inspect the scaffold's refreshed current-head PR-event check; verify aggregate readiness without a policy waiver.
Activity
MariusStorhaug commentedon Oct 31, 2026
Applied the user-approved additive repository-only rule at 2026-10-31T15:24:23.6522540Z, through the linked Marius Storhaug (@MariusStorhaug) account. The approved independent verifier is the separate scaffold session using that same linked account, not a claimed second human identity.
Baseline: main inherited organization GitHub Flow ruleset 19735208 with its existing PR/review/thread/squash/linear-history/non-fast-forward policies and no required status check. No repository rule existed. A real PR-event
Community file validationresult from GitHub Actions app 15368 was completed successfully at #86 head 66cd708 before activation.Change: Added Community defaults validation, active only for refs/heads/main, requiring exactly
Community file validationfrom integration 15368 with strict up-to-date checking. No bypass actor was added; the API reports current_user_can_bypass=never. No organization-wide rule was edited.Read-back: The repository ruleset/effective-main APIs include the exact check/source/strict setting and retain the inherited rules. A non-target community-validation-scope-control branch evaluation has no required-status-check rule. No merge, publication, tag/label change or CI result manipulation occurred.
Independent applied-rule/context verification is pending. The operational Task remains open for its remaining verification and post-integration scaffold evidence; this activation does not close the code Task or parent PBI and does not claim human code approval.
MariusStorhaug commentedon Oct 31, 2026
Independent applied-rule verification
Observed from the separately coordinated scaffold session
76cee94d-69f3-43a9-8c92-4ffc79fff360at2026-10-31T15:27:05Z, with follow-up reads through the same verification window.gh api userconfirms the linkedMariusStorhaugaccount. This session did not apply the rule or implement the validation code. The user explicitly approved separate execution/verification sessions using this same account; this is not a second human identity, human code approval, or a merge attempt.PSModule/.github, with onlyrefs/heads/mainincluded and no exclusions. Its only rule isrequired_status_checks.Community file validation, bound to integration15368. Native check124575660196reports app15368, sluggithub-actions, nameGitHub Actions.strict_required_status_checks_policy: true,do_not_enforce_on_create: false,bypass_actors: [], andcurrent_user_can_bypass: never.GET repos/PSModule/.github/rules/branches/mainincludes the additive requirement and the five inherited rules from organization ruleset19735208.community-validation-scope-controland this session'spsmodule-pr-defaultsreturn no required-status-check rule from the applied-branch API.0; no new reviewer list is added. Deletion, linear-history, non-fast-forward and Copilot-on-push rules remain unchanged.a009b6216d7eed833383698035c6a1f467fc494ehas completed successful named checks from the required integration. Run 41214354370 ispull_request, not dispatch, and its run/job/check head SHA agrees with the current PR head.f424237c98b5b020f80e8c9563dbc37256fc1ec0; GitHub compare reportsbehind_by: 0. Prior successful code checks on66cd708ebf9270f264dd86f33b2bcee65d10c9fdare identified separately rather than reused as current evidence..github/workflows/Validate-Community-Files.ymlhas normal main-targetingpull_requesttriggers, no path or draft filter, actual-head checkout, and no skipped validation job. The current run records 21 passing fixture tests andChecked 10 Markdown files; result: passed, explicitly listing.github/pull_request_template.mdand.github/CONTRIBUTING.md.90aee54bd9df1f3a716a5fb8a0707ccba4b56f22. Its native head checks contain only the Copilot review, notCommunity file validation; GitHub reportsmergeable_state: blocked.Observable limits: all 11 inspected native validation PR-event runs are completed successes. No live failed or pending validation check, unexpected-app same-name check, or base-outdated current candidate was available for an independent causal rejection experiment. No failure/check injection, workflow dispatch, policy mutation, or merge attempt was performed. The configured required-check/source/strictness semantics and latest-SHA requirement reject those mismatched states, but this record does not claim a witnessed merge denial for them. The blocked scaffold with an absent required context is observable, but its draft and review constraints are also blockers; it is not an isolated experiment proving which rule alone caused
blocked.The validator's existing anonymous fixture results demonstrate malformed, empty, missing-path, symlink and head-metadata rejection inside a successful job. They are not injected live GitHub failed/pending/stale-check tests and were not executed by this verification session. The run validates the unchanged central legacy scaffold in the code PR; it does not prove the independent new scaffold has run under the integrated workflow.
Inheritance boundary: the two named inputs are the source community-default files owned by
PSModule/.github, not a requirement for ordinary module repositories to add local copies. The rule is scoped only to this repository's main. The user's clarified organization inheritance policy is preserved.Readiness and ownership: the exact named-check/source and strict freshness conditions are observed satisfied on the current code candidate; overall code PR readiness/review remains its owner's responsibility. Task #85 stays open for the unavailable live cases/remaining verification and, after normal code integration, a refreshed current-head PR-event run on the separately owned scaffold. Native code Task #84, this operational Task, and parent PBI #83 remain distinct and open. The governing MSXOrg/docs#209 is now ready but unmerged at
27ffab8ad89cf41147dc25ba2f6bd300b01b938f; its complete scaffold is unchanged from the last requested1ececb2bd9f1680c87cec15a45ac927a554fce9cpin and still matches the local scaffold. Nothing in this audit closes the aggregate or authorizes a merge.Read-only reproduction:
gh api repos/PSModule/.github/rulesets/26275706;gh api repos/PSModule/.github/rules/branches/main; the corresponding applied-rule calls for both non-target controls;gh api repos/PSModule/.github/commits/a009b6216d7eed833383698035c6a1f467fc494e/check-runs;gh api repos/PSModule/.github/actions/runs/41214354370; andgh run view 41214354370 --repo PSModule/.github --log. All returned the evidence summarized above. GitHub's status-check guidance defines latest-commit, eligible-event and expected-app behavior; the observed run is a completed success with real validation steps, not a dispatch or skipped-job substitute.MariusStorhaug commentedon Oct 31, 2026
Head advance and code-readiness hold
Follow-up observation at
2026-10-31T15:34:03Z: code PR #86 advanced from the earlier verifieda009b6216d7eed833383698035c6a1f467fc494eto6609aa54978b84680b0166ffa3cd5cc8e5994abc. The earlier successes are prior-head evidence, not reused as fresh checks. Native run 41215351580 independently reports a completed successfulCommunity file validationcheck124578606609from app15368on the advanced SHA, triggered bypull_request; run, job/check, and PR head identities agree. The advanced candidate still includes current main withbehind_by: 0. Its workflow is unchanged by the head advance.A passing check is not corrected-validator containment evidence or code-readiness approval. The coordinator relayed a reproduced parent-directory junction/symlink boundary defect and a test-first correction in the separately owned code delivery. Retain that explicit readiness hold and require the fresh reviewed corrected candidate for subsequent operational/scaffold milestones; pre-fix success is not sufficient. This verification records the applied rule/context/source and observed check identity, not a second review or signoff of the containment correction.
Task #85 and parent PBI #83 remain open. The independent scaffold head still has no required named result and must receive its own fresh PR-event check after normal integration. No code, workflow, policy, check result, merge state, cleanup or approval was changed by this session.
MariusStorhaug commentedon Oct 31, 2026
Observed at
2026-10-31T16:03:43.4362575+00:00from the separate scaffold verification session.Reviewed correction and ready-event evidence
The earlier code-readiness hold in this audit trail is resolved, not a current blocker. Independently re-read PSModule/.github#86 at
6609aa54978b84680b0166ffa3cd5cc8e5994abc: it is non-draft, unmerged, and has no auto-merge. The ready-for-review timeline event is2026-10-31T15:46:36Z.The complete head-bound review 5723598524 is
COMMENTEDon that exact SHA and reports No open issues. Its generic caution that symlink resolution and dependency exclusions warrant human assessment is explicitly retained. The reproduced outside-parent junction/symlink regression was corrected at this reviewed head; do not continue reporting it as unfixed or carry the previous fresh-review hold forward. This review is automated code-feedback convergence, not a human approving review or a claim that this verification session reimplemented/reviewed the validator.Run 41216458562, created immediately after the ready event, is a real
pull_requestexecution of.github/workflows/Validate-Community-Files.yml, not dispatch. Its native check124581888168is named exactlyCommunity file validation, app15368, completed successfully at2026-10-31T15:47:04Z, and bound to the same current head. The logged checkout/head guard agrees with that SHA.npm run validatereports 23 passing fixtures, including rejection of Markdown reached through a parent link outside the repository, and a real non-empty 10-file Markdown scan. The other current-head validations are also successful. Earlier-head green results are not reused as corrected-candidate evidence.The additive main-only rule
26275706remains active with exact context/app, strict freshness, no bypass and no changes by this verification session. Code PR #86 and canonical MSXOrg/docs#209 are not integrated; repository main remainsf424237c98b5b020f80e8c9563dbc37256fc1ec0. Scaffold PSModule/.github#82 remains draft at90aee54bd9df1f3a716a5fb8a0707ccba4b56f22and still has no nativeCommunity file validationresult.Operational Task #85 stays open for the remaining verification and the scaffold's own refreshed current-head PR-event check after actual authorized normal integration. No live failed/pending/wrong-source/base-stale causal rejection case was injected or witnessed; those earlier limits remain explicit. No integration, merge, check manipulation, policy change, cleanup, auto-merge or second human approval is performed or claimed. Both the independent verifier and execution owner use the linked account, under the user-approved separate-session arrangement.