Markdown Converter
Agent skill for markdown-converter
This provides essential guidance for AI coding agents working on this repository.
Sign in to like and favorite skills
This provides essential guidance for AI coding agents working on this repository.
ALWAYS use
prefix for ALL Python-related commands. NEVER use vanilla commands.uv run
ā uv run python script.py # NEVER: python script.py ā uv run pytest # NEVER: pytest ā uv run python -m pytest tests/ # NEVER: python -m pytest tests/ ā uv run python -c "print('test')" # NEVER: python -c "print('test')" ā uv run ruff check . # NEVER: ruff check . ā uv run ruff format . # NEVER: ruff format . ā uv run mypy src/ # NEVER: mypy src/ ā uv run pip install package # NEVER: pip install package
ā
python (any form)
ā pytest (any form)
ā pip (any form)
ā ruff (any form)
ā mypy (any form)
ā black, isort, flake8, or any other Python tools
Why? All development tools must go through
uv run to ensure:
This requirement is NON-NEGOTIABLE for AI agents working with this project.
When invoking subagents or providing instructions to other AI agents, ALWAYS explicitly require them to use
prefixes for Python commands.uv run
Include this requirement in your prompts:
IMPORTANT: Use `uv run` prefix for ALL Python commands: - uv run python script.py (NEVER: python script.py) - uv run pytest (NEVER: pytest) - uv run ruff check . (NEVER: ruff check .) - uv run pip install package (NEVER: pip install package)
Verify compliance: Always check that subagent responses use proper
uv run prefixes before accepting their output.
gac/ āāā src/gac/ # Main package ā āāā cli.py # CLI entrypoint ā āāā main.py # Commit workflow orchestration ā āāā ai.py # AI provider integration ā āāā prompt.py # Prompt building ā āāā git.py # Git operations ā āāā security.py # Secret detection ā āāā providers/ # 24 AI provider implementations ā āāā oauth/ # OAuth authentication āāā tests/ # Test suite (mirrors src/) ā āāā providers/ # Provider tests āāā docs/ # Documentation āāā scripts/ # Automation helpers āāā assets/ # Screenshots and assets
Key Points:
src/gacdist/, htmlcov/) are disposableuv venv && uv pip install -e ".[dev]"
uv run -- pytest # All tests (excludes integration) uv run -- pytest tests/test_cli.py # Single file make test-integration # Integration tests only (requires API keys)
make lint # Check code quality make format # Auto-fix formatting make clean # Remove artifacts
Requirements:
CLI Features:
gac -i # Interactive mode gac --add-all # Stage all changes gac --group # Group changes into multiple commits gac --dry-run # Preview without committing gac --message-only # Output message only
Coding Standards:
Provider Tests: Each provider has three test types:
BaseProviderTest@pytest.mark.integration)Coverage:
make test-cov # Generate HTML coverage report open htmlcov/index.html # View details
Format: Conventional Commits with optional scopes
feat(ai): implement streaming fix(providers): handle rate limits docs: update examples
PR Checklist:
__version__.py (if releasable)make format, make lint, make type-check, and make test passingUse
for commits: gac
gac -sy
httpx>=0.28.0 - HTTP client with async support and proper connection poolingpydantic>=2.12.0 - Data validation and serialization for provider configsclick>=8.3.0 - CLI framework with rich formatting integrationrich>=14.1.0 - Terminal formatting for beautiful CLI outputUV HARD REQUIREMENT:
This project's multi-provider architecture (25+ AI integrations) creates complex dependency trees that only UV can resolve consistently. The dependency lockfile (
uv.lock) ensures reproducible builds across all environments - development, testing, CI/CD, and production.
NEVER use vanilla Python tools. They will:
ALWAYS use UV. It provides:
uv.lock