Update local QA skill workflow (#13)
This commit is contained in:
@@ -1,25 +1,22 @@
|
||||
# local-qa
|
||||
---
|
||||
name: local-qa
|
||||
description: Run local QA including formatting, linting, and testing for the repository. Use whenever any file has been updated.
|
||||
disable-model-invocation: false
|
||||
---
|
||||
|
||||
Run local QA checks (format, lint, test) on the repository.
|
||||
# Local QA (format, lint, and test)
|
||||
|
||||
## When to use
|
||||
Run the local QA script `scripts/qa.sh` in this skill.
|
||||
|
||||
After making changes to repository files, run `scripts/qa.sh` to validate formatting, linting, and tests.
|
||||
## Procedure
|
||||
|
||||
## Steps
|
||||
|
||||
1. Execute `scripts/qa.sh` and capture the results.
|
||||
2. Report successes, failures, warnings, and any modified files.
|
||||
|
||||
## If tools are missing
|
||||
|
||||
Install them following this priority order:
|
||||
|
||||
1. Project package managers (`uv`, `poetry`, npm scripts)
|
||||
2. System package managers (`brew`, `apt`)
|
||||
3. Language-specific installers (`pipx`, `pip`, `npm`, `go install`)
|
||||
|
||||
## Constraints
|
||||
|
||||
- Only execute QA and tool-installation commands.
|
||||
- If installation fails or requires unavailable privileges, report the attempt and exact failure, then stop.
|
||||
- Execute the script exactly as shown above when this skill is triggered.
|
||||
- Capture and summarize key output (success/failure, major warnings, and any files modified).
|
||||
- If the script fails due to missing tooling (`command not found`, missing executable, or equivalent), install the missing tool(s) and rerun `./scripts/qa.sh`.
|
||||
- Install tools using this order of preference:
|
||||
1. Use the project's package manager when applicable (`uv`/`poetry` for Python, package manager scripts/dependencies for Node.js).
|
||||
2. Use a system package manager (`brew` on macOS, `apt` on Debian/Ubuntu) when project-local install is not applicable.
|
||||
3. Use language-specific installers as fallback (`pipx`/`pip`, `npm`, `go install`, etc.).
|
||||
- If multiple tools are missing, repeat install -> rerun until QA completes or you hit a blocker.
|
||||
- If installation fails or requires unavailable privileges, report what was attempted, the exact failure, and stop.
|
||||
- Do not run unrelated commands; only run commands needed for QA and missing-tool installation.
|
||||
|
||||
@@ -13,7 +13,14 @@ uv run pytest
|
||||
npx -y prettier --write './**/*.md'
|
||||
|
||||
# GitHub Actions
|
||||
zizmor --fix=safe .github/workflows
|
||||
git ls-files -z -- '.github/workflows/*.yml' | xargs -0 -t actionlint
|
||||
git ls-files -z -- '.github/workflows/*.yml' | xargs -0 -t yamllint -d '{"extends": "relaxed", "rules": {"line-length": "disable"}}'
|
||||
checkov --framework=all --output=github_failed_only --directory=.
|
||||
case "${OSTYPE}" in
|
||||
darwin* | linux* )
|
||||
zizmor --fix=safe .github/workflows
|
||||
git ls-files -z -- '.github/workflows/*.yml' | xargs -0 -t actionlint
|
||||
git ls-files -z -- '.github/workflows/*.yml' | xargs -0 -t yamllint -d '{"extends": "relaxed", "rules": {"line-length": "disable"}}'
|
||||
checkov --framework=all --output=github_failed_only --directory=.
|
||||
;;
|
||||
* )
|
||||
echo "GitHub Actions linting is only supported on Linux and macOS."
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user