ci skill
Run Vale in GitHub Actions, a pre-commit hook, or another runner. Use when the user says "add vale to CI", "run vale on PRs", "add a pre-commit hook", or "make the build fail on style errors".
- GitHub stars
- 8
- Files
- 1
- Last commit
- Sep 3, 2026
- License
- MIT
- Allowed tools
- —
What does the ci skill do?
ci runs Vale in GitHub Actions, a pre-commit hook, or another runner. Use when the user says "add vale to CI", "run vale on PRs", "add a pre-commit hook", or "make the build fail on style errors".
How to install the ci skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the ci skill in Plugin
/plugin marketplace add vale-cli/agent-tools /plugin install vale@agent-tools
Install the ci skill in Claude Code
~/.claude/skills/ci/SKILL.md
$ npx degit vale-cli/agent-tools/skills/ci ~/.claude/skills/ciInstall the ci skill in Claude Code (project)
.claude/skills/ci/SKILL.md
$ npx degit vale-cli/agent-tools/skills/ci .claude/skills/ciInstall the ci skill in Codex
~/.agents/skills/ci/SKILL.md
$ npx degit vale-cli/agent-tools/skills/ci ~/.agents/skills/ciInstall the ci skill in Gemini CLI
~/.gemini/skills/ci/SKILL.md
$ npx degit vale-cli/agent-tools/skills/ci ~/.gemini/skills/ciInstall the ci skill in Claude.ai
npx degit vale-cli/agent-tools/skills/ci ci && zip -r ci.zip ci # claude.ai → Customize → Skills → + → Create skill → Upload a skill → ci.zip
SKILL.md
View on GitHubPut Vale in the pipeline
When to use this
Vale runs locally and should now run automatically.
Prerequisites
vale ls-configresolves, and a plainvale <path>run works locally. Do not wire up CI for a config that does not resolve — the failure will look like a CI problem.- The user has said whether the job should block. Ask if not.
Advisory or blocking
Only error sets a non-zero exit code. Warnings and suggestions exit 0, so
a job wired up naively passes no matter how much it reports.
- Advisory — Vale reports, the job stays green. The right way to adopt Vale on a corpus that has never had it.
- Blocking — the rules the team cares about are set to
errorin the config, and the job fails on those.
Say which one you are setting up, in those words. "It runs in CI" tells nobody whether it can stop a merge.
GitHub Actions
- uses: vale-cli/vale-action@reviewdog
with:
files: docs
Alerts arrive as review comments on the pull request, which is where a writer will see them.
pre-commit
repos:
- repo: https://github.com/vale-cli/vale
rev: v3.17.0
hooks:
- id: vale
Pin rev to a release. Hooks that float break at the worst time.
Any other runner
vale --no-global --output=line docs/
--output=line gives path:line:col:rule:message, which most CI systems can
turn into annotations. --no-global keeps a config on the machine from
changing the result.
If the runner has no cached StylesPath, vale sync has to run first — and
that means a style updating upstream can fail a build nobody changed. Pin
Packages to a release URL rather than a moving reference.
Do not
- Do not add
--no-exitto make a failing job pass. If those alerts should not block, change the levels in the config, where the decision is visible to the team. - Do not raise
MinAlertLevelin CI only. A config that reports different things locally and in CI is how people stop trusting the tool.
Files in this skill
1ci skill questions
How do I install the ci skill in Claude Code?
Run npx degit vale-cli/agent-tools/skills/ci ~/.claude/skills/ci. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the ci skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.