Claude Code Plugins

Community-maintained marketplace

Feedback

Unified linting scripts for all services in the monorepo. Use when the user wants to lint code, check formatting, or run type checks.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name lint-service
description Unified linting scripts for all services in the monorepo. Use when the user wants to lint code, check formatting, or run type checks.

Lint Service Skill

Unified linting scripts for all services in the Saturn's Oracle monorepo.

Services

TypeScript (2 services)

  • apollos-ui
  • polling-service

Python (3 services)

  • mercury-clustering
  • terra-local-gpu
  • apollo-video-distillation

Rust (3 services)

  • flora-clustering-rust
  • hercules-local-algo
  • vulcan-gpu-sdk (also has Python)

Usage

From Anywhere in the Repo

# TypeScript
.claude/skills/lint-service/lint-typescript.sh apollos-ui
.claude/skills/lint-service/lint-typescript.sh apollos-ui --staged-only

# Python
.claude/skills/lint-service/lint-python.sh mercury-clustering
.claude/skills/lint-service/lint-python.sh terra-local-gpu --staged-only

# Rust
.claude/skills/lint-service/lint-rust.sh flora-clustering-rust
.claude/skills/lint-service/lint-rust.sh hercules-local-algo --staged-only

What Each Script Does

lint-typescript.sh:

  • ESLint with --max-warnings=-1 (errors only)
  • TypeScript type checking (tsc --noEmit)
  • Staged-only: Lints only staged .ts/.tsx files

lint-python.sh:

  • Ruff check (linting)
  • Ruff format --check (formatting)
  • mypy (type checking, full mode only)
  • Staged-only: Lints only staged .py files

lint-rust.sh:

  • cargo clippy (linting)
  • cargo fmt --check (formatting)
  • cargo test (only in CI, not precommit)
  • Staged-only: Skips if no .rs files staged

Exit Codes

  • 0: Success
  • 1: Linting failed (blocking)

Integration

These scripts are called by:

  1. Precommit hook (.husky/pre-commit) with --staged-only
  2. GitHub Actions (without --staged-only, full service)
  3. Manual invocation by developers or Claude

Examples

Lint all Python services

for service in mercury-clustering terra-local-gpu apollo-video-distillation; do
  .claude/skills/lint-service/lint-python.sh $service
done

Lint only staged files in current service

# If working in apollos-ui
.claude/skills/lint-service/lint-typescript.sh apollos-ui --staged-only

Check if linting will pass before committing

# TypeScript
.claude/skills/lint-service/lint-typescript.sh apollos-ui --staged-only

# Python
.claude/skills/lint-service/lint-python.sh mercury-clustering --staged-only

# Rust
.claude/skills/lint-service/lint-rust.sh flora-clustering-rust --staged-only

Linting Config Location

All services extend root configs:

  • Python: /pyproject.toml (ruff + mypy)
  • Rust: /rustfmt.toml + /.clippy.toml
  • TypeScript: /.eslintrc.monorepo.js

Services can override with local configs if needed.

Auto-fix Commands

If linting fails, use these commands to auto-fix:

TypeScript:

cd apollos-ui
pnpm lint:fix

Python:

cd mercury-clustering
uv run ruff check --fix .
uv run ruff format .

Rust:

cd flora-clustering-rust
cargo fmt --all
cargo clippy --all-targets --all-features --fix