{
  "id": "2026-05-07-b2bea-org-route-family-inventory-2e8099b798",
  "scope": "redkey",
  "source_of_truth": "repo",
  "source_path": "docs/specs/2026-05-07-b2bea-org-route-family-inventory.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.729Z",
  "artifact_type": "design_doc",
  "schema_version": "design_doc.generated.v1",
  "title": "B2BEA.org V1 Route Family Inventory",
  "summary": "B2BEA.org V1 Route Family Inventory Source of record: RedKey Supabase Studio artifact. Project: B2BEA.org Rebuild Project ID: a820dd0c 6cef 4133 bfbd d802fd806e44 Artifact: route family inventory Artifact ID: 2cec821e 07ba 4aca 81fb 078f163adf44 Version: 3 Status: draft Updated: 2026 05 07T13:54:34.797+00:00 Status draft Basis surface specs v6 owner approved...",
  "format_source": "markdown",
  "sections": [
    {
      "title": "B2BEA.org V1 Route Family Inventory",
      "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: `route-family-inventory`\n- Artifact ID: `2cec821e-07ba-4aca-81fb-078f163adf44`\n- Version: `3`\n- Status: `draft`\n- Updated: `2026-05-07T13:54:34.797+00:00`"
    },
    {
      "title": "Status",
      "level": 2,
      "body": "draft"
    },
    {
      "title": "Basis",
      "level": 2,
      "body": "- surface-specs v6 owner-approved surface decisions\n- current repo src route templates from git ls-tree\n- B2BEA design-system checkout for design treatment terminology"
    },
    {
      "title": "Summary",
      "level": 2,
      "body": "```json\n{\n  \"deferred\": [],\n  \"redirects\": [\n    {\n      \"to\": \"/admin/studio\",\n      \"from\": \"/studio\",\n      \"reason\": \"Decision 3: top-level /studio migrates under single /admin shell.\"\n    },\n    {\n      \"to\": \"/admin/studio/media\",\n      \"from\": \"/studio/media\",\n      \"reason\": \"Decision 3: top-level /studio migrates under single /admin shell.\"\n    },\n    {\n      \"to\": \"/vendor\",\n      \"from\": \"/vendor-portal\",\n      \"reason\": \"Decision 2: private vendor workspace prefix is /vendor.\"\n    }\n  ],\n  \"route_count\": 97,\n  \"needs_review\": [],\n  \"by_disposition\": {\n    \"v1_keep\": 94,\n    \"redirect\": 3\n  },\n  \"by_page_family\": {\n    \"job_board\": 1,\n    \"job_detail\": 1,\n    \"event_index\": 1,\n    \"topic_index\": 2,\n    \"admin_module\": 9,\n    \"event_detail\": 1,\n    \"course_detail\": 1,\n    \"course_catalog\": 1,\n    \"resource_index\": 7,\n    \"directory_index\": 10,\n    \"editorial_index\": 4,\n    \"editorial_detail\": 3,\n    \"system_generated\": 1,\n    \"vendor_dashboard\": 1,\n    \"audience_landing_page\": 6,\n    \"people_profile_detail\": 1,\n    \"vendor_profile_detail\": 1,\n    \"admin_publishing_module\": 2,\n    \"auth_or_account_utility\": 8,\n    \"course_learning_surface\": 4,\n    \"standard_marketing_page\": 7,\n    \"topic_or_concept_detail\": 8,\n    \"marketing_home_or_landing\": 1,\n    \"member_dashboard_or_account\": 7,\n    \"resource_detail_or_download\": 5,\n    \"maturity_assessment_special_flow\": 4\n  },\n  \"by_target_surface\": {\n    \"b2bea_admin\": 11,\n    \"public_site\": 70,\n    \"auth_account\": 8,\n    \"member_portal\": 7,\n    \"vendor_portal\": 1\n  }\n}\n```"
    },
    {
      "title": "Revision Note",
      "level": 2,
      "body": "Owner approved maturity assessment as V1 special flow and reusable maturity-assessment pattern seed."
    },
    {
      "title": "Routes",
      "level": 2,
      "body": "| notes | route | disposition | page_family | source_file | target_surface | current_surface | canonical_target |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| Homepage may stay custom under approved surface decision. | / | v1_keep | marketing_home_or_landing | src/index.njk | public_site | public_site | / |\n|  | /about | v1_keep | standard_marketing_page | src/pages/about.njk | public_site | public_site | /about |\n|  | /account | v1_keep | member_dashboard_or_account | src/account/index.njk | member_portal | member_portal | /account |\n|  | /admin | v1_keep | admin_module | src/admin/index.njk | b2bea_admin | b2bea_admin | /admin |\n|  | /admin/academy | v1_keep | admin_module | src/admin/academy/index.njk | b2bea_admin | b2bea_admin | /admin/academy |\n|  | /admin/academy/course | v1_keep | admin_module | src/admin/academy/course.njk | b2bea_admin | b2bea_admin | /admin/academy/course |\n|  | /admin/academy/lesson | v1_keep | admin_module | src/admin/academy/lesson.njk | b2bea_admin | b2bea_admin | /admin/academy/lesson |\n|  | /admin/categories | v1_keep | admin_module | src/admin/categories/index.njk | b2bea_admin | b2bea_admin | /admin/categories |\n|  | /admin/companies | v1_keep | admin_module | src/admin/companies/index.njk | b2bea_admin | b2bea_admin | /admin/companies |\n|  | /admin/jobs | v1_keep | admin_module | src/admin/jobs/index.njk | b2bea_admin | b2bea_admin | /admin/jobs |\n|  | /admin/users | v1_keep | admin_module | src/admin/users/index.njk | b2bea_admin | b2bea_admin | /admin/users |\n|  | /admin/vendors | v1_keep | admin_module | src/admin/vendors/index.njk | b2bea_admin | b2bea_admin | /admin/vendors |\n|  | /agencies | v1_keep | directory_index | src/agencies/index.njk | public_site | public_site | /agencies |\n| Owner decision: keep current maturity assessment in V1 as a bounded special assessment flow., This should become the first instance of a reusable maturity-assessment pattern for future domain assessments, not the generalized survey/form builder., General survey/form builder remains separate and can still be planned/deferred. | /assessments | v1_keep | maturity_assessment_special_flow | src/assessments/index.njk | public_site | public_site | /assessments |\n| Owner decision: keep current maturity assessment in V1 as a bounded special assessment flow., This should become the first instance of a reusable maturity-assessment pattern for future domain assessments, not the generalized survey/form builder., General survey/form builder remains separate and can still be planned/deferred. | /assessments/maturity | v1_keep | maturity_assessment_special_flow | src/assessments/maturity/index.njk | public_site | public_site | /assessments/maturity |\n| Owner decision: keep current maturity assessment in V1 as a bounded special assessment flow., This should become the first instance of a reusable maturity-assessment pattern for future domain assessments, not the generalized survey/form builder., General survey/form builder remains separate and can still be planned/deferred. | /assessments/maturity/results | v1_keep | maturity_assessment_special_flow | src/assessments/maturity/results/index.njk | public_site | public_site | /assessments/maturity/results |\n| Owner decision: keep current maturity assessment in V1 as a bounded special assessment flow., This should become the first instance of a reusable maturity-assessment pattern for future domain assessments, not the generalized survey/form builder., General survey/form builder remains separate and can still be planned/deferred. | /assessments/maturity/take | v1_keep | maturity_assessment_special_flow | src/assessments/maturity/take/index.njk | public_site | public_site | /assessments/maturity/take |\n| Signature editorial detail can be marked custom by exception; default is B2BEA design system. | /authors/:slug | v1_keep | editorial_detail | src/authors/author.njk | public_site | public_site | /authors/:slug |\n|  | /blog | v1_keep | editorial_index | src/blog/index.njk | public_site | public_site | /blog |\n| Signature editorial detail can be marked custom by exception; default is B2BEA design system. | /blog/:slug | v1_keep | editorial_detail | src/blog/post.njk | public_site | public_site | /blog/:slug |\n|  | /blog/b2b-ecommerce-is-not-a-technology-problem | v1_keep | editorial_index | src/blog/b2b-ecommerce-is-not-a-technology-problem.md | public_site | public_site | /blog/b2b-ecommerce-is-not-a-technology-problem |\n|  | /careers | v1_keep | job_board | src/careers/index.njk | public_site | public_site | /careers |\n|  | /careers/:slug | v1_keep | job_detail | src/careers/job.njk | public_site | public_site | /careers/:slug |\n|  | /case-studies | v1_keep | resource_index | src/case-studies/index.njk | public_site | public_site | /case-studies |\n|  | /case-studies/:slug | v1_keep | resource_detail_or_download | src/case-studies/case-study.njk | public_site | public_site | /case-studies/:slug |\n|  | /checkout | v1_keep | auth_or_account_utility | src/pages/checkout.njk | auth_account | auth_account | /checkout |\n|  | /checkout-success | v1_keep | auth_or_account_utility | src/pages/checkout-success.njk | auth_account | auth_account | /checkout-success |\n|  | /concepts | v1_keep | topic_index | src/concepts/index.njk | public_site | public_site | /concepts |\n|  | /concepts/:slug | v1_keep | topic_or_concept_detail | src/concepts/concept.njk | public_site | public_site | /concepts/:slug |\n|  | /concepts/ai-product-recommendations-b2b | v1_keep | topic_or_concept_detail | src/concepts/ai-product-recommendations-b2b.njk | public_site | public_site | /concepts/ai-product-recommendations-b2b |\n|  | /confirm-email | v1_keep | auth_or_account_utility | src/confirm-email/index.njk | auth_account | auth_account | /confirm-email |\n|  | /consultants | v1_keep | directory_index | src/consultants/index.njk | public_site | public_site | /consultants |\n|  | /contact | v1_keep | standard_marketing_page | src/pages/contact.njk | public_site | public_site | /contact |\n|  | /courses | v1_keep | course_catalog | src/courses/index.njk | public_site | public_site | /courses |\n|  | /courses/:slug | v1_keep | course_detail | src/courses/course.njk | public_site | public_site | /courses/:slug |\n|  | /courses/lessons/:slug | v1_keep | course_learning_surface | src/courses/lessons/lesson.njk | public_site | public_site | /courses/lessons/:slug |\n|  | /courses/modules/challenge | v1_keep | course_learning_surface | src/courses/modules/challenge.njk | public_site | public_site | /courses/modules/challenge |\n|  | /courses/modules/challenge-feedback | v1_keep | course_learning_surface | src/courses/modules/challenge-feedback.njk | public_site | public_site | /courses/modules/challenge-feedback |\n|  | /courses/modules/test | v1_keep | course_learning_surface | src/courses/modules/test.njk | public_site | public_site | /courses/modules/test |\n|  | /dashboard | v1_keep | member_dashboard_or_account | src/dashboard/index.njk | member_portal | member_portal | /dashboard |\n|  | /dashboard/onboarding | v1_keep | member_dashboard_or_account | src/dashboard/onboarding/index.njk | member_portal | member_portal | /dashboard/onboarding |\n|  | /dashboard/profile | v1_keep | member_dashboard_or_account | src/dashboard/profile.njk | member_portal | member_portal | /dashboard/profile |\n|  | /dashboard/profile/edit | v1_keep | member_dashboard_or_account | src/dashboard/profile/edit.njk | member_portal | member_portal | /dashboard/profile/edit |\n|  | /dashboard/profile/knowledge | v1_keep | member_dashboard_or_account | src/dashboard/profile/knowledge.njk | member_portal | member_portal | /dashboard/profile/knowledge |\n|  | /dashboard/welcome | v1_keep | member_dashboard_or_account | src/dashboard/welcome/index.njk | member_portal | member_portal | /dashboard/welcome |\n|  | /distributors | v1_keep | directory_index | src/distributors/index.njk | public_site | public_site | /distributors |\n| Full event operations/sponsorship workflow remains deferred unless needed for launch. | /events | v1_keep | event_index | src/events/index.njk | public_site | public_site | /events |\n| Full event operations/sponsorship workflow remains deferred unless needed for launch. | /events/:slug | v1_keep | event_detail | src/events/event.njk | public_site | public_site | /events/:slug |\n|  | /exchange | v1_keep | directory_index | src/exchange/index.njk | public_site | public_site | /exchange |\n|  | /exchange/:slug | v1_keep | vendor_profile_detail | src/exchange/exchange.njk | public_site | public_site | /exchange/:slug |\n|  | /exchange/vendor-claim | v1_keep | directory_index | src/exchange/vendor-claim.njk | public_site | public_site | /exchange/vendor-claim |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/agencies | v1_keep | audience_landing_page | src/for/agencies/index.njk | public_site | public_site | /for/agencies |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/consultants | v1_keep | audience_landing_page | src/for/consultants/index.njk | public_site | public_site | /for/consultants |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/distributors | v1_keep | audience_landing_page | src/for/distributors/index.njk | public_site | public_site | /for/distributors |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/manufacturers | v1_keep | audience_landing_page | src/for/manufacturers/index.njk | public_site | public_site | /for/manufacturers |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/software-providers | v1_keep | audience_landing_page | src/for/software-providers/index.njk | public_site | public_site | /for/software-providers |\n| Audience/campaign landing pages may stay custom when explicitly marked. | /for/vendors | v1_keep | audience_landing_page | src/for/vendors/index.njk | public_site | public_site | /for/vendors |\n|  | /guides | v1_keep | resource_index | src/guides/index.njk | public_site | public_site | /guides |\n|  | /guides/:slug | v1_keep | resource_detail_or_download | src/guides/guide.njk | public_site | public_site | /guides/:slug |\n|  | /how-we-use-ai | v1_keep | standard_marketing_page | src/how-we-use-ai/index.njk | public_site | public_site | /how-we-use-ai |\n|  | /insights | v1_keep | editorial_index | src/insights/index.njk | public_site | public_site | /insights |\n|  | /join | v1_keep | standard_marketing_page | src/pages/join.njk | public_site | public_site | /join |\n|  | /leaders | v1_keep | directory_index | src/leaders/index.njk | public_site | public_site | /leaders |\n|  | /login | v1_keep | auth_or_account_utility | src/login/index.njk | auth_account | auth_account | /login |\n|  | /manufacturers | v1_keep | directory_index | src/manufacturers/index.njk | public_site | public_site | /manufacturers |\n|  | /membership-terms | v1_keep | auth_or_account_utility | src/pages/membership-terms.njk | auth_account | auth_account | /membership-terms |\n|  | /people | v1_keep | directory_index | src/people/index.njk | public_site | public_site | /people |\n|  | /people/:slug | v1_keep | people_profile_detail | src/people/person.njk | public_site | public_site | /people/:slug |\n|  | /podcast | v1_keep | editorial_index | src/podcast/index.njk | public_site | public_site | /podcast |\n| Signature editorial detail can be marked custom by exception; default is B2BEA design system. | /podcast/:slug | v1_keep | editorial_detail | src/podcast/episode.njk | public_site | public_site | /podcast/:slug |\n|  | /reports | v1_keep | resource_index | src/reports/index.njk | public_site | public_site | /reports |\n|  | /reports/:slug | v1_keep | resource_detail_or_download | src/reports/report.njk | public_site | public_site | /reports/:slug |\n|  | /resources | v1_keep | resource_index | src/resources/index.njk | public_site | public_site | /resources |\n|  | /resources/:category | v1_keep | resource_index | src/resources/category-hub.njk | public_site | public_site | /resources/:category |\n| Major resource landing pages may stay custom when explicitly marked. | /resources/2026-b2b-ecommerce-trends | v1_keep | resource_detail_or_download | src/resources/2026-b2b-ecommerce-trends/index.njk | public_site | public_site | /resources/2026-b2b-ecommerce-trends |\n|  | /resources/2026-b2b-ecommerce-trends/download | v1_keep | resource_index | src/resources/2026-b2b-ecommerce-trends/download.njk | public_site | public_site | /resources/2026-b2b-ecommerce-trends/download |\n| Major resource landing pages may stay custom when explicitly marked. | /resources/career-acceleration-kit | v1_keep | resource_detail_or_download | src/resources/career-acceleration-kit/index.njk | public_site | public_site | /resources/career-acceleration-kit |\n|  | /resources/career-acceleration-kit/download | v1_keep | resource_index | src/resources/career-acceleration-kit/download.njk | public_site | public_site | /resources/career-acceleration-kit/download |\n|  | /services | v1_keep | standard_marketing_page | src/pages/services.njk | public_site | public_site | /services |\n|  | /signup | v1_keep | auth_or_account_utility | src/signup/index.njk | auth_account | auth_account | /signup |\n|  | /sitemap | v1_keep | system_generated | src/sitemap.njk | public_site | public_site | /sitemap |\n|  | /software-providers | v1_keep | directory_index | src/software-providers/index.njk | public_site | public_site | /software-providers |\n| Decision 3: top-level /studio migrates under single /admin shell. | /studio | redirect | admin_publishing_module | src/studio/index.njk | b2bea_admin | publishing_studio | /admin/studio |\n| Decision 3: top-level /studio migrates under single /admin shell. | /studio/media | redirect | admin_publishing_module | src/studio/media/index.njk | b2bea_admin | publishing_studio | /admin/studio/media |\n|  | /terms | v1_keep | auth_or_account_utility | src/pages/terms.njk | auth_account | auth_account | /terms |\n|  | /topics | v1_keep | topic_index | src/topics/index.njk | public_site | public_site | /topics |\n|  | /topics/ai | v1_keep | topic_or_concept_detail | src/topics/ai.njk | public_site | public_site | /topics/ai |\n|  | /topics/b2b-fundamentals | v1_keep | topic_or_concept_detail | src/topics/b2b-fundamentals.njk | public_site | public_site | /topics/b2b-fundamentals |\n|  | /topics/customer-adoption | v1_keep | topic_or_concept_detail | src/topics/customer-adoption.njk | public_site | public_site | /topics/customer-adoption |\n|  | /topics/digital-transformation | v1_keep | topic_or_concept_detail | src/topics/digital-transformation.njk | public_site | public_site | /topics/digital-transformation |\n|  | /topics/executive-alignment | v1_keep | topic_or_concept_detail | src/topics/executive-alignment.njk | public_site | public_site | /topics/executive-alignment |\n|  | /topics/technology | v1_keep | topic_or_concept_detail | src/topics/technology.njk | public_site | public_site | /topics/technology |\n|  | /upgrade | v1_keep | auth_or_account_utility | src/pages/upgrade.njk | auth_account | auth_account | /upgrade |\n| Should align with vendor commercial workflow and HubSpot handoff. | /vendor-application | v1_keep | standard_marketing_page | src/pages/vendor-application.njk | public_site | public_site | /vendor-application |\n| Should align with vendor commercial workflow and HubSpot handoff. | /vendor-membership | v1_keep | standard_marketing_page | src/pages/vendor-membership.njk | public_site | public_site | /vendor-membership |\n| Decision 2: private vendor workspace prefix is /vendor. | /vendor-portal | redirect | vendor_dashboard | src/vendor-portal/index.njk | vendor_portal | vendor_portal | /vendor |\n|  | /vendors/orocommerce | v1_keep | directory_index | src/vendors/orocommerce.njk | public_site | public_site | /vendors/orocommerce |"
    },
    {
      "title": "Classification Rules",
      "level": 2,
      "body": "```json\n{\n  \"defer\": \"Route/capability is not part of baseline V1 unless launch explicitly requires it.\",\n  \"remove\": \"Route has no replacement or active product path after inventory review.\",\n  \"v1_keep\": \"Current route remains in V1 and must map to a canonical page family or approved custom exception.\",\n  \"redirect\": \"Route should migrate to a new canonical route while preserving access/SEO as needed.\",\n  \"needs_review\": \"Route matched a sensitive or ambiguous area requiring owner confirmation before plan.\"\n}\n```"
    },
    {
      "title": "Owner Decisions",
      "level": 2,
      "body": "| id | topic | decision | decided_at | implications |\n| --- | --- | --- | --- | --- |\n| RFI-OWNER-DEC-001 | Maturity assessment V1 treatment | Keep the current maturity assessment routes in V1 as a bounded special assessment flow. Treat this as the first instance of a reusable maturity-assessment pattern for future domain maturity assessments. Keep the broader standard survey/form engine as a separate capability/spec. | 2026-05-07T13:54:34.797Z | /assessments and /assessments/maturity/* move from defer to v1_keep., page-template-spec needs a maturity_assessment_special_flow family., survey-system-spec should still define general survey/forms separately and not force the maturity assessment into a generic survey model too early. |"
    },
    {
      "title": "Source",
      "level": 2,
      "body": "```json\n{\n  \"site_head\": \"fabc8f2\",\n  \"site_repo\": \"https://github.com/b2bea-org/b2bea-website.git\",\n  \"checkout_note\": \"Fixed upstream Windows checkout blocker by removing tracked root macOS Icon\\\\r file in commit fabc8f2. Fresh Windows checkout now succeeds cleanly.\",\n  \"site_local_path\": \"C:/Users/jstnk/Downloads/cc/projects/b2bea/b2bea-website\",\n  \"design_system_head\": \"d83614a\",\n  \"design_system_repo\": \"https://github.com/b2bea-org/b2bea-org-design-system.git\",\n  \"design_system_local_path\": \"C:/Users/jstnk/Downloads/cc/projects/b2bea/b2bea-org-design-system\"\n}\n```"
    },
    {
      "title": "Next Steps",
      "level": 2,
      "body": "- Review redirects and needs_review routes with Justin.\n- Decide whether maturity assessment remains a special V1 flow or defers with generalized survey system.\n- Use this inventory as input to page-template-spec.\n- For every v1_keep route, define canonical template family, required components, states, data source, and QA checks."
    }
  ],
  "html_path": "artifacts/2026-05-07-b2bea-org-route-family-inventory-2e8099b798.html",
  "json_path": "artifacts/2026-05-07-b2bea-org-route-family-inventory-2e8099b798.json"
}