Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| af8c48ce70 | |||
| 756ab616a2 | |||
| 5cb903b989 |
@@ -6,9 +6,9 @@
|
||||
"sourceBranch": "test/pre-phase10-ux-acceptance",
|
||||
"localCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"localCommitMeaning": "FROZEN_TESTED_APPLICATION_BASELINE",
|
||||
"snapshotHead": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"verifiedRemoteCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"remoteObservation": "Candidate snapshot exact remote readback at2026-10-29T23:37:45.931733+00:00; final documentation envelope HEAD must independently be rechecked.",
|
||||
"snapshotHead": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"verifiedRemoteCommit": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"remoteObservation": "Proposed execution candidate exact remote readback 2026-10-30T07:47:11.270216+00:00; frozen application source remainsba04d817fed26d659bfa2a56b089d6cac851dc34. Resolve final clean envelope HEAD independently.",
|
||||
"worktreeCleanliness": {
|
||||
"atSourceBaseline": "CLEAN",
|
||||
"atPackageGeneration": "HANDOFF_FILES_ONLY",
|
||||
@@ -128,7 +128,7 @@
|
||||
"evidence": [
|
||||
"ENTRY_PROPOSAL.json"
|
||||
],
|
||||
"limits": "Candidateba04d817fed26d659bfa2a56b089d6cac851dc34 exact remote readback at2026-10-29T23:37:45.931733+00:00; final package envelope HEAD still requires clean/current remote verification."
|
||||
"limits": "Execution candidatefc5b9d377199ce51f480a920a3772108094929e3 verified by exact remote readback; actual final envelope HEAD still requires independent current verification."
|
||||
},
|
||||
{
|
||||
"criterion": "Phase 10 Development Readiness",
|
||||
@@ -205,6 +205,6 @@
|
||||
"authority": "EXTERNAL_PROTECTED_CONTROLLER_APPROVAL"
|
||||
}
|
||||
],
|
||||
"generatedUtc": "2026-10-29T23:37:45.931733+00:00",
|
||||
"generatedUtc": "2026-10-30T07:47:11.270216+00:00",
|
||||
"recommendation": "Pre-Phase10 preparation conditionally closed. Retain release/activation debt. Stop at protected orchestrator gate until actual composite adapter, signed exact final baseline/P10-00-only scope policy and owner-controlled runtime/entry activation are satisfied. No cleanup or production action."
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
"schemaVersion": 1,
|
||||
"workstreamId": "P10-ENTRY-FINAL",
|
||||
"authority": "EVIDENCE_ONLY_NOT_OWNER_APPROVAL",
|
||||
"candidateCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"candidateCommit": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"acceptedBranch": "test/pre-phase10-ux-acceptance",
|
||||
"applicationFixCommit": "154a9e89f565e786d7df00bf93d873da900a7c7d",
|
||||
"packageHeadRule": "Resolve final clean published envelope HEAD independently; bind it, the candidate snapshot, exact scope, policy and artifact hashes in protected approval. No self-referential commit claim.",
|
||||
"entryDecision": "NO-GO",
|
||||
"eligibleForAutomaticExecution": false,
|
||||
"productionDecision": "NO-GO",
|
||||
"generatedUtc": "2026-10-29T23:37:45.931733+00:00",
|
||||
"generatedUtc": "2026-10-30T07:47:11.270216+00:00",
|
||||
"cleanupScope": {
|
||||
"disposition": "ASSESSMENT_ONLY_NO_REMOVALS_APPROVED",
|
||||
"inventory": "CLEANUP_INVENTORY.md:19 retain/assessment entries;57preservation groups/34routes; no proven unused deletion",
|
||||
@@ -113,8 +113,8 @@
|
||||
],
|
||||
"publication": {
|
||||
"status": "VERIFIED_CANDIDATE_SNAPSHOT",
|
||||
"candidateRemoteCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"observedUtc": "2026-10-29T23:37:45.931733+00:00",
|
||||
"candidateRemoteCommit": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"observedUtc": "2026-10-30T07:47:11.270216+00:00",
|
||||
"finalHeadMustBeRechecked": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1613,30 +1613,6 @@
|
||||
"sha256": "bb1b1ccfb03bd888e5e429f5a17c4c106246cfb852b990298236edc7c86c7016",
|
||||
"description": "Scoped human-approved revised S01 qualification; no visual/entry/production approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-final-gate-processes",
|
||||
"path": "evidence/p10-final-gate-processes.gz",
|
||||
"sha256": "1f544cdd3e2efaebe8864604bd7eb7b9dc5dcb5cf2040cc1781cebc79c89fc93",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-proposal-check-native",
|
||||
"path": "evidence/p10-proposal-check-native.gz",
|
||||
"sha256": "8aeb977b01e68447f6a6a290e95e5d116030ddb547441b17ac7fa7bccc873955",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-protected-entry-native",
|
||||
"path": "evidence/p10-protected-entry-native.gz",
|
||||
"sha256": "2c8d977d0b4e9dcfcc120017c44da9ad6738cfac01874815d32e701f3231128d",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-proposal-check-source",
|
||||
"path": "evidence/p10-proposal-check-source.gz",
|
||||
"sha256": "d0505e74d05557e2a7fd64807e5cc1967695413e3e038e83485f7dcaad9c9557",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "s01-initial-package-negative-log",
|
||||
"path": "evidence/s01-initial-package-negative-log.gz",
|
||||
@@ -1670,7 +1646,7 @@
|
||||
{
|
||||
"id": "p10-entry-proposal",
|
||||
"path": "evidence/p10-entry-proposal.gz",
|
||||
"sha256": "3a1b618b1e5fad0adc35c093ef318ebfd7be618653716c7e02386e893345a2af",
|
||||
"sha256": "7c036e998b21ea63387d842218fb8ec1c8b4afa004d155ce54ed4f1ebdd031a6",
|
||||
"description": "Evidence-only exact proposed baseline/scope, owner visual status and remaining protected decisions; no executable permission"
|
||||
},
|
||||
{
|
||||
@@ -1690,6 +1666,30 @@
|
||||
"path": "evidence/handoff-validator-native.gz",
|
||||
"sha256": "b0a525ce25265fc319c62d730e74c72de96482cc3db929b40a060e7b8fdd0938",
|
||||
"description": "Final28 combined unit/package negative tests, exact source and native process; supersedes overlapping prior27"
|
||||
},
|
||||
{
|
||||
"id": "p10-final-gate-processes",
|
||||
"path": "evidence/p10-final-gate-processes.gz",
|
||||
"sha256": "8584076ee515b420ec6c6096918ff038160ba4d8f97f2b8f835ef06144d8fe11",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-proposal-check-native",
|
||||
"path": "evidence/p10-proposal-check-native.gz",
|
||||
"sha256": "8aeb977b01e68447f6a6a290e95e5d116030ddb547441b17ac7fa7bccc873955",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-protected-entry-native",
|
||||
"path": "evidence/p10-protected-entry-native.gz",
|
||||
"sha256": "e89902f1343ad5dad14221aaa7c7f7f5ad1da432bed4a40ad82d48f48c4e5b89",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
},
|
||||
{
|
||||
"id": "p10-proposal-check-source",
|
||||
"path": "evidence/p10-proposal-check-source.gz",
|
||||
"sha256": "bf7a50107916a94e6faf075c42be0116bdd33a05f88f640e149a60c70de3415b",
|
||||
"description": "Actual companion schema/negative and native blocked-entry observations; not product-case totals or protected approval"
|
||||
}
|
||||
],
|
||||
"reports": [
|
||||
@@ -2369,7 +2369,7 @@
|
||||
"id": "p10-proposal-schema",
|
||||
"bindingScope": "APPLICATION",
|
||||
"sourceCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"executedFromCommit": "1a47f7ac1d9cddd647135ebee808a77301335016",
|
||||
"executedFromCommit": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"status": "PASS",
|
||||
"exitCode": 0,
|
||||
"artifactId": "p10-proposal-check-native",
|
||||
@@ -2390,7 +2390,7 @@
|
||||
"id": "p10-protected-entry",
|
||||
"bindingScope": "APPLICATION",
|
||||
"sourceCommit": "ba04d817fed26d659bfa2a56b089d6cac851dc34",
|
||||
"executedFromCommit": "1a47f7ac1d9cddd647135ebee808a77301335016",
|
||||
"executedFromCommit": "fc5b9d377199ce51f480a920a3772108094929e3",
|
||||
"status": "BLOCKED",
|
||||
"exitCode": 3,
|
||||
"artifactId": "p10-protected-entry-native",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
# Public content architecture — proposed, not implemented
|
||||
|
||||
2 November 2026. Independent preparation under the owner's current direct-roadmap instruction. No visual concept selected, public route added, marketing claim published or application source changed. Final layout/section order remains an owner decision.
|
||||
|
||||
Reuse the current Next static-export build, React Router private shell, MUI design tokens, shared plan ownership and en/nb translation contracts. Avoid a CMS or second application shell. Public descriptive content should be emitted as crawlable static HTML from repository-managed, locale-aware content; authenticated routes retain their current client-only providers. Do not turn private account data, feature flags or arbitrary query strings into build-time content.
|
||||
|
||||
Separate content domains:
|
||||
|
||||
- Feature catalogue: stable feature ID and links to implementation, scoped acceptance, deployed identity, entitlement, market, locale, approved screenshot and marketing approval. Missing evidence withholds a current-availability claim. Existing MARKETING_CLAIM_VALIDATION.md remains the authority; do not duplicate it into a competing status list.
|
||||
- Page copy: complete title, description, headings, feature narratives, links, FAQ and accessible text in approved locale resources. Whole sentences and explicit placeholders; reuse terminology and distinguish canonical Career Profile from a CV variant.
|
||||
- Market: available product/provider capabilities, actual billing/currency, legal links and applicable languages. A market is not a language, nationality or automatic grant to fetch jobs.
|
||||
- Assets: genuine synthetic product captures with source commit/date/surface/theme/viewport, rights and alt-text context. The five application design concepts are conceptual prototypes, not screenshots of a released product. No unlicensed images or invented customer testimonials.
|
||||
|
||||
Draft profession-neutral content options for later copy review: “Your job search, organised.” / “Jobbsøkingen din, organisert.” Supporting proposition: “Keep applications, career information and documents together.” / “Samle søknader, karriereinformasjon og dokumenter på ett sted.” These are unpublished candidate copy, not released-capability approval or native-language acceptance. Avoid promising universal import accuracy, live international sources, automatic employer actions, AI availability or privacy certifications.
|
||||
|
||||
Candidate narrative modules (not an approved order): clear outcome and product preview; tracking and next steps; Career Profile/document workflow; optional import review; how it works; verified plan information; factual FAQ; supported registration path; legal/support footer. Where registration is disabled, the CTA must use the existing truthful sign-in/access path rather than promise account creation. Legal destinations and final FAQ answers require verified content; never invent links or policies.
|
||||
|
||||
Implementation gate: after final visual approval, use the approved composition with static public copy and a small client interaction boundary for preference/navigation. Preserve signed-in redirect, protected-route return state and the existing dashboard-first optional onboarding. No second onboarding flow. Reverting future content is an ordinary version-controlled content rollback; no database migration is proposed by this architecture.
|
||||
|
||||
Open: final visual choice, actual released feature/plan/provider evidence, production origin/deployed identity, public asset provenance and native copy review. Full European catalogue work does not automatically publish locale pages.
|
||||
@@ -0,0 +1,21 @@
|
||||
# LAUNCH-00 source audit - partial checkpoint
|
||||
|
||||
2026-11-02. `feature/launch-site-redesign`, accepted conditional baseline `5cb903b989742b7a96cb22ddf4c0e24993b18980`. Full authoritative homepage prompt read. LAUNCH-00 IN_PROGRESS; LAUNCH-01 concepts NOT YET PRODUCED. No final design selected or implemented.
|
||||
|
||||
| Finding | Source evidence | User implication / proposed direction |
|
||||
| --- | --- | --- |
|
||||
| Main Get started opens sign-in | `LandingPage.tsx` passes `goToLogin` to hero CTA; Free-plan CTA separately goes to `/register` | Registration intent has an extra mode-selection step. Propose direct registration while preserving sign-in return state |
|
||||
| Existing signup owner should be reused | `App.tsx:522` maps `/register` to `LoginPage initialMode=register`; LoginPage respects auth config and registration availability | No second onboarding implementation; final CTA must reflect actual enabled registration |
|
||||
| Product previews are conceptual assets | `LandingPage.tsx` uses `/mockups/dashboard.svg`, `pipeline.svg`, `workspace.svg` | Replace with provenance-bound synthetic captures in approved design; never label current artwork a genuine screenshot |
|
||||
| Implementation details occupy hero copy | LandingPage renders React/TypeScript/ASP.NET/EF/FastAPI/Gmail text | Replace with plain user outcomes across professions; framework names do not explain job-search value |
|
||||
| Marketing content depends on client execution and auth probe | `app/page.tsx` loads ClientShell; `ClientShell.tsx` uses `ssr:false`; LandingPage shows loading until `/auth/me` resolves/rejects | Crawlable HTML and loading/failure behavior need measured review; cannot assume static export includes full marketing copy |
|
||||
| Metadata is generic | `app/layout.tsx` has global title/description and initial `lang=en` | Design market/content-locale metadata and canonical/alternate rules without disturbing authenticated routing; no SEO score claimed |
|
||||
| Brand continuity exists | Indigo/cyan hero, shared MUI/theme, custom en/nb translations | Explore distinct compositions while preserving identity; avoid rebuilding app shell |
|
||||
| Product presentation is limited | Six feature cards, six steps and three conceptual images; no actual redesigned CV/import/gallery imagery | Prioritise actual accepted tracking, canonical Career Profile and reviewed document workflow; do not imply new Global Jobs is shipped |
|
||||
| Pricing shows capabilities, not amounts | `planCatalog.ts` defines Free/Pro, explicitly delegates commercial terms to configured checkout | Do not invent amounts/currencies/trials or promise active Pro AI; release and entitlement validation required |
|
||||
| Footer lacks privacy/legal links in this component | LandingPage footer contains copyright text and sign-in button | Verify existing legal destinations and approved copy before adding links; no invented compliance claims |
|
||||
| Responsive layouts are declared | MUI breakpoints change hero controls, feature grids, plan columns and footer | Source intent only; mobile/tablet/keyboard/reflow/contrast require actual rendered checks |
|
||||
|
||||
Preserve signed-in redirect to `/dashboard`, interrupted protected-route return state, shared language behavior, plan policy ownership and existing registration constraints. New public market language must not overwrite job-ad or document output language. Existing custom en/nb implementation is not full European locale support.
|
||||
|
||||
Not yet checked: current rendered desktop/mobile site, external design-pattern research, runtime signup, slow/offline auth probe, keyboard/AT/contrast, image loading/performance, crawled output, real deployment availability and final asset rights. These omissions keep LAUNCH-00 open. No product tests were rerun for this Markdown-only source checkpoint.
|
||||
@@ -0,0 +1,11 @@
|
||||
# Marketing locale integration — proposed contract
|
||||
|
||||
2 November 2026. EN/Bokmål source support is existing; no additional locale is released by this report. Reuse I18N-00 registry/catalogue proposals and their review gates instead of a second country-language mapping. Full European locale identities, script distinctions and native review remain the localisation workstream's responsibility.
|
||||
|
||||
Keep marketing content locale, selected market, application UI language, ad-language preferences and document language distinct. A marketing selector may offer a deliberate explicit application-language action after sign-in; it must not silently write ad/document preferences. Current shared UI preference behavior must be inspected and migrated compatibly before introducing a separate persisted marketing choice. No persistence change is made here.
|
||||
|
||||
Supported choices show native and English names, retain English access, and allow another supported language independent of market. Bokmål/nb/nb-NO/no legacy compatibility does not grant Nynorsk support. Unreleased languages may be described truthfully as forthcoming only with approved copy; they do not receive public routes, hreflang or sitemap entries. User-generated CV/job text is not translated by changing chrome language.
|
||||
|
||||
Complete each published variant's visible, form, error, accessibility, metadata, social and legal text. Validate keys/placeholders, fallback behavior, interpolation escaping, long labels, plural/number/date/currency rules and dirty-form switching. Native terminology review is separate from syntactic coverage. Currency display follows real billing capability, not a selected country. Preserve provider names, original job language, rights/attribution and the distinction between source descriptions and any reviewed translation.
|
||||
|
||||
Acceptance remains BLOCKED for additional released locales until architecture entry, coverage, translation rights/proficient review, actual market capabilities, approved content and integrated QA are satisfied. This does not prevent independent catalogue, fixture, content and SEO planning. See SEO_STRATEGY.md for published-only URL constraints and CONTENT_ARCHITECTURE.md for content ownership.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Preliminary claims and content boundaries
|
||||
|
||||
All claims below are **WITHHELD from public release approval**. Source implementation and conditional development acceptance do not establish production availability. No production inspection was authorised or performed.
|
||||
|
||||
| Proposed subject | Implementation/development evidence | Missing marketing proof |
|
||||
| --- | --- | --- |
|
||||
| Track applications in table/Kanban | Existing LandingPage/plan catalogue and conditional pre-P10 handoff | Deployed version, applicable account entitlement, genuine synthetic capture and approved copy |
|
||||
| Career Profile and CV variants | Canonical profile/document contracts in architecture and CV handoff | Current deployed behavior and accurate plan/theme availability |
|
||||
| Import, review and correct CV facts | Pre-P10 accepted deterministic supported-fixture workflow | No universal parsing or AI-accuracy claim; actual released formats/languages and limitations |
|
||||
| CV templates and PDF | Scoped development appearance/metric approval retained | Physical-print limits, deployed design/version and screenshots |
|
||||
| Reminders/mail/integrations | Existing source owners; provider qualification separate | Actual enabled countries/providers/consent/delivery; avoid blanket automation promises |
|
||||
| International job search | GJ-00 planning separately published; later implementation blocked | Accepted implementation, provider rights and per-country deployed capabilities |
|
||||
| AI assistance | Some contracts implemented; real CV model quality/activation blocked | Accepted model compatibility/accuracy, privacy/consent and enabled deployment |
|
||||
| Free/Pro | Shared public catalogue exists; no price encoded here | Server policy/checkout consistency, active billing, tax/currency wording and approved current prices |
|
||||
| Languages | Existing en/nb source catalogues; I18N audit separate | Native review and per-surface release state; additional locale candidates are not supported language packs |
|
||||
| Privacy/security | Existing controls and conditional security evidence | Approved truthful wording; no certification/compliance guarantee |
|
||||
|
||||
Each final catalogue entry needs feature ID, implementation commit, acceptance artifact, deployed version, entitlement, market, locale, screenshot provenance and owner marketing approval. Missing fields deny availability claims. This is a documentation contract, not a new executable publishing system.
|
||||
|
||||
Proposed section sequence for concept exploration: outcome-led hero; genuine tracking preview; career/document journey; broad-profession story; how it works; verified plans; FAQ; registration CTA; legal/support footer. Final order remains a design choice. No fabricated customer quotes, statistics, discounts or job-provider coverage.
|
||||
@@ -0,0 +1,16 @@
|
||||
# Partial homepage planning handoff
|
||||
|
||||
Continuation 2 November: CONTENT_ARCHITECTURE.md, INTERNATIONALISATION.md and SEO_STRATEGY.md add independent design-neutral content/routing/publication proposals. Byte-matched existing build-shell evidence confirms raw export lacks descriptive marketing HTML, canonical and hreflang. No public UI/routes/metadata implementation or final visual choice made. These source/build checks are not live SEO, performance or release qualification. The five application UI concepts remain separate from LAUNCH-01's required homepage exploration; no sixth application concept created.
|
||||
|
||||
Branch `feature/launch-site-redesign`, baseline `5cb903b989742b7a96cb22ddf4c0e24993b18980`. Documentation-only source audit. LAUNCH-00 remains IN_PROGRESS. LAUNCH-01 four actual desktop/mobile concepts are PENDING, not replaced by written descriptions. No owner design decision requested until reviewable concepts exist.
|
||||
|
||||
Next authorised work:
|
||||
|
||||
1. Inspect rendered homepage/signup and research contemporary patterns using credible public sources. Preserve existing routing and privacy boundaries.
|
||||
2. Obtain provenance-bound synthetic screenshots from accepted evidence or an isolated test environment. The committed pre-P10 visual manifest contains real PDF previews/contact sheets, not a complete set of dashboard/CV editor/mobile product captures. Inspect any image before reuse; do not touch the separate pre-p10-ux worktree.
|
||||
3. Produce four distinct, viewable desktop/mobile concepts and an asset/licence manifest. No external image/font acquisition without appropriate rights. Concept placeholders cannot be represented as real application screenshots.
|
||||
4. Present concrete concepts for mix-and-match owner feedback, then stop final implementation until explicit final-design approval. Design approval does not authorise publication.
|
||||
|
||||
No assets, app code, tests, routes, packages, production services or authenticated dashboard were changed. Rendered/browser/performance/accessibility/SEO checks NOT RUN. No production feature/pricing/language availability was asserted.
|
||||
|
||||
The delegated design task stopped at a service usage limit before saving deliverables. Parent continued the source audit and preserved this checkpoint. No design agent is running in the background.
|
||||
@@ -0,0 +1,22 @@
|
||||
# SEO baseline and design-neutral proposal
|
||||
|
||||
2 November 2026. Source/available-build review only; no deployment, crawl, search-engine ranking, Lighthouse or performance score claimed.
|
||||
|
||||
## Measured raw-export baseline
|
||||
|
||||
Reused the successful local I18N static build, checking byte identity of launch-branch `app/layout.tsx`, `app/page.tsx` and `app/[[...slug]]/ClientShell.tsx` first. Their SHA256 values respectively: `8e4f0cd2776d821c958480aec5c93943674acb0fe28cd60d0822df40009cb262`, `bf661f17c1c7c06ff8fda41b1afa44144bce694c815d52c3d5a927e32063b1b1`, `0afd4379fbfaeb2059cfa860b10523b212a20dc19c64f961de77bb8572ee6791`. ClientShell disables SSR for the application. This is reused build evidence for unchanged shell sources, not a fresh launch-branch build or proof of every bundle.
|
||||
|
||||
A standard-library HTML parser excluding script/style text found only `Jobbjakt` and `You need to enable JavaScript to run this app.` in out/index.html; canonical link count 0, hreflang count 0. This confirms missing descriptive raw HTML, not an assertion that JavaScript-capable crawlers cannot index the client UI. Root metadata is generic and document language initially en. Record post-implementation comparisons against this narrow baseline.
|
||||
|
||||
## Proposed contract after design/routing approval
|
||||
|
||||
- Emit approved public headings, descriptions, feature text and FAQs in static HTML. Keep private routes and provider/account content outside the prerendered marketing boundary.
|
||||
- Give each published page a descriptive locale-specific title/description, semantic heading hierarchy, Open Graph metadata and approved social asset. Use factual SoftwareApplication/Organization structured data only when supported by the actual page; no fabricated ratings, offers or testimonials.
|
||||
- Obtain the production public origin from release-approved configuration. Do not guess a hostname or use localhost as a public canonical. Canonicals must refer to the intended published page, with query/tracking variants normalised.
|
||||
- Derive canonical/reciprocal alternate/sitemap entries from the same approved published market/content-locale inventory. Include only fully supported published variants; self and reciprocal links must agree. An unreviewed locale is absent, not an empty indexable page. Use valid language/script/region tags; country NO must not be treated as Bokmål nb.
|
||||
- Decide URL shape separately from visuals: proposed explicit `/market/{market}/{contentLocale}/...` or another approved unambiguous scheme. This is a proposal, not an added route. Preserve existing auth and application links and static-host fallback behavior; do not implement speculative duplicate country pages.
|
||||
- Keep incomplete/pre-release previews outside production index publication. Robots directives are not an authorisation boundary or protection for private content. Do not expose private or admin routes through sitemap generation.
|
||||
|
||||
## Required verification before acceptance
|
||||
|
||||
Parse exported HTML per approved locale/market; assert meaningful non-JS content, title/description/lang, one intended h1, canonical origin, reciprocal published-only alternates and sitemap membership. Check no unpublished variants, private URLs or unsupported prices/providers. Follow links in an isolated browser; test auth redirect/registration configuration, language persistence and separation from ad/document preferences. Then measure responsive/accessibility/performance budgets on realistic test conditions, preserving manual/device/native-language and deployed-origin gates. No executable SEO publishing infrastructure is introduced by this report.
|
||||
Reference in New Issue
Block a user