refactor(forms): enable approved Form A placements by default
This commit is contained in:
41 files changed
+862
-523
No files matched your search
@@ -1,28 +1,60 @@
|
||||
# Phase 9 — Two-form integration specification
|
||||
|
||||
**Recorded:** 2026-10-28 UTC; revised 2026-10-29 UTC
|
||||
## Current decision — 2026-10-30: default-live Form A
|
||||
|
||||
**Scope:** Form A consultation isolated-test integration and future Form C referral initiation
|
||||
**Status:** owner-reported Jotform consultation configuration; Astro routes limited to isolated testing; no production activation authorized
|
||||
The owner intentionally supersedes the earlier isolated-test and seven-route
|
||||
production-gate architecture. `npm run dev` and `npm run build` now enable Form A
|
||||
on exactly **16 approved placements**, including the publicly reachable
|
||||
`aia.web3app.dev` environment. No additional approval flags or access restriction
|
||||
are required. `PUBLIC_AIA_FORMS_MODE` is optional: absent/empty means `live`;
|
||||
explicit `off` and `mock` remain available. Invalid/obsolete `isolated-test`
|
||||
settings produce an actionable configuration error. The former approval flags
|
||||
and form environment role are retired, not renamed.
|
||||
|
||||
Indexing and forms are independent. Both publication modes emit ten immediate
|
||||
frames (two contact, five landing, three consultation) and six deferred bilingual
|
||||
service-drawer frames. The bounded registry fixes ID `262946078314059`, HTTPS
|
||||
origin, context and language. Forms B/C are not activated; physical B is retired.
|
||||
|
||||
Live drawers retain four-second/50%-scroll opening, shared 30-day suppression,
|
||||
manual CTA override, deferred loading, verified completion acknowledgment for
|
||||
five seconds, animated dismissal and fresh-form reopening. Off mode does not
|
||||
automatically show inactive drawers. All iframe security/fallback behavior is
|
||||
preserved. Employee-portal preview remains independently gated by explicit local
|
||||
approval, valid private ciphertext input and non-indexing output; Form A cannot
|
||||
authorize private content. No portal private resources enter normal artifacts.
|
||||
|
||||
This owner authorization does not modify Jotform, authorize site cutover or
|
||||
complete pending consultation-language, provider-event, accessibility, runtime
|
||||
telemetry/privacy, recipient-routing or hosting acceptance. See the
|
||||
[current operating guide](../integrations/jotform/README.md) and
|
||||
[implementation and validation report](phase-9-form-a-default-live-2026-10-30.md).
|
||||
Earlier dated decisions and test results below are historical evidence, not
|
||||
current environment setup instructions.
|
||||
|
||||
**Recorded:** 2026-10-28 UTC; revised 2026-10-30 UTC
|
||||
|
||||
**Scope:** Default-live Form A integration and future Form C referral initiation
|
||||
**Status:** 16 default-live placements owner-authorized; Jotform language/runtime acceptance and site cutover remain separate
|
||||
|
||||
## Decision revision
|
||||
|
||||
The owner has replaced the former three-physical-form plan with two physical Jotform forms:
|
||||
|
||||
- **Form A — General Enquiries, landing enquiries and family service consultations.** The existing Form A ID remains `262946078314059`; its approved `contact` and `landing` contexts and seven current Astro placements are unchanged.
|
||||
- **Form A — General Enquiries, landing enquiries and family service consultations.** The existing Form A ID remains `262946078314059`; its approved `contact`, `landing` and `consultation` contexts cover 16 current Astro placements.
|
||||
- **Form C — Professional Referral Initiation.** It remains a separate future blank form with no assigned Jotform ID.
|
||||
|
||||
**Form B is retired as a physical form.** Historical Form B decisions remain in the versioned contract and plan. The repository may keep `service` as a logical visitor-intent classification, but it will map to Form A's planned `consultation` context after the required Builder configuration and acceptance.
|
||||
**Form B is retired as a physical form.** Historical Form B decisions remain in the versioned contract and plan. The repository may keep `service` as a logical visitor-intent classification, but it maps to Form A's `consultation` context; remaining Builder/runtime acceptance does not constitute a new code gate.
|
||||
|
||||
This revision does not enable a new route, add an iframe placement, modify Form A, create Form C, add a query parameter, alter a canonical URL, promise an appointment, or change the frozen seven-route Form A production allowlist.
|
||||
The October 30 decision enables all 16 existing placements by default without creating routes, modifying Jotform, creating Form C, changing query parameters or canonicals, or promising appointments.
|
||||
|
||||
## Form A contexts and planned consultation contract
|
||||
|
||||
| Context | Status | Intended audience | Required route state |
|
||||
|---|---|---|---|
|
||||
| `contact` | Existing, owner-tested | General contact enquiries | Current two-contact-route gate only |
|
||||
| `landing` | Existing, owner-tested | Five named campaign landing journeys | Current five-landing-route gate only |
|
||||
| `consultation` | Configured in Jotform; isolated-test Astro placements only | Family service consultations | Owner browser acceptance; no production route authorization |
|
||||
| `contact` | Existing, owner-tested | General contact enquiries | Two approved live placements |
|
||||
| `landing` | Existing, owner-tested | Five named campaign landing journeys | Five approved live placements |
|
||||
| `consultation` | Configured in Jotform; nine live Astro placements | Family service consultations | Owner runtime acceptance remains separate |
|
||||
|
||||
The context value is presentation-only. It is not an authorization, attribution, security, analytics or visitor-controlled value. `formContext` remains the known case-sensitive hidden-field Unique Name; no other Jotform field ID or condition name is inferred here.
|
||||
|
||||
@@ -60,48 +92,48 @@ Form C remains a separate future physical Jotform created from a blank form. Its
|
||||
|
||||
The visible form must instruct referrers not to submit patient names, dates of birth, diagnosis narratives, medical records or other patient-identifying information. Detailed referrals remain in the separately approved protected workflow. No Form C ID, hosted URL, iframe, language route or conditional logic is assigned by this document.
|
||||
|
||||
## Isolated-test route and component matrix
|
||||
## Current consultation route and component matrix
|
||||
|
||||
The following nine placements are implemented only for an explicitly authorized, non-indexing isolated-test build. Normal staging, mock, indexing-enabled and production builds retain their existing inactive/off/mock behavior. The seven existing Form A production-eligible placements remain a separate frozen allowlist.
|
||||
The following nine placements join the original seven in one live registry. Both indexing and non-indexing builds enable them by default. Explicit off/mock builds contain no real Form A frames.
|
||||
|
||||
| Route or entry point | Locale | Current component / behavior | Future physical form and context | Dependencies |
|
||||
|---|---|---|---|---|
|
||||
| `/client-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; immediate isolated-test iframe | Form A / `consultation` | Owner Jotform visibility/requiredness/confirmation acceptance |
|
||||
| `/es/client-consultation` | ES | Same component; immediate isolated-test iframe | Form A / `consultation` | Spanish Jotform labels, errors and locale acceptance |
|
||||
| `/schedule-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; immediate isolated-test iframe | Form A / `consultation` | No-booking copy and owner acceptance |
|
||||
| `/aba-therapy` drawer | EN | `ServiceInquiryDrawer.astro`; explicit user-triggered isolated-test drawer | Form A / `consultation` | Owner acceptance and dialog accessibility review |
|
||||
| `/autism-evaluations` drawer | EN | Same component; explicit user-triggered isolated-test drawer | Form A / `consultation` | Clinical/operations copy and owner acceptance |
|
||||
| `/learner-social-club` drawer | EN | Same component; explicit user-triggered isolated-test drawer | Form A / `consultation` | Program copy and owner acceptance |
|
||||
| `/es/aba-therapy` drawer | ES | Same shared drawer; explicit user-triggered isolated-test drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/es/autism-evaluations` drawer | ES | Same shared drawer; explicit user-triggered isolated-test drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/es/learner-social-club` drawer | ES | Same shared drawer; explicit user-triggered isolated-test drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/client-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; immediate live iframe | Form A / `consultation` | Owner Jotform visibility/requiredness/confirmation acceptance |
|
||||
| `/es/client-consultation` | ES | Same component; immediate live iframe | Form A / `consultation` | Spanish Jotform labels, errors and locale acceptance |
|
||||
| `/schedule-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; immediate live iframe | Form A / `consultation` | No-booking copy and owner acceptance |
|
||||
| `/aba-therapy` drawer | EN | `ServiceInquiryDrawer.astro`; live automatic/manual drawer | Form A / `consultation` | Owner acceptance and dialog accessibility review |
|
||||
| `/autism-evaluations` drawer | EN | Same component; live automatic/manual drawer | Form A / `consultation` | Clinical/operations copy and owner acceptance |
|
||||
| `/learner-social-club` drawer | EN | Same component; live automatic/manual drawer | Form A / `consultation` | Program copy and owner acceptance |
|
||||
| `/es/aba-therapy` drawer | ES | Same shared drawer; live automatic/manual drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/es/autism-evaluations` drawer | ES | Same shared drawer; live automatic/manual drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/es/learner-social-club` drawer | ES | Same shared drawer; live automatic/manual drawer | Form A / `consultation` | Spanish Jotform and fluent-language acceptance |
|
||||
| `/referrals` | EN | `FormShell.astro`, `logicalForm=referral`; inactive | Form C / future referral initiation | Create and verify Form C; no patient data in initial form |
|
||||
|
||||
English and Spanish service-page CTAs already route visitors to the client consultation routes. They are navigation dependencies, not independent Form A iframe placements. The same is true of homepage, services, FAQ and library consultation CTAs that resolve to those pages.
|
||||
English and Spanish service-page CTAs open their authorized live drawer with JavaScript, retaining their consultation-page navigation destination otherwise. They are not additional iframe placements. The same is true of homepage, services, FAQ and library consultation CTAs that resolve to those pages.
|
||||
|
||||
The current Tour CTA in `src/content/pages/en/tour.mdx` points to `/client-consultation`. The planned consultation service list contains no tour choice. Intake/operations must decide whether Tour keeps that destination, moves to the existing general-contact/tour journey, or receives a separately approved context before any code or CTA change. This specification makes no Tour-route change.
|
||||
|
||||
## Owner and Jotform actions before consultation activation
|
||||
## Remaining owner and Jotform acceptance actions
|
||||
|
||||
1. Confirm that the configured Form A `consultation` context has not changed the approved `contact` or `landing` journeys; record the rollback method for the Builder configuration.
|
||||
2. Verify the exact hidden context value, service question, five display options, requiredness, EN/ES translations, validation messages and confirmation language in Jotform. Do not invent fields or accept query-controlled context values.
|
||||
3. Confirm that no child/clinical/payment/location/booking fields, webhooks, integrations, answer-bearing notifications, PDF attachments, analytics or forwarding are introduced for the consultation context.
|
||||
4. Obtain intake/operations, clinical and privacy approval for the field set and approved service options. Obtain fluent English/Spanish review for all added presentation and error text.
|
||||
5. Run separately authorized synthetic Jotform and Astro-iframe acceptance tests with no real patient data. Cover both locales, all service choices, validation/error states, no-JavaScript and keyboard behavior, confirmation, notifications, responsive sizes and direct hosted fallback.
|
||||
6. Only then authorize a production allowlist and production-gate update. The current seven Form A routes remain the only production-eligible real iframes until that implementation is independently reviewed.
|
||||
6. Record acceptance separately from the owner-authorized default-live 16-route registry. Site deployment/cutover still requires release authorization; no further Form A build flags are required.
|
||||
7. For Form C, separately authorize creation from a blank form, then verify its minimum fields, PHI protections, recipients, retention, hosted/iframe behavior and protected-workflow handoff before mapping `/referrals`.
|
||||
|
||||
## Retained gates
|
||||
|
||||
This decision does not close P9-01, P9-03, P9-05, P9-06, P9-07, P9-09 or P9-10. Form A's existing owner-reported direct and sampled embedded acceptance does not prove the new consultation context. Final real screen-reader, all-route responsive, runtime telemetry/privacy, hosting, notification-recipient and release-owner acceptance remain open.
|
||||
|
||||
## 2026-10-29 supersession and implementation addendum
|
||||
## Historical 2026-10-29 supersession and implementation addendum (gate superseded above)
|
||||
|
||||
The owner reports that the Form A `consultation` context and its conditional rules have been configured through the connected Jotform app. The repository now permits the nine matrix placements only when every isolated-test gate is present, including `PUBLIC_AIA_FORMS_CONSULTATION_TEST_APPROVED=true`. Three standalone pages load the fixed consultation URL immediately; six English/Spanish service drawers retain no iframe `src` until the visitor explicitly opens them. This does not change the frozen seven-route production allowlist.
|
||||
|
||||
The earlier version of this specification required a conditional Autism Diagnostic Evaluation explanation. That requirement is superseded: no conditional explanatory note is required in Form A or Astro. The historical decision is preserved by this dated addendum; the current contract is the client-advocate conversation described above.
|
||||
|
||||
## 2026-10-30 consolidated drawer behavior revision
|
||||
## Historical 2026-10-30 consolidated drawer behavior revision (mode superseded above)
|
||||
|
||||
The later owner prompt supersedes explicit-only opening for the six EN/ES
|
||||
service drawers. Authorized consultation-test drawers now open after four seconds
|
||||
|
||||
Reference in new issue
Block a user