
Claude Skills by hannibalevit
github.com/hannibalevitUse when adding or changing FastAPI routes, request/response schemas, serializers, or backend API behavior consumed by the extension.
Use for extension changes involving MV3 entry points, content scripts, job extraction, storage, side panel UI, inline field assistance, manifest permissions, or backend API calls.
Use when adding a SQLAlchemy model column or changing persisted SQLite data shape in the FastAPI backend.
Use when adding or changing LLM tasks, providers, prompt templates, provider routing, or generation behavior.
Use for changes touching resumes, job descriptions, generated artifacts, API keys, encryption, logging, Chrome permissions, CORS, LLM calls, or form-field assistance.
Use before finishing broad or release-like changes, or when asked to verify the repository end to end.
Use when adding a new FastAPI route/endpoint under server/app/routers/, or a new router module. Covers the wiring, camelCase contract, and test-stubbing conventions that are easy to get wrong or forget.
Use when adding a new column/field to a SQLAlchemy model in server/app/models.py (e.g. "add a field to JobSession", "store X on the user profile"). There is no Alembic — a model-only change silently breaks existing SQLite DBs.
Use when adding a new LLM-invoking task (like scan/resume/field_answer) or a new LLM provider (like openai/gemini/claude), or adding/editing a prompt. Missing a single prompt file for one provider raises FileNotFoundError at request time, not at startup.
Use when the user asks to commit changes (e.g. "commit this", "make a commit", "/commit"). Stages the relevant files and writes a Conventional Commits message matching this repo's pr-title-lint.yml / cliff.toml rules, since PR titles get squash-merged into main and are what auto-release.yml parses for the changelog and version bump.