docs(forms): adopt two-form consultation architecture
This commit is contained in:
10 files changed
+198
-89
No files matched your search
@@ -44,7 +44,7 @@ PUBLIC_AIA_FORMS_ENVIRONMENT=production
|
|||||||
PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true
|
PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true
|
||||||
```
|
```
|
||||||
|
|
||||||
`PUBLIC_ALLOW_INDEXING=true` is required for an indexing-enabled release artifact, but it is **not** a Form A authorization setting and cannot activate a frame by itself. The production gate preserves the same fixed seven-route allowlist, URLs, `formContext`, locale parameters, fixed heights, sandbox, no-referrer policy and conditional fallback. It does not enable Forms B/C, service drawers, native POST forms, analytics, advertising, tracking, webhooks, API forwarding or the Jotform resize handler.
|
`PUBLIC_ALLOW_INDEXING=true` is required for an indexing-enabled release artifact, but it is **not** a Form A authorization setting and cannot activate a frame by itself. The production gate preserves the same fixed seven-route allowlist, URLs, `formContext`, locale parameters, fixed heights, sandbox, no-referrer policy and conditional fallback. It does not enable future Form C, service drawers, native POST forms, analytics, advertising, tracking, webhooks, API forwarding or the Jotform resize handler.
|
||||||
|
|
||||||
For a deployment rollback, set `PUBLIC_AIA_FORMS_MODE=off` or remove any one of the three approval/environment values, rebuild the static artifact, verify no Form A identifier is emitted, and switch to the reviewed artifact. This disables Form A in Astro without changing the static site or the Jotform account. Do not change Jotform notification recipients, fields or availability as part of that rollback.
|
For a deployment rollback, set `PUBLIC_AIA_FORMS_MODE=off` or remove any one of the three approval/environment values, rebuild the static artifact, verify no Form A identifier is emitted, and switch to the reviewed artifact. This disables Form A in Astro without changing the static site or the Jotform account. Do not change Jotform notification recipients, fields or availability as part of that rollback.
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ Direct-Jotform Form A synthetic EN/ES submission, native thank-you, conditional-
|
|||||||
|
|
||||||
### Landing-route extension — 2026-10-25 / 2026-10-26
|
### Landing-route extension — 2026-10-25 / 2026-10-26
|
||||||
|
|
||||||
The owner has extended this same **isolated-test-only** adapter to `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`. Those five English landing routes use the fixed URL parameter pair `formContext=landing&language=en`; the contact routes continue to use `formContext=contact` with their fixed page locale. This supersedes their earlier Form B mapping. Form B remains for the other service-consultation journeys.
|
The owner has extended this same **isolated-test-only** adapter to `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`. Those five English landing routes use the fixed URL parameter pair `formContext=landing&language=en`; the contact routes continue to use `formContext=contact` with their fixed page locale. This supersedes their earlier Form B mapping. Physical Form B is retired; other service-consultation journeys are planned Form A `consultation` targets and remain inactive.
|
||||||
|
|
||||||
The campaign adapter uses the existing campaign form surface rather than creating a second card. Its native Jotform Submit label is not overridden by Astro. The current sandbox is deliberately limited to `allow-forms allow-scripts allow-same-origin`, which is the minimum anticipated set for Jotform validation and in-frame confirmation. It intentionally does not grant popups, modals, top navigation, downloads, or a feature-policy `allow` list. Owner-authorized synthetic acceptance must confirm the real form's validation, confirmation, and any required in-frame navigation before this sandbox can be accepted for production.
|
The campaign adapter uses the existing campaign form surface rather than creating a second card. Its native Jotform Submit label is not overridden by Astro. The current sandbox is deliberately limited to `allow-forms allow-scripts allow-same-origin`, which is the minimum anticipated set for Jotform validation and in-frame confirmation. It intentionally does not grant popups, modals, top navigation, downloads, or a feature-policy `allow` list. Owner-authorized synthetic acceptance must confirm the real form's validation, confirmation, and any required in-frame navigation before this sandbox can be accepted for production.
|
||||||
|
|
||||||
@@ -71,13 +71,13 @@ The current Form A design uses a hidden `formContext` value with fixed, approved
|
|||||||
- Make the no-context and invalid-context states fail closed: no ambiguous extra button and no unintended submission path.
|
- Make the no-context and invalid-context states fail closed: no ambiguous extra button and no unintended submission path.
|
||||||
- Verify keyboard order, focus visibility, screen-reader names, English/Spanish labels, and mobile layout for every variant.
|
- Verify keyboard order, focus visibility, screen-reader names, English/Spanish labels, and mobile layout for every variant.
|
||||||
|
|
||||||
The owner-approved Form A landing extension applies only to `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`, using its fixed `landing` context under the isolated-test gate. Form B remains the planned form for the other service-consultation journeys. No Form A landing placement is approved for live production activation. Do not add an external Astro button that attempts to submit a cross-origin iframe.
|
The owner-approved Form A landing extension applies only to `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`, using its fixed `landing` context under the isolated-test gate. Physical Form B is retired; a planned Form A `consultation` context requires separate Builder approval, synthetic acceptance and an allowlist change before it can appear on other service-consultation journeys. No Form A landing placement is approved for live production activation. Do not add an external Astro button that attempts to submit a cross-origin iframe.
|
||||||
|
|
||||||
## Verification checklist
|
## Verification checklist
|
||||||
|
|
||||||
- [x] Direct English/Spanish Form A language handling, conditional email requirement, synthetic submission and native thank-you were owner-verified; this is not embedded-iframe acceptance.
|
- [x] Direct English/Spanish Form A language handling, conditional email requirement, synthetic submission and native thank-you were owner-verified; this is not embedded-iframe acceptance.
|
||||||
- [x] Direct staff-notification/autoresponder delivery, generic no-answer/no-PDF content, fixed Reply-To, recipient access/retention, and absent webhooks/integrations were owner-verified for Form A.
|
- [x] Direct staff-notification/autoresponder delivery, generic no-answer/no-PDF content, fixed Reply-To, recipient access/retention, and absent webhooks/integrations were owner-verified for Form A.
|
||||||
- [ ] Exact remaining question properties, choices, conditional routing, availability and future Forms B/C configuration are approved.
|
- [ ] Exact remaining Form A consultation question properties, choices, conditional routing and availability, plus future Form C configuration, are approved.
|
||||||
- [ ] English and Spanish embedded-iframe labels, validation, confirmation, and button variants are reviewed by fluent-language owners.
|
- [ ] English and Spanish embedded-iframe labels, validation, confirmation, and button variants are reviewed by fluent-language owners.
|
||||||
- [ ] The hidden honeypot remains present, effective, and excluded from user-facing visual changes.
|
- [ ] The hidden honeypot remains present, effective, and excluded from user-facing visual changes.
|
||||||
- [ ] Exactly one native Submit button is visible for every valid context.
|
- [ ] Exactly one native Submit button is visible for every valid context.
|
||||||
@@ -92,4 +92,4 @@ JF-01 through JF-09, privacy/security review, operations approval, fluent-langua
|
|||||||
|
|
||||||
## 2026-10-28 reconciliation
|
## 2026-10-28 reconciliation
|
||||||
|
|
||||||
The current records supersede the earlier Form B mapping only for the five named landing journeys: all five now use Form A under the seven-route isolated-test or separately approved production gate. Form B remains for the other service-consultation journeys. The official Jotform JavaScript embed handler is **conditionally acceptable pending targeted verification**; it is not included in this adapter. Any future adoption must first verify its current source, origin and source-window validation, parent-page privileges, URL mutation, network requests, Firefox behavior and all supported error states. Fixed heights remain the current approved architecture until that review is separately accepted.
|
The current records supersede the earlier Form B mapping: all five named landing journeys use Form A under the seven-route isolated-test or separately approved production gate, and physical Form B is retired. Other service-consultation journeys are planned Form A `consultation` targets; this context is not configured or emitted. The [two-form integration specification](../../reports/phase-9-two-form-integration-specification-2026-10-28.md) defines its fixed planning contract and the separate Form C referral work. The official Jotform JavaScript embed handler is **conditionally acceptable pending targeted verification**; it is not included in this adapter. Any future adoption must first verify its current source, origin and source-window validation, parent-page privileges, URL mutation, network requests, Firefox behavior and all supported error states. Fixed heights remain the current approved architecture until that review is separately accepted.
|
||||||
@@ -167,12 +167,12 @@ trusted-source comparison. No insecure retrieval was repeated.
|
|||||||
Earlier October 20 reconciliations remain superseded local evidence outside
|
Earlier October 20 reconciliations remain superseded local evidence outside
|
||||||
the checkpoint.
|
the checkpoint.
|
||||||
|
|
||||||
### Current Form A status — 2026-10-28 (uncommitted reconciliation; not a signed acceptance)
|
### Current two-form status — 2026-10-28
|
||||||
|
|
||||||
- Form A (`262946078314059`) is implemented only in a non-indexing, seven-route `isolated-test` adapter: `/contact`, `/es/contact`, the four campaign landing routes and `/lp/early-intervention`. The five landing journeys use fixed `formContext=landing&language=en`, superseding only their earlier Form B mapping. Form B remains for the other service-consultation journeys; Form C remains professional referrals.
|
- Form A (`262946078314059`) is implemented only in a non-indexing, seven-route `isolated-test` adapter: `/contact`, `/es/contact`, the four campaign landing routes and `/lp/early-intervention`. The five landing journeys use fixed `formContext=landing&language=en`. The owner has retired physical Form B: future family service journeys are planned for an unconfigured Form A `consultation` context, while Form C remains a separate future professional-referral form. The seven-route Form A allowlist is frozen until Builder configuration, synthetic acceptance and a separately authorized route change are complete. See [the two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md).
|
||||||
- Owner-confirmed direct-Jotform evidence covers synthetic EN/ES submission, native thank-you, conditional email/language, generic no-answer/no-PDF staff notification, autoresponder delivery, corrected fixed Reply-To, no webhooks/integrations, privacy scope, recipient access and retention. The owner also reports successful Astro-iframe synthetic submission and confirmation on English contact, Spanish contact and one ABA landing placement; record the exact third route before release. Functional submission acceptance is complete only for those owner-reported samples. All-seven-route accessibility, runtime-network/telemetry, deployment and site-release acceptance remain open.
|
- Owner-confirmed direct-Jotform evidence covers synthetic EN/ES submission, native thank-you, conditional email/language, generic no-answer/no-PDF staff notification, autoresponder delivery, corrected fixed Reply-To, no webhooks/integrations, privacy scope, recipient access and retention. The owner also reports successful Astro-iframe synthetic submission and confirmation on English contact, Spanish contact and one ABA landing placement; record the exact third route before release. Functional submission acceptance is complete only for those owner-reported samples. All-seven-route accessibility, runtime-network/telemetry, deployment and site-release acceptance remain open.
|
||||||
- The adapter retains fixed URLs, responsive fixed heights, `no-referrer`, `allow-forms allow-scripts allow-same-origin`, no helper script, and a hosted fallback that is hidden without space until a 15-second missing-load timeout. A frame load only clears that timeout; it does not prove cross-origin application health or accepted submission. The official Jotform resizing handler is conditionally acceptable pending separately authorized source, origin, privilege, Firefox and error-state verification; it is not implemented. Fixed heights remain current.
|
- The adapter retains fixed URLs, responsive fixed heights, `no-referrer`, `allow-forms allow-scripts allow-same-origin`, no helper script, and a hosted fallback that is hidden without space until a 15-second missing-load timeout. A frame load only clears that timeout; it does not prove cross-origin application health or accepted submission. The official Jotform resizing handler is conditionally acceptable pending separately authorized source, origin, privilege, Firefox and error-state verification; it is not implemented. Fixed heights remain current.
|
||||||
- A separate local production gate is prepared for Form A only. It requires `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production` and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true`; the fixed seven-route allowlist remains enforced. `PUBLIC_ALLOW_INDEXING=true` permits an indexing-enabled release artifact but never authorizes a form. Normal/off/mock/isolated behavior remains fail-closed, and Forms B/C, service drawers, analytics and API forwarding remain inactive. Marketing-only notification routing is a pre-cutover operational check. Rolling back Form A means rebuilding with mode `off` or an absent approval value and switching only the static artifact; it does not alter Jotform.
|
- A separate local production gate is prepared for Form A only. It requires `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production` and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true`; the fixed seven-route allowlist remains enforced. `PUBLIC_ALLOW_INDEXING=true` permits an indexing-enabled release artifact but never authorizes a form. Normal/off/mock/isolated behavior remains fail-closed, and Form C, future consultation surfaces, service drawers, analytics and API forwarding remain inactive. Marketing-only notification routing is a pre-cutover operational check. Rolling back Form A means rebuilding with mode `off` or an absent approval value and switching only the static artifact; it does not alter Jotform.
|
||||||
|
|
||||||
The indexing-enabled build has 127 HTML routes/canonicals and 109 sitemap URLs.
|
The indexing-enabled build has 127 HTML routes/canonicals and 109 sitemap URLs.
|
||||||
Normal staging has 128 `noindex,nofollow` pages because it also contains `/lp`;
|
Normal staging has 128 `noindex,nofollow` pages because it also contains `/lp`;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ The final normal staging build was restored after the indexing build. The explic
|
|||||||
1. Record a locked Node/npm/toolchain and reproducible artifact manifest.
|
1. Record a locked Node/npm/toolchain and reproducible artifact manifest.
|
||||||
2. Obtain sanitized Contabo/NixOS/nginx/TLS/DNS/Cloudflare facts.
|
2. Obtain sanitized Contabo/NixOS/nginx/TLS/DNS/Cloudflare facts.
|
||||||
3. Verify host-local serving, canonical host, redirects, 404s, cache headers and rollback on an approved staging host.
|
3. Verify host-local serving, canonical host, redirects, 404s, cache headers and rollback on an approved staging host.
|
||||||
4. Form A has owner-reported functional acceptance and a local production gate, but still needs exact release-environment review, all-seven-route accessibility acceptance, runtime telemetry/privacy review, marketing-recipient operational review and no-deployment static-artifact verification. Forms B/C remain unimplemented. Use Form A only when all four explicit build settings are approved: `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true`. `PUBLIC_ALLOW_INDEXING=true` is publication behavior only.
|
4. Form A has owner-reported functional acceptance and a local production gate, but still needs exact release-environment review, all-seven-route accessibility acceptance, runtime telemetry/privacy review, marketing-recipient operational review and no-deployment static-artifact verification. Its planned `consultation` context is unconfigured; physical Form B is retired; Form C remains unimplemented. Use Form A only when all four explicit build settings are approved: `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true`. `PUBLIC_ALLOW_INDEXING=true` is publication behavior only.
|
||||||
5. Obtain P9-04 counter origin/credential/consent approval before a live adapter.
|
5. Obtain P9-04 counter origin/credential/consent approval before a live adapter.
|
||||||
6. Resolve P9-05 analytics/advertising measurement and P9-07 privacy/legal approval.
|
6. Resolve P9-05 analytics/advertising measurement and P9-07 privacy/legal approval.
|
||||||
7. Obtain P9-06 clinical/organizational and fluent-language approvals, including Arabic diagrams and Spanish HSA/FSA claims.
|
7. Obtain P9-06 clinical/organizational and fluent-language approvals, including Arabic diagrams and Spanish HSA/FSA claims.
|
||||||
|
|||||||
@@ -35,9 +35,9 @@ Recorded: 2026-10-14 (source review began October 13). Prepared during Phase 7;
|
|||||||
## P9-03 — Form/API ownership
|
## P9-03 — Form/API ownership
|
||||||
|
|
||||||
- **Status:** Pending decision
|
- **Status:** Pending decision
|
||||||
- **Current implementation:** Shared form controls disabled; empty actions; no backend.
|
- **Current implementation:** Form A has seven separately gated placements; all other shared form controls remain disabled with no backend. Physical Form B is retired; Form A `consultation` and Form C remain future work.
|
||||||
- **Evidence:** [../src/components/FormShell.astro](../src/components/FormShell.astro)
|
- **Evidence:** [two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md), [../src/components/FormShell.astro](../src/components/FormShell.astro)
|
||||||
- **Options:** Approved existing provider; or separately scoped backend with explicit ownership and data contract.
|
- **Options:** Approved direct Jotform Form A consultation and separate Form C; no Contabo backend for protected lead data.
|
||||||
- **Risk if unresolved:** Lost inquiries, accidental collection, unsafe retention or ambiguous failure.
|
- **Risk if unresolved:** Lost inquiries, accidental collection, unsafe retention or ambiguous failure.
|
||||||
- **Decision owner role:** AIA intake/operations owner
|
- **Decision owner role:** AIA intake/operations owner
|
||||||
- **Required reviewers:** Privacy/legal/security
|
- **Required reviewers:** Privacy/legal/security
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ The owner supplied this revised decision: use Form A (`262946078314059`) for the
|
|||||||
|
|
||||||
The 2026-10-26 owner decision supersedes the earlier exception for `/lp/early-intervention`. Its existing AIA-branded card keeps its off-mode controls and shows the embedded Form A adapter only when the same isolated-test gate permits it. There are no Spanish campaign routes in this implementation, so no Spanish landing parameter has been invented.
|
The 2026-10-26 owner decision supersedes the earlier exception for `/lp/early-intervention`. Its existing AIA-branded card keeps its off-mode controls and shows the embedded Form A adapter only when the same isolated-test gate permits it. There are no Spanish campaign routes in this implementation, so no Spanish landing parameter has been invented.
|
||||||
|
|
||||||
|
## Supersession addendum — 2026-10-28
|
||||||
|
|
||||||
|
The earlier statement that Form B remained the destination for other service-consultation journeys is superseded. Physical Form B is retired. Those journeys are now future Form A `consultation` targets, subject to the separate Builder, clinical, privacy, synthetic-acceptance and Astro-allowlist work in [the two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md). This addendum does not change the five current landing placements, their fixed `landing` context or the seven-route gate.
|
||||||
|
|
||||||
## Implementation
|
## Implementation
|
||||||
|
|
||||||
`src/utils/form-integration.ts` now owns one typed route/locale/context allowlist for all seven Form A placements. `resolveFormAIframe` still requires every existing isolated-test gate:
|
`src/utils/form-integration.ts` now owns one typed route/locale/context allowlist for all seven Form A placements. `resolveFormAIframe` still requires every existing isolated-test gate:
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ The official Jotform resize/embed handler is **conditionally acceptable pending
|
|||||||
- Privacy/security owners must review Jotform runtime requests and telemetry, embed/referrer behavior and deployment configuration.
|
- Privacy/security owners must review Jotform runtime requests and telemetry, embed/referrer behavior and deployment configuration.
|
||||||
- Hosting owners must accept the HTTPS host, CSP/referrer/log policy and production environment gate.
|
- Hosting owners must accept the HTTPS host, CSP/referrer/log policy and production environment gate.
|
||||||
- Marketing notification routing remains a pre-cutover operational check; it is not changed by this record.
|
- Marketing notification routing remains a pre-cutover operational check; it is not changed by this record.
|
||||||
- Forms B and C remain unimplemented and unverified.
|
- Form A `consultation` remains unconfigured and unverified; physical Form B is retired; Form C remains unimplemented and unverified.
|
||||||
- Phase 10 requires a separate release-owner go/no-go and rollback rehearsal.
|
- Phase 10 requires a separate release-owner go/no-go and rollback rehearsal.
|
||||||
|
|
||||||
No Jotform account settings, recipient routing, submissions, analytics, advertising, API behavior, hosting configuration or deployment was changed while recording this evidence.
|
No Jotform account settings, recipient routing, submissions, analytics, advertising, API behavior, hosting configuration or deployment was changed while recording this evidence.
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
# P9-03 source-specific implementation plan
|
# P9-03 source-specific implementation plan
|
||||||
|
|
||||||
Date: **2026-10-18** · Plan version **1.6 revision 2026-10-28** · Governing contract: [P9-03-JF-2026-10-18 v1.6](phase-9-jotform-integration-contract-2026-10-18.md).
|
Date: **2026-10-18** · Plan version **1.7 revision 2026-10-28** · Governing contract: [P9-03-JF-2026-10-18 v1.7](phase-9-jotform-integration-contract-2026-10-18.md).
|
||||||
|
|
||||||
**Planning only. Do not execute any batch from this document without separate authorization.** Phase 9 establishes decisions and bounded implementation authority. Phase 10 retains final production integration acceptance, rollback and cutover. The user stages, signs and pushes.
|
**Planning only. Do not execute any batch from this document without separate authorization.** Phase 9 establishes decisions and bounded implementation authority. Phase 10 retains final production integration acceptance, rollback and cutover. The user stages, signs and pushes.
|
||||||
|
|
||||||
> **Form A reconciliation — 2026-10-28 (current implementation evidence, no production release approval):** Form A — **AIA | Website | General Enquiries** (`262946078314059`) has owner-confirmed direct EN/ES synthetic submission, native thank-you, generic no-answer/no-PDF staff notification, autoresponder delivery, fixed hidden Reply-To, no-webhook/integration, conditional-email and language evidence. The owner also reports successful isolated Astro-iframe synthetic submission and confirmation on English contact, Spanish contact and one ABA landing placement; record that third route explicitly before release rather than inferring it. This completes functional submission acceptance for the reported samples, not seven-route responsive, accessibility, telemetry/privacy, deployment or site-release acceptance. Its hidden presentation field is **Advanced → Field Details → Unique Name = `formContext`** (exact case). The current Astro adapter is implemented only for gated, non-indexing isolated tests: `/contact`, `/es/contact`, `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`; the five landing journeys now use fixed `formContext=landing`, superseding their earlier Form B mapping. Forms B and C remain planned; their field keys and IDs must not be guessed.
|
> **Form A reconciliation — 2026-10-28 (current implementation evidence, no production release approval):** Form A — **AIA | Website | General Enquiries** (`262946078314059`) has owner-confirmed direct EN/ES synthetic submission, native thank-you, generic no-answer/no-PDF staff notification, autoresponder delivery, fixed hidden Reply-To, no-webhook/integration, conditional-email and language evidence. The owner also reports successful isolated Astro-iframe synthetic submission and confirmation on English contact, Spanish contact and one ABA landing placement; record that third route explicitly before release rather than inferring it. This completes functional submission acceptance for the reported samples, not seven-route responsive, accessibility, telemetry/privacy, deployment or site-release acceptance. Its hidden presentation field is **Advanced → Field Details → Unique Name = `formContext`** (exact case). The current Astro adapter is implemented only for gated, non-indexing isolated tests: `/contact`, `/es/contact`, `/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay`, and `/lp/early-intervention`; the five landing journeys now use fixed `formContext=landing`, superseding their earlier Form B mapping. Physical Form B is retired. Form A `consultation` and Form C remain future work; their Jotform field keys and IDs must not be guessed.
|
||||||
|
|
||||||
> **Production-gate addendum — 2026-10-28:** The local adapter now also supports the same seven Form A placements only when `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true` are all set. This is a build-time configuration contract, not a deployed environment or site-release authorization. It leaves Forms B/C, drawers and every unrelated lead surface in their off/mock path. An indexing-enabled release artifact is compatible with the gate, but `PUBLIC_ALLOW_INDEXING` never enables a form.
|
> **Production-gate addendum — 2026-10-28:** The local adapter now also supports the same seven Form A placements only when `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true` are all set. This is a build-time configuration contract, not a deployed environment or site-release authorization. It leaves Form C, drawers and every unrelated lead surface in their off/mock path. An indexing-enabled release artifact is compatible with the gate, but `PUBLIC_ALLOW_INDEXING` never enables a form.
|
||||||
|
|
||||||
## 1. Actual baseline and reconciliation
|
## 1. Actual baseline and reconciliation
|
||||||
|
|
||||||
@@ -18,28 +18,28 @@ Current source-manifest construction confirmed nine eligible enquiry routes and
|
|||||||
|
|
||||||
The owner reports that new **Form A — General Enquiries** (`262946078314059`) has field PHI protection; a generic notification without submitted values or PDF attachment; no webhooks or integrations; and privacy approval for that direct-to-Jotform configuration. This is owner-confirmed evidence from a ChatGPT WebUI/Jotform review, not a repository-side Builder audit. It does not authorize production activation, external submissions, analytics, or advertising.
|
The owner reports that new **Form A — General Enquiries** (`262946078314059`) has field PHI protection; a generic notification without submitted values or PDF attachment; no webhooks or integrations; and privacy approval for that direct-to-Jotform configuration. This is owner-confirmed evidence from a ChatGPT WebUI/Jotform review, not a repository-side Builder audit. It does not authorize production activation, external submissions, analytics, or advertising.
|
||||||
|
|
||||||
The confirmation is limited. Recipient access and Form A retention/deletion controls are owner-verified, while exact role/retention-policy details remain account-policy information outside this repository. Direct conditional-email/language, Reply-To, notification/autoresponder delivery and native confirmation evidence is recorded, but the exact wider conditional logic, defaults, autosave/save-and-continue, availability/spam settings, embedded-iframe submission/confirmation, full responsive/accessibility acceptance and runtime network/privacy behavior remain pending. Forms B and C are not covered.
|
The confirmation is limited. Recipient access and Form A retention/deletion controls are owner-verified, while exact role/retention-policy details remain account-policy information outside this repository. Direct conditional-email/language, Reply-To, notification/autoresponder delivery and native confirmation evidence is recorded, but the exact wider conditional logic, defaults, autosave/save-and-continue, availability/spam settings, embedded-iframe submission/confirmation, full responsive/accessibility acceptance and runtime network/privacy behavior remain pending. The planned Form A `consultation` context and Form C are not covered.
|
||||||
|
|
||||||
| Inventory ID | Route | Source content under `www/src/content/pages` | Owning component under `www/src/components` | Target |
|
| Inventory ID | Route | Source content under `www/src/content/pages` | Owning component under `www/src/components` | Target |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| F-001 | `/contact` | `en/contact.mdx` | `pages/ContactPage.astro` → `ContactForm.astro` | A EN |
|
| F-001 | `/contact` | `en/contact.mdx` | `pages/ContactPage.astro` → `ContactForm.astro` | A EN |
|
||||||
| F-002 | `/es/contact` | `es/contact.mdx` | Same | A ES |
|
| F-002 | `/es/contact` | `es/contact.mdx` | Same | A ES |
|
||||||
| F-003 | `/client-consultation` | `en/client-consultation.md` | `FormShell.astro` via PageLayout | B EN |
|
| F-003 | `/client-consultation` | `en/client-consultation.md` | `FormShell.astro` via PageLayout | Form A / planned `consultation` EN |
|
||||||
| F-004 | `/es/client-consultation` | `es/client-consultation.md` | Same | B ES |
|
| F-004 | `/es/client-consultation` | `es/client-consultation.md` | Same | Form A / planned `consultation` ES |
|
||||||
| F-005 | `/schedule-consultation` | `en/schedule-consultation.mdx` | Same | B EN |
|
| F-005 | `/schedule-consultation` | `en/schedule-consultation.mdx` | Same | Form A / planned `consultation` EN |
|
||||||
| F-006 | `/referrals` | `en/referrals.mdx` | Same; preserve `#form-title` | C EN |
|
| F-006 | `/referrals` | `en/referrals.mdx` | Same; preserve `#form-title` | C EN |
|
||||||
| F-007 | `/aba-therapy` | `en/aba-therapy.mdx` | `ServiceInquiryDrawer.astro` | B EN / ABA |
|
| F-007 | `/aba-therapy` | `en/aba-therapy.mdx` | `ServiceInquiryDrawer.astro` | Form A / planned `consultation`; drawer redesign |
|
||||||
| F-008 | `/autism-evaluations` | `en/autism-evaluations.mdx` | Same | B EN, availability gate |
|
| F-008 | `/autism-evaluations` | `en/autism-evaluations.mdx` | Same | Form A / planned `consultation`; referral-assistance approval |
|
||||||
| F-009 | `/learner-social-club` | `en/learner-social-club.mdx` | Same | B EN / Social Club |
|
| F-009 | `/learner-social-club` | `en/learner-social-club.mdx` | Same | Form A / planned `consultation`; program approval |
|
||||||
|
|
||||||
Nine instances = 7 EN + 2 ES, three implementations. Eleven GET search instances remain separate. No Arabic enquiry form or Spanish referral route is created. EN/ES-capable logical forms do not imply new published routes.
|
Nine instances = 7 EN + 2 ES, three implementations. Eleven GET search instances remain separate. No Arabic enquiry form or Spanish referral route is created. EN/ES-capable logical forms do not imply new published routes.
|
||||||
|
|
||||||
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are current gated Form A isolated-test placements with fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping only for these journeys. Form B remains the future destination for other service-consultation routes that need its additional approved fields. The landing panels are not additional native form implementations, and Form A is absent from off/mock/indexing output.
|
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are current gated Form A isolated-test placements with fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping. Physical Form B is retired; other service-consultation routes are planned Form A `consultation` targets and are not current iframe placements. The landing panels are not additional native form implementations, and Form A is absent from off/mock/indexing output.
|
||||||
|
|
||||||
### Discrepancies and supersession notes
|
### Discrepancies and supersession notes
|
||||||
|
|
||||||
1. October 17 proposed possible event/fundraising consolidation into general enquiries. October 18 explicitly preserves the Event Submission Form separately; fundraising still needs approval. Tour currently points to consultation/B; A is provisional and requires a deliberate approved CTA disposition.
|
1. October 17 proposed possible event/fundraising consolidation into general enquiries. October 18 explicitly preserves the Event Submission Form separately; fundraising still needs approval. Tour currently points to `/client-consultation`, a planned Form A `consultation` route whose service list has no tour choice; its CTA disposition requires an intake/operations decision.
|
||||||
2. October 17 proposed one chosen contact channel. Current owner field proposal requires adult email for A/B, with B phone undecided. Operations must approve final requirements and contact-preference validation; do not implement the old alternative.
|
2. October 17 proposed one chosen contact channel. Form A retains its existing conditional email/phone behavior; the planned consultation context adds only service interest. Operations must approve any additional field or contact-preference change; do not implement the old alternative.
|
||||||
3. The older report allowed date/time/source notification extensions after review. Initial contract now explicitly defers them; use only the exact generic template after notification approval.
|
3. The older report allowed date/time/source notification extensions after review. Initial contract now explicitly defers them; use only the exact generic template after notification approval.
|
||||||
4. The older inventory knew no confirmed lead source. The supplied October 18 evidence preserves `250727122848156` as a **historical structural reference only**. The revised owner decision rejects cloning or repurposing it; it is not a validated schema or active embed destination.
|
4. The older inventory knew no confirmed lead source. The supplied October 18 evidence preserves `250727122848156` as a **historical structural reference only**. The revised owner decision rejects cloning or repurposing it; it is not a validated schema or active embed destination.
|
||||||
5. Three multilingual forms are the new preference, including C capability. Earlier fallback five physical forms assumed C EN-only; a complete EN/ES physical fallback for all three would be six. No new Spanish route is implied or authorized.
|
5. Three multilingual forms are the new preference, including C capability. Earlier fallback five physical forms assumed C EN-only; a complete EN/ES physical fallback for all three would be six. No new Spanish route is implied or authorized.
|
||||||
@@ -57,19 +57,19 @@ All paths below are relative to repository root. Proposed additions do not exist
|
|||||||
| `www/src/components/ContactForm.astro` | Lines 17–28: empty POST, disabled submit, five optional contact/service/message controls | Keep card/layout styling; delegate mode-dependent lead UI to reusable integration; remove inactive native submission surface in off mode |
|
| `www/src/components/ContactForm.astro` | Lines 17–28: empty POST, disabled submit, five optional contact/service/message controls | Keep card/layout styling; delegate mode-dependent lead UI to reusable integration; remove inactive native submission surface in off mode |
|
||||||
| `www/src/components/FormShell.astro` | Lines 12–21: same POST pattern; outer section and `form-title` | Preserve section/background and referral fragment; pass logical form/locale explicitly |
|
| `www/src/components/FormShell.astro` | Lines 12–21: same POST pattern; outer section and `form-title` | Preserve section/background and referral fragment; pass logical form/locale explicitly |
|
||||||
| `www/src/components/ServiceInquiryDrawer.astro` | Empty POST, child fields, stale options/copy; ten-second modal; dismissal sessionStorage | Preserve verified native dialog unless approved otherwise; replace lead content only after copy/UX decisions; no timed vendor request |
|
| `www/src/components/ServiceInquiryDrawer.astro` | Empty POST, child fields, stale options/copy; ten-second modal; dismissal sessionStorage | Preserve verified native dialog unless approved otherwise; replace lead content only after copy/UX decisions; no timed vendor request |
|
||||||
| `www/src/layouts/PageLayout.astro` | `showForm` routes at line 15; EN-only drawers at line 81; FormShell at 82 | Explicit route→A/B/C configuration; retain publication architecture and locale guards |
|
| `www/src/layouts/PageLayout.astro` | `showForm` routes at line 15; EN-only drawers at line 81; FormShell at 82 | Explicit route→Form A consultation/Form C configuration; retain publication architecture and locale guards |
|
||||||
| `www/src/components/pages/ContactPage.astro` | ContactForm with lang, address and Leaflet/map resources | Pass integration props if needed, preserve map provider/layout; map traffic separately blocked in controlled tests |
|
| `www/src/components/pages/ContactPage.astro` | ContactForm with lang, address and Leaflet/map resources | Pass integration props if needed, preserve map provider/layout; map traffic separately blocked in controlled tests |
|
||||||
| `www/src/utils/form-messages.ts` | EN/ES text only; other locales rejected | Add approved mode/fallback/accessibility copy only; do not invent Arabic messages or remote-form translations |
|
| `www/src/utils/form-messages.ts` | EN/ES text only; other locales rejected | Add approved mode/fallback/accessibility copy only; do not invent Arabic messages or remote-form translations |
|
||||||
| `www/src/scripts/forms.ts` | Unused submit-event prevention helper | Do not treat as adequate isolation; future removal/wiring only if justified by selected architecture |
|
| `www/src/scripts/forms.ts` | Unused submit-event prevention helper | Do not treat as adequate isolation; future removal/wiring only if justified by selected architecture |
|
||||||
| `www/src/styles/forms.css` | Existing source-faithful form styling | Narrow iframe/fallback styling only where necessary; preserve visual tokens |
|
| `www/src/styles/forms.css` | Existing source-faithful form styling | Narrow iframe/fallback styling only where necessary; preserve visual tokens |
|
||||||
| `www/.env.example`; proposed `www/src/env.d.ts` only if needed | Existing environment example; no current `src/env.d.ts` | Document optional mode default-off and type semantics if needed; no actual live IDs or credentials |
|
| `www/.env.example`; proposed `www/src/env.d.ts` only if needed | Existing environment example; no current `src/env.d.ts` | Document optional mode default-off and type semantics if needed; no actual live IDs or credentials |
|
||||||
| `www/src/content/pages/en/tour.mdx` | CTA to `/client-consultation` | No route edit until Tour A/B decision approved |
|
| `www/src/content/pages/en/tour.mdx` | CTA to `/client-consultation` | No route edit until intake/operations resolves the Tour destination under Form A contexts |
|
||||||
| `www/src/content/pages/en/client-forms.mdx` | Clinical, Sign, CentralReach and PDF links | Preserve; not part of lead-form replacement |
|
| `www/src/content/pages/en/client-forms.mdx` | Clinical, Sign, CentralReach and PDF links | Preserve; not part of lead-form replacement |
|
||||||
| `www/reports/google-ads-consultation-conversion.md` | Accepted-API-success premise | Do not edit in this batch; future separate P9-05 contract must reconcile direct Jotform semantics |
|
| `www/reports/google-ads-consultation-conversion.md` | Accepted-API-success premise | Do not edit in this batch; future separate P9-05 contract must reconcile direct Jotform semantics |
|
||||||
|
|
||||||
**Proposed additions for authorized Batch C:**
|
**Proposed additions for authorized Batch C:**
|
||||||
|
|
||||||
- `www/src/utils/form-integration.ts`: typed logical form (`A/B/C`), locale, mode and deployment-role validation; pure functions suitable for existing Node tests.
|
- `www/src/utils/form-integration.ts`: typed logical visitor intent (`general/service/referral`), locale, mode and deployment-role validation; pure functions suitable for existing Node tests.
|
||||||
- `www/src/data/form-integrations.ts`: explicit route mapping and build-time descriptors; no production descriptor until later approval; semantic service hints are not Jotform field keys.
|
- `www/src/data/form-integrations.ts`: explicit route mapping and build-time descriptors; no production descriptor until later approval; semantic service hints are not Jotform field keys.
|
||||||
- `www/src/components/FormIntegration.astro`: mode orchestration, localized off fallback and local mock selection.
|
- `www/src/components/FormIntegration.astro`: mode orchestration, localized off fallback and local mock selection.
|
||||||
- `www/src/components/JotformEmbed.astro`: reviewed iframe/fallback presentation, inactive until approved live descriptor; defer its live behavior to authorized test work if unnecessary for C.
|
- `www/src/components/JotformEmbed.astro`: reviewed iframe/fallback presentation, inactive until approved live descriptor; defer its live behavior to authorized test work if unnecessary for C.
|
||||||
@@ -99,19 +99,19 @@ For off mode prefer non-form fallback markup without editable lead controls or a
|
|||||||
|
|
||||||
Mock fixtures must be synthetic and inert to external requests, including Enter and native submission paths; Playwright aborts unapproved requests before transmission. Fixture URLs/assets must not appear in the production route manifest. Live descriptors must not leak into off/mock emitted bundles through shared imports—scan generated HTML, scripts and preload hints.
|
Mock fixtures must be synthetic and inert to external requests, including Enter and native submission paths; Playwright aborts unapproved requests before transmission. Fixture URLs/assets must not appear in the production route manifest. Live descriptors must not leak into off/mock emitted bundles through shared imports—scan generated HTML, scripts and preload hints.
|
||||||
|
|
||||||
Parent component preserves approved page design, explanatory text, iframe title, hosted fallback and responsive width/height. The Form A adapter uses owner-verified fixed `language=en|es` and `formContext=contact|landing` values only; it forwards no visitor data. Cross-origin child labels/errors must be verified in Jotform; Astro locale and CSS do not localize/fix them. The first-party fallback remains hidden without layout space, appears only after a 15-second missing-load timeout, and has a localized noscript version. Loading/error UI must not claim it can inspect the child DOM. A frame load is not proof of availability, application initialization or accepted submission.
|
Parent component preserves approved page design, explanatory text, iframe title, hosted fallback and responsive width/height. The Form A adapter currently uses owner-verified fixed `language=en|es` and `formContext=contact|landing` values only; `consultation` remains unconfigured and must not be emitted; it forwards no visitor data. Cross-origin child labels/errors must be verified in Jotform; Astro locale and CSS do not localize/fix them. The first-party fallback remains hidden without layout space, appears only after a 15-second missing-load timeout, and has a localized noscript version. Loading/error UI must not claim it can inspect the child DOM. A frame load is not proof of availability, application initialization or accepted submission.
|
||||||
|
|
||||||
Drawer decision is a prerequisite for replacing its live content: retain timer only if approved and incapable of loading vendor resources without the approved trigger; otherwise use an explicitly approved open/load interaction or full-page fallback. Preserve Escape/initial focus/restoration and test cross-origin focus boundaries. No wholesale dialog replacement.
|
Drawer decision is a prerequisite for replacing its live content: retain timer only if approved and incapable of loading vendor resources without the approved trigger; otherwise use an explicitly approved open/load interaction or full-page fallback. Preserve Escape/initial focus/restoration and test cross-origin focus boundaries. No wholesale dialog replacement.
|
||||||
|
|
||||||
## 4. Builder review and blank-form creation prerequisites
|
## 4. Builder review and blank-form creation prerequisites
|
||||||
|
|
||||||
Use [JF-01–09 and owner gates](phase-9-jotform-verification-checklist-2026-10-18.csv). Form A has the limited owner-confirmed configuration portions recorded in the 2026-10-27 ledger update; all remaining verification starts Pending/Unverified. Verify the blank-form Builder settings in A/B before any synthetic test; no existing form is a source for inheritance. Runtime portions of JF-03/08 remain open until D.
|
Use [JF-01–09 and owner gates](phase-9-jotform-verification-checklist-2026-10-18.csv). Form A has the limited owner-confirmed configuration portions recorded in the 2026-10-27 ledger update; all remaining verification starts Pending/Unverified. Verify the planned Form A consultation settings and future blank Form C Builder settings before any synthetic test; no existing form is a source for inheritance. Runtime portions of JF-03/08 remain open until D.
|
||||||
|
|
||||||
Before any creation, approve an account process that creates exactly three disabled blank forms, prevents public access and live notifications, and records the new IDs only after the account owner confirms the forms are isolated. Configure minimum fields, PHI protection, generic notifications, confirmation behavior and no-forwarding settings explicitly. Do not copy/import fields, settings or submissions from existing forms. If safe isolation cannot be established, stop before creation.
|
Before a Form C creation or Form A consultation change, approve an account process that protects the existing Form A contexts, prevents unintended public access or live notifications, and records Form C’s new ID only after the account owner confirms isolation. Configure minimum fields, PHI protection, generic notifications, confirmation behavior and no-forwarding settings explicitly. Do not copy/import fields, settings or submissions from existing forms. If safe isolation cannot be established, stop before creation.
|
||||||
|
|
||||||
Review all default/hidden fields, protected flags, conditional routing, reply-to, subjects, attachments, staff recipients, autoresponders, integrations, webhooks, exports, save/continue, limits, duplicates and access/retention. Inspect actual thank-you behavior and ensure answer echo and HTTP POST forwarding to Astro/Contabo are off. Generic notification setup itself requires authorized Jotform mutation; no “test email” to inherited recipients before review.
|
Review all default/hidden fields, protected flags, conditional routing, reply-to, subjects, attachments, staff recipients, autoresponders, integrations, webhooks, exports, save/continue, limits, duplicates and access/retention. Inspect actual thank-you behavior and ensure answer echo and HTTP POST forwarding to Astro/Contabo are off. Generic notification setup itself requires authorized Jotform mutation; no “test email” to inherited recipients before review.
|
||||||
|
|
||||||
The owner separately reports that the existing `AIA Lead Generator | plain` form has had field PHI protection enabled, automatic email-template updates disabled, autoresponder content revised to exclude submitted PHI, Spanish autoresponder behavior checked, delivery tested and its generated PDF attachment removed. Treat this as owner-reported remediation only. It does not audit historical recipients, access, retention, other legacy forms or HIPAA compliance, and it does not make that form a source for A/B/C. No submissions or historical emails are to be retrieved in this planning document.
|
The owner separately reports that the existing `AIA Lead Generator | plain` form has had field PHI protection enabled, automatic email-template updates disabled, autoresponder content revised to exclude submitted PHI, Spanish autoresponder behavior checked, delivery tested and its generated PDF attachment removed. Treat this as owner-reported remediation only. It does not audit historical recipients, access, retention, other legacy forms or HIPAA compliance, and it does not make that form a source for Form A consultation or Form C. No submissions or historical emails are to be retrieved in this planning document.
|
||||||
|
|
||||||
## 5. Independently authorizable batches
|
## 5. Independently authorizable batches
|
||||||
|
|
||||||
@@ -124,14 +124,14 @@ The owner separately reports that the existing `AIA Lead Generator | plain` form
|
|||||||
- **Acceptance:** distinguish static elements from fields; every proposed field mapped or explicitly pending; no guessed internal IDs or locale behavior. Required callback/contact expectations approved.
|
- **Acceptance:** distinguish static elements from fields; every proposed field mapped or explicitly pending; no guessed internal IDs or locale behavior. Required callback/contact expectations approved.
|
||||||
- **Stop:** before any form creation/editing, tests generating notifications, or production mapping.
|
- **Stop:** before any form creation/editing, tests generating notifications, or production mapping.
|
||||||
|
|
||||||
### Batch B — Create three blank Jotform forms
|
### Batch B — Configure Form A consultation and create Form C
|
||||||
|
|
||||||
- **Objective:** create exactly three purpose-built disabled forms from blank forms: A General Enquiries, B Service Consultations and C Professional Referral Initiation.
|
- **Objective:** configure Form A’s future `consultation` context without changing approved `contact`/`landing` behavior, and create one disabled blank Form C — Professional Referral Initiation.
|
||||||
- **Authorization:** explicit Jotform mutation permission naming the three forms, account owner, reviewers, environment, isolation steps, proposed settings and stopping conditions. The historical `250727122848156` form is not a source and must not be cloned or repurposed.
|
- **Authorization:** explicit Jotform mutation permission naming the Form A context, Form C, account owner, reviewers, environment, isolation steps, proposed settings and stopping conditions. The historical `250727122848156` form is not a source and must not be cloned or repurposed.
|
||||||
- **Prerequisites:** Batch A field decisions; account/privacy owner available; approved test recipient roles; blank-form creation confirmed; no production form is edited.
|
- **Prerequisites:** Batch A field decisions; account/privacy owner available; approved test recipient roles; a Form A rollback plan; no unapproved production route is edited.
|
||||||
- **Systems:** new Jotform forms and sanitized provenance documents only. Preserve all 27 existing assets, including clinical, agreement, event and operational workflows.
|
- **Systems:** Form A configuration, one new Form C and sanitized provenance documents only. Preserve all 27 existing assets, including clinical, agreement, event and operational workflows.
|
||||||
- **Acceptance:** record actual new IDs, blank-form provenance, protected fields, generic notification, no booking/child identifiers, no PHI forwarding, no Google integration, and no inherited recipients/conditions/attachments/redirects. JF-01–08 are verified for each new form.
|
- **Acceptance:** record Form C’s actual ID, Form A context settings, protected fields, generic notification, no booking/child identifiers, no PHI forwarding, no Google integration, and no inherited recipients/conditions/attachments/redirects. JF-01–08 are verified for the changed scope.
|
||||||
- **Stop:** new forms remain disabled and unembedded; no synthetic submissions unless Batch D is separately authorized.
|
- **Stop:** Form C remains disabled and unembedded; Form A consultation has no Astro placement or synthetic submission unless Batch D is separately authorized.
|
||||||
|
|
||||||
### Batch C — Local-only Astro off/mock integration
|
### Batch C — Local-only Astro off/mock integration
|
||||||
|
|
||||||
@@ -146,8 +146,8 @@ The owner separately reports that the existing `AIA Lead Generator | plain` form
|
|||||||
|
|
||||||
- **Objective:** verify JF-09 and runtime JF-03/08 with actual approved isolated form(s).
|
- **Objective:** verify JF-09 and runtime JF-03/08 with actual approved isolated form(s).
|
||||||
- **Authorization:** separately approve test form IDs, origins, environment, synthetic input set, notification recipient roles, permitted methods/network destinations and test window. This is not covered by GET-only prior browser authorization.
|
- **Authorization:** separately approve test form IDs, origins, environment, synthetic input set, notification recipient roles, permitted methods/network destinations and test window. This is not covered by GET-only prior browser authorization.
|
||||||
- **Prerequisites:** Three blank forms created and their configuration review recorded in B; C mode guards; operations/privacy/language settings approved. Use loopback preview, exact test-only allowlist; production counters/maps/Google/unrelated resources blocked.
|
- **Prerequisites:** Form A consultation and Form C configuration review recorded in B; C mode guards; operations/privacy/language settings approved. Use loopback preview, exact test-only allowlist; production counters/maps/Google/unrelated resources blocked.
|
||||||
- **Acceptance:** for Forms B/C, actual approved EN/ES submit/error/cancel/retry behavior and controlled generic-email/header inspection. For Form A, owner-reported direct-Jotform and sampled Astro-iframe synthetic submission/confirmation are complete; final fallback, keyboard, real screen reader where available, 200%/400% zoom, slow/offline/block scenarios, all-seven-route acceptance and runtime-network review remain pending. Use no real patient data; retain only sanitized results.
|
- **Acceptance:** for Form A consultation and Form C, actual approved submit/error/cancel/retry behavior and controlled generic-email/header inspection. For Form A, owner-reported direct-Jotform and sampled Astro-iframe synthetic submission/confirmation are complete; final fallback, keyboard, real screen reader where available, 200%/400% zoom, slow/offline/block scenarios, all-seven-route acceptance and runtime-network review remain pending. Use no real patient data; retain only sanitized results.
|
||||||
- **Stop:** test-form evidence and remaining gates; no production IDs or deployment.
|
- **Stop:** test-form evidence and remaining gates; no production IDs or deployment.
|
||||||
|
|
||||||
### Batch E — Approved production mapping and staged-site integration
|
### Batch E — Approved production mapping and staged-site integration
|
||||||
@@ -156,7 +156,7 @@ The owner separately reports that the existing `AIA Lead Generator | plain` form
|
|||||||
- **Authorization:** separate approval of exact IDs, origins, locales, recipients, privacy/security/operations decisions and static artifact scope. “Staged-site” means a proposed release artifact unless a hosted preview is separately authorized; it never means permission to use Git staging.
|
- **Authorization:** separate approval of exact IDs, origins, locales, recipients, privacy/security/operations decisions and static artifact scope. “Staged-site” means a proposed release artifact unless a hosted preview is separately authorized; it never means permission to use Git staging.
|
||||||
- **Prerequisites:** A–D evidence, OA-01–05 and OA-07, JF settings stable, Tour/evaluation/payment decisions resolved. P9-04 preview isolation remains separate.
|
- **Prerequisites:** A–D evidence, OA-01–05 and OA-07, JF settings stable, Tour/evaluation/payment decisions resolved. P9-04 preview isolation remains separate.
|
||||||
- **Files/systems:** approved typed mapping, reviewed components/messages, tests and configuration documentation; no nginx/DNS/API changes. Isolated-test and production IDs must be explicitly distinguished.
|
- **Files/systems:** approved typed mapping, reviewed components/messages, tests and configuration documentation; no nginx/DNS/API changes. Isolated-test and production IDs must be explicitly distinguished.
|
||||||
- **Acceptance:** all nine instances mapped, controlled comparison with approved forms, production-mode artifact inspected without browser egress, normal staging still off; no original-form fallback or publication changes.
|
- **Acceptance:** all approved consultation/referral instances mapped, controlled comparison with approved forms, production-mode artifact inspected without browser egress, normal staging still off; no original-form fallback or publication changes.
|
||||||
- **Stop:** release-candidate review. No live submissions, notification activation, deployment or indexing activation.
|
- **Stop:** release-candidate review. No live submissions, notification activation, deployment or indexing activation.
|
||||||
|
|
||||||
### Batch F — Phase 10 production acceptance, release and rollback
|
### Batch F — Phase 10 production acceptance, release and rollback
|
||||||
@@ -190,7 +190,7 @@ These are specifications for later tests, not test results or executable code ad
|
|||||||
| FT-09 | Screen-reader names/errors/confirmation and EN/ES review | D + human reviewers; remains Pending if unavailable |
|
| FT-09 | Screen-reader names/errors/confirmation and EN/ES review | D + human reviewers; remains Pending if unavailable |
|
||||||
| FT-10 | Actual approved synthetic success/failure, email privacy/headers, no identifiers/attachments/POST forwarding | D only, JF-09; protected data never used |
|
| FT-10 | Actual approved synthetic success/failure, email privacy/headers, no identifiers/attachments/POST forwarding | D only, JF-09; protected data never used |
|
||||||
| FT-11 | No production Jotform, Contabo form POST, Google/GA4 or counter traffic outside explicitly approved test endpoints | C/D guarded request ledger; attempted versus transmitted distinguished |
|
| FT-11 | No production Jotform, Contabo form POST, Google/GA4 or counter traffic outside explicitly approved test endpoints | C/D guarded request ledger; attempted versus transmitted distinguished |
|
||||||
| FT-12 | No booking, child identifiers, unapproved service/payment/location/claim inheritance in approved form copy | A/B schema/copy review; D rendered confirmation |
|
| FT-12 | No booking, child identifiers, unapproved service/payment/location/claim inheritance in approved form copy | Form A consultation/Form C schema and copy review; D rendered confirmation |
|
||||||
| FT-13 | No conversion on click/load/start/failure/thank-you replay/untrusted message | G only; supported success contract required |
|
| FT-13 | No conversion on click/load/start/failure/thank-you replay/untrusted message | G only; supported success contract required |
|
||||||
| FT-14 | Clinical/Sign/CentralReach paths, search and publication invariants unchanged | Existing link/publication suites, C/E |
|
| FT-14 | Clinical/Sign/CentralReach paths, search and publication invariants unchanged | Existing link/publication suites, C/E |
|
||||||
|
|
||||||
@@ -221,9 +221,9 @@ Source changes require a newly named offline reconciliation using explicit final
|
|||||||
|
|
||||||
## 8. Remaining approvals, evidence and next action
|
## 8. Remaining approvals, evidence and next action
|
||||||
|
|
||||||
First recommended authorized batch: **Batch A**, final blank-form specifications and owner field approval, using the now-complete owner-supplied 27-asset roster as historical context only. First safe **code** batch is C's off/mock contact slice after its explicit authorization; it can avoid external account changes while B is pending, but cannot invent Jotform settings.
|
First recommended authorized batch: **Batch A**, final Form A consultation/Form C specifications and owner field approval, using the now-complete owner-supplied 27-asset roster as historical context only. First safe **code** batch is C's off/mock contact slice after its explicit authorization; it can avoid external account changes while B is pending, but cannot invent Jotform settings.
|
||||||
|
|
||||||
The companion CSV records limited owner-confirmed Form A portions of JF-01, JF-04, JF-06, JF-07 and OA-05. Pending facts still include actual question IDs/types/defaults/options, conditional routing, real translations/locale URLs, default email behavior, thank-you/POST behavior, blank-form isolation and supported success signaling. Form A recipient access and retention/deletion are owner-verified; detailed role and retention-policy records remain outside the repository. Form A now exists but has no production-activation approval; B and C remain pending. Tour/event/fundraising separation must be retained.
|
The companion CSV records limited owner-confirmed Form A portions of JF-01, JF-04, JF-06, JF-07 and OA-05. Pending facts still include actual question IDs/types/defaults/options, conditional routing, real translations/locale URLs, default email behavior, thank-you/POST behavior, blank-form isolation and supported success signaling. Form A recipient access and retention/deletion are owner-verified; detailed role and retention-policy records remain outside the repository. Form A exists, but its `consultation` context has no route or production activation approval; Form C remains pending and physical Form B is retired. Tour/event/fundraising separation must be retained.
|
||||||
|
|
||||||
Any approval record must identify approver role, date, exact form/environment/version, sanitized evidence and scope. An account label ENABLED, a BAA, a successful static build or a generic vendor help article cannot close these gates. Keep the real screen-reader, authorized visual/non-Chromium, fluent-language, clinical, financial and policy/source-provenance requirements from SESSION_HANDOFF.
|
Any approval record must identify approver role, date, exact form/environment/version, sanitized evidence and scope. An account label ENABLED, a BAA, a successful static build or a generic vendor help article cannot close these gates. Keep the real screen-reader, authorized visual/non-Chromium, fluent-language, clinical, financial and policy/source-provenance requirements from SESSION_HANDOFF.
|
||||||
|
|
||||||
@@ -244,3 +244,5 @@ Version 1.4, 2026-10-28: reconciles owner-confirmed direct Form A runtime eviden
|
|||||||
Version 1.5, 2026-10-28: records owner-reported embedded synthetic submission and confirmation on the English and Spanish contact routes plus one ABA landing placement. It completes Form A functional submission acceptance for the reported samples, while retaining route-specific confirmation, all-seven-route responsive/accessibility, runtime/privacy, deployment and release gates.
|
Version 1.5, 2026-10-28: records owner-reported embedded synthetic submission and confirmation on the English and Spanish contact routes plus one ABA landing placement. It completes Form A functional submission acceptance for the reported samples, while retaining route-specific confirmation, all-seven-route responsive/accessibility, runtime/privacy, deployment and release gates.
|
||||||
|
|
||||||
Version 1.6, 2026-10-28: adds the exact production-gate configuration for Form A and its seven fixed placements. It does not activate an environment, change the Jotform account, map Forms B/C, or authorize a production release.
|
Version 1.6, 2026-10-28: adds the exact production-gate configuration for Form A and its seven fixed placements. It does not activate an environment, change the Jotform account, map Forms B/C, or authorize a production release.
|
||||||
|
|
||||||
|
Version 1.7, 2026-10-28: records the owner-approved two-physical-form architecture. Physical Form B is retired; Form A gains a planned, unconfigured `consultation` context and Form C remains a future referral form. The exact future route/component matrix, service-interest options, evaluation explanation and pre-activation owner actions are in [the two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md). No source component, current seven-route gate, Jotform configuration or deployment changed.
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
# P9-03 Jotform integration contract
|
# P9-03 Jotform integration contract
|
||||||
|
|
||||||
**Contract ID:** P9-03-JF-2026-10-18 · **Version:** 1.6 · **Decision revision:** 2026-10-28
|
**Contract ID:** P9-03-JF-2026-10-18 · **Version:** 1.7 · **Decision revision:** 2026-10-28
|
||||||
|
|
||||||
**Status: Form A owner-approved; production-gated adapter prepared locally; deployment and site release NOT authorized.**
|
**Status: Form A owner-approved for existing contexts; two-form consultation direction documented; deployment and new-route activation NOT authorized.**
|
||||||
|
|
||||||
This is the authoritative P9-03 planning contract for the owner decisions supplied on October 18 and revised through October 28. It supersedes conflicting *proposals* in the [October 17 inventory](phase-9-form-entry-point-inventory-2026-10-17.md), without rewriting that historical record. It does not supersede project policy, approve clinical/legal content beyond the Form A configuration scope recorded below, close the Phase 9 register, or authorize production changes. Future changes require an explicit owner decision, a version/change record and evidence links. Version 1.0 records the original planning instruction; version 1.1 adds the owner-supplied complete roster; version 1.2 supersedes the copy-based Form B proposal with three new blank forms; version 1.3 records limited owner-confirmed Form A configuration evidence; version 1.4 reconciles completed direct-Jotform testing and the seven-route isolated iframe adapter; version 1.5 records owner-reported embedded synthetic acceptance for sampled routes; version 1.6 adds the independent production-build gate without deploying it. No future commit SHA is invented.
|
This is the authoritative P9-03 planning contract for the owner decisions supplied on October 18 and revised through October 28. It supersedes conflicting *proposals* in the [October 17 inventory](phase-9-form-entry-point-inventory-2026-10-17.md), without rewriting that historical record. It does not supersede project policy, approve clinical/legal content beyond the Form A configuration scope recorded below, close the Phase 9 register, or authorize production changes. Future changes require an explicit owner decision, a version/change record and evidence links. Version 1.0 records the original planning instruction; version 1.1 adds the owner-supplied complete roster; version 1.2 supersedes the copy-based Form B proposal with three new blank forms; version 1.3 records limited owner-confirmed Form A configuration evidence; version 1.4 reconciles completed direct-Jotform testing and the seven-route isolated iframe adapter; version 1.5 records owner-reported embedded synthetic acceptance for sampled routes; version 1.6 adds the independent production-build gate without deploying it; version 1.7 retires physical Form B and specifies Form A consultation plus Form C referral planning. No future commit SHA is invented.
|
||||||
|
|
||||||
Companions: [source-specific implementation plan](phase-9-jotform-implementation-plan-2026-10-18.md), [verification and approval ledger](phase-9-jotform-verification-checklist-2026-10-18.csv).
|
Companions: [source-specific implementation plan](phase-9-jotform-implementation-plan-2026-10-18.md), [two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md), [verification and approval ledger](phase-9-jotform-verification-checklist-2026-10-18.csv).
|
||||||
|
|
||||||
## 1. Verified repository and evidence provenance
|
## 1. Verified repository and evidence provenance
|
||||||
|
|
||||||
@@ -32,8 +32,8 @@ Evidence classes must remain distinct:
|
|||||||
- AIA uses Jotform Gold with HIPAA enabled and a signed Jotform BAA; 27 of 100 form slots are occupied. Existing clinical/operational workflows must remain intact.
|
- AIA uses Jotform Gold with HIPAA enabled and a signed Jotform BAA; 27 of 100 form slots are occupied. Existing clinical/operational workflows must remain intact.
|
||||||
- **All public lead submissions go directly to Jotform.** No Contabo submission proxy, PHI-bearing webhook, completed form-data forwarding or clinical-document transfer to Contabo.
|
- **All public lead submissions go directly to Jotform.** No Contabo submission proxy, PHI-bearing webhook, completed form-data forwarding or clinical-document transfer to Contabo.
|
||||||
- Prefer iframe presentation, preserving Astro design and locale behavior; use a hosted form fallback where embedding is unsuitable.
|
- Prefer iframe presentation, preserving Astro design and locale behavior; use a hosted form fallback where embedding is unsuitable.
|
||||||
- Use three logical forms: **A General Enquiries, B Service Consultations, C Professional Referral Initiation**. Prefer one EN/ES multilingual physical form for each where verified; separate EN/ES copies are a fallback requiring approval.
|
- Use two physical forms: **A General Enquiries, landing enquiries and family service consultations**, and **C Professional Referral Initiation**. Form A retains its existing `contact` and `landing` contexts; `consultation` is planned only. `service` may remain a logical visitor-intent classification, not a separate physical form.
|
||||||
- **Create three new forms from blank forms:** A General Enquiries, B Service Consultations and C Professional Referral Initiation. Do not clone or repurpose an existing operational form. The former proposal to use a working copy of **AIA Lead Generator | plain** is superseded.
|
- **Physical Form B is retired.** Do not create, clone or repurpose a separate service-consultation form. Form C alone remains a future blank-form creation task; the former proposal to use a working copy of **AIA Lead Generator | plain** remains superseded.
|
||||||
- The historical source ID `250727122848156` remains reference evidence only. It must not be modified, cloned, disabled, deleted, repurposed or used as an embed destination under this decision. Existing clinical, agreement, billing, event, HR, administrative and CentralReach workflows remain independent.
|
- The historical source ID `250727122848156` remains reference evidence only. It must not be modified, cloned, disabled, deleted, repurposed or used as an embed destination under this decision. Existing clinical, agreement, billing, event, HR, administrative and CentralReach workflows remain independent.
|
||||||
- No appointment booking in initial consultation forms. Staff contact the family to arrange follow-up.
|
- No appointment booking in initial consultation forms. Staff contact the family to arrange follow-up.
|
||||||
- Begin with the generic Jotform notification in section 8, subject to actual settings/recipient/privacy review. Timestamps and campaign labels are deferred.
|
- Begin with the generic Jotform notification in section 8, subject to actual settings/recipient/privacy review. Timestamps and campaign labels are deferred.
|
||||||
@@ -127,19 +127,19 @@ The plain form's reported update timestamp is `2026-05-07 22:27:30`, timezone un
|
|||||||
|
|
||||||
The operational consultation form includes adult contact/service/payment, child name/age, appointment date/time, address, area, source and comments. None is adopted merely because present. The richer Lead Generator's broad children/teens and service/waitlist claims require current organizational review.
|
The operational consultation form includes adult contact/service/payment, child name/age, appointment date/time, address, area, source and comments. None is adopted merely because present. The richer Lead Generator's broad children/teens and service/waitlist claims require current organizational review.
|
||||||
|
|
||||||
**No production embed ID is assigned for A, B or C.** All four existing IDs above are evidence references only. The former source B ID must be rejected as a clone, working-copy or live mapping. Account slot availability is not creation permission; three new forms would provisionally mean 30/100, subject to actual account-limit verification.
|
**Form A alone has an approved ID for its existing fixed contexts.** Form C has no ID; physical Form B is retired and has none. All legacy IDs above remain evidence references only. The former source B ID must be rejected as a clone, working-copy or live mapping. Account capacity does not establish creation or configuration permission.
|
||||||
|
|
||||||
### Revised blank-form decision and legacy review
|
### Revised blank-form decision and legacy review
|
||||||
|
|
||||||
The owner has selected **three purpose-built forms created from blank Jotform forms**. This avoids inheriting legacy fields, stale service/location/insurance language, conditional logic, recipients, attachments, redirects or other operational settings. The physical target is three forms, with one EN/ES multilingual configuration per form where Builder and runtime verification support it; separate language forms remain a fallback requiring approval.
|
The owner now selects **two physical Jotform forms**. Existing Form A is extended only after acceptance of its planned `consultation` context; Form C is the sole new blank form. This avoids a separate legacy-derived service form and preserves all existing operational workflows. One EN/ES multilingual configuration per form remains preferred where Builder and runtime verification support it; separate language forms remain a fallback requiring approval.
|
||||||
|
|
||||||
Each new form is to remain disabled during configuration, use minimum-necessary fields with PHI protection enabled by default, begin with built-in confirmation, and have no unapproved integrations, webhooks, answer-forwarding, PDFs or dynamic notification fields. A short English/Spanish family acknowledgment may be considered later, but it requires language, privacy and account-owner approval and must not echo submitted information.
|
The new Form C and any unapproved Form A consultation configuration are to use minimum-necessary fields with PHI protection, built-in confirmation, and no unapproved integrations, webhooks, answer-forwarding, PDFs or dynamic notification fields. A short English/Spanish family acknowledgment may be considered later, but it requires language, privacy and account-owner approval and must not echo submitted information.
|
||||||
|
|
||||||
The owner also reports remediation of the existing `AIA Lead Generator | plain` form: all fields marked PHI-protected, automatic email-template updates disabled, autoresponder content revised to exclude submitted PHI, Spanish autoresponder behavior checked, email delivery tested by the owner and the generated submission PDF attachment removed. These are owner-reported actions, not an independent audit or HIPAA certification. Historical notification recipients, access, retention, delivery, other legacy forms and actual account settings remain separate privacy/operational review items. No submissions or historical emails were accessed.
|
The owner also reports remediation of the existing `AIA Lead Generator | plain` form: all fields marked PHI-protected, automatic email-template updates disabled, autoresponder content revised to exclude submitted PHI, Spanish autoresponder behavior checked, email delivery tested by the owner and the generated submission PDF attachment removed. These are owner-reported actions, not an independent audit or HIPAA certification. Historical notification recipients, access, retention, delivery, other legacy forms and actual account settings remain separate privacy/operational review items. No submissions or historical emails were accessed.
|
||||||
|
|
||||||
## 4. Proposed semantic field contracts
|
## 4. Semantic field contracts
|
||||||
|
|
||||||
Names below are domain semantics only, **not Jotform question IDs, uniqueName values, URL-prefill keys or actual schemas**. Operations, clinical and privacy approval remain pending.
|
Names below are domain semantics only, **not Jotform question IDs, uniqueName values, URL-prefill keys or actual schemas**. The v1.7 two-form contract supersedes former physical Form B planning; the historical B rows below remain only as dated decision evidence. Current future specifications are in [the two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md). Operations, clinical and privacy approval remain pending.
|
||||||
|
|
||||||
| Form | Semantic field | Proposed requirement |
|
| Form | Semantic field | Proposed requirement |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -150,15 +150,17 @@ Names below are domain semantics only, **not Jotform question IDs, uniqueName va
|
|||||||
| A | preferred_contact | Optional; define valid choices and phone/email consistency |
|
| A | preferred_contact | Optional; define valid choices and phone/email consistency |
|
||||||
| A | message | Omit by default; add only with explicit approval |
|
| A | message | Omit by default; add only with explicit approval |
|
||||||
| A | source_code | Deferred; absent initially |
|
| A | source_code | Deferred; absent initially |
|
||||||
| B | adult_name | Required |
|
| A / consultation | service_interest | Required controlled choice after Builder/clinical/privacy approval; no ID or option value inferred |
|
||||||
| B | adult_email | Required |
|
| A / consultation | evaluation_explanation | Conditional referral-assistance explanation only; no claim of in-clinic diagnostic availability |
|
||||||
| B | adult_phone | Operations decision pending; no implied default requirement |
|
| B (retired) | adult_name | Historical proposal only; not a physical-form requirement |
|
||||||
| B | service_interest | Required, approved controlled selection |
|
| B (retired) | adult_email | Historical proposal only |
|
||||||
| B | payment_category | Optional, approved categories only |
|
| B (retired) | adult_phone | Historical proposal only |
|
||||||
| B | service_area | Optional city/area; not full address |
|
| B (retired) | service_interest | Historical proposal only |
|
||||||
| B | preferred_contact | Optional; define consistency with available contact fields |
|
| B (retired) | payment_category | Historical proposal only |
|
||||||
| B | message | Prefer omitted; owner review |
|
| B (retired) | service_area | Historical proposal only |
|
||||||
| B | source_code | Deferred; absent initially |
|
| B (retired) | preferred_contact | Historical proposal only |
|
||||||
|
| B (retired) | message | Historical proposal only |
|
||||||
|
| B (retired) | source_code | Historical proposal only |
|
||||||
| C | professional_name | Required |
|
| C | professional_name | Required |
|
||||||
| C | organization | Required |
|
| C | organization | Required |
|
||||||
| C | work_email | Required |
|
| C | work_email | Required |
|
||||||
@@ -169,9 +171,9 @@ Names below are domain semantics only, **not Jotform question IDs, uniqueName va
|
|||||||
|
|
||||||
**A:** General website/contact enquiries; Tour only if approved. Fundraising and other organizational types require explicit additions. Existing event workflow is not included. No child name/DOB, diagnosis, records, address, calendar or unnecessary free text.
|
**A:** General website/contact enquiries; Tour only if approved. Fundraising and other organizational types require explicit additions. Existing event workflow is not included. No child name/DOB, diagnosis, records, address, calendar or unnecessary free text.
|
||||||
|
|
||||||
**B:** Consultation for ABA, Learner Social Club, approved evaluation availability, and approved commercial/AHCCCS/private-pay branches. Proposed service semantics: `aba`, `learner_social_club`; `autism_evaluation` only after availability review; `other` only if approved. General ABA baseline: **18 months through eight years**. Learner Social Club: separate **private-pay program ages 8–17** per owner direction. Academy-specific ages/ratios are not generalized to either form. No automatic carryover of Tricare, CareCredit, Glendale, waitlist, enrollment or guaranteed-admission claims. Payment/service-area options need current operational approval.
|
**B (retired as a physical form):** The following was the former consultation proposal and is retained only as history. Form A `consultation` now carries the approved service choices described in the two-form specification. Proposed service semantics: `aba`, `learner_social_club`; `autism_evaluation` only after availability review; `other` only if approved. General ABA baseline: **18 months through eight years**. Learner Social Club: separate **private-pay program ages 8–17** per owner direction. Academy-specific ages/ratios are not generalized to either form. No automatic carryover of Tricare, CareCredit, Glendale, waitlist, enrollment or guaranteed-admission claims. Payment/service-area options need current operational approval.
|
||||||
|
|
||||||
B excludes child name, exact DOB, diagnosis, clinical history, records/uploads and appointment calendar unless separately approved within an appropriate protected workflow. Staff arrange follow-up; no promise of a booked appointment. Existing booking-oriented site headings are an editorial approval item, not permission to silently rewrite metadata or body content.
|
The planned Form A consultation context excludes child name, exact DOB, diagnosis, clinical history, records/uploads and appointment calendar unless separately approved within an appropriate protected workflow. Staff arrange follow-up; no promise of a booked appointment. Existing booking-oriented site headings are an editorial approval item, not permission to silently rewrite metadata or body content.
|
||||||
|
|
||||||
**C:** New dedicated form only after creation authorization. Initial professional contact, not patient-record transfer. No patient name/DOB, diagnosis narrative, medical document or protected case detail. Detailed referral belongs in a separately approved protected workflow. Existing clinical/CentralReach paths remain unchanged.
|
**C:** New dedicated form only after creation authorization. Initial professional contact, not patient-record transfer. No patient name/DOB, diagnosis narrative, medical document or protected case detail. Detailed referral belongs in a separately approved protected workflow. Existing clinical/CentralReach paths remain unchanged.
|
||||||
|
|
||||||
@@ -185,19 +187,19 @@ Cross-checked against F-001–F-009 in the local CSV, current source and eligibl
|
|||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| F-001 | `/contact` | EN | `src/components/ContactForm.astro:17`, via `components/pages/ContactPage.astro:19` | A |
|
| F-001 | `/contact` | EN | `src/components/ContactForm.astro:17`, via `components/pages/ContactPage.astro:19` | A |
|
||||||
| F-002 | `/es/contact` | ES | Same, explicit locale | A ES |
|
| F-002 | `/es/contact` | ES | Same, explicit locale | A ES |
|
||||||
| F-003 | `/client-consultation` | EN | `src/components/FormShell.astro:12`, `layouts/PageLayout.astro:15,82` | B |
|
| F-003 | `/client-consultation` | EN | `src/components/FormShell.astro:12`, `layouts/PageLayout.astro:15,82` | Form A / planned `consultation` |
|
||||||
| F-004 | `/es/client-consultation` | ES | Same, explicit locale | B ES |
|
| F-004 | `/es/client-consultation` | ES | Same, explicit locale | Form A / planned `consultation` |
|
||||||
| F-005 | `/schedule-consultation` | EN | Same FormShell | B |
|
| F-005 | `/schedule-consultation` | EN | Same FormShell | Form A / planned `consultation` |
|
||||||
| F-006 | `/referrals` | EN | Same FormShell; CTA `#form-title` | C |
|
| F-006 | `/referrals` | EN | Same FormShell; CTA `#form-title` | C |
|
||||||
| F-007 | `/aba-therapy` | EN | `src/components/ServiceInquiryDrawer.astro:71`, `layouts/PageLayout.astro:81` | B / approved ABA context |
|
| F-007 | `/aba-therapy` | EN | `src/components/ServiceInquiryDrawer.astro:71`, `layouts/PageLayout.astro:81` | Form A / planned `consultation`; drawer redesign pending |
|
||||||
| F-008 | `/autism-evaluations` | EN | Same drawer | B only after availability/copy approval |
|
| F-008 | `/autism-evaluations` | EN | Same drawer | Form A / planned `consultation` only after referral-assistance/copy approval |
|
||||||
| F-009 | `/learner-social-club` | EN | Same drawer | B / approved Social Club context |
|
| F-009 | `/learner-social-club` | EN | Same drawer | Form A / planned `consultation`; program approval pending |
|
||||||
|
|
||||||
Three implementations, nine instances: seven EN, two ES, zero AR. Eleven GET search instances are not lead forms and must not be disabled or routed to Jotform. No new Arabic form or translated publication is authorized. Spanish service pages currently use Spanish consultation CTAs, not drawers. Arabic visitors retain established English fallbacks and clear language notices. All three logical forms prefer EN/ES capability, but no Spanish referral page or new route is implied.
|
Three implementations, nine instances: seven EN, two ES, zero AR. Eleven GET search instances are not lead forms and must not be disabled or routed to Jotform. No new Arabic form or translated publication is authorized. Spanish service pages currently use Spanish consultation CTAs, not drawers. Arabic visitors retain established English fallbacks and clear language notices. The two physical forms prefer EN/ES capability, but no Spanish referral page or new route is implied.
|
||||||
|
|
||||||
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are owner-approved **Form A** isolated-test placements, each using fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping only for these five journeys. Form B remains for other service-consultation journeys requiring its additional approved fields. The five panels do not add five native form implementations, and Form A remains unavailable in normal, indexing-enabled and production-shaped artifacts.
|
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are owner-approved **Form A** isolated-test placements, each using fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping. Physical Form B is retired; other service-consultation journeys are future Form A `consultation` targets and are not yet iframe placements. The five panels do not add five native form implementations, and Form A remains unavailable in normal, indexing-enabled and production-shaped artifacts.
|
||||||
|
|
||||||
Tour's actual CTA currently goes to `/client-consultation` (B destination). A is the provisional proposed Tour mapping, **not a completed route change**. Fundraising awaits owner confirmation. Historical event requests remain separate; do not reinterpret the historical Eventbrite link as the account's Event Submission Form without evidence. `/client-forms` retains existing clinical, agreement, Sign and CentralReach links. The six repository-linked Jotform destinations are not automatically matched to the four named account assets.
|
Tour's actual CTA currently goes to `/client-consultation`, a future Form A `consultation` destination. Its service list has no tour choice, so the Tour disposition remains an intake/operations decision, **not a completed route change**. Fundraising awaits owner confirmation. Historical event requests remain separate; do not reinterpret the historical Eventbrite link as the account's Event Submission Form without evidence. `/client-forms` retains existing clinical, agreement, Sign and CentralReach links. The six repository-linked Jotform destinations are not automatically matched to the four named account assets.
|
||||||
|
|
||||||
`/lp/early-intervention` and the provisional local `/client-consultation` substitution remain P9-01 decisions. Campaign landing pages outside this repository are out of scope. Phone/email legacy-target issues in the inventory remain unresolved; no target is silently replaced.
|
`/lp/early-intervention` and the provisional local `/client-consultation` substitution remain P9-01 decisions. Campaign landing pages outside this repository are out of scope. Phone/email legacy-target issues in the inventory remain unresolved; no target is silently replaced.
|
||||||
|
|
||||||
@@ -228,7 +230,7 @@ Suggested semantic setting: `PUBLIC_AIA_FORMS_MODE`, exact values `off`, `mock`,
|
|||||||
| off | No active lead form/empty POST action, live iframe, Jotform preconnect/helper/network request, or analytics. Render approved localized contact fallback; no native-submit bypass on inactive lead UI |
|
| off | No active lead form/empty POST action, live iframe, Jotform preconnect/helper/network request, or analytics. Render approved localized contact fallback; no native-submit bypass on inactive lead UI |
|
||||||
| mock | Synthetic local-only fixture, no external endpoint or real data; safe guarded Playwright use; no Jotform ID required |
|
| mock | Synthetic local-only fixture, no external endpoint or real data; safe guarded Playwright use; no Jotform ID required |
|
||||||
| isolated-test | Form A only: requires `PUBLIC_AIA_FORMS_MODE=isolated-test`, `PUBLIC_AIA_FORMS_ENVIRONMENT=isolated-test`, `PUBLIC_AIA_FORMS_ISOLATED_TEST_APPROVED=true`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=false`, `PUBLIC_ALLOW_INDEXING=false`, and a fixed seven-route allowlist. It is not a production mode. |
|
| isolated-test | Form A only: requires `PUBLIC_AIA_FORMS_MODE=isolated-test`, `PUBLIC_AIA_FORMS_ENVIRONMENT=isolated-test`, `PUBLIC_AIA_FORMS_ISOLATED_TEST_APPROVED=true`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=false`, `PUBLIC_ALLOW_INDEXING=false`, and a fixed seven-route allowlist. It is not a production mode. |
|
||||||
| live | Form A only: `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true` are all required. The fixed seven-route allowlist, fixed origin/URLs, locale and context still apply. Missing/invalid values fail closed. `PUBLIC_ALLOW_INDEXING` is independent: it must be `true` for an indexing-enabled release but cannot enable Form A alone. Forms B/C and all other lead surfaces remain off. |
|
| live | Form A only: `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true` are all required. The fixed seven-route allowlist, fixed origin/URLs, locale and context still apply. Missing/invalid values fail closed. `PUBLIC_ALLOW_INDEXING` is independent: it must be `true` for an indexing-enabled release but cannot enable Form A alone. Form C and all other lead surfaces remain off. |
|
||||||
|
|
||||||
Off/mock output must not contain **new lead embed IDs/URLs or the historical `250727122848156` reference ID** in HTML, scripts, preload hints or client bundles. Existing clinical/Sign links intentionally remain in the site; they already contain production destinations. Preserving them conflicts with a blanket “no production ID anywhere” assertion, so this contract's new-embed restriction is scoped to the new lead integration. Existing user-initiated clinical navigation is not permission for automatic loading or test submissions. Do not claim the whole site has zero vendor destinations.
|
Off/mock output must not contain **new lead embed IDs/URLs or the historical `250727122848156` reference ID** in HTML, scripts, preload hints or client bundles. Existing clinical/Sign links intentionally remain in the site; they already contain production destinations. Preserving them conflicts with a blanket “no production ID anywhere” assertion, so this contract's new-embed restriction is scoped to the new lead integration. Existing user-initiated clinical navigation is not permission for automatic loading or test submissions. Do not claim the whole site has zero vendor destinations.
|
||||||
|
|
||||||
@@ -257,7 +259,7 @@ Jotform's [HIPAA email guidance](https://www.jotform.com/help/504-how-to-use-not
|
|||||||
|
|
||||||
## 9. Blank-form creation safety and success measurement
|
## 9. Blank-form creation safety and success measurement
|
||||||
|
|
||||||
No form creation or original mutation is authorized now. Batch B may create exactly three disabled blank forms only after explicit Jotform mutation authorization naming the forms, account, reviewers, environment and stopping conditions. The new forms must be configured from the approved minimum field contracts, with PHI protection and generic notification defaults reviewed before any synthetic submission. Do not clone, copy, import or repurpose an existing form, and never copy submissions.
|
No form creation or original mutation is authorized now. A future configuration batch may add Form A `consultation` and create one disabled blank Form C only after explicit Jotform mutation authorization naming the scope, account, reviewers, environment and stopping conditions. The new forms must be configured from the approved minimum field contracts, with PHI protection and generic notification defaults reviewed before any synthetic submission. Do not clone, copy, import or repurpose an existing form, and never copy submissions.
|
||||||
|
|
||||||
The historical [cloning guide](https://www.jotform.com/help/27-how-to-clone-an-existing-form-from-your-account/) remains evidence for why the owner rejected inheritance: copied forms can carry email settings, recipients and workflow/thank-you behavior, with account-specific treatment of integrations and protection requiring verification. It is not an implementation path. The old source ID `250727122848156` remains reference-only and must be rejected by any future configuration validator. Account capacity does not establish creation permission.
|
The historical [cloning guide](https://www.jotform.com/help/27-how-to-clone-an-existing-form-from-your-account/) remains evidence for why the owner rejected inheritance: copied forms can carry email settings, recipients and workflow/thank-you behavior, with account-specific treatment of integrations and protection requiring verification. It is not an implementation path. The old source ID `250727122848156` remains reference-only and must be rejected by any future configuration validator. Account capacity does not establish creation permission.
|
||||||
|
|
||||||
@@ -267,7 +269,7 @@ No Google Ads/GA4/GTM, enhanced conversions, remarketing, tracking scripts, cust
|
|||||||
|
|
||||||
## 10. Owner approval ledger
|
## 10. Owner approval ledger
|
||||||
|
|
||||||
All implementation approvals below are **Pending**. Organizational selection of Jotform/three forms is already recorded; it does not resolve these gates.
|
All implementation approvals below are **Pending**. Organizational selection of Jotform/two physical forms is already recorded; it does not resolve these gates.
|
||||||
|
|
||||||
| ID | Owner role | Approval/evidence required |
|
| ID | Owner role | Approval/evidence required |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -305,3 +307,5 @@ Version 1.4, 2026-10-28: records owner-confirmed direct Form A EN/ES synthetic s
|
|||||||
Version 1.5, 2026-10-28: records the owner's successful embedded synthetic submission and native-confirmation report for English contact, Spanish contact and an ABA landing placement. It marks Form A functional submission acceptance complete only for those owner-reported samples, explicitly keeps the third route name to be recorded, and retains seven-route accessibility, runtime/privacy, deployment and site-release gates. It changes the official Jotform embed-handler decision from rejected to conditionally acceptable pending a separately authorized source, origin, privilege and Firefox/error-state review; the handler is not implemented.
|
Version 1.5, 2026-10-28: records the owner's successful embedded synthetic submission and native-confirmation report for English contact, Spanish contact and an ABA landing placement. It marks Form A functional submission acceptance complete only for those owner-reported samples, explicitly keeps the third route name to be recorded, and retains seven-route accessibility, runtime/privacy, deployment and site-release gates. It changes the official Jotform embed-handler decision from rejected to conditionally acceptable pending a separately authorized source, origin, privilege and Firefox/error-state review; the handler is not implemented.
|
||||||
|
|
||||||
Version 1.6, 2026-10-28: adds the locally tested Form A production-build gate. It requires `live`, the existing live approval, `production` environment role and a new independent Form A production approval; it permits an indexing-enabled build but does not derive authorization from indexing. It leaves normal/off/mock/isolated behavior unchanged, maps no Forms B/C or service drawers, and does not deploy or change Jotform.
|
Version 1.6, 2026-10-28: adds the locally tested Form A production-build gate. It requires `live`, the existing live approval, `production` environment role and a new independent Form A production approval; it permits an indexing-enabled build but does not derive authorization from indexing. It leaves normal/off/mock/isolated behavior unchanged, maps no Forms B/C or service drawers, and does not deploy or change Jotform.
|
||||||
|
|
||||||
|
Version 1.7, 2026-10-28: records the owner-approved two-physical-form direction. Form B is retired as a physical Jotform form; Form A gains a planned, unconfigured `consultation` context and Form C remains a separate future referral form. The seven current Form A placements and all gates remain unchanged. No Builder, route, iframe, account or deployment change occurred.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
gate_id,subject,verification_required,owner_role,evidence_source,status,approval_date,authorization_required
|
gate_id,subject,verification_required,owner_role,evidence_source,status,approval_date,authorization_required
|
||||||
JF-01,Question properties,"Types, required flags, defaults, exact options, visibility, internal identifiers, field-level PHI","Account owner + operations/privacy; Builder properties, no answers",Owner-confirmed 2026-10-27 ChatGPT WebUI/Jotform review: Form A (262946078314059) submitted fields are PHI-protected; all other properties remain unverified,Partially verified — Form A field PHI protection only,2026-10-27,Separate batch authorization; no action authorized by this checklist
|
JF-01,Question properties,"Types, required flags, defaults, exact options, visibility, internal identifiers, field-level PHI","Account owner + operations/privacy; Builder properties, no answers",Owner-confirmed 2026-10-27 ChatGPT WebUI/Jotform review: Form A (262946078314059) submitted fields are PHI-protected; all other properties remain unverified,Partially verified — Form A field PHI protection only,2026-10-27,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-02,Conditions,"Show/hide, skip, calculations, update-field logic, conditional recipients and submission routing",Account owner; sanitized Conditions settings,Sanitized Builder configuration and owner approval; authorized runtime evidence where required,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
JF-02,Conditions,"Show/hide, skip, calculations, update-field logic, conditional recipients and submission routing",Account owner; sanitized Conditions settings,Sanitized Builder configuration and owner approval; authorized runtime evidence where required,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-03,Languages,"EN/ES support, complete translation, default/selector, errors, conditional logic, confirmation and embed locale behavior",Account owner + fluent reviewers; Builder plus later authorized runtime tests; never assume `?language=es`,"Owner-confirmed 2026-10-28 direct-Jotform tests: English and Spanish rendering, language handling, and conditional email requirement verified; embedded-iframe language/validation/confirmation remains open",Partially verified — Form A direct language and conditional-email behavior,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
JF-03,Languages,"EN/ES support, complete translation, default/selector, errors, conditional logic, confirmation and embed locale behavior",Account owner + fluent reviewers; Builder plus later authorized runtime tests; never assume `?language=es`,"Owner-confirmed 2026-10-28 direct-Jotform tests: English and Spanish rendering, language handling, and conditional email requirement verified; embedded-iframe language/validation/confirmation remains open",Partially verified — Form A direct language and conditional-email behavior,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-04,Emails,"Notifications/autoresponders, recipient roles, subject/body/dynamic tags, attachments, reply-to, conditional routes, default IDs/links, inherited production recipients or defaults","Account/privacy owner; sanitized settings, no recipient addresses in public reports","Owner-confirmed 2026-10-28 direct-Jotform tests: generic staff notification contained no submitted answers or PDF attachment; staff notification and family autoresponder delivered; fixed hidden Reply-To verified in Thunderbird. Recipient roles, routing/defaults and embedded-runtime acceptance remain open","Partially verified — Form A generic messages, delivery and fixed Reply-To",2026-10-28,Separate batch authorization; no action authorized by this checklist
|
JF-04,Emails,"Notifications/autoresponders, recipient roles, subject/body/dynamic tags, attachments, reply-to, conditional routes, default IDs/links, inherited production recipients or defaults","Account/privacy owner; sanitized settings, no recipient addresses in public reports","Owner-confirmed 2026-10-28 direct-Jotform tests: generic staff notification contained no submitted answers or PDF attachment; staff notification and family autoresponder delivered; fixed hidden Reply-To verified in Thunderbird. Recipient roles, routing/defaults and embedded-runtime acceptance remain open","Partially verified — Form A generic messages, delivery and fixed Reply-To",2026-10-28,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-05,Thank-you behavior,"Native confirmation, redirects, answer echo, all targets, HTTP POST forwarding",Account/privacy owner; Builder; submission-data POST to Astro/Contabo OFF,"Owner-confirmed 2026-10-28 direct-Jotform tests: native thank-you behavior verified. Redirect, answer echo, POST-forwarding settings and Astro-embedded confirmation remain open",Partially verified — Form A direct native thank-you,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
JF-05,Thank-you behavior,"Native confirmation, redirects, answer echo, all targets, HTTP POST forwarding",Account/privacy owner; Builder; submission-data POST to Astro/Contabo OFF,"Owner-confirmed 2026-10-28 direct-Jotform tests: native thank-you behavior verified. Redirect, answer echo, POST-forwarding settings and Astro-embedded confirmation remain open",Partially verified — Form A direct native thank-you,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
||||||
@@ -8,13 +8,15 @@ JF-06,Integrations,"Integrations, webhooks, exports, destinations, Google/analyt
|
|||||||
JF-07,Security and availability,"HIPAA/form/field protection, spam, availability, prefill, save/continue, access, retention, limits and duplicates",Account/privacy/security owner; settings and approved operational policy,"Owner-verified 2026-10-27: privacy approval covers Form A PHI protection, generic no-PHI notification, no PDF attachment, no webhooks/integrations, recipient access and retention/deletion; other security/availability controls remain unverified","Partially verified — Form A approved configuration, access and retention scope",2026-10-27,Separate batch authorization; no action authorized by this checklist
|
JF-07,Security and availability,"HIPAA/form/field protection, spam, availability, prefill, save/continue, access, retention, limits and duplicates",Account/privacy/security owner; settings and approved operational policy,"Owner-verified 2026-10-27: privacy approval covers Form A PHI protection, generic no-PHI notification, no PDF attachment, no webhooks/integrations, recipient access and retention/deletion; other security/availability controls remain unverified","Partially verified — Form A approved configuration, access and retention scope",2026-10-27,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-08,Embedding,"Approved HTTPS origin, hosted/iframe URLs, dimensions/mobile, scripts, referrer, locale and fallback",Account/hosting/accessibility owners; exported code and later authorized runtime evidence,"Repository evidence 2026-10-28: fixed Form A origin/URLs, no-referrer policy, minimal sandbox, localized conditional hosted fallback and seven-route isolated-test gate. Owner reports embedded synthetic submission/confirmation on EN contact, ES contact and one ABA landing placement; exact third route and all-seven-route keyboard/responsive/runtime-network acceptance remain open",Partially verified — owner-reported sampled embedded acceptance plus adapter/fallback,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
JF-08,Embedding,"Approved HTTPS origin, hosted/iframe URLs, dimensions/mobile, scripts, referrer, locale and fallback",Account/hosting/accessibility owners; exported code and later authorized runtime evidence,"Repository evidence 2026-10-28: fixed Form A origin/URLs, no-referrer policy, minimal sandbox, localized conditional hosted fallback and seven-route isolated-test gate. Owner reports embedded synthetic submission/confirmation on EN contact, ES contact and one ABA landing placement; exact third route and all-seven-route keyboard/responsive/runtime-network acceptance remain open",Partially verified — owner-reported sampled embedded acceptance plus adapter/fallback,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
||||||
JF-09,Controlled synthetic acceptance,"Actual EN/ES synthetic submission, notifications, success/failure, redirects and privacy boundary",Later separately authorized isolated form/environment; never real patient data,"Owner-confirmed 2026-10-28 direct-Jotform EN/ES and sampled Astro-iframe synthetic submissions with native thank-you and notification/autoresponder delivery. Functional submission acceptance is complete for the reported samples; exact ABA landing route, all-seven-route runtime/privacy and production-release acceptance remain open",Owner-verified — Form A functional submission samples,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
JF-09,Controlled synthetic acceptance,"Actual EN/ES synthetic submission, notifications, success/failure, redirects and privacy boundary",Later separately authorized isolated form/environment; never real patient data,"Owner-confirmed 2026-10-28 direct-Jotform EN/ES and sampled Astro-iframe synthetic submissions with native thank-you and notification/autoresponder delivery. Functional submission acceptance is complete for the reported samples; exact ABA landing route, all-seven-route runtime/privacy and production-release acceptance remain open",Owner-verified — Form A functional submission samples,2026-10-28,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-01,Intake/operations,"Minimum fields, required flags/contact preference consistency, follow-up/callback expectations, Tour/fundraising scope",Intake/operations,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-01,Intake/operations,"Minimum fields, required flags/contact preference consistency, follow-up/callback expectations, Tour/fundraising scope",Intake/operations,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-02,Clinical leadership,"Eligibility, service/evaluation availability, private-pay Social Club distinction, referral boundary and approved claims",Clinical leadership,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-02,Clinical leadership,"Eligibility, service/evaluation availability, private-pay Social Club distinction, referral boundary and approved claims",Clinical leadership,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-03,Jotform account owner,"JF-01–08, blank-form creation, actual new IDs/configuration and preservation of all existing forms",Jotform account owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-03,Jotform account owner,"JF-01–08 for Form A consultation and Form C, Form C blank-form creation, actual configuration/ID and preservation of all existing forms",Jotform account owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-04,English/Spanish reviewer,"Labels, errors, instructions, confirmations and locale switching; no automatic translation approval",English/Spanish reviewer,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-04,English/Spanish reviewer,"Labels, errors, instructions, confirmations and locale switching; no automatic translation approval",English/Spanish reviewer,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-05,Privacy/legal/security,"Protected fields, generic email/headers/recipients, embeds/referrers, vendor flows, access/retention and tracking boundaries",Privacy/legal/security,"Owner-verified 2026-10-27 privacy approval for Form A PHI protection, generic no-PHI notification, no PDF attachment, no webhooks/integrations, recipient access and retention/deletion; embed/referrer runtime review and tracking boundaries remain open","Partially verified — Form A configuration, access and retention scope",2026-10-27,Separate batch authorization; no action authorized by this checklist
|
OA-05,Privacy/legal/security,"Protected fields, generic email/headers/recipients, embeds/referrers, vendor flows, access/retention and tracking boundaries",Privacy/legal/security,"Owner-verified 2026-10-27 privacy approval for Form A PHI protection, generic no-PHI notification, no PDF attachment, no webhooks/integrations, recipient access and retention/deletion; embed/referrer runtime review and tracking boundaries remain open","Partially verified — Form A configuration, access and retention scope",2026-10-27,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-06,Marketing,Deferred attribution categories and redesigned successful-submission semantics,Marketing,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-06,Marketing,Deferred attribution categories and redesigned successful-submission semantics,Marketing,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-07,Hosting owner,"Static/API separation, compile/deploy gates, CSP/referrer/log policy, preview isolation and fallback topology",Hosting owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-07,Hosting owner,"Static/API separation, compile/deploy gates, CSP/referrer/log policy, preview isolation and fallback topology",Hosting owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
OA-08,Release owner,"Phase 10 integration activation, go/no-go, artifact/vendor rollback and deployment",Release owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
OA-08,Release owner,"Phase 10 integration activation, go/no-go, artifact/vendor rollback and deployment",Release owner,Dated owner approval with scope and sanitized supporting evidence,Pending/Unverified,,Separate batch authorization; no action authorized by this checklist
|
||||||
FA-PRD-01,Form A production build gate,"Confirm live mode, existing live approval, production environment role and independent Form A production approval are all set only in the intended release environment; verify no Form B/C or unrelated surface activates",Release + hosting owner,"Repository configuration resolver and production-artifact test; no deployed environment configured",Implemented locally — deployment verification pending,2026-10-28,Phase 10 deployment authorization and sanitized environment review
|
FA-PRD-01,Form A production build gate,"Confirm live mode, existing live approval, production environment role and independent Form A production approval are all set only in the intended release environment; verify no Form C or unrelated surface activates",Release + hosting owner,"Repository configuration resolver and production-artifact test; no deployed environment configured",Implemented locally — deployment verification pending,2026-10-28,Phase 10 deployment authorization and sanitized environment review
|
||||||
|
FA-CONS-01,Form A consultation context,"Verify fixed `consultation` presentation value, required service-interest question, five approved choices, evaluation explanation, conditional email/phone behavior, EN/ES translations and no additional collection",Account + operations + clinical + privacy owners,"Sanitized Builder configuration and approved synthetic test evidence; no ID/condition inferred by repository",Pending/Unverified,,Separate mutation and synthetic-test authorization required
|
||||||
|
FC-01,Form C referral initiation,"Create only after authorization, then verify minimum professional fields, no patient data instruction, PHI controls, notification/retention and protected-workflow handoff",Account + operations + privacy owners,"Sanitized Form C Builder configuration and approved synthetic test evidence",Pending/Unverified,,Separate creation and synthetic-test authorization required
|
||||||
INV-01,Supplied roster provenance and remaining verification,Complete 27-ID roster received and uniqueness checked; verify uncertain generic titles and relevant operational classification with account owner without inferring usage or retrieving submissions,Jotform account owner,Owner-supplied read-only connector roster; contract v1.2 section 3 lists all 27 unique IDs; individual roster no longer outstanding; new-form configuration and usage verification pending,Pending/Unverified,,Read-only metadata review authorization; no account mutation
|
INV-01,Supplied roster provenance and remaining verification,Complete 27-ID roster received and uniqueness checked; verify uncertain generic titles and relevant operational classification with account owner without inferring usage or retrieving submissions,Jotform account owner,Owner-supplied read-only connector roster; contract v1.2 section 3 lists all 27 unique IDs; individual roster no longer outstanding; new-form configuration and usage verification pending,Pending/Unverified,,Read-only metadata review authorization; no account mutation
|
||||||
|
@@ -0,0 +1,97 @@
|
|||||||
|
# Phase 9 — Two-form integration specification
|
||||||
|
|
||||||
|
**Recorded:** 2026-10-28 UTC
|
||||||
|
|
||||||
|
**Scope:** future Form A consultation configuration and future Form C referral initiation
|
||||||
|
**Status:** owner direction documented; no Jotform or Astro route activation authorized
|
||||||
|
|
||||||
|
## 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 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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## 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` | Planned; not configured or emitted | Family service consultations | Builder configuration, synthetic acceptance and a separately approved Astro allowlist |
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Planned consultation fields
|
||||||
|
|
||||||
|
The consultation context reuses the current Form A adult contact and preferred contact-method behavior, including its existing conditional email/phone validation. It adds one required controlled question:
|
||||||
|
|
||||||
|
> **Which service would you like to discuss?**
|
||||||
|
|
||||||
|
| Approved display option | Logical intent only |
|
||||||
|
|---|---|
|
||||||
|
| ABA Therapy | `aba_therapy` |
|
||||||
|
| AIA Preparatory Academy | `aia_preparatory_academy` |
|
||||||
|
| Learner Social Club | `learner_social_club` |
|
||||||
|
| Autism Diagnostic Evaluation | `autism_diagnostic_evaluation` |
|
||||||
|
| I'm Not Sure Yet | `not_sure_yet` |
|
||||||
|
|
||||||
|
The values in the right column are planning labels, not Jotform option values or IDs. Operations and the Jotform owner must approve the exact Builder labels, translations, requiredness and conditions.
|
||||||
|
|
||||||
|
When **Autism Diagnostic Evaluation** is selected, show this owner-approved explanation:
|
||||||
|
|
||||||
|
> AIA can help families connect with qualified providers who offer autism diagnostic evaluations. Diagnostic evaluations are not currently available at our clinic.
|
||||||
|
|
||||||
|
This is referral-assistance language. It does not state or imply that AIA currently provides an in-clinic diagnostic evaluation, offers a diagnosis, or has completed a diagnostic-professional hire.
|
||||||
|
|
||||||
|
Do not add child name, date of birth, age, diagnosis, medical history, records, insurance member ID, payment, location or booking questions to the initial consultation context. Do not make any additional consultation field required without a separately documented operations, clinical and privacy decision. Whether an existing optional free-text message remains visible requires the existing Form A privacy treatment; it is not an additional required consultation field under this specification.
|
||||||
|
|
||||||
|
## Form C — Professional Referral Initiation
|
||||||
|
|
||||||
|
Form C remains a separate future physical Jotform created from a blank form. Its initial, minimum-necessary specification is:
|
||||||
|
|
||||||
|
| Semantic field | Requirement |
|
||||||
|
|---|---|
|
||||||
|
| Professional name | Required |
|
||||||
|
| Organization | Required |
|
||||||
|
| Work email | Required |
|
||||||
|
| Work phone | Optional, pending operations confirmation |
|
||||||
|
| Service of interest | Required controlled selection |
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Future route and component matrix
|
||||||
|
|
||||||
|
The following is a future integration plan. Every listed consultation surface continues to use its current inactive/off/mock behavior until Form A's consultation configuration is approved, synthetically tested and added through a separately authorized code change.
|
||||||
|
|
||||||
|
| Route or entry point | Locale | Current component / behavior | Future physical form and context | Dependencies |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| `/client-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; inactive logical `service` form | Form A / `consultation` | Builder fields, EN copy, new allowlist and synthetic acceptance |
|
||||||
|
| `/es/client-consultation` | ES | Same component; inactive logical `service` form | Form A / `consultation` | Spanish Form A labels, errors, evaluation explanation and locale test |
|
||||||
|
| `/schedule-consultation` | EN | `FormShell.astro` through `PageLayout.astro`; inactive logical `service` form | Form A / `consultation` | Builder configuration, no-booking copy review and acceptance |
|
||||||
|
| `/aba-therapy` drawer | EN | `ServiceInquiryDrawer.astro`; inactive legacy child-data drawer | Form A / `consultation` | Separate drawer/copy redesign, clinical approval and dialog accessibility test |
|
||||||
|
| `/autism-evaluations` drawer | EN | Same drawer; inactive legacy evaluation variant | Form A / `consultation` | Required referral-assistance wording and clinical approval |
|
||||||
|
| `/learner-social-club` drawer | EN | Same drawer; inactive legacy Social Club variant | Form A / `consultation` | Program-eligibility/copy approval and dialog accessibility test |
|
||||||
|
| `/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.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
1. Confirm that extending the active Form A with a `consultation` context will not change the approved `contact` or `landing` journeys; record the rollback method for the Builder configuration.
|
||||||
|
2. Configure the exact hidden context value, service question, option labels, requiredness, conditional evaluation explanation, 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, the evaluation explanation and the 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 new fixed Astro allowlist and production-gate update. The current seven Form A routes remain the only permitted real iframes until that implementation is independently reviewed.
|
||||||
|
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.
|
||||||
Reference in new issue
Block a user