B2BEA.org Capability Map v1
capability-map artifact · for B2BEA.org Rebuild · status approved
- What is the minimum production implementation for each V1 area without cutting core capability?
- Which V1 capabilities can launch as admin-mediated workflows instead of full self-service UI?
- Which workflows require Stripe, Sanity, HubSpot/CRM, Supabase-only, or a new service boundary?
- What role/entitlement taxonomy supports all V1 surfaces without special cases?
- Which capabilities require audit logs and notification side effects on day one?
- Which current admin single-page workflows should become separate modules in the rebuild?
capability-map artifact · for B2BEA.org Rebuild · status approved
No explicit evidence field yet. Require tests, screenshots, linked PRs, or reviewed outputs before marking complete.
- What is the minimum production implementation for each V1 area without cutting core capability?
- Which V1 capabilities can launch as admin-mediated workflows instead of full self-service UI?
- Which workflows require Stripe, Sanity, HubSpot/CRM, Supabase-only, or a new service boundary?
- What role/entitlement taxonomy supports all V1 surfaces without special cases?
- Which capabilities require audit logs and notification side effects on day one?
- Which current admin single-page workflows should become separate modules in the rebuild?
Machine-readable source fields
Derived from research artifact v2 and direct repo scan of current templates/scripts. This is a current-state plus target-gap catalog, not a final product requirement list.
B2BEA.org Capability Map v1
1
| id | name | areas | purpose |
|---|---|---|---|
| public_site | Public Site | - Discovery And Search: id: string, name: string, capabilities: object - Content, Resources, And Gating: id: string, name: string, capabilities: object - Public Profiles And Directories: id: string, name: string, capabilities: object - Conversion And Public Intake: id: string, name: string, capabilities: object | Browse, learn, discover, search, convert, and view public people/company/vendor/content pages. |
| auth | Authentication And Account Security | - Auth Core: id: string, name: string, capabilities: object - Account Security: id: string, name: string, capabilities: object | Shared identity layer across all surfaces. |
| member_dashboard_profile | Individual Member Dashboard And Profile | - Profile Management: id: string, name: string, capabilities: object - Learning And Progress: id: string, name: string, capabilities: object - Membership Benefits: id: string, name: string, capabilities: object | Personal member account, public profile projection, learning state, and benefits. |
| b2bea_admin | B2BEA Admin | - Operations Overview: id: string, name: string, capabilities: object - Users And Roles: id: string, name: string, capabilities: object - Companies And Organization Membership: id: string, name: string, capabilities: object - Vendor Management: id: string, name: string, capabilities: object - Academy Management: id: string, name: string, capabilities: object - Jobs And Scraping: id: string, name: string, capabilities: object - Taxonomy And Hubs: id: string, name: string, capabilities: object - Studio And Media: id: string, name: string, capabilities: object | Internal operating system for B2BEA ecosystem management. |
| vendor_management_portal | Vendor Management Portal | - Vendor Profile: id: string, name: string, capabilities: object - Vendor Content: id: string, name: string, capabilities: object - Analytics And Events: id: string, name: string, capabilities: object - Claims: id: string, name: string, capabilities: object | Company workspace for vendors selling into the B2BEA ecosystem. |
| practitioner_company_workspace | Practitioner Company Workspace | - Company Access And Seats: id: string, name: string, capabilities: object - Company Academy: id: string, name: string, capabilities: object - Company Careers: id: string, name: string, capabilities: object - Company Membership: id: string, name: string, capabilities: object | Company-level workspace for manufacturers, distributors, agencies, consultants, and similar non-vendor practitioner organizations. |
| id | topic | decision |
|---|---|---|
| DEC-001 | Public practitioner company profiles | Exclude from V1. Keep vendor public profiles; practitioner companies get private workspace only. |
| DEC-002 | Company-created jobs | Require B2BEA admin review before public publishing in V1. |
| DEC-003 | Sanity versus Supabase source of truth | Sanity owns editorial/public content. B2BEA Supabase owns application and operational data, including people, company, vendor, membership, course, survey, job, event, analytics, and notification records. |
| DEC-004 | Notifications | V1 is email-first with an internal notification event log. In-app notifications are designed for later unless a surface explicitly needs them. |
| DEC-005 | CRM source of truth | HubSpot is the primary CRM for leads, pipeline, sales activity, and renewals. B2BEA Supabase owns website profiles and operational entities. |
| DEC-006 | Vendor and company analytics exports | V1 allows bounded own-account exports only. No raw platform-wide data, cross-account comparisons, or sensitive user-level data unless explicitly consented and permitted. |
- Create a production-readiness gap register for all V1 capability groups.
- Create a permission + lifecycle matrix for all V1 capabilities.
- Create surface specs that define MVP implementation depth without deferring production readiness.
- Review capability names and missing areas with Justin.
- Split target capabilities into MVP, phase 2, and later.
- Turn each surface into a surface-spec artifact using these capabilities as the action inventory.
- Derive permission model from capabilities.
- Derive data model from capabilities and current table evidence.
a820dd0c-6cef-4133-bfbd-d802fd806e44
2026-05-06T20:00:09.332Z
Capability names use VerbObject style so they can later become permissions, service methods, API operations, QA scenarios, and UI actions.
capability-map
The total intentionally includes already-cataloged capabilities plus newly added V1 production requirements. Deduplication and final acceptance rules happen in surface specs.
259
Evidence exists in current repo.
Some evidence exists, but capability is incomplete or indirectly implemented.
Target capability implied by rebuild/surface model but not present as a first-class current workflow.
Possible capability to review before committing to target scope.
- What is the minimum production implementation for each V1 area without cutting core capability?
- Which V1 capabilities can launch as admin-mediated workflows instead of full self-service UI?
- Which workflows require Stripe, Sanity, HubSpot/CRM, Supabase-only, or a new service boundary?
- What role/entitlement taxonomy supports all V1 surfaces without special cases?
- Which capabilities require audit logs and notification side effects on day one?
- Which current admin single-page workflows should become separate modules in the rebuild?
A capability may be deferred only if explicitly marked not-in-product after review. Otherwise, missing production capabilities are launch requirements.
All listed production capability areas are V1 scope. No phase-2 bucket for core production readiness.
2026-05-06T19:35:23.513Z
- Role/permission rules defined
- Lifecycle states defined
- Data model and ownership rules defined
- Validation and error states defined
- Admin/review path defined where needed
- Notification side effects defined where needed
- Audit/event logging defined for sensitive workflows
- Acceptance criteria are testable
V1 administration permissions should remain intentionally light because core site changes are handled by a small trusted team: Brett, Sarah, and Justin.
- Granular internal admin privilege tiers for Brett, Sarah, and Justin.
- Complex approval chains for core site administration.
| path | use when | required v1 controls |
|---|---|---|
| Custom HTML import | Landing pages or resources need a custom look beyond standard page templates. | - owner - status - preview - publish - rollback/archive - analytics hooks - SEO metadata |
| Sanity standard page creation | Standard site pages should be created from structured content and reusable page templates. | - template selection - required fields - preview - publish/schedule - archive - SEO metadata |
- Brett
- Sarah
- Justin
- Separate external/vendor/company/member permissions from internal admin simplicity.
- Server-side authorization for self-service actions and entitlements.
- Clear data ownership for content and records created outside the core admin team.
- Make publishing paths explicit and repeatable.
- Define ownership and lifecycle states for public content, member/vendor/company data, courses, surveys, events, jobs, and gated resources.
- Keep public-facing changes reviewable and recoverable without building heavy internal RBAC around the three-person admin team.
- Use audit/event logging for material public changes even when internal permissioning is simple.
| id | area | name | notes | status | target |
|---|---|---|---|---|---|
| SystemAuthorizeByRole | permissions | Authorize By Role | Current role checks exist client-side; target should move critical authorization server-side. | current | carry-forward |
| SystemAuthorizeByEntitlement | permissions | Authorize By Entitlement | Membership/course access checks exist but need unified entitlement model. | partial | carry-forward |
| SystemRecordPageView | analytics | Record Page View | Page-view tracking used for analytics/vendor portal. | current | carry-forward |
| SystemRecordResourceDownload | analytics | Record Resource Download | Downloads recorded in resource_downloads. | current | carry-forward |
| SystemRenderEmptyState | ux | Render Empty State | Current empty states exist but inconsistent; target design-system contract needed. | partial | carry-forward |
| SystemRenderErrorState | ux | Render Error State | Current error handling is page-specific. | partial | carry-forward |
| SystemRenderLoadingState | ux | Render Loading State | Current loading states exist but should be standardized. | partial | carry-forward |
- Permissioning is intentionally light for the three-person core admin team, but external self-service, entitlement checks, and public publishing paths still need explicit authorization, lifecycle, audit, and rollback behavior.
| id | name | v1 required | capabilities |
|---|---|---|---|
| surveys_assessments | Surveys And Assessments Platform | true | - Create Survey: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Update Survey: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Delete Survey: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Publish Survey: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Archive Survey: id: string, area: string, nam |
| forms_intake | Forms And Intake Builder | true | - Create Form: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Update Form: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Publish Form: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Submit Public Form: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Submit Member Form: id: string, area: string, |
| events_sponsorship | Events And Sponsorship Operations | true | - Create Event: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Update Event: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Publish Event: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Manage Event Speakers: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Manage Event Sponsors: id: string, area: |
| vendor_commercial | Vendor Commercial Lifecycle | true | - Purchase Vendor Membership: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Renew Vendor Membership: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Upgrade Vendor Membership: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Manage Vendor Billing: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Inv |
| editorial_workflow | Editorial And Content Workflow | true | - Create Article: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Edit Article: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Schedule Article: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Publish Article: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Archive Article: id: string, area: string |
| academy_certification | Academy Certification And Credentialing | true | - Create Certification: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Set Certification Requirements: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Issue Certificate: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - View Certificate: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Share Certifica |
| notifications | Notifications | true | - Send Email Notification: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Send In-App Notification: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Notify Claim Approved: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Notify Content Approved: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Notify |
| reporting_analytics | Reporting And Analytics | true | - View Platform Analytics: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - View Membership Analytics: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - View Content Analytics: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - View Academy Analytics: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - View V |
| crm_sales_ops | CRM And Sales Operations | true | - Create Lead: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Update Lead: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Assign Lead: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Track Opportunity: id: string, area: string, name: string, notes: string, status: string, target: string, surface: string, evidence: object - Convert Lead To Member: id: string, area: string |