Trovella Wiki
Handbook

Conventions

Coding standards, commit rules, naming patterns, ticket scoping, and debt management -- the human side of how we work.

Conventions are the shared agreements that keep the codebase consistent when multiple AI agents and a solo founder are writing code in parallel. This topic covers process -- the decisions humans and agents make about how to work. The automated enforcement of these conventions lives in the Delivery domain.

Why Conventions Matter Here

Trovella is built by a solo founder dispatching AI agents to work on parallel features. Without shared conventions, each agent invents its own patterns. The result is a codebase that works but is impossible to reason about. These conventions exist so that:

  • Code written by different agents in different sessions reads like it was written by one person
  • The founder can review PRs by scanning for convention violations, not re-reading every line
  • Automated tooling (linters, type checkers, architecture tests) can enforce the mechanical parts

Pages in This Topic

Commit Workflow

The pre-commit checklist, staging discipline, commit message conventions, and the full ci:check pipeline that runs before every commit. Covers the path from code change to merged PR.

Code Documentation

TSDoc conventions including the summary-first philosophy, optional standard tags, and the three custom intent tags (@invariant, @intent, @contract) required on critical modules like RLS, auth, and state machines.

Technical Debt

The TODO/FIXME/HACK convention with mandatory expiration dates, the four-quadrant debt classification system, and hotspot analysis for identifying the most dangerous files in the codebase.

Naming Patterns

Naming conventions for branches, files, database objects, and identifiers -- and why they are the way they are.

Ticket Scoping

How Linear tickets are structured, estimated, and related. Covers the mandatory admin logging scope, the Fibonacci point scale, and one-week feature scope rule.

Automated vs Human

ConventionHuman responsibilityAutomated enforcement
Commit message qualityWrite meaningful "why" messagesNone (intentionally)
TODO expiration datesChoose realistic dates, extend with contextESLint unicorn/expiring-todo-comments (Quality Gates)
TSDoc on exportsWrite the summary and intent tagsESLint jsdoc/require-jsdoc + tsdoc/syntax (Quality Gates)
Naming conventionsFollow the patterns in new codeESLint @typescript-eslint/naming-convention (Complexity and Naming)
File stagingStage specific files, check for secretsPre-commit hook formats staged files (Pre-commit Hooks)
Ticket structureInclude admin logging scope, set estimatesNone (manual discipline)
Import sortingNone (auto-fixed)ESLint simple-import-sort + pre-commit hook

The pattern is deliberate: automate what can be checked mechanically, document what requires judgment.

Cross-Domain References

On this page