@topy-ai/maggie 0.7.52 → 0.7.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README-zh-TW.md +28 -4
  2. package/README.md +93 -60
  3. package/bin/maggie.js +67 -12
  4. package/bundled-contracts/maggie-assistant-tools/booking-receptionist-example-v1.json +161 -0
  5. package/bundled-contracts/maggie-assistant-tools/tool-registry-v1.schema.json +268 -20
  6. package/bundled-contracts/maggie-deployment/bridge-host-example-v1.json +49 -7
  7. package/bundled-contracts/maggiedash/booking-email-templates-v1.json +181 -13
  8. package/bundled-contracts/maggiedash/booking-rules-v1.json +1699 -0
  9. package/bundled-contracts/maggiedash/stripe-booking-capabilities-v1.json +398 -39
  10. package/bundled-references/maggiedash-booking/PRD.md +22 -11
  11. package/bundled-references/maggiedash-booking/QA-TEST-PLAN.md +1 -1
  12. package/bundled-references/maggiedash-booking/RULES.md +167 -0
  13. package/bundled-references/maggiedash-booking/RUNTIME-OPERATIONS.md +2 -2
  14. package/bundled-references/maggiedash-booking/STRIPE-INTEGRATION.md +42 -4
  15. package/bundled-references/provider-adapter-contract.md +16 -3
  16. package/bundled-skills/catalog.json +1 -1
  17. package/bundled-skills/maggie-assistant-tools/SKILL.md +54 -3
  18. package/bundled-skills/maggie-assistant-tools/references/approvals-and-audit.md +27 -0
  19. package/bundled-skills/maggie-assistant-tools/references/booking-receptionist.md +45 -0
  20. package/bundled-skills/maggie-assistant-tools/references/bridge-host.md +54 -0
  21. package/bundled-skills/maggie-auth-reference/SKILL.md +18 -0
  22. package/bundled-skills/maggie-blog/SKILL.md +8 -0
  23. package/bundled-skills/maggie-booking/SKILL.md +66 -14
  24. package/bundled-skills/maggie-content-localization/SKILL.md +26 -0
  25. package/bundled-skills/maggie-dash/SKILL.md +28 -2
  26. package/bundled-skills/maggie-deployment/SKILL.md +48 -0
  27. package/bundled-skills/maggie-deployment/references/cloudflare.md +19 -0
  28. package/bundled-skills/maggie-deployment/references/vps.md +92 -0
  29. package/bundled-skills/maggie-design/SKILL.md +98 -3
  30. package/bundled-skills/maggie-design/references/app-ui-patterns.md +79 -0
  31. package/bundled-skills/maggie-feedback/SKILL.md +27 -2
  32. package/bundled-skills/maggie-marketplace/SKILL.md +12 -0
  33. package/bundled-skills/maggie-marketplace/references/directory-search.md +51 -0
  34. package/bundled-skills/maggie-marketplace/references/directory.mjs +112 -0
  35. package/bundled-skills/maggie-mobile-app/SKILL.md +65 -6
  36. package/bundled-skills/maggie-mobile-app/references/payments-and-push.md +78 -0
  37. package/bundled-skills/maggie-qa-workflow/SKILL.md +60 -0
  38. package/bundled-skills/maggie-seo-geo/SKILL.md +33 -0
  39. package/bundled-skills/maggie-service-booking/SKILL.md +28 -3
  40. package/bundled-skills/maggie-social-share/SKILL.md +56 -4
  41. package/bundled-skills/maggie-social-share/references/queue-and-connections.md +28 -0
  42. package/bundled-tools/clis/maggie_assistant_tools.py +84 -3
  43. package/bundled-tools/clis/maggie_booking.py +24 -12
  44. package/bundled-tools/clis/maggie_booking_connect_qa.py +136 -0
  45. package/bundled-tools/clis/maggie_booking_rules.py +476 -0
  46. package/bundled-tools/clis/maggie_bridge_host.py +77 -1
  47. package/bundled-tools/clis/maggie_dash.py +173 -3
  48. package/bundled-tools/clis/maggie_deployment_ops.py +524 -0
  49. package/bundled-tools/clis/maggie_design.py +15 -2
  50. package/bundled-tools/clis/maggie_design_bulk.py +290 -0
  51. package/bundled-tools/clis/maggie_design_lint.py +205 -3
  52. package/bundled-tools/clis/maggie_feedback.py +138 -28
  53. package/bundled-tools/clis/maggie_live_urls.py +138 -0
  54. package/bundled-tools/clis/maggie_localization.py +3 -0
  55. package/bundled-tools/clis/maggie_localization_keys.py +151 -0
  56. package/bundled-tools/clis/maggie_media_generate.py +174 -0
  57. package/bundled-tools/clis/maggie_mobile.py +219 -4
  58. package/bundled-tools/clis/maggie_product_release.py +49 -1
  59. package/bundled-tools/clis/maggie_qa_app_preflight.py +122 -4
  60. package/bundled-tools/clis/maggie_qa_fit.py +217 -0
  61. package/bundled-tools/clis/maggie_qa_workflow.py +5 -0
  62. package/bundled-tools/clis/maggie_schema_complexity.py +84 -0
  63. package/bundled-tools/clis/maggie_seo_routes.py +154 -0
  64. package/bundled-tools/clis/maggie_service_migration.py +272 -0
  65. package/bundled-tools/clis/maggie_social_queue.py +2 -0
  66. package/bundled-tools/clis/maggie_social_share.py +174 -7
  67. package/bundled-tools/integrations/maggie-api-pull.md +22 -0
  68. package/bundled-tools/runtime/assistant_approval.py +98 -0
  69. package/package.json +1 -1
  70. package/references/provider-adapter-contract.md +16 -3
  71. package/bundled-contracts/maggiedash/execution-board.json +0 -5463
  72. package/bundled-references/maggiedash-booking/CURRENT-STATE.md +0 -210
  73. package/bundled-references/maggiedash-booking/EXECUTION-BOARD.json +0 -5463
  74. package/bundled-references/maggiedash-booking/ORAWELLNESS-INTEGRATION-AUDIT.md +0 -270
  75. package/bundled-references/maggiedash-booking/PROGRESS.md +0 -279
  76. package/bundled-references/maggiedash-booking/README.md +0 -288
  77. package/bundled-references/maggiedash-booking/SKILLS-AND-CLI.md +0 -551
  78. package/bundled-references/maggiedash-booking/TASK-RUNBOOK.md +0 -107
  79. package/bundled-references/maggiedash-booking/TASKS.md +0 -178
@@ -1,288 +0,0 @@
1
- # MaggieDash Booking workspace
2
-
3
- This folder is the product and engineering documentation for the Booking
4
- workspace at `/_maggie/booking`. The canonical current snapshot and gap list is
5
- [`CURRENT-STATE.md`](./CURRENT-STATE.md); this README explains the surface and
6
- links the deeper contracts.
7
-
8
- The target is a first-party booking management system for store managers. It
9
- must own the booking domain while keeping payment providers replaceable. Stripe
10
- is the first adapter, not the database, booking engine, or public API contract.
11
-
12
- ## What is true today
13
-
14
- This repository currently provides:
15
-
16
- - the `maggie-service-booking` skill for provider-backed service catalogues,
17
- variants, provider URLs, sync, factual validation, and service-page output;
18
- - a provider-neutral booking adapter reference with Fresha as the first
19
- catalogue provider and Google Calendar as a limited fallback;
20
- - MaggieDash installation into `./_maggie/admin`;
21
- - MaggieDash distribution of a separate `./_maggie/booking` React workspace,
22
- Booking UI v1 and the provider-neutral Booking host adapter v1;
23
- - a provider-neutral PostgreSQL Booking starter schema with idempotency, audit,
24
- outbox, payment, hold, allocation, and database overlap constraints;
25
- - `maggie booking install` (including explicit `--install-dependencies`, `--bootstrap`, the combined `--ready` path, and reviewed `--schedule systemd|cron` generation), `worker-schedule`, `inspect`, the read-only first-run `setup` checklist,
26
- `contract`, `runtime-validate`, `ops-validate`, task-board, and fail-closed
27
- `release-gate` checks in ai-cmo-skills;
28
- - a non-destructive Astro host bootstrap that installs email/password auth,
29
- first-owner registration, manager/public routes, PostgreSQL/Stripe wiring,
30
- the schema command, Resend worker, and middleware rewrite starter;
31
- - Booking access management for email/password staff, manager, and finance
32
- accounts is covered by the installable `booking-access-v1` contract, including
33
- granular permissions, Resend invitations, password reset, revocation,
34
- disabled-account protection, staff-profile linking, and server-enforced
35
- granular permissions;
36
- - tenant-scoped Booking email template management for ten Resend events,
37
- allowlisted variables, sandboxed preview, audited draft/publish/rollback, and
38
- worker fallback resolution without exposing provider secrets or recipients;
39
- - server-side staff assignment scope for bookings, calendar, availability,
40
- customer summaries, schedule, resources, and lifecycle mutations;
41
- - a source/install-side runtime plan regression gate for concrete route
42
- parameters, query parameters, and mutation bodies;
43
- - a protected operational-evidence workflow that rejects fixture artifacts at
44
- the host release boundary;
45
- - a separate public-noindex customer-flow contract and route handler for
46
- catalogue, availability, holds, checkout start, payment-return recovery,
47
- cancellation, token-bound customer rescheduling, customer-manage history,
48
- waitlist joining, safe DTO
49
- redaction, and notification intents;
50
- - a tenant-scoped waitlist queue with manager filtering, priority/status
51
- actions, audit records, a linked booking conversion transaction, and a Resend
52
- availability-notification intent;
53
- - a worker-side waitlist matcher that orders eligible entries by priority/FIFO,
54
- persists the offered slot, and queues one idempotent Resend availability
55
- notification without auto-reserving the appointment;
56
- - separate short-lived payment tokens and 30-day sealed customer-manage
57
- tokens, with Resend worker links for customer self-service follow-up;
58
- - a public customer-manage history view that lists only redacted appointment
59
- summaries for the tenant/customer bound to the 30-day token;
60
- - a manager customer directory with searchable tenant-scoped customer details,
61
- consent summary, and appointment history;
62
- - editable schedule-rule management for working hours, staff shifts, time off,
63
- and location closures without destructive snapshot writes;
64
- - editable service and treatment catalogue management with stable service and
65
- variant IDs, payment policy controls, search, and active/inactive status;
66
- - editable location management with tenant-scoped timezone, locale, address,
67
- active state, and online-booking controls;
68
- - editable staff and resource management with assignment, bookable, capacity,
69
- and active-state controls;
70
- - editable Booking defaults for venue timezone/currency, accepting new
71
- bookings, and automatic/manual payment capture policy;
72
- - editable tenant-scoped treatment package catalogue with included treatment
73
- quantities, package pricing, currency, expiry, and active state;
74
- - manager-granted customer package entitlements with tenant/customer-scoped
75
- balances, expiry checks, and atomic redemption when creating manager
76
- bookings; public package checkout, provider reconciliation/webhook fulfillment,
77
- manager purchase listing, and guarded package refund routes are included;
78
- - Overview bookability readiness that identifies missing active locations,
79
- catalogue variants, assigned bookable staff, working hours, payment
80
- capability, and the resulting overall `bookable` state;
81
- - manager booking creation driven by live catalogue, location, staff, and
82
- resource selectors with required allocation;
83
- - install-time configuration forms that read tenant locations and live service
84
- assignments instead of relying on fixture IDs;
85
- - an installable public customer booking page source and Astro route starter
86
- for the same hold/checkout/pending-return journey;
87
- - public multi-treatment selection with combined-duration availability, summed
88
- checkout pricing, safe segment DTOs, segment-safe customer rescheduling, and
89
- tenant location selection with location-scoped availability;
90
- - a deterministic public customer reference-host journey validator covering
91
- hold replay, checkout pending state, payment return, token-bound cancel, and
92
- manager-session isolation;
93
- - provider-neutral runtime rules and worker runner for availability, hold
94
- expiry, payment webhook/reconciliation, priority/FIFO waitlist matching, and
95
- notification outbox delivery;
96
- - a dated Stripe API/resource/event audit and installable capability contract;
97
- the host still supplies the concrete official SDK adapter;
98
- - a manager Reports screen and tenant-scoped `/reports.json` read model for
99
- period totals plus day, service, staff, and location breakdowns;
100
- - venue-time manager booking displays and wall-clock inputs, with DST-gap
101
- rejection and explicit choices for repeated fall-back times;
102
- - an idempotent 24-hour reminder worker job that queues confirmed-booking
103
- reminders into the existing Resend notification outbox;
104
- - service-level payment policies (`full`, `deposit`, `pay_later`, and
105
- `no_payment`), purpose-labelled payment attempts, captured/refunded payment
106
- projection, and manager controls for deposits and outstanding balances;
107
- - systemd/cron scheduling templates and a protected Playwright browser-evidence
108
- capture/validation workflow;
109
- - provider-neutral MaggieDash host, auth, activity, navigation, content, media,
110
- migration, and runtime-evidence contracts;
111
- - a PostgreSQL starter schema for MaggieDash content and audit records.
112
- - a tenant-scoped Notifications screen for delivery-state inspection and
113
- reasoned dead-letter replay, with recipient redaction and audit evidence.
114
- - policy-safe cancellation settlement that allocates full/deposit refunds,
115
- invokes the injected payment provider after the lifecycle write, returns
116
- `manual_required` on provider failure, and queues accepted/pending refund
117
- notices through the existing Resend outbox;
118
-
119
- The manager workspace, distribution contracts, starter schema, provider-neutral
120
- runtime rules, worker runner, scheduling templates, browser-evidence gate, and
121
- customer-flow boundary are implemented locally. A secret-free reference host
122
- and an Astro host scaffold are also available for contract/browser work. A host
123
- must still apply the schema, prove PostgreSQL transactions, verify a real
124
- payment account and webhook, enable notification delivery and tenant locking,
125
- and capture authenticated browser/runtime/ops evidence against a dedicated
126
- HTTPS test tenant before real bookings can be enabled. Test evidence workflows
127
- must not target production; any production observation needs its own approved,
128
- read-only plan.
129
- Resend is the server-side notification and account-email transport. Staff
130
- invitation, first-login setup, password reset, one-time token expiry, and
131
- session revocation are implemented in the Astro host scaffold; real delivery
132
- and browser evidence remain host deployment gates.
133
- Stripe setup is likewise server-side: configure the host secret store, then
134
- verify the account from Booking Overview. For a single-business host, an
135
- owner/manager can alternatively enter both Stripe values in the secure
136
- dashboard form; the host verifies them first and stores only encrypted
137
- ciphertext derived from `BOOKING_TOKEN_SECRET`. Secret presence alone is only
138
- `pending`; `connected` requires a successful API check, explicit Stripe
139
- charges/payouts enablement, and a webhook secret. Raw Stripe credentials are
140
- never returned by the API or stored as plaintext Booking data. Deployment
141
- secrets take precedence over dashboard-managed credentials.
142
-
143
- ## Verification snapshot — 2026-09-28
144
-
145
- This dated snapshot records the earlier 0.7.48 candidate review and 15-route
146
- local browser smoke. It is historical; for the current task count, browser
147
- contract, and release blockers, use [`CURRENT-STATE.md`](./CURRENT-STATE.md).
148
-
149
- | Item | Current evidence |
150
- |---|---|
151
- | MaggieDash and ai-cmo source | MaggieDash package `0.2.11`; ai-cmo `0.7.48` (published) |
152
- | Email-template boundary | Ten events, including `payment.no_show_fee`; confirmed bookings allow a host-supplied, escaped `arrivalNote` |
153
- | ORA source CLI check | Local ai-cmo source `email-templates-contract` and `inspect --project` pass; the installed global package still carries the old nine-event contract and requires a package release/install readback |
154
- | Regression evidence | MaggieDash `npm test`, 25 targeted ai-cmo Booking Python tests, and ORA email-template/customer validators pass; ORA Astro build passes |
155
-
156
- ## Historical verification snapshot — 2026-09-21
157
-
158
- | Item | Current evidence |
159
- |---|---|
160
- | MaggieDash source | Package `0.2.8`, `HEAD`/`origin/main` [`9d99de7`](https://github.com/TOPY-AI-LTD/MaggieDash/commit/9d99de7); the working tree contains newer uncommitted Booking changes |
161
- | Delivery board | 101 implementation tasks passed and 3 real-host evidence tasks pending (BK-030, BK-031, BK-032). The current browser contract requires all 17 manager routes across three viewports (51 screens), including Packages and Email templates; prior 45-screen captures are historical subset evidence. |
162
- | Local code gates | MaggieDash `npm test`, contract/UI/security/customer/runtime validators, and Python task-board/link checks passed |
163
- | Installer projection | The default public GitHub source installed 139 source artifacts plus 23 Astro host files in a fresh disposable project; dependency completion added the missing SSR adapter, and the installed host bootstrap validator, `maggie booking inspect`, and `astro build` all passed. Existing host deployment configs are preserved |
164
- | Published npm parity | Local CLI source is `0.7.39`; npm still serves `@topy-ai/maggie@0.7.38`, which has the older Booking contract and needs a release/published-tarball verification |
165
- | Access boundary | Standard Booking schema owns `maggiedash_booking_user_roles`; host access API, explicit permissions, linked `staff_id`, and repository data-scope checks passed |
166
- | Reference host | 47 manager endpoint checks plus public customer-flow checks passed, including explicit no-show fee route coverage, location setup, package catalogue management, customer package grant/balance/redemption, public package redemption from hold to zero-price booking, package checkout/payment-return, Stripe connection verification, notification replay, and multi-treatment hold/checkout/reschedule |
167
- | Local browser smoke | At this historical snapshot the browser contract covered 15 manager routes (`45` route/viewport screens). The current v2 contract now covers 17 routes and requires route-specific path/heading evidence; the earlier artifact is not reused as complete evidence. |
168
- | Production proof | Not yet complete; reference-host and fixture artifacts are explicitly not production evidence |
169
-
170
- ## Current product limits
171
-
172
- The local Booking release supports both manager-led and public customer package
173
- redemption. After a confirmed package purchase, the customer can continue to
174
- the public booking page; the server binds the entitlement to the customer's
175
- email, locks the balance during checkout, and creates a zero-price confirmed
176
- booking when all selected treatments are covered. A successful cancellation
177
- restores each active redemption once and records the reversal; completed and
178
- no-show visits remain consumed by policy. Memberships, gift cards, and
179
- recurring appointments are not yet part of the v1 contract. No-show fees are
180
- supported only through the separate consented, explicitly confirmed
181
- off-session charge route; there is no automatic charge on status transition.
182
-
183
- ## Evidence inspected
184
-
185
- | Evidence | What it establishes |
186
- |---|---|
187
- | `/home/balalior/Dev/MaggieDash/maggiedash.json` | Distribution targets `_maggie/admin` plus the separate `_maggie/booking` workspace |
188
- | `/home/balalior/Dev/MaggieDash/backend/booking-adapter-contract.d.ts` | Booking host owns the email/password session, API prefix, manager service surface, and injected provider boundary |
189
- | `/home/balalior/Dev/MaggieDash/contracts/booking-host-adapter-v1.json` | Current 47-endpoint Booking host contract and response policy, including treatment packages, customer package balances/redemption, package purchase/refund, Stripe verification, consented no-show fee charging, and notification inspection/replay |
190
- | `/home/balalior/Dev/MaggieDash/contracts/booking-customer-surface-v1.json` | Current eleven-endpoint public customer boundary and noindex/idempotency policy, including package checkout/payment return |
191
- | `/home/balalior/Dev/MaggieDash/package.json` | Current `0.2.8` package scripts and executable Booking validators |
192
- | `skills/maggie-service-booking/SKILL.md` | Current provider-backed catalogue and booking-link scope |
193
- | `references/provider-adapter-contract.md` | Existing provider-neutral booking/payment direction |
194
- | `tools/clis/maggie_dash.py` | Installer maps both admin and Booking workspaces, plus root contracts/schema |
195
- | `tools/clis/maggie_booking.py` | Booking installer plus inspect, contract, runtime, and release gates |
196
- | `/home/balalior/Dev/MaggieDash/adapters/astro/host/` | Generic non-destructive Astro host scaffold for auth, routes, PostgreSQL, Stripe, schema, Resend worker, and middleware |
197
- | `/home/balalior/Dev/MaggieDash/contracts/booking-email-templates-v1.json` | Ten-event tenant-scoped template contract and server-only Resend/recipient policy |
198
- | `/home/balalior/Dev/MaggieDash/backend/booking/email-templates.mjs` | Provider-neutral fallback, placeholder allowlist, HTML escaping, and renderer |
199
-
200
- ## Documents
201
-
202
- | Document | Diataxis role | Use it for |
203
- |---|---|---|
204
- | [PRD](./PRD.md) | Reference | Product scope, requirements, personas, and acceptance criteria |
205
- | [Architecture](./ARCHITECTURE.md) | Explanation | System boundary, modules, state ownership, and runtime topology |
206
- | [User journeys](./USER-JOURNEYS.md) | Tutorial / explanation | Manager, customer, staff, finance, and failure journeys |
207
- | [Data flow](./DATA-FLOW.md) | Explanation / reference | DFD, events, consistency, and source-of-truth rules |
208
- | [Data model](./DATA-MODEL.md) | Reference | Entities, constraints, indexes, and migration order |
209
- | [Payment gateway](./PAYMENT-GATEWAY.md) | Reference / explanation | Provider port, Stripe adapter, webhooks, refunds, and future providers |
210
- | [Stripe integration audit](./STRIPE-INTEGRATION.md) | Reference / runbook | Verified API matrix, webhook set, Tax/Billing/Terminal/Connect choices, and gift-card/referral boundary |
211
- | [Host adapter](./HOST-ADAPTER.md) | Reference | Routes, payloads, auth, errors, and conformance evidence |
212
- | [Skills and CLI](./SKILLS-AND-CLI.md) | How-to / reference | How ai-cmo-skills supports implementation, checks, and release gates |
213
- | [Security and compliance](./SECURITY-COMPLIANCE.md) | Explanation / reference | Secrets, tenancy, audit, PCI scope, privacy, and operational controls |
214
- | [QA plan](./QA-TEST-PLAN.md) | How-to / reference | Contract, state, concurrency, payment, browser, and release tests |
215
- | [Runtime operations](./RUNTIME-OPERATIONS.md) | How-to / runbook | Worker jobs, webhook flow, notification outbox, cron/systemd, browser evidence, alerts and rollback |
216
- | [Current state](./CURRENT-STATE.md) | Reference / runbook | Verified surface, release blockers, host sequence, and gaps |
217
- | [Decision log](./DECISIONS.md) | Explanation | Durable architecture decisions and unresolved choices |
218
- | [Execution board](./EXECUTION-BOARD.json) | Reference | Leaf tasks with dependencies, implementation files, tests, docs, and acceptance evidence |
219
- | [Task runbook](./TASK-RUNBOOK.md) | How-to | Task → plan → implement → test → docs → progress operating loop |
220
- | [ORA integration audit](./ORAWELLNESS-INTEGRATION-AUDIT.md) | Reference | Host-specific Booking, Stripe, Resend, migration, and production-readiness status |
221
-
222
- ## Diagrams
223
-
224
- The source files live in [`diagrams/`](./diagrams/). Rendered images are linked
225
- from the data-flow and architecture documents so the documentation does not
226
- depend on GitHub Mermaid rendering.
227
-
228
- - [System context](./diagrams/system-context.svg)
229
- - [Manager journey](./diagrams/manager-journey.svg)
230
- - [Booking data-flow diagram](./diagrams/booking-dfd.svg)
231
- - [Payment sequence](./diagrams/payment-sequence.svg)
232
- - [Booking state machine](./diagrams/booking-state-machine.svg)
233
-
234
- Each diagram also has an editable `.mmd` source. Flowcharts include an
235
- `.excalidraw` scene; the sequence and state diagrams intentionally include only
236
- SVG and PNG because the renderer's editable-scene converter supports flowcharts
237
- only.
238
-
239
- ## Recommended host rollout
240
-
241
- 1. Read [`CURRENT-STATE.md`](./CURRENT-STATE.md) and run the read-only install,
242
- schema, contract, and build checks.
243
- 2. Back up the host database and rehearse restore into an empty disposable
244
- database.
245
- 3. Apply Booking/access migrations only after owner approval, then register the
246
- first owner and seed a staging location/catalogue/staff schedule.
247
- 4. Configure and verify Stripe test credentials plus the signed webhook secret.
248
- 5. Enable one worker scheduler with lock, alert, retry, and dead-letter proof;
249
- verify Resend invitation, reset, reminder, waitlist, refund, package, and
250
- no-show delivery.
251
- 6. Capture the 47-endpoint runtime, 51-screen browser, and ops evidence bundle;
252
- run the final release gate before a one-location canary.
253
-
254
- The detailed execution board is maintained by
255
- [`EXECUTION-BOARD.json`](./EXECUTION-BOARD.json). Use
256
- `maggie booking tasks validate` before starting a task and record the evidence
257
- in [`PROGRESS.md`](./PROGRESS.md). A final delivery decision must require
258
- runtime, browser, ops, and board evidence:
259
-
260
- ```bash
261
- maggie booking release-gate --project . --require-runtime \
262
- --evidence .maggie/booking/runtime-evidence.json \
263
- --require-browser --browser-evidence .maggie/booking/browser/evidence.json \
264
- --require-ops --ops-evidence .maggie/booking/ops-evidence.json \
265
- --require-board
266
- ```
267
-
268
- ## Non-negotiable truths
269
-
270
- - PostgreSQL is business truth.
271
- - The availability engine and database constraints are booking truth.
272
- - The payment gateway is payment truth, but never booking truth.
273
- - A payment redirect is not proof of payment; a verified webhook or provider
274
- read is required.
275
- - A hold is a first-class record with an expiry and an idempotency key.
276
- - All monetary values use integer minor units plus an ISO currency.
277
- - All stored instants are UTC; venue-local input carries an IANA timezone.
278
- - Manager actions are authenticated, authorized, idempotent, and auditable.
279
- - Provider credentials stay server-side and never enter dashboard props or
280
- browser bundles.
281
-
282
- ## Evidence boundary
283
-
284
- The existing MaggieDash source and ai-cmo-skills contracts were inspected on
285
- 2026-09-21. Statements marked **current** describe repository evidence.
286
- Statements marked **proposed** describe the implementation target and must not
287
- be presented to a user as an already-supported feature until the relevant
288
- contract, adapter, tests, and runtime evidence land.