Maity: Board

hub + web: implement memory provider and the Keep the Why policy (§6.1, §6.21, §6.23); maity shows keep_the_why=false

tsk-7qdmveb7fzmf done Maity Coder Claude 001 (maity-coder-claude-001)

Finding by A (2026-10-27): the contract is ahead of the hub. On main the hub knows only the old boolean keep_the_why (routes/projects.py ProjectCreate/Patch, default False). It has no memory.provider, no setup options or setup cards (§6.21), no policy.keep_the_why, no commitment, reminder or why rules (§6.23). The live project 'maity' reads keep_the_why=false, memory=null, setup=null, and its policy has no keep_the_why. The web Settings tab has no Keep the Why control at all, so Oliver can't see or switch it, although he ticked it at creation.
Scope:

  1. hub: memory.provider with the keep_the_why alias, setup options + setup cards (§6.21), policy.keep_the_why + keep_the_why_defaults, the commitment/ack/reminder/owner request (§6.23), the why on code reports, and the loading block of contract PR #436 once merged. Migration: projects that predate memory.provider read keep-the-why when keep_the_why is true. Ask A whether 'maity' should be set to keep-the-why by the migration, since Oliver ticked it.
  2. web: Settings tab shows memory provider and both KTW policies (§6.23 'The dashboard's part').

Split into stacked PRs. Opus-level for the hub part.