gsd-headless
Orchestrate GSD (Git Ship Done) projects programmatically via headless CLI. Use when an agent…
Lint and format code. Auto-detects ESLint, Biome, Prettier, or language-native formatters and runs them with auto-fix. Reports remaining issues with actionable suggestions.
$ npx -y skills add open-gsd/gsd-pi --skill lint --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/lintContext preview
The summary Claude sees to decide when to auto-load this skill.
Lint and format code. Auto-detects ESLint, Biome, Prettier, or language-native formatters and runs them with auto-fix. Reports remaining issues with actionable suggestions.
name: lint description: Lint and format code. Auto-detects ESLint, Biome, Prettier, or language-native formatters and runs them with auto-fix. Reports remaining issues with actionable suggestions.
<objective> Lint and format code in the current project. Auto-detect the project's linter and formatter toolchain, run them against the target files, and report results grouped by severity with actionable fix suggestions. </objective>
<working_directory_awareness> **Before running any `git` or build command:** check whether your dispatch context specifies a working directory (look for "Working directory:" in your initial prompt). If it does and `pwd` does not match it, prefix every git invocation with `-C <that path>` (e.g. `git -C /path/to/worktree diff --name-only`) and run linters/formatters with the explicit path argument. Linting the wrong directory is a silent failure mode. </working_directory_awareness>
<arguments> This skill accepts optional arguments after `/lint`:
Parse the arguments before proceeding. If `--fix` is present, set fix mode. If a non-flag argument is present, treat it as the target path. </arguments>
<detection> Auto-detect the project's linter and formatter by checking configuration files in the project root. Check in this order and use the **first match found** for each category (linter vs. formatter). A project may have both a linter and a formatter.
**JavaScript/TypeScript Linters:**
1. **Biome** — Look for `biome.json` or `biome.jsonc` in the project root.
2. **ESLint** — Look for `.eslintrc`, `.eslintrc.*` (js, cjs, json, yml, yaml), `eslint.config.*` (js, mjs, cjs, ts, mts, cts), or an `"eslintConfig"` key in `package.json`.
**JavaScript/TypeScript Formatters (only if Biome was NOT detected):**
3. **Prettier** — Look for `.prettierrc`, `.prettierrc.*`, `prettier.config.*`, or a `"prettier"` key in `package.json`.
**Rust:**
4. **rustfmt** — Look for `rustfmt.toml` or `.rustfmt.toml`, or `Cargo.toml` in the project root.
**Go:**
5. **Go tools** — Look for `go.mod` in the project root.
**Python:**
6. **Ruff** — Look for `ruff.toml` or a `[tool.ruff]` section in `pyproject.toml`.
7. **Black** — Look for a `[tool.black]` section in `pyproject.toml`, or `black` in requirements files.
If no linter or formatter is detected, inform the user and suggest common options for their project type based on the files present. </detection>
<execution>
**Step 1: Determine target files**
git diff --name-only git diff --cached --name-only
Filter to files that still exist on disk. If no files are changed, inform the user and offer to lint the entire project instead.
**Step 2: Run the detected tools**
Run the linter and/or formatter against the target files or directory.
When running formatters without `--fix`, show a preview of what would change:
**Step 3: Parse and organize output**
Parse the tool output and organize issues:
## Lint Results ### Errors (X issues) | File | Line | Rule | Message | |------|------|------|---------| | ... | ... | ... | ... | ### Warnings (X issues) | File | Line | Rule | Message | |------|------|------|---------| | ... | ... | ... | ... | ### Formatting - X files would be reformatted - [list files] ### Summary - Total issues: X errors, Y warnings, Z formatting - Auto-fixable: N issues (run `/lint --fix` to apply)
**Step 4: Suggest fixes for common issues**
For the most frequent issues, provide brief actionable guidance:
</execution>
<critical_rules>
1. **Never modify files without `--fix`**: Default mode is report-only. Respect the user's working tree. 2. **Use the project's own config**: Do not invent lint rules. Use whatever config files exist in the project. 3. **Use the project
GSD Pi is a local-first coding agent for planning, implementing, verifying, and tracking project work from the command line.
Repo: open-gsd/gsd-pi
Orchestrate GSD (Git Ship Done) projects programmatically via headless CLI. Use when an agent…
Audit and improve web accessibility following WCAG 2.1 guidelines. Use when asked to "improve…
Browser automation CLI for AI agents. Use when interacting with websites — navigating pages,…
Design or review an HTTP/REST/GraphQL API for versioning, pagination, error shapes,…
Apply modern web development best practices for security, compatibility, and code quality.…
Ask a quick side question about your current work without derailing the main task. Answers…