Steps in a Task
A Step is a child of a Task with only a title and a done state. Steps cannot be starred, assigned, shared, dated, or nested — and a Step cannot have Steps (Product Brief §5.2 “Step rules”).
Server
Section titled “Server”- The
stepstable (src/db/schema.ts):taskId,title,done,rank, timestamps. createStepsRepository(db)(src/db/repositories/steps.ts) — typed access (list/create/update/delete/reorder byrank).- Routes in
src/api/routes/steps.ts(registerStepsRoutes) — contract-first under/v1. New Steps are added at the bottom of the Step list (rank at end); deleting a Task deletes its Steps.
Client
Section titled “Client”- Steps reconcile via
reconcileSteps(...)andreconcileAllSteps(...)(see Sync-Core Reconcilers); ordering uses the Fractional Rank Algorithm (per-Task scope). - Optimistic create/rename/toggle/reorder flow through the offline mutation API + outbox (see Offline Outbox & Optimistic Writes).
Related: Fractional Rank Algorithm (per-Task ordering), Sync-Core Reconcilers, Task Attributes API (the parent Task).