Context
gingur/devkit's reusable workflow .github/workflows/node.verify.yml runs three consumer scripts: lint, typecheck, test. The fleet is adopting oxfmt for formatting; verify should be able to enforce oxfmt --check. Devkit is consumed via @main, so any unconditional new step would instantly break consumers that lack the script — the step must be opt-in via input.
Changes
In .github/workflows/node.verify.yml:
- Add input
format (camelCase single word per repo conventions): description "pnpm script to run for format check. Empty skips the step.", type string, default ''.
- Add a
Format step between Lint and Typecheck: if: inputs.format != '', run: pnpm ${{ inputs.format }} (same pattern as the other steps, honoring working-directory).
In README.md: update the verify recipe to show format: fmt:check and note it's opt-in.
Verification (evidence required in the PR)
- Workflow syntax validated:
act run of a throwaway caller (or actionlint) showing (a) step skipped when format omitted, (b) step runs pnpm fmt:check when set.
Acceptance criteria
- Input + guarded step added exactly as above; omitting the input produces byte-identical behavior to today; README recipe updated; validation evidence cited in PR.
Context
gingur/devkit's reusable workflow.github/workflows/node.verify.ymlruns three consumer scripts: lint, typecheck, test. The fleet is adopting oxfmt for formatting; verify should be able to enforceoxfmt --check. Devkit is consumed via@main, so any unconditional new step would instantly break consumers that lack the script — the step must be opt-in via input.Changes
In
.github/workflows/node.verify.yml:format(camelCase single word per repo conventions): description "pnpm script to run for format check. Empty skips the step.", type string, default''.Formatstep betweenLintandTypecheck:if: inputs.format != '',run: pnpm ${{ inputs.format }}(same pattern as the other steps, honoringworking-directory).In
README.md: update the verify recipe to showformat: fmt:checkand note it's opt-in.Verification (evidence required in the PR)
actrun of a throwaway caller (oractionlint) showing (a) step skipped whenformatomitted, (b) step runspnpm fmt:checkwhen set.Acceptance criteria