Adaptive chore decomposition
Status: ⭐ Differentiator · 🧭 Proposed (design agreed; nothing built)
Full decision record: docs/decisions/2026-07-29-adaptive-chore-decomposition-ai.md.
Scope
Present each chore at the granularity a member actually needs — the same "strip the bed" as one line for one member and pillow off bed → blanket off bed → sheet off bed → sheet into hamper for another. Granularity is a fade dial: scaffold with micro-steps, thin the scaffold as competence grows (North Star — fade to intrinsic motivation).
Four layers, cheapest-first, so a model is invoked only at the novelty edge:
- Canonical heads — a controlled vocabulary of chore intents (
clean_bedroom,strip_bed, …). Free-text is resolved to a head first (alias →pgvectorembedding → LLM fallback → novel). - Cache — each head × granularity level has a stored, evidence-based, human-authored breakdown. Known chores are a DB read:
$0, offline, zero hallucination. - Fine-tuned Gemma 4 E2B, on-device — free tier generates novel breakdowns locally (MediaPipe
.task; Android + iOS + Web from one conversion). - Server-side Gemma 4 (larger variant) — paid tier and all TV clients; scale-to-zero inference, never an always-on GPU.
Generated breakdowns are written back to the cache, which doubles as the cross-device sync mechanism.
Data foundation (Phase 0)
Seed content is grounded in peer-reviewed literature applied by a qualified expert: developmental-psychology chore-by-age work, special-ed task analysis / chaining, and OT activity analysis & grading (see Clinical OT framework). Literature yields the rules; an OT / special-ed / developmental-psychology collaborator authors the concrete breakdowns; every recommendation carries an evidence_source citation. Sourcing is weighted toward affirming, strengths-based, autistic-led scholarship.
Data model (sketch)
chore_head (canonical_name, embedding, aliases, scope) · chore_steps (head_id, granularity_level, steps, authored_by, reviewed_by, evidence_source_id[]) · evidence_source (citation + license note) · chore_recommendation (head × age_band × cognitive_profile → evidence). Personalization is an editable profile field passed at inference, never baked into weights.
Open questions
- Inference-port wiring: on-device generation is platform I/O and cannot live in the pure-Dart
client_sdk— resolve against "config-driven, never inject an adapter" in a follow-up ADR. The resolver + cache belong in the SDK; the generation fallback needs a home. - Granularity vocabulary: enum (
chunks/steps/micro-steps) vs 1–5 scale — align with the OT grading model chosen in Phase 0. - Global vs household head boundary and the curation workflow for promoting a household custom chore to a reviewed global head.
- Quantization quality: evaluate the quantized E2B artifact on target devices, not the fp16 fine-tune.
- TV runtime: Android TV rides the Android path; Apple TV / smart-TV OSes fall back to cache + cloud rather than embedding.
Relationship
- Clinical OT framework — the evidence basis (activity analysis & grading) and Phase-2 clinical adjacency.
- Today (chore surface) — where a resolved, granularity-adjusted breakdown is rendered and completed.
- Routines — a decomposed chore executes as an ordered step sequence.