• Mahmoud Aglan's avatar
    docs(mobile-portal): the approved programme, its adversarial review, and what it supersedes · 2ef6e088
    Mahmoud Aglan authored
    Another session builds the portal from here, so the entry point has to survive
    being read cold.
    
    docs/specs/mobile-portal/ holds three files. 01-program-plan.md is the approved
    programme — decisions, workstreams, art direction, the full feature inventory and
    verification. 02-critique-addendum.md is a four-lens review of that plan
    (completeness, security/abuse, financial integrity, delivery risk) with every
    claim checked against the code; where the two disagree the addendum wins, and it
    replaces the plan's build order with S0–S10. 00-README.md is the map.
    
    The README leads with four premises the plan was written on that turned out to be
    false, because each changes what gets built: Livewire is ^4.3 not 3 (so a public
    property is client-settable and validating in mount() is not enough); `dark:`
    compiles to prefers-color-scheme with no @custom-variant declared, so ~900
    utilities are live and untested rather than inert; `transactions` is one row with
    debit and credit account columns, not a pair, contradicting CLAUDE.md and two
    agent-rules files; and most of the domain the portal needs already exists.
    
    That last one is the real hazard on this programme. The block-builder engine, the
    parent portal, the push stack and the pricing entry points are all built, so the
    README lists them explicitly under "do not rebuild" — the plan originally proposed
    a second CMS before the review found the first one is generic enough to reuse.
    
    Banners on mobile-app-plan.md, mobile-api-implementation.md and openapi.yaml:
    all three describe the /api/v1 surface deleted in the previous commit, and a
    native-Flutter-per-client approach that was replaced. Left in place as history,
    marked so nobody builds from them.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    2ef6e088
openapi.yaml 68.1 KB