.opencode/skills/lint/SKILL.md
Code linting during review. Runs ESLint/Prettier/platform-specific linters on changed files. Returns warnings and errors with fix suggestions.
npx skillsauth add astro44/Autonom8-Agents lintInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Runs appropriate linters on changed files during code review. Supports multiple platforms and linter configurations.
{
"project_dir": "/path/to/project",
"scope": "changed|all|ticket",
"fix": false,
"ticket_id": "TICKET-XXX"
}
cd $project_dir
# Check for linter configs
[[ -f ".eslintrc.js" || -f ".eslintrc.json" || -f "eslint.config.js" ]] && LINTER="eslint"
[[ -f ".prettierrc" || -f "prettier.config.js" ]] && HAS_PRETTIER=true
[[ -f "pyproject.toml" ]] && grep -q "ruff" pyproject.toml && LINTER="ruff"
[[ -f ".golangci.yml" ]] && LINTER="golangci-lint"
[[ -f "analysis_options.yaml" ]] && LINTER="dart_analyze"
# Get files changed by current ticket
git diff --name-only HEAD~1 | grep -E '\.(js|jsx|ts|tsx|py|go|dart)$'
JavaScript/TypeScript:
npx eslint --format json $FILES
# Or with fix
npx eslint --fix --format json $FILES
Python:
ruff check --output-format json $FILES
# Or
python -m flake8 --format json $FILES
Go:
golangci-lint run --out-format json $FILES
Dart/Flutter:
dart analyze --format json $FILES
Map linter output to standard format:
| Linter | Error Key | Warning Key | |--------|-----------|-------------| | ESLint | severity: 2 | severity: 1 | | Ruff | severity: error | severity: warning | | golangci-lint | Severity: error | Severity: warning |
{
"skill": "lint",
"status": "clean|warnings|errors",
"linter": "eslint",
"files_checked": 5,
"summary": {
"errors": 0,
"warnings": 3,
"fixed": 0
},
"issues": [
{
"file": "src/components/Foo.js",
"line": 42,
"column": 10,
"severity": "warning",
"rule": "no-unused-vars",
"message": "'bar' is defined but never used",
"fix": "Remove unused variable or use it"
}
],
"errors": [],
"warnings": ["3 warnings found"],
"next_action": "proceed|fix"
}
Any errors (severity: error)?
YES → status: "errors", next_action: "fix"
Any warnings?
YES → status: "warnings", next_action: "proceed"
No issues?
YES → status: "clean", next_action: "proceed"
| Status | Blocking | Description |
|--------|----------|-------------|
| clean | NO | No lint issues |
| warnings | NO | Style/preference issues |
| errors | YES | Potential bugs, security issues |
Lint changed files (default):
{
"project_dir": "/projects/oxygen_site",
"scope": "changed",
"fix": false
}
Lint and auto-fix:
{
"project_dir": "/projects/oxygen_site",
"scope": "changed",
"fix": true
}
Lint all files:
{
"project_dir": "/projects/oxygen_site",
"scope": "all",
"fix": false
}
Lint specific ticket files:
{
"project_dir": "/projects/oxygen_site",
"scope": "ticket",
"ticket_id": "TICKET-OXY-001",
"fix": false
}
| Platform | Linter | Config File | |----------|--------|-------------| | JavaScript | ESLint | .eslintrc.* | | TypeScript | ESLint + TS | .eslintrc.* | | Python | Ruff/Flake8 | pyproject.toml | | Go | golangci-lint | .golangci.yml | | Dart/Flutter | dart analyze | analysis_options.yaml | | CSS | Stylelint | .stylelintrc |
development
Scores proposal complexity against codebase surface. Uses proposal text analysis and readiness stats to determine decomposition tier and agent count.
testing
Fast filesystem readiness scan — counts docs, source files, manifests, platform signals. Produces initial ReadinessReport for agent spawning decisions.
testing
Merges bookend agent reports into revised readiness, complexity, and decomposition plan. Produces the final evidence-backed assessment consumed by sprint-architect-agent.
development
Rigorously reasons about definitions, proofs, and computations in algebra, analysis, discrete math, probability, linear algebra, and applied math. Verifies derivations, spots invalid steps, and states assumptions clearly. Use when solving or proving math problems, reviewing mathematical arguments, modeling with equations, interpreting statistics, or when the user mentions proofs, lemmas, theorems, integrals, series, matrices, optimization, or numerical methods.