with one click
create-pr
// Generate a pull request title and description from the current branch's commits. Produces a concise summary, optional feature highlights, and collapsible technical details.
// Generate a pull request title and description from the current branch's commits. Produces a concise summary, optional feature highlights, and collapsible technical details.
Scan LESS stylesheets for variable errors — undefined variables, CSS custom properties passed to compile-time functions (fade, darken, lighten, etc.), and incorrect variable name patterns. Reports issues with file, line, and fix.
Scan backend services for subprocess bugs — missing sudo, missing exception handling on distro-specific commands, raw subprocess calls bypassing system utilities, and container/environment assumptions that break in LXC or restricted environments. Reports issues with file, line, and fix.
Inspect the ServerKit SQLite database — show tables, schemas, row counts, and run queries. Runs via WSL for local dev or SSH MCP for production. Use when debugging data issues or understanding the current database state.
Deploy ServerKit to the production server via SSH. Runs update, rebuilds frontend, restarts services, and performs health checks. Use when pushing changes to production.
Scaffold a new full-stack feature for ServerKit with Flask backend (model, service, API blueprint) and React frontend (page, styles, route). Use when creating new modules, pages, or API endpoints.
| name | create-pr |
| description | Generate a pull request title and description from the current branch's commits. Produces a concise summary, optional feature highlights, and collapsible technical details. |
Generate a pull request title and description that's scannable, informative, and has just enough personality to feel human.
Run these commands to build a complete picture before writing anything:
# Commit overview
git log main..HEAD --oneline --stat
# Full diff stat for file-level scope
git diff main..HEAD --stat
# Actual code changes — read the diff, don't just skim filenames
git diff main..HEAD
If the full diff is too large, diff individual areas (backend routes, frontend, storage, etc.) in batches. You must understand what the code actually does, not just which files were touched.
Write the file to .pr/YYYY-MM-DD.md (using today's date). Create the .pr/ directory if it doesn't exist. If a file for today's date already exists, append a counter: YYYY-MM-DD-2.md, YYYY-MM-DD-3.md, etc.
The structure depends on whether the PR introduces user-facing features or is purely internal (refactors, bug fixes, infra).
# <Title>
<2-3 sentence summary>
### Highlights
- Highlight 1
- Highlight 2
- ...
<details>
<summary>Technical changes</summary>
- Detail 1
- Detail 2
- ...
</details>
# <Title>
<2-3 sentence summary>
<details>
<summary>Technical changes</summary>
- Detail 1
- Detail 2
- ...
</details>
Omit the Highlights section entirely for internal-only PRs — don't force it.
SchedulerService gains a timezone attribute".backtick code references for identifiers, plain text for descriptions.get_or_create_chat fixed by moving creation inside the lookup session" is good. "Fix database issues" is not.git log main..HEAD --format='%aN <%aE>' | sort -u to find unique commit authors.github-actions[bot]).@username if their GitHub handle is available (check the ARGUMENTS or commit metadata), otherwise use their name. Add a brief note about what they contributed if it's clear from the commits.