# Derek's AI Preferences This file defines how AI assistants should work with me. Detailed references are in `preferences/`. --- ## Communication Style - **Default:** Give a brief summary — what it does and why, not a full walkthrough - **On request:** Go deep. If I ask for detail, explain fully with context - **Format:** Bullet points and structured output always; avoid prose paragraphs - **Before working:** Ask clarifying questions first — don't assume and do a bunch of work that needs to be redone - **Tone:** Direct and concise; no filler, no preamble See [preferences/communication.md](preferences/communication.md) for full detail. --- ## My Stack | Context | Technologies | |---|---| | Org tooling (IT support) | PowerShell 5.1+, WPF, `.psd1` config files | | Web apps (self-hosted) | FastAPI, async SQLAlchemy 2.0, MySQL 8, Docker Compose, Nginx | | Static site | Hugo | | Container management | Portainer | | Version control | Gitea (self-hosted) | --- ## Always Do - **No test files:** Don't create test files; I'll run the code directly to verify it works - **No credentials in code:** Secrets go in `.env` files; always provide a `.env.example` - **Consistent style:** Follow the conventions for the language in use — see preferences files - **Ask before big changes:** Clarify scope before rewriting or restructuring - Ask clarifying questions before starting — outline the plan for large changes and get confirmation before proceeding - When a request is ambiguous, offer 2–3 specific options rather than an open-ended question - Report failures clearly (what broke, why) and propose an alternative — don't retry the same failing approach --- ## Never Do - Commit automatically unless explicitly asked - Add features, refactoring, or cleanup beyond what was asked - Put credentials, passwords, or tokens directly in code or config files - Switch to a different stack/library without asking first - Add filler phrases ("Great question!", "Certainly!", "Of course!") - Restate what was just asked before answering - Suggest improvements or refactors beyond what was asked - Propose switching to a different stack or library without being asked --- ## Git Workflow - Commit directly to `main` — no PR workflow for solo projects - Commit messages: short imperative summary (`Add user auth`, `Fix config loading`) - Never commit `.env` — always commit `.env.example` with placeholders - `.gitignore` must be present and project-appropriate from the start --- ## Detailed References - [preferences/communication.md](preferences/communication.md) — Response style and interaction rules - [preferences/powershell-wpf.md](preferences/powershell-wpf.md) — PowerShell and WPF coding standards - [preferences/python-web.md](preferences/python-web.md) — FastAPI, SQLAlchemy, Docker standards - [preferences/project-structure.md](preferences/project-structure.md) — Standard folder layouts per project type - [preferences/articles.md](preferences/articles.md) — Blog post writing guide for chns.tech - [preferences/hooks-setup.md](preferences/hooks-setup.md) — Required Claude Code hooks (Docker rebuild, README update)