3.9 KiB
3.9 KiB
Development Rules
Conversational Style
- Keep answers short and concise
- No emojis in commits, issues, PR comments, or code
- No fluff or cheerful filler text (e.g.,
Thanks @usernotThanks so much @user!) - Technical prose only, be direct
- Use concise, clear, simple language. Define unavoidable jargon before using it.
- Explain non-trivial designs and problems as: problem, concrete example or short trace, then solution. State why the solution is necessary and distinguish it from optional complexity.
- Prefer concrete behavior and small illustrations over abstract summaries, dense terminology, or unexplained lists of changes.
- When the user asks a question, answer it first before making edits or running implementation commands.
- When responding to user feedback or an analysis, explicitly say whether you agree or disagree before saying what you changed.
Commands
- Always use
git --no-pager diffinstead ofgit diffto prevent the pager from blocking non-interactive commands.
Delegation
- Do not perform reconnaissance, behavior tracing, external documentation lookup, or design analysis directly in the main session when a matching agent exists. Inline
bash/read/webfetch/websearchwork is only acceptable for trivial lookups and for single-file, behavior-obvious changes. - Default to
workerfor non-trivial implementation. Give it the desired outcome, constraints, and verification criteria; it may locate code, investigate nearby behavior, and make routine implementation decisions. Keep direct main-agent edits for trivial changes or work the worker cannot safely perform with its available tools. - Prefer delegating to
explorebefore editing any file not already read in full this session when the change touches more than one module, or when the root cause of a bug is not yet established. - Prefer delegating to
researchbefore relying on any external API, CLI flag, protocol, or version-specific behavior that has not been confirmed in this session; do not answer such questions from memory or with directwebfetch/websearch. - Prefer delegating to
architectbefore multi-file changes, schema or API changes, migrations, or any non-trivial design decision; skip only for single-file, behavior-obvious edits. - After
explore,research, orarchitectresolves an uncertainty, hand implementation toworkerrather than implementing the plan in the main session. Return reviewer findings toworkerfor fixes when possible. Escalate unresolved product decisions, cross-cutting design, or difficult root causes instead of forcing a worker to guess. - Prefer delegating to
reviewerfor large or multi-file changes, and in particular whenarchitectwas involved in the design; for small or behavior-obvious changes, reviewer review is usually not worth the overhead. - Unless currently acting as the delegated
submitteragent, MUST delegate every requested Git commit, Git push, or Perforce submit tosubmitterthrough tasker after implementation and validation are complete. - Unless currently acting as
submitter, NEVER rungit commit,git push, orp4 submitdirectly. - When the user requests individual commits, implement and validate each unit, then invoke
submittersequentially before starting the next unit. - The delegated
submitteragent is authorized to stage, commit, push, or submit the validated changes requested in its task.
Code Quality
- Inspect relevant code before editing. Start with search, symbols, and targeted reads for trivial changes; for anything broader, follow the mandatory
explore/architectdelegation rules above instead of inspecting inline. - Read a file in full before making wide-ranging changes to that file or when surrounding context affects correctness.
- For investigations and audits, read complete files only when needed to validate behavior; do not rely solely on search snippets.
- Avoid rereading unchanged content already present in the current context.