This document summarizes the generally applicable engineering expectations for this repository.
- Keep responses tight and non-jargony; do not dump chain-of-thought.
- Ask only essential questions after consulting docs first.
- Mention when a web search could surface important, up-to-date information.
- Call out when docs/plans are unclear (and what you checked).
- Pause on errors, think, then request input if truly needed.
- End completed tasks with "done" (or "next" if awaiting instructions).
- No guessing: for unfamiliar or recently changed libraries/frameworks, locate and read docs before coding.
- Quality over speed: slow down, think, and get a plan approved before implementation.
- Production-only: no mocks, stubs, placeholders, fake data, or simulated logic in final code.
- SRP/DRY: enforce single responsibility and avoid duplication; search for existing utilities before adding new ones.
- Real integration: assume env vars/secrets/external APIs are healthy; if something breaks, treat it as a bug to fix.
- Real data only: never estimate, simulate, or guess at metrics. Pull real data from logs/APIs. No exceptions.
- Deep analysis: understand existing architecture and reuse opportunities before touching code.
- Plan architecture: define responsibilities and reuse decisions before implementation.
- Implement modularly: build small, focused modules and compose from existing patterns.
- Verify integration: validate with real services and real flows (no scaffolding).
- Create a plan doc:
docs/{DD-MON-YYYY}-{goal}-plan.md - Plan must include: Scope, Architecture, ordered TODOs, Docs/Changelog touchpoints.
- Seek approval on the plan before implementing.
Every TypeScript, JavaScript, or Python file created or edited must start with:
Author: {Model Name}
Date: {timestamp}
PURPOSE: Verbose details about functionality, integration points, dependencies
SRP/DRY check: Pass/Fail - did you verify existing functionality?
Do NOT add to JSON, SQL migrations, or file types that cannot support comments.
- Meaningful names; avoid one-letter variables except in tight loops.
- Exhaustive, user-safe error handling; handle failure modes explicitly.
- Explain non-obvious logic and integration boundaries inline.
- Prefer shared helpers and shadcn/ui over custom one-offs.
- Prefer repositories/services patterns over raw SQL.
- Fix root causes; avoid unrelated refactors and over/under-engineering.
- Clear state transitions: collapse/disable prior controls when an action starts.
- Avoid clutter; do not render huge static lists or everything at once.
- Streaming: keep streams visible until the user confirms they have read them.
- Avoid AI slop (default fonts, random gradients, over-rounding). Make deliberate choices.
- Any behavior change requires updating relevant docs and CHANGELOG.md (SemVer; author/model name).
- Do not commit unless explicitly requested; use descriptive commit messages.
- Keep technical depth in docs/changelog rather than dumping into chat.
- Host OS: Windows 11. Docker, Git, and Node.js installed. WSL2 available.
- Shell: bash in WSL2 Ubuntu.
- Timezone: America/New_York (Eastern). Always report times in ET.
- No time estimates.
- No premature celebration. Nothing is done until the user tests it.
- No shortcuts that compromise code quality.
- No overly technical explanations.
- No engagement-baiting questions.
- No unilateral resolution of discrepancies — flag and ask first.