Run the Vale prose linter on CircleCI documentation files to identify and fix style errors. Use this skill when the user explicitly asks to "run vale", "fix vale errors", "lint docs with vale", or mentions vale linting. Always clarifies scope and delivery method with the user before making changes — it does not assume per-file PRs.
78
88%
Does it follow best practices?
Impact
77%
1.87xAverage score across 1 eval scenario
Passed
No findings from the security scan
This skill runs Vale prose linter on CircleCI documentation, fixes error-level issues, and delivers the fixes the way the user actually wants.
Use this skill when the user:
Do NOT trigger this skill automatically just because .adoc files are being edited.
Never assume scope or delivery method. Before running Vale, ask the user (a single combined question is fine if the intent is already partly clear from their request):
Which files?
git diff --name-only main...HEAD or against whatever the base branch is) — this is the common case when clearing a CI lint check before mergeWhat should happen with the fixes?
Do not default to "one PR per file" — that's only one of several valid outcomes. If the user's request already answers both questions (e.g., "fix vale errors on my current branch and push"), skip the question and confirm briefly instead of re-asking.
Verify these requirements before proceeding:
vale --version).vale.ini configuration file exists in the repo rootmain), and any pre-existing local changes are the user's own in-progress work — check git status and don't clobber itRun Vale with JSON output to get structured error information:
vale --output=JSON <file-or-directory>Important: Only process error-level issues. Vale reports three severity levels:
error - Fix these automaticallywarning - Skip (leave for human review)suggestion - Skip (leave for human review)Filter the JSON output to extract only errors:
vale --output=JSON file.adoc | jq 'to_entries | map(select(.value[] | .Severity == "error"))'If no errors are found, inform the user and exit.
For each file with errors:
circleci-docs.OxfordComma)vale --output=JSON fixed-file.adocFollow whichever path the user chose in Step 1.
Use this for the "clear the pipeline for merge" case — fixing lint errors on a branch that already has an open PR.
main/the default branch.git add <file1> <file2> ...git commit -m "$(cat <<'EOF'
Fix Vale errors in <file1>, <file2>, ...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
EOF
)"git pushOnly take this path if the user asked for it.
git checkout -b vale-fix-{scope}-{short-hash}gh pr create --title "Fix Vale errors in <scope>" --body "$(cat <<'EOF'
## Summary
Fixes Vale error-level issues in <scope>.
## Errors fixed
- **Line X**: [Rule name] - [Description]
## Notes
- Only error-level issues were addressed; warnings and suggestions were left for human review
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"Apply the edits to the working tree and stop. Do not stage, commit, or push. Tell the user what changed and let them review with git diff.
Regardless of path, report clearly:
Vale Error Fixing Summary
========================
Files processed: 3
Files with errors fixed: 2
Files with no errors: 1
Fixed:
- docs/guides/modules/toolkit/pages/install-cli.adoc (5 errors fixed)
- docs/guides/modules/toolkit/pages/config-reference.adoc (3 errors fixed)
No errors found:
- docs/guides/modules/toolkit/pages/troubleshooting.adoc
Delivery: <pushed to branch X / PR #123 created / left uncommitted for review>
Unresolved (needs human review):
- <file>:<line> — <rule> — <why it wasn't auto-fixed>Passive voice (Vale.Terms):
Oxford comma (circleci-docs.OxfordComma):
Heading punctuation (circleci-docs.HeadingsPunctuation):
Link text (circleci-docs.Link):
xref:guide.adoc[click here]xref:guide.adoc[Installation Guide]Gender bias (circleci-docs.GenderBias):
Hedging (circleci-docs.Hedging):
Contractions:
Spelling and capitalization:
Some errors require judgment:
If Vale itself fails:
.vale.ini exists and is validIf a file cannot be fully fixed:
If git operations fail:
gh CLI is authenticated (only needed for Path B)styles/circleci-docs/ and configured in .vale.ini.AGENTS.md.5c19307
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.