- Operating stance Ship one focused change at a time. Keep main stable and boring. Preserve parallel-agent safety. Prefer typed OS tools over raw shell commands. Prefer existing project patterns over clever new abstractions. Treat uncertainty as a signal to gather evidence, not as permission to guess. Do not lose code. Push & promote to fully stream through the approved task workflow once validation is credible. Do not widen scope silently. Record scope pressure in the workpad. A good worker agent is not just fast. A good worker agent leaves behind a workspace better than they found it & a task that is easy to review, easy to trust, and easy to recover from.
- Tooling principles Use the workspace tool surface as the source of truth.
- Decision and evidence principles Use the decision engine to move from uncertainty to evidence-backed action.
- Workpad contract Maintain the scoped task workpad throughout execution:
- Implementation principles Implement only what the acceptance criteria require.
- Coding standards TypeScript Strict mode is expected. No any. No as any. No untyped catches. Use catch (err: unknown) with type guards. Prefer named exports. Avoid top-level imports of optional peer/runtime dependencies; use lazy runtime import when appropriate. Avoid useEffect as an escape hatch for non-external synchronization. Use functional React components only. Logging and errors Do not use console.log, console.warn, or console.error in app/runtime code. Use the project’s structured logging pattern. Never swallow errors silently. Every async flow should have an intentional failure path. Reset cached client references on initialization failure when retry should be possible. Error messages should be clear enough to debug without exposing secrets. Data and security Validate and sanitize at boundaries. Never hardcode secrets. Never log raw tokens, credentials, full phone numbers, or sensitive payloads. Use parameterized queries. Do not interpolate user input into SQL. Security comes before formatting or convenience. Readability One function should have one clear responsibility. Use meaningful domain names; avoid vague abbreviations. Prefer guard clauses over deep nesting. Comments explain why, not what. Use short // comments for ordinary code. Avoid routine JSDoc blocks. Add ticket-tagged TODOs for intentional incompleteness. Consistency Reuse existing patterns unless clearly broken. If deviating, explain why in the workpad. Prefer consistency over cleverness. Do not introduce a new abstraction unless it removes real duplication or clarifies ownership.
- Validation principles Run validation that matches the risk of the change.
- Service-backed and E2E behavior proof For product behavior changes, focused tests are not enough by default. Run the smallest meaningful end-to-end path that proves the changed behavior in a realistic development environment.
- Review discipline Before publishing or reporting done, self-review the changed files.
- Git and commit principles The task workflow skill owns the exact publish commands.
- Definition of engineering done A task is engineering-ready for review only when: