Train without centralizing every client's raw rows
one move: aggregate updates not data
Open the code pane immediately, then use the Spec tab, optional design question, tests, and artifact when you want them.
Finish each move before carrying the artifact forward.
Federated learning sends bounded model updates from clients and averages them by sample count instead of pooling raw records.
Deliverable: State the invariant in one sentence.Compute a weighted elementwise average of client parameter vectors without mutating any client model.
Deliverable: Type the smallest deterministic implementation.Equal weights reduce to a mean, zero clients return an empty vector, and output length matches every client.
Deliverable: Record a normal case and a boundary case.Skew one client's sample count, add a divergent update, and inspect how the aggregate moves.
Deliverable: Name the failure signal and the guard you would add.A federated round trace with client counts, update norms, and aggregation policy.
Deliverable: Save the contract, evidence, and handoff note.Equal weights reduce to a mean, zero clients return an empty vector, and output length matches every client.
Skew one client's sample count, add a divergent update, and inspect how the aggregate moves.
A federated round trace with client counts, update norms, and aggregation policy.
Deriva-authored extension beyond the supplied PDF. The five moves are Deriva’s implementation contract for this project.