docs(migration): add living handoff after Phase 6B.2
This commit is contained in:
1 parent
6f5ac3c0d2
commit
0957c06a18
3 files changed
+188
-2
No files matched your search
@@ -0,0 +1,162 @@
|
||||
# AIA Astro Migration — Living Session Handoff
|
||||
|
||||
**Last updated:** October 9, 2026 (America/Phoenix)
|
||||
**Repository:** `AIAMarketing/azinstitute4autism.com`
|
||||
**Working branch:** `faithful-astro-migration`
|
||||
**Last completed *implementation* checkpoint:** `6f5ac3c0d233cee5fbbb62be79bc6909e6bec183` (Phase 6B.2)
|
||||
**Next planned milestone:** Phase 6B.3 — Author Archives and Linked Bylines
|
||||
|
||||
> This is a short, continually updated orientation document, not a replacement for
|
||||
> the code, accepted project instructions, or detailed migration evidence.
|
||||
> GitHub branch HEAD may be newer than the implementation checkpoint above
|
||||
> because documentation-only commits can follow it. Always verify the branch.
|
||||
|
||||
## Start a new session
|
||||
|
||||
1. Verify the current GitHub HEAD of `faithful-astro-migration`; inspect recent
|
||||
commits rather than assuming the checkpoint recorded here is HEAD.
|
||||
2. Read repository-root `AGENTS.md` (authoritative), `MIGRATION_BRIEF.md`,
|
||||
this handoff, and the relevant recent sections of
|
||||
`www/reports/migration-summary.md`.
|
||||
3. For Library architecture, read
|
||||
`www/reports/phase-6a-library-architecture.md` **together with the
|
||||
subsequently accepted Phase 6A ratification in the migration summary**.
|
||||
The ratification supersedes conflicting proposals in the original document.
|
||||
4. Inspect the relevant code before drafting the next complete Codex kickoff
|
||||
prompt. Do not presume an implementation is finished because it was planned.
|
||||
5. Continue only the next explicitly approved milestone.
|
||||
|
||||
## Verified implementation state
|
||||
|
||||
- Phase 5C Team reconciliation: `34d5394b3ce765028a27b9cddd9952de3f09bfe7`.
|
||||
- Phase 6A Library architecture proposal: `76a035424dc5245443476b168d8c91ea62eed27b`.
|
||||
- Phase 6B.1 multilingual metadata search: `b20c253383440598c2d07bf6f852906ac00c42df`.
|
||||
- **Phase 6B.2 static Library pagination and redirect definitions:
|
||||
`6f5ac3c0d233cee5fbbb62be79bc6909e6bec183`.**
|
||||
This commit has parent `b20c253383440598c2d07bf6f852906ac00c42df`,
|
||||
message `feat(library): add static pagination and page-one redirects`, and
|
||||
exactly 18 changed files. GitHub verification confirmed all three.
|
||||
|
||||
Other earlier milestones and acceptance details are recorded in
|
||||
`www/reports/migration-summary.md`. Keep phase checkpoints separate.
|
||||
|
||||
### Phase 6B.2 completed behavior
|
||||
|
||||
- **65 eligible Library posts:** 46 English, 12 Spanish, seven Arabic.
|
||||
English pagination contains 10/10/10/10/6 cards on five pages; Spanish
|
||||
contains 10/2 on two pages; Arabic has seven on its single Library root.
|
||||
- Generated numbered Library routes: `/library/page/2` through
|
||||
`/library/page/5` and `/es/library/page/2`.
|
||||
- Existing metadata-only, locale-scoped Library search and Library-only
|
||||
`/search` compatibility survive pagination. Searches use the full locale
|
||||
index, even from numbered pages; clear/reset restores that archive page.
|
||||
- Library first-page 301 definitions were added for `/library/page/1`,
|
||||
`/es/library/page/1`, and `/ar/library/page/1`. Isolated nginx redirect
|
||||
tests passed. **These rules have not been activated in the deployed staging
|
||||
or production nginx configuration.**
|
||||
- Phase 6B.2 reported 25 Library + 34 SEO + 33 publication + 20 Markdown
|
||||
passing tests, 36 headless Chromium checks, and clean route/link/image/blog
|
||||
audits. No particular screen reader was claimed to have been tested.
|
||||
- Normal staging build: **102 HTML routes**, all `noindex,nofollow`, empty
|
||||
sitemap, no hreflang. Indexing-enabled test build: **97 sitemap URLs**,
|
||||
**174 hreflang links over 53 routes**. Restore normal staging build after
|
||||
an indexing-enabled test.
|
||||
- Phase 6B.1 separately received manual browser acceptance through the user's
|
||||
built-static-site nginx staging domain `https://aia.web3app.dev`.
|
||||
Do not conflate that evidence with the Phase 6B.2 headless Chromium checks.
|
||||
|
||||
## Ratified Library rules to retain
|
||||
|
||||
- Use the existing publication-eligible catalog and explicit translation
|
||||
relationships. Ten posts/page; publication date descending, normalized
|
||||
route ascending to break ties. Generate only nonempty numbered pages.
|
||||
- Library page 1 is the unnumbered root. Numbered Library pages are
|
||||
self-canonical, indexable in an authorized indexing-enabled build,
|
||||
sitemap-eligible, and **not** numbered-page hreflang equivalents.
|
||||
- Retain two accessible English syndicated records in listings and search;
|
||||
preserve their external canonicals, `noindex`, sitemap and hreflang exclusions.
|
||||
- Embedded search is metadata-only and client-side with language-specific
|
||||
static JSON. Legacy `/search` accepts previous parameters but initially
|
||||
searches Library articles, **not** the entire website. No external search
|
||||
provider or query tracking.
|
||||
- Author archives, once generated, are **initially `noindex,follow` and
|
||||
outside the sitemap**. Only reviewed, indexable author roots may later receive
|
||||
reciprocal hreflang via explicit translation keys; never infer numbered
|
||||
archive equivalents.
|
||||
- Do not manufacture missing content or redirect distinct later pagination
|
||||
pages to earlier pages.
|
||||
|
||||
## Next: Phase 6B.3 — Author Archives and Linked Bylines
|
||||
|
||||
Prepare a **new, self-contained Codex CLI kickoff prompt**, grounded in the
|
||||
latest source and the ratified 6A/6B decisions, for this milestone only.
|
||||
|
||||
Expected scope, subject to targeted inspection:
|
||||
|
||||
- Generate language-specific author archive roots and nonempty numbered pages
|
||||
from exact locale/author references and the shared eligible-post catalog,
|
||||
reusing the ten-item pagination helper rather than manual article lists.
|
||||
- Preserve current known author URLs including
|
||||
`/library/author/rula-diab`, `/es/library/author/rula-diab`, and
|
||||
`/ar/library/author/rula-diab`. Current corpus would support five English
|
||||
author pages, two Spanish, and one Arabic. Do not invent English page 6.
|
||||
- Link article cards and post bylines to the correct locale author archive.
|
||||
Share exact locale/slug author resolution with BlogPosting Person semantics;
|
||||
fail on missing/ambiguous author records. Keep author and Team membership
|
||||
separate, and do not infer employment changes.
|
||||
- Reconcile published author headings and biographies only against traceable,
|
||||
sufficiently current public source material; distinguish potentially stale
|
||||
HubSpot prerenders. Add optional localized `displayName` only if warranted.
|
||||
Substantive Spanish/Arabic biography or navigation text requires human review.
|
||||
- Keep author archives `noindex,follow` and outside the sitemap/hreflang graph
|
||||
at this milestone. Keep existing Library-root hreflang unchanged.
|
||||
- Plan first-page author alias redirects using the existing redirect registry,
|
||||
respecting the Phase 6B.3/6B.4 boundary and separate host-activation gate.
|
||||
- Preserve current search, pagination, publication, staging SEO protections,
|
||||
and static hosting. Include browser/keyboard/RTL/no-JavaScript tests.
|
||||
- Do not implement Phase 6C missing articles or deploy hosting rules.
|
||||
|
||||
## Outstanding blockers and subsequent milestones
|
||||
|
||||
1. **Phase 6C:** Nine missing English Library articles must be reconciled from
|
||||
source before `/library/page/6` and
|
||||
`/library/author/rula-diab/page/6` can be accepted for cutover.
|
||||
Do not generate empty substitutes or misleading redirects.
|
||||
2. **Phase 6B.4:** Complete URL, canonical, sitemap, and redirect reconciliation;
|
||||
host activation requires separate approval.
|
||||
3. **Phase 6B.5:** Multilingual, RTL, accessibility, and performance acceptance.
|
||||
Spanish/Arabic search and pagination microcopy awaits human language review.
|
||||
4. **Later phases:** Other content and language reconciliation (including
|
||||
missing Spanish privacy content), visual/accessibility review, operational
|
||||
integration decisions, and cutover.
|
||||
5. Site remains primarily live on HubSpot; production-origin freshness is not
|
||||
proved by cached prerender responses. Stage locally or at
|
||||
`aia.web3app.dev` without activating production forms, analytics,
|
||||
advertising tags, or new PHI flows.
|
||||
6. AIA general ABA ages are **18 months through 8 years**; narrower programs
|
||||
have their own eligibility and should not be conflated.
|
||||
|
||||
## Working protocol and handoff maintenance
|
||||
|
||||
1. Provide a complete, bounded Codex kickoff prompt; Codex implements locally
|
||||
and reports validation plus a structural diff **without staging/committing**.
|
||||
2. Review the results and, where needed, perform manual browser acceptance
|
||||
against built static files via the user's Docker/nginx reverse-proxy staging
|
||||
setup. The user runs the serving command from the built output directory;
|
||||
`npm run preview` is not required to duplicate that environment.
|
||||
3. After explicit approval, provide a narrow checkpoint commit prompt.
|
||||
Codex commits only reviewed files; **do not automatically push**. The user
|
||||
pushes, and the next session verifies GitHub HEAD.
|
||||
4. No production hosting/redirect activation, forms, analytics, search logging,
|
||||
dependency upgrades, fabricated translations, or unrelated modifications
|
||||
without separate authorization.
|
||||
5. Preserve the user's untracked root `merge-plan.md` (not stored on GitHub);
|
||||
user/Codex-reported SHA-256:
|
||||
`015db80cdbaf7d68799265d2070db760155c342b432ce6795f17ebc2218c641c`.
|
||||
A remote GitHub write cannot verify this local untracked file.
|
||||
6. **Update this handoff at every accepted milestone transition:** refresh
|
||||
last completed implementation checkpoint, next task, acceptance numbers,
|
||||
blockers, and status of deployed-vs-repository redirects. Keep it short;
|
||||
detailed validation belongs in `migration-summary.md`. Preserve the original
|
||||
architecture proposal and dated historical records rather than rewriting
|
||||
decisions retroactively.
|
||||
Reference in new issue
Block a user