一键导入
lint-fix
// Run all project linters (ruff check, ruff format, mypy, eslint) and auto-fix every violation. Fixes line-length, type annotations, unused vars, and formatting in one pass.
// Run all project linters (ruff check, ruff format, mypy, eslint) and auto-fix every violation. Fixes line-length, type annotations, unused vars, and formatting in one pass.
| name | lint-fix |
| description | Run all project linters (ruff check, ruff format, mypy, eslint) and auto-fix every violation. Fixes line-length, type annotations, unused vars, and formatting in one pass. |
Run every linter the project uses, collect all violations, and fix them in a single pass. Handles Python (ruff + mypy) and TypeScript (eslint) together.
Run all four checks in parallel and collect their output:
ruff check cachibot/ — lint errors (E501, F841, etc.)ruff format --check cachibot/ — formatting driftmypy cachibot/ — type errors (only in cachibot/, NOT transitive errors
from prompture or other installed packages)cd frontend && npx eslint src/ — TypeScript lint (errors only, warnings are informational)Parse each tool's output into a list of { tool, file, line, code, message } findings.
Important: When parsing mypy output, discard any finding whose file path is
outside cachibot/ (e.g., errors in installed packages like prompture). Also
discard import-not-found errors for prompture.* and tukuy.* modules — those are
expected when the editable installs are out of sync and are not CachiBot bugs.
If zero findings remain after filtering, tell the user everything is clean and stop.
Run the auto-fixers first to knock out the easy ones:
ruff check --fix cachibot/ — auto-fix simple lint issuesruff format cachibot/ — reformat any drifted filescd frontend && npx eslint src/ --fix — auto-fix simple TS issuesRe-run the linters from Phase 0 to see what remains after auto-fix.
For each remaining finding, apply the appropriate fix strategy:
"description": (
"First part of the string"
" second part of the string"
),
dict → dict[str, Any] (or more specific types if obvious from context)list → list[str] (or the appropriate element type)tuple → fill in the actual element typesfrom typing import Any, etc.) as needed.Model.model_validate(data)
instead of Model(**data).str passed where a Literal[...] is expected, change the parameter
type annotation to use the Literal type._name and add an
eslint-disable comment for that line only.Run all four linters again (same commands as Phase 0). If new violations appear from the fixes, fix those too (max 2 retry rounds to avoid infinite loops).
Print a concise summary:
Lint fix complete.
ruff check: N fixed (was N violations)
ruff format: N files reformatted
mypy: N fixed (N filtered as external)
eslint: N errors fixed, N warnings skipped
Files modified:
- path/to/file.py (ruff E501, mypy type-arg)
- path/to/other.tsx (eslint no-unused-vars)
Add new REST API endpoints to CachiBot's FastAPI backend following the project's conventions. Use this skill when adding API routes, endpoints, or REST resources — e.g., "add an API for reminders", "create a CRUD endpoint for bookmarks".
Create new frontend views and components for CachiBot's React+TypeScript UI with Zustand state management. Use this skill when building new pages, views, panels, or major UI components — e.g., "add a dashboard view", "create a logs panel", "build a new settings tab".
Add a complete full-stack entity to CachiBot spanning database table, repository, Pydantic models, API routes, TypeScript types, API client, and Zustand store. Use this skill when adding a new data entity or resource that needs persistence and CRUD across the entire stack — e.g., "add bookmarks", "add a reminders system", "create a templates feature".
Create new CachiBot agent plugins (tools) following the project's capability-gated plugin architecture. Use this skill when adding a new tool, capability, or plugin to the CachiBot agent system — e.g., "add a translate tool", "create a web scraping plugin", "add a new capability".
Add new WebSocket message types and event handlers to CachiBot's real-time streaming system. Use this skill when adding new real-time events, live updates, or bidirectional WebSocket communication — e.g., "add live progress events", "stream file upload status", "add approval request events".
Generate a pull request title and description from the current branch's commits. Produces a concise summary, optional feature highlights, and collapsible technical details.