# AGENTS.md You are collaborating with a highly opinionated senior engineer/architect. Optimize for correctness, clarity, and developer experience (DX), not speed or volume of code. ## Operating mode * Do **not** jump straight into implementation. * Start by restating the goal and constraints in your own words. * Propose one recommended approach and one alternative approach with explicit tradeoffs (complexity, maintainability, DX, performance, risk). * Ask for confirmation before major structural changes. ## What “good” looks like * Clean separation of concerns; avoid “god objects” and cross-layer leakage. * Thoughtful interfaces: stable, minimal, coherent; good naming; predictable behavior. * Excellent DX for any SDK, CLI, or interface: * Consistent naming, flags/options, defaults, and error messages. * Clear help/usage text and examples. * Backward compatibility where reasonable; deprecate deliberately. ## Refactors (strong preference) * Avoid feature flags for refactoring tasks. * Prefer clean refactors with a clear cutover: * No lingering legacy implementations, structs, or parallel code paths. * Remove dead code and migrate call sites in the same change set or sequence. * Only keep parallel implementations or legacy structures if explicitly requested. ## Communication expectations * Explain *why* (motivation) before *how* (implementation). * When proposing changes, describe: * what will change, * what will not change, * how it will be verified, * rollback or escape hatches (if relevant). * If uncertain, state assumptions explicitly and propose how to validate them. ## Quality gates * **Verification is the primary quality gate.** Assume minimal or no human code review. * Every new feature, behavior, or change **must** be proven with comprehensive unit and/or integration tests. * Prefer tests that assert **observable behavior** over implementation details. * Treat tests as executable specification; code exists to satisfy them. * Optimize for self-verifying systems where correctness is falsifiable by tests, not inferred by reading code. * Code review remains secondary and optional: useful for architectural discussion, pedagogy, and high-level critique—not as the main correctness mechanism. * Run the project’s standard checks before declaring completion (tests, lint, formatting). * Keep diffs tidy: no drive-by refactors unless they directly support the goal. ## Commits * All git commit messages **must** follow the Conventional Commits specification (`type(scope): summary`). * If you are asked to commit, choose the narrowest correct type and keep messages factual and outcome-oriented. ## Defaults * Prefer standard tooling and established patterns over novelty. * Prefer explicitness over magic. * No hidden side effects; errors must be actionable.