code-quality
SKILL.md
Code Quality Check
This skill runs code quality tools (ruff, mypy, pytest) and optionally simplifies code.
Usage
/code-quality [options]
Options
--allor-a: Run on all synapse/ files (default: recently modified files only)--no-simplify: Skip code-simplifier agent (by default, code-simplifier runs after checks pass)--fixor-f: Auto-fix ruff issues with--fixflag--testor-t: Run pytest after linting passes--full: Run all checks including tests (equivalent to--fix --test)
Workflow
Step 1: Identify Target Files
If --all flag is provided:
- Target all files in
synapse/directory
Otherwise:
- Run
git diff --name-only HEAD~1to get recently modified files - Filter to only
.pyfiles insynapse/ortests/
Step 2: Run Ruff Linter
ruff check [files]
If --fix flag is provided:
ruff check --fix [files]
Report any errors found. If errors remain after fix, stop and report.
Step 3: Run Mypy Type Checker
uv run mypy [files]
Report any type errors found. If errors exist, stop and report.
Step 4: Run Tests (if --test or --full)
If --test or --full flag is provided AND ruff/mypy passed:
pytest
For running specific tests related to modified files:
pytest tests/ -v
Report any test failures.
Step 5: Run Code Simplifier (Default)
By default, run code-simplifier after all checks pass. Skip with --no-simplify flag.
Use the code-simplifier:code-simplifier agent to simplify the recently modified code:
Task tool with subagent_type: code-simplifier:code-simplifier
Prompt: Simplify and refine the recently modified code in [files].
Look for opportunities to reduce duplication, simplify conditionals,
and improve readability while maintaining all functionality.
Step 6: Report Results
Summarize:
- Number of files checked
- Ruff status (pass/fail, errors fixed if --fix)
- Mypy status (pass/fail)
- Pytest status (pass/fail, skipped if not run)
- Code simplifier status (run by default, skipped if --no-simplify)
Error Handling
When errors are found:
- Ruff errors: If
--fixis provided, attempt auto-fix first. Report remaining errors with file:line format. - Mypy errors: Report type errors with file:line format. Suggest fixes based on error messages.
- Test failures: Report failed test names and assertion errors. Do NOT proceed to simplification if tests fail.
Examples
Basic check on recent changes
/code-quality
Check all files with auto-fix
/code-quality --all --fix
Full quality check with tests
/code-quality --full
Run with tests only
/code-quality --test
Skip code simplification
/code-quality --no-simplify
Shorthand
/lint # Same as /code-quality (includes simplification)
/check # Same as /code-quality
/lint -a -f # All files with auto-fix
/lint -t # With tests
/lint --full # Full check (--fix --test)
/lint --no-simplify # Skip simplification
Tool Configuration
This project uses the following configurations (from pyproject.toml):
Ruff
- Target: Python 3.10
- Line length: 88
- Rules: E, F, I, UP, B, SIM
- Ignored: E501, B008
- Excluded: synapse/proto/a2a_pb2*.py
Mypy
- Strict mode with disallow_untyped_defs
- Tests have relaxed rules (ignore_errors)
- Proto files excluded
Pytest
- asyncio_mode: auto
- Run with:
pytestorpytest tests/ -v
Weekly Installs
25
Repository
s-hiraoku/synapse-a2aFirst Seen
Jan 24, 2026
Security Audits
Installed on
claude-code22
opencode21
gemini-cli20
codex20
github-copilot17
cursor17