一键导入
skillsaw-onboard
// Onboard a repository to skillsaw — run the linter, apply autofixes, manually fix remaining violations, set up CI, and create a baseline. Use when adopting skillsaw on a new or existing project.
// Onboard a repository to skillsaw — run the linter, apply autofixes, manually fix remaining violations, set up CI, and create a baseline. Use when adopting skillsaw on a new or existing project.
Browser-based UI test execution against live clusters
A skill with an unrecognized subdirectory and no evals
Review code changes for correctness, style, and potential issues
This skill is designed to perform extremely comprehensive and detailed code analysis across all supported programming languages including but not limited to Python, JavaScript, TypeScript, Go, Rust, Java, Kotlin, Swift, Ruby, PHP, C, C++, C#, Scala, Haskell, Elixir, Clojure, Dart, Lua, Perl, R, MATLAB, Julia, Fortran, COBOL, Assembly, Bash, PowerShell, SQL, GraphQL, HTML, CSS, SASS, LESS, XML, JSON, YAML, TOML, INI, Markdown, LaTeX, reStructuredText, AsciiDoc and many more, providing thorough static analysis, linting, formatting suggestions, security vulnerability detection, performance optimization recommendations, code complexity metrics, dependency analysis, dead code detection, test coverage estimation, documentation quality assessment, naming convention enforcement, architecture pattern recognition, design pattern identification, anti-pattern detection, code smell detection, refactoring suggestions, accessibility compliance checking, internationalization readiness evaluation, API compatibility verificati
Skill that handles alert trigger operations
Skill that handles database backup operations
| name | skillsaw-onboard |
| description | Onboard a repository to skillsaw — run the linter, apply autofixes, manually fix remaining violations, set up CI, and create a baseline. Use when adopting skillsaw on a new or existing project. |
| compatibility | Requires skillsaw (uvx skillsaw or pip install skillsaw). Optional: gh CLI for GitHub Actions setup, LLM access for content fixes. |
| metadata | {"author":"stbenjam","version":"1.0"} |
You are onboarding this repository to skillsaw, a linter for agentic contextual building blocks (CLAUDE.md, skills, plugins, agents, hooks, etc.).
Work through each step in order. Communicate progress to the user at each stage.
Check if skillsaw is already available by running skillsaw --version. If it
is installed, skip to Step 2.
If not installed, choose the best method for this environment:
uvx (preferred) — zero-install, works immediately:
uvx skillsaw
Use uvx skillsaw as the command prefix for all subsequent steps (e.g.
uvx skillsaw tree, uvx skillsaw fix).
pip — if uvx is not available:
pip install skillsaw
Container (podman or docker) — if neither uvx nor pip is available.
Use whichever runtime is installed (podman or docker):
podman pull ghcr.io/stbenjam/skillsaw:latest
podman run -v $(pwd):/workspace:Z ghcr.io/stbenjam/skillsaw
The :Z suffix relabels the mount for SELinux. Mount the repo at
/workspace and pass subcommands after the image name
(e.g. podman run -v $(pwd):/workspace:Z ghcr.io/stbenjam/skillsaw tree).
Confirm the installation works by running skillsaw --version (or the
equivalent for the chosen method) before proceeding.
Run skillsaw tree to see what skillsaw detects in this repo — the repo type,
instruction files, plugins, skills, and other components. Show the user a brief
summary of what was found.
Then run skillsaw (lint) and capture the full output. Count the errors and
warnings. If the repo has zero violations, congratulate the user and skip to
Step 6 (config) or Step 7 (CI setup).
Run skillsaw fix to apply safe, deterministic fixes (e.g. adding missing
frontmatter, fixing names to kebab-case, registering unregistered plugins).
After fixing, run skillsaw again to see what remains. Report to the user:
If all violations are resolved, skip to Step 6.
For each remaining violation, attempt to fix it directly. You are an AI agent — you can read and edit the files yourself. Common fixes include:
content-weak-language): Remove hedging words like "try
to", "you might want to", "consider", "maybe". Rewrite as direct imperatives.content-tautological): Remove empty truisms
like "follow best practices" or "ensure code quality". Replace with specific,
actionable instructions or delete the line entirely.content-vague-reference): Replace vague phrases like
"the relevant files" or "appropriate tools" with specific names.For each fix:
After fixing all violations you can address, run skillsaw again to confirm
they are resolved. If violations remain that you cannot fix (e.g. they require
user decisions about content), list them for the user and explain what needs to
change.
If any violations remain after Steps 3–4, offer to create a baseline:
Tell the user: "There are N remaining violations. I can create a baseline file
(.skillsaw-baseline.json) so these are accepted for now — only new
violations will fail going forward. You can fix them over time and re-run
skillsaw baseline to shrink the accepted set."
If the user agrees, run skillsaw baseline and confirm the file was created.
Remind them to commit .skillsaw-baseline.json to the repository.
If no .skillsaw.yaml exists yet, run skillsaw init to generate a default
config file. Tell the user they can customize rule settings in this file.
If one already exists, skip this step.
Ask the user which CI system they use. Offer the following options:
Create .github/workflows/lint.yml:
Pin actions to commit SHAs for supply-chain protection. Look up the current SHAs before creating the workflow:
git ls-remote --tags https://github.com/actions/checkout.git v5
git ls-remote --tags https://github.com/stbenjam/skillsaw.git v0
Use the returned SHAs in the workflow with a trailing # vN comment:
name: Lint
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
skillsaw:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@<CHECKOUT_SHA> # v5
with:
persist-credentials: false
- uses: stbenjam/skillsaw@<SKILLSAW_SHA> # v0
with:
strict: true
Then ask if they also want PR review comments. If yes, also create
.github/workflows/lint-review.yml:
name: Lint Review
on:
workflow_run:
workflows: ["Lint"]
types: [completed]
jobs:
review:
if: github.event.workflow_run.event == 'pull_request'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: stbenjam/skillsaw/review@<SKILLSAW_SHA> # v0
Add a skillsaw job to .gitlab-ci.yml. Use the code-climate output format
with a GitLab Code Quality artifact so violations appear inline on merge
requests:
skillsaw:
image: ghcr.io/stbenjam/skillsaw:latest
stage: test
script:
- skillsaw --strict --output gitlab:gl-code-quality.json
artifacts:
reports:
codequality: gl-code-quality.json
If the user declines CI setup, skip this step. Mention they can set it up later by following the skillsaw CI documentation.
Ask the user if they want Makefile targets for running skillsaw locally. If they decline, skip to Step 9.
First, look up the latest skillsaw version to pin against:
curl -s https://pypi.org/pypi/skillsaw/json | python3 -c "import sys,json; print(json.load(sys.stdin)['info']['version'])"
If curl or python3 is unavailable, fall back to:
git ls-remote --tags https://github.com/stbenjam/skillsaw.git 'v*' | sort -t/ -k3 -V | tail -1
Ask the user whether they prefer uvx or podman/docker for the targets.
SKILLSAW_VERSION := <LATEST_VERSION>
.PHONY: lint lint-fix
lint:
uvx skillsaw==$(SKILLSAW_VERSION) --strict
lint-fix:
uvx skillsaw==$(SKILLSAW_VERSION) fix
Use whichever container runtime is installed. Pin to the version tag, not
latest:
SKILLSAW_VERSION := <LATEST_VERSION>
CONTAINER_ENGINE ?= $(shell command -v podman 2>/dev/null || echo docker)
.PHONY: lint lint-fix
lint:
$(CONTAINER_ENGINE) run --rm -v $$(pwd):/workspace:Z ghcr.io/stbenjam/skillsaw:v$(SKILLSAW_VERSION) --strict
lint-fix:
$(CONTAINER_ENGINE) run --rm -v $$(pwd):/workspace:Z ghcr.io/stbenjam/skillsaw:v$(SKILLSAW_VERSION) fix
If a Makefile already exists, append the targets. If not, create one. In
either case, do not overwrite existing lint or lint-fix targets — if they
already exist, ask the user what names to use instead (e.g. skillsaw-lint).
Run skillsaw one final time and confirm the repo passes (exit 0). Summarize
what was done:
Remind the user to commit all new/changed files:
.skillsaw.yaml (if created).skillsaw-baseline.json (if created).github/workflows/lint.yml (if created).github/workflows/lint-review.yml (if created).gitlab-ci.yml (if modified)Makefile (if created or modified)