refactor(forms): enable approved Form A placements by default

This commit is contained in:
DeCentN2Madness committed 2026-10-30 15:08:02 -07:00
1 parent 55adb79705
commit 95c5f229f5
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