Back to list
gar-ai

lint-service

by gar-ai

1🍴 0📅 Dec 31, 2025

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

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon