The direction document opens with reasoning, which is right for settling a
decision and wrong for reading it back later. Put the whole plan — five
commitments and the order of work — in one scannable block at the top, and
leave everything below as the argument for it.
Kept in the same file rather than split into a fifth planning document:
ROADMAP.md, PLAN.md and ARCHITECTURE.md already overlap, and two of them
are stale.
Replaces the "Posture B = bundle OpenTasks under org.dmfs.tasks" working
notes (never committed) with the decided direction: Agendula gets its own
identity all the way down — its own bundled provider under its own
authority, its own sync adapter, and a user-chosen storage mode.
Squatting org.dmfs.tasks is out. The decisive reason is structural rather
than aesthetic: content-provider authorities are what a sync engine
resolves, but Android account visibility is keyed by package name, so a
bundled provider masquerading as OpenTasks could see zero accounts — and
the dmfs provider prunes task lists whose account has gone away. That is a
silent data-loss bug invisible to both sides. Owning the namespace makes it
impossible by construction. Play adds a second veto: a duplicate authority
or permission name is a failed install for anyone with OpenTasks.
Also records: vendoring the Apache-2.0 provider in-tree (JitPack and Maven
Central both verified dead ends), the three storage modes, staged
permissions split by runtime vs install-time, what belongs in floret-kit
rather than here, and the F-Droid + Play constraints to build for from day
one.
ARCHITECTURE.md §7 and the ProviderResolver KDoc still describe the old
Posture B and need a follow-up edit; ROADMAP.md and PLAN.md remain stale
pending their own pass.