{
  "id": "2026-05-07-b2bea-org-qa-release-readiness-spec-b862500254",
  "scope": "redkey",
  "source_of_truth": "repo",
  "source_path": "docs/specs/2026-05-07-b2bea-org-qa-release-readiness-spec.md",
  "source_kind": "markdown",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-09T13:00:55.726Z",
  "artifact_type": "design_doc",
  "schema_version": "design_doc.generated.v1",
  "title": "B2BEA.org Rebuild",
  "summary": "B2BEA.org Rebuild Source of record: RedKey Supabase Studio artifact. Project: B2BEA.org Rebuild Project ID: a820dd0c 6cef 4133 bfbd d802fd806e44 Artifact: qa release readiness spec Artifact ID: b523c55c a22a 4ba6 94c0 d306656e57f7 Version: 1 Status: draft Updated: 2026 05 07T15:35:22.233+00:00 Purpose Define release readiness gates for the B2BEA.org rebuild ...",
  "format_source": "markdown",
  "sections": [
    {
      "title": "B2BEA.org Rebuild",
      "level": 1,
      "body": "Source of record: RedKey Supabase Studio artifact.\n\n- Project: `B2BEA.org Rebuild`\n- Project ID: `a820dd0c-6cef-4133-bfbd-d802fd806e44`\n- Artifact: `qa-release-readiness-spec`\n- Artifact ID: `b523c55c-a22a-4ba6-94c0-d306656e57f7`\n- Version: `1`\n- Status: `draft`\n- Updated: `2026-05-07T15:35:22.233+00:00`"
    },
    {
      "title": "Purpose",
      "level": 2,
      "body": "Define release readiness gates for the B2BEA.org rebuild before implementation planning or V1 launch approval."
    },
    {
      "title": "Status",
      "level": 2,
      "body": "draft"
    },
    {
      "title": "Readiness Gates",
      "level": 2,
      "body": "| id | name | owner | checks | required_before | evidence_required |\n| --- | --- | --- | --- | --- | --- |\n| QA-01 | Route Inventory Conformance | atlas-codex or assigned reviewer | Every implemented route maps to route-family-inventory as v1_keep or redirect., No top-level /studio shell remains as a separate private shell after migration, except redirects or admin-mounted modules., /vendor-portal redirects to /vendor if retained for compatibility., Maturity assessment routes use the special-flow contract, not the standard survey system contract. | implementation_dispatch | route table diff, redirect map, manual route smoke results |\n| QA-02 | Design System Conformance | design/reviewer | Pages use B2BEA tokens/components from the design-system repo or approved local equivalents., Custom pages are limited to home, campaign/resource landing, approved HTML imports, or signature editorial features., Operational/private pages avoid one-off decorative layouts and follow reusable page-template contracts., No surface treats Lovable output as final authority without B2BEA hardening. | release_candidate | component/token usage review, desktop/mobile screenshots for representative page families, custom exception list |\n| QA-03 | Access And Permission Boundary | engineering/reviewer | Unauthenticated users cannot access /admin, /vendor, /company, member-only account/dashboard routes, or private APIs., Vendor users cannot access company workspace or admin-only data., Company users cannot access vendor portal data unless explicitly entitled by contract., Admin modules enforce admin permission, including publishing/studio functions., Survey exports and maturity assessment outputs follow permission and lifecycle contracts. | release_candidate | auth matrix test results, API/RLS checks where applicable, negative-path screenshots or logs |\n| QA-04 | Publishing And Content Safety | content/admin reviewer | Draft/review/publish lifecycle works for public content types kept in V1., Resource/blog pages have canonical metadata, slug policy, redirect policy, and preview behavior., Custom HTML imports are sanitized/reviewed and recorded as approved custom exceptions., No unpublished, archived, or removed content appears in public navigation/search. | release_candidate | publishing workflow smoke, metadata crawl, custom import review notes |\n| QA-05 | Responsive And Browser Smoke | qa/reviewer | Representative pages pass desktop and mobile viewport smoke., Navigation, drawers, forms, modals, dashboards, and assessment flows have no overlapping text or broken responsive states., No blocking console errors on core paths., Images/assets render and are not dark, cropped, or placeholder-like where users need real inspection. | release_candidate | Playwright or browser screenshots, console/error log summary, asset-render checklist |\n| QA-06 | Data And Migration Safety | engineering/reviewer | Implementation plan identifies which existing data models are reused vs migrated., Schema changes include rollback/forward migration notes and do not break existing artifacts/content., Seed/import scripts are idempotent where practical and scoped to B2BEA project/client data., Private workspace, entitlement, survey, and publishing records have clear ownership and lifecycle state. | implementation_dispatch_and_release_candidate | migration review, dry-run import results when applicable, data ownership checklist |\n| QA-07 | Release Decision Gate | Justin / release owner | All blocking readiness gates are pass or explicitly waived with owner/date/reason., Known issues are classified as block, defer, or accepted risk., Rollback path and post-launch monitoring owner are documented., Final V1 route list and redirects are approved. | production_launch | release acceptance artifact or approval note, known issues register, rollback note |"
    },
    {
      "title": "Hard Stops",
      "level": 2,
      "body": "- Do not start build execution until plan and exec plan review approve a bounded slice.\n- Do not launch with separate /admin and /studio shells unless owner reverses the single-admin decision.\n- Do not normalize signature custom surfaces into generic components when they are explicitly approved custom exceptions.\n- Do not let the standard survey system replace the special V1 maturity assessment flow without an approved migration decision."
    },
    {
      "title": "Required Test Matrix",
      "level": 2,
      "body": "```json\n{\n  \"roles\": [\n    \"anonymous\",\n    \"member\",\n    \"company user\",\n    \"vendor user\",\n    \"admin\"\n  ],\n  \"data_states\": [\n    \"empty\",\n    \"typical populated\",\n    \"long text/content\",\n    \"missing optional media\",\n    \"unauthorized/forbidden\"\n  ],\n  \"route_smoke\": [\n    \"home\",\n    \"resource/blog landing\",\n    \"representative resource detail\",\n    \"directory/listing page\",\n    \"auth/account route\",\n    \"member dashboard/profile\",\n    \"maturity assessment flow\",\n    \"/admin\",\n    \"/admin/studio or /admin/publishing\",\n    \"/vendor\",\n    \"/company\",\n    \"redirect routes\"\n  ],\n  \"viewport_smoke\": [\n    \"mobile narrow\",\n    \"tablet or mid-width\",\n    \"desktop\"\n  ]\n}\n```"
    },
    {
      "title": "Next Recommended Artifact",
      "level": 2,
      "body": "plan"
    },
    {
      "title": "Artifact",
      "level": 2,
      "body": "qa-release-readiness-spec"
    },
    {
      "title": "Client Id",
      "level": 2,
      "body": "b2bea"
    },
    {
      "title": "Repositories",
      "level": 2,
      "body": "```json\n{\n  \"website\": {\n    \"url\": \"https://github.com/b2bea-org/b2bea-website.git\",\n    \"note\": \"Windows checkout repaired by removing invalid tracked macOS Icon file.\",\n    \"local_path\": \"C:/Users/jstnk/Downloads/cc/projects/b2bea/b2bea-website\",\n    \"baseline_commit\": \"fabc8f2\"\n  },\n  \"design_system\": {\n    \"url\": \"https://github.com/b2bea-org/b2bea-org-design-system.git\",\n    \"local_path\": \"C:/Users/jstnk/Downloads/cc/projects/b2bea/b2bea-org-design-system\",\n    \"baseline_commit\": \"d83614a\"\n  }\n}\n```"
    },
    {
      "title": "Release Scope",
      "level": 2,
      "body": "```json\n{\n  \"shell_basis\": {\n    \"admin\": \"Single /admin shell; studio/publishing becomes admin module; current /studio routes redirect or mount under /admin.\",\n    \"vendor\": \"Vendor portal private prefix is /vendor.\",\n    \"company\": \"Company workspace private prefix is /company.\",\n    \"public_and_auth\": \"Public discovery/content and auth/account surfaces remain V1 where classified v1_keep.\"\n  },\n  \"design_basis\": \"Hardened B2BEA design system is target. Lovable is only seed/reference; reusable/index/operational/authenticated surfaces use the B2BEA design system unless a custom-page exception is approved.\",\n  \"v1_route_basis\": {\n    \"summary\": \"97 routes classified; 94 v1_keep and 3 redirects; maturity assessment remains V1 as bounded special flow; no deferred routes after owner decision.\",\n    \"route_family_inventory_artifact_id\": \"2cec821e-07ba-4aca-81fb-078f163adf44\"\n  }\n}\n```"
    },
    {
      "title": "Source Artifacts",
      "level": 2,
      "body": "```json\n{\n  \"surface-specs\": {\n    \"id\": \"77853042-e7a4-48bd-91a4-6e48d0484b1b\",\n    \"status\": \"draft\",\n    \"version\": 10\n  },\n  \"data-model-spec\": {\n    \"id\": \"2f473004-9063-4fe9-8290-5cbd1b19dfb4\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"design-system-spec\": {\n    \"id\": \"4c3651ac-9a69-4117-a355-750b61f540c9\",\n    \"status\": \"draft\",\n    \"version\": 4\n  },\n  \"page-template-spec\": {\n    \"id\": \"427c04a9-40b7-4e55-a642-65b2aee20b2b\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"survey-system-spec\": {\n    \"id\": \"823d14d7-5992-42f3-a2f4-f4738a045f7c\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"publishing-model-spec\": {\n    \"id\": \"a9636e2f-a4be-4586-82dd-c1a7bf3199fa\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"entitlement-model-spec\": {\n    \"id\": \"355b3249-3af9-45a4-9c45-67777bd2d72d\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"route-family-inventory\": {\n    \"id\": \"2cec821e-07ba-4aca-81fb-078f163adf44\",\n    \"status\": \"draft\",\n    \"version\": 3\n  },\n  \"company-workspace-data-spec\": {\n    \"id\": \"05e0ed7c-416a-4d8f-853a-bc3dfa3d64f6\",\n    \"status\": \"draft\",\n    \"version\": 1\n  },\n  \"permission-lifecycle-matrix\": {\n    \"id\": \"dcfc8620-9f28-4019-aeeb-de3e279fd7a7\",\n    \"status\": \"draft\",\n    \"version\": 3\n  },\n  \"production-readiness-gap-register\": {\n    \"id\": \"80328220-3deb-4cf9-a68f-d440b41a38da\",\n    \"status\": \"draft\",\n    \"version\": 3\n  }\n}\n```"
    },
    {
      "title": "Artifact Outputs Expected Later",
      "level": 2,
      "body": "- plan\n- exec_plan_review\n- build_execution\n- verification_report\n- release_acceptance"
    }
  ],
  "html_path": "artifacts/2026-05-07-b2bea-org-qa-release-readiness-spec-b862500254.html",
  "json_path": "artifacts/2026-05-07-b2bea-org-qa-release-readiness-spec-b862500254.json"
}