feat(pr-checks): add opt-in design-lint step for oxlint + @shadcn/lint - #35
Merged
Merged
Conversation
Adds an optional design-lint input to setup-stack and pr-checks.yml, running after Lint on the light pool. It is a separate step rather than folded into lint because it has its own exit code and its own ratchet (the caller adds --max-warnings N to its command as the count comes down). Default is "" (skip), with no "@stack" fallback since no stack has a conventional design-system lint command. Every existing @v1 caller is therefore unaffected until it opts in with e.g.: design-lint: bun run lint:design --format=github Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
🎉 This PR is included in version 1.7.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
What
Adds an optional
design-lintinput, threaded throughactions/setup-stackand.github/workflows/pr-checks.yml, that runs a design-system verifier (oxlint hosting@shadcn/lint) as its own step, right afterLint, on the light pool.Why a separate step, not folded into
lint--max-warnings N, tightened independently of whatever the stack's own lint threshold is.Caller example
Backward compatibility
design-lintdefaults to""in bothsetup-stackandpr-checks.yml, andsetup-stackhas no@stackfallback for it (no stack has a conventional design-lint command, so the resolved command is empty unless the caller sets one explicitly). The step'sif:issteps.setup.outputs.design-lint != '', so it is skipped entirely for every existing@v1caller. No existing input was renamed, removed, or reordered.Changes
actions/setup-stack/action.yml: newdesign-lintinput + output, resolved through the existingpick/emitmachinery..github/workflows/pr-checks.yml: newworkflow_callinputdesign-lint; wired throughsetup-stackand added as aDesign lintstep in both the split (checks) and single-job (all) shapes.README.md: new "Design lint" subsection under "Stacks"..github/workflows/self-test.yml: not touched — it does not enumeratesetup-stack/pr-checksinputs or outputs, so there was nothing to update there.Validation
python3 -c "import yaml; yaml.safe_load(open(...))"— both changed files parse.actionlint(installed locally) — run over the whole repo; zero findings against the two changed files (the only findings are pre-existing, inrelease.yml, which this PR does not touch).🤖 Generated with Claude Code