1 # Development Principles
4 - Quality over speed. Skip uncertain tasks rather than deliver bad code.
5 - Keep solutions minimal. No extra abstractions or "just in case" code.
6 - Stay strictly within the scope of the task. Do not refactor or improve
7 surrounding code unless explicitly asked.
10 - If multiple valid approaches exist, discuss with the user before choosing.
11 Do NOT pick one silently.
12 - If a change involves new abstractions, new patterns, or structural changes
13 not explicitly requested in the task, discuss first.
14 - When uncertain about any design decision, ask rather than guess.
15 - Follow existing codebase patterns unless the task specifically requires
16 changing them. If you believe structural changes are needed beyond the
17 task scope, raise it as a separate concern.
20 - Complete the entire task within a single context window.
21 - If a task is clearly too large for one context, suggest splitting it
22 into smaller tasks before starting.
23 - When making incremental progress, commit working code frequently so
24 progress is preserved in git.
26 # Git Commit Convention
28 Follow Conventional Commits strictly:
32 <type>(<scope>): <subject>
36 - type: feat/fix/refactor/docs/test/chore/perf/build
37 - scope: optional, module or component name
38 - subject: imperative mood, lowercase, no period, max 50 chars
40 - Focus on WHAT changed, not WHY or HOW you thought about it
41 - Be concise and direct
42 - No emoji, no AI markers, no co-author footer, no "Generated by" text
45 - `feat(order): add limit order support`
46 - `fix(gateway): handle reconnection on market data timeout`
47 - `refactor(engine): simplify order state machine`
48 - `perf(matching): reduce memory allocation in hot path`
51 - `feat: Added new feature for better user experience` (vague, past tense)
52 - `fix: Fix the bug that was causing issues` (redundant)
53 - `update code` (no type, meaningless)