From ottonomous
Runs linting, type checking, tests, and visual verification. Auto-detects tools for JS/TS/Python/Rust/Go. Generates tests for changed files; scopes to staged/branch.
npx claudepluginhub brsbl/ottonomous --plugin ottonomousThis skill is limited to using the following tools:
**Arguments:** $ARGUMENTS
Orchestrates running tests, linting, and quality checks via project scripts like run_tests.sh, run_lint.sh, and run_quality_suite.sh. Guides scenarios, triages failures, and recommends verification order.
Verifies code after changes with typecheck, lint, tests, build for Node/TS, Python, Go, Rust projects. Auto-fixes errors, detects secrets, circular deps, deadcode, AI slop.
Runs lint, type-check, tests, and build for Node.js, Python, Rust, Go, Java projects after code changes to verify nothing is broken.
Share bugs, ideas, or general feedback.
Arguments: $ARGUMENTS
| Command | Behavior |
|---|---|
run | Lint + type check + run tests |
write | Generate tests, then run pipeline |
browser | Visual verification (web apps) |
electron | Visual verification (Electron/VS Code apps) |
all | run + browser/electron combined |
Scope (optional, default: branch):
| Scope | Command |
|---|---|
branch | git diff main...HEAD --name-only |
staged | git diff --cached --name-only |
| Config | Tool | Command |
|---|---|---|
package.json + vitest | Vitest | npx vitest run |
package.json + jest | Jest | npx jest |
package.json + "test" | npm | npm test |
pyproject.toml | pytest | pytest |
Cargo.toml | cargo | cargo test |
go.mod | go | go test ./... |
.eslintrc* / eslint.config.* | ESLint | npx eslint . |
biome.json | Biome | npx biome check . |
tsconfig.json | TypeScript | npx tsc --noEmit |
# JS/TS test runner
npm install -D vitest
# JS/TS linter
npm install -D eslint @eslint/js
# JS/TS types
npm install -D typescript && npx tsc --init
# Python
pip install pytest ruff mypy
# 1. Lint
npx eslint . --fix # or: npx biome check . --write
# 2. Type check
npx tsc --noEmit # or: mypy .
# 3. Test
npx vitest run # or: pytest, cargo test, go test ./...
Fix errors, re-run until all pass.
git diff main...HEAD --name-only # branch scope
git diff --cached --name-only # staged scope
Filter to source files (exclude tests, configs, docs).
Hand off files to test-writer subagents. They determine testability and write tests.
| Files | Subagents |
|---|---|
| 1-3 | 1 |
| 4-8 | 2-3 |
| 9+ | 3-5 |
// Task tool
{
subagent_type: "test-writer",
prompt: "Write tests for: [file list]. Runner: vitest. Convention: *.test.ts"
}
Same as Run Mode step 3.
Visual verification using agent-browser CLI. See /browser skill for full API.
# Determine dev server URL from package.json or running processes
agent-browser open {url} # e.g., http://localhost:5173
agent-browser wait 3000
agent-browser screenshot .otto/test-screenshots/page.png
agent-browser snapshot -i
# Interact and verify
agent-browser click @e3
agent-browser snapshot -i
agent-browser close
rm -rf .otto/test-screenshots
Visual verification for Electron/VS Code apps via CDP.
# Detect: engines.vscode in package.json → VS Code extension
# Detect: electron in dependencies → Electron app
# Build first
npm run compile
# Launch (VS Code extension example)
code --extensionDevelopmentPath=./ --disable-extensions \
--remote-debugging-port=9333 . &
APP_PID=$!
sleep 8
# Connect and verify
agent-browser connect 9333
agent-browser snapshot -i
agent-browser screenshot .otto/test-screenshots/electron.png
# Check webviews if applicable
agent-browser tab
agent-browser tab 1
agent-browser snapshot -i
# Cleanup
agent-browser close
kill $APP_PID
rm -rf .otto/test-screenshots