S2 — Every push runs the checks - #27
Merged
Merged
Conversation
design/30-slices.md § S2 requires a workflow-parsing test asserting the "Check the spec set" step swallows neither exit 1 nor exit 2 (no continue-on-error, no || true). The step itself already satisfies this; no test asserted it.
/verify against slice/S2: parse-check and companion-split pass; Pester suite and design-state check fail on pre-existing design/state-index.md staleness unrelated to this PR; spec-set gate did not run (no provisional-register region yet, S5's territory).
afb4cf0 updated 8 WorkRef records (rank changes, issues #19/#26 added) but never re-ran Update-DesignProjection.ps1, leaving the outstanding region stale against them since that commit. This is a pure projection regenerate - no hand-authored content changed. Clears the ProjectionStale finding that was failing Test-DesignState.ps1 and 5 Pester tests on main.
Parse-check, Pester (281/281), companion split, and design-state now all pass at 9ba4f50. Check the spec set still exits 2 (RegisterAbsent) by contract design (SS5) - not a defect, and not this PR's to resolve.
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.
Summary
.github/workflows/verify.ymlalready existed onmain(added in an earliersession) and genuinely satisfies S2.1–S2.3 as written. This PR closes the one
real gap: S2.4 requires "a workflow-parsing test asserts the step does not
swallow either [exit 1 or exit 2] with
continue-on-erroror|| true" —the
Check the spec setstep already meets that property, but no testasserted it. Added one to
tools/Test-CIWorkflow.Tests.ps1, following theexisting step-isolation pattern in that file.
While verifying, found and fixed the reason
main's CI has been red sinceafb4cf0: that commit updated 8design/state/work/*.mdWorkRef records butnever re-ran
Update-DesignProjection.ps1, leavingdesign/state-index.md'soutstandingregion stale against them. Regenerated it (9ba4f50) — a pureprojection refresh, no hand-authored content changed. That clears all 5
Pester failures and the blocking
Test-DesignState.ps1finding.Criteria
verify.ymlruns on push/PR, installs only PowerShell 7 (viaruns-on: ubuntu-latest+shell: pwsh) and Pester.# verification: true-flagged, named exactly as specified.Run Pester testscarriesGH_TOKEN;tools/Test-CIWorkflow.Tests.ps1passes.Check the spec setstill exits 2 (RegisterAbsent: noprovisional-registerregion exists yet). This is not a defect:design/20-contract.md's error-semantics table namesRegisterAbsentas an unchecked reason that forces exit 2 by design (SS5: "If any check is unchecked, the run exits 2 regardless of findings"). Authoring the register is S5's territory.mainhas been red for this same reason since S1 added the step — merging this PR does not regress anything, it removes the other, unrelated cause of red (the state-index staleness above).A contract question this surfaced
design/30-slices.md§ Contract questions → 1. The checker's steady state is exit 2, so CI is red forever already flags SS5's "any unchecked forces exit 2" semantics as likely wrong for the permanentCrossRepositoryUnresolvablecase, and recommends SS5 escalate only on an unexpected unchecked entry. That question's own text says "S1–S3 and S5–S7 are unaffected" — that premise turned out to be wrong.RegisterAbsentis a second, narrower instance of the same SS5 mechanism, firing now, in S2, not S4. It's temporary (clears when S5 lands) rather than permanent, so the same fix doesn't obviously apply to it — but the recorded question's scope claim needs correcting. Flagging for/contract, not resolving it here (S2 isn't the right slice to touch SS5).Verified
Ran and passed:
Parse-check PowerShell scripts— every*.ps1parsed with[System.Management.Automation.Language.Parser]::ParseFile, zero parse errors.Run Pester tests—Invoke-Pester -Path tools -Output Detailed -PassThru: 281 passed, 0 failed, 0 skipped.Validate the core/companion split—./tools/Test-Companion.ps1: Companion split OK - 21 core(s) checked, 0 companion file(s) present, 21 core(s) with no companion. State: Valid. Exit code 0.Check the design state against the tree—./tools/Test-DesignState.ps1: Findings (0), CouldNotEvaluate (0), ExitCode 0. Largest closure: unit/script/test-designstate, 6122 bytes (ceiling 16384).Ran and failed: none.
Did not run:
Check the spec set—./tools/Test-SpecSet.ps1returnedState: NotEvaluated, Reason: RegisterAbsent. Exit code 2. Expected per SS5/contract, as explained above.GitHub's
verifycheck onb7853d9(the pushed head) is confirmedFailedviaWait-PullRequestCheck.ps1, consistent with the local run — the job fails on theCheck the spec setstep's exit 2, the only step still non-passing.Review threads: 0 found, confirmed on a re-query after a bounded wait for automated reviewers.