Experiment Hub

Completed

Experimentation scaffold for founders.

Why this matters

I'm a neurodiverse designer and founder. My best ideas come fast and from everywhere. I need a lightweight scafoold to support developing them with rigor and pursue the strongest ones with focus.

Hypothesis

I want a tool lightweight enough to get started fast, but structured enough to keep going.

Exec Summary

Experiment Hub is a structured ecosystem of agents, skills, spec-based development, and design system that allow me to discover, evaluate, build, and test business ideas.

History
  1. Mar 2026
    Added a Claude Code session-start hook for web environments. receipt ↗
  2. Mar 2026
    Fixed workflow matrix cell rendering in the experiments table. receipt ↗
  3. Mar 2026
    Added BHD Labs intro copy to the home page. receipt ↗
  4. Mar 2026
    Codebase explainer session. receipt ↗
  5. Mar 2026
    Consolidated the project branch. receipt ↗
  6. Mar 2026
    Added the Landing Page stage to the workflow state machine and shared the cell component. receipt ↗
  7. Mar 2026
    Added 33 tests for the MarkdownContent component. receipt ↗
  8. Mar 2026
    Improved SOM parsing accuracy and surfaced the Year 1/2/3 breakdown. receipt ↗
  9. Mar 2026
    Improved the SOM calculations. receipt ↗
  10. Mar 2026
    Added the market-research validator and revised the TAM methodology. receipt ↗
  11. Mar 2026
    Design consistency: score tokens, extracted components, validation. receipt ↗
  12. Mar 2026
    Improved responsive padding on large screens. receipt ↗
  13. Mar 2026
    Added security headers and improved metadata configuration. receipt ↗
  14. Mar 2026
    Hub codebase review session. receipt ↗
  15. Mar 2026
    Hub codebase review, part 2. receipt ↗
  16. Mar 2026
    Tested the OpenAI API connection. receipt ↗
  17. Mar 2026
    Added rate limiter tests. receipt ↗
  18. Mar 2026
    Reorganized the test structure. receipt ↗
  19. Mar 2026
    Removed the section boxes. receipt ↗
  20. Mar 2026
    Synced color tokens and the front page with the Figma redesign. receipt ↗
  21. Mar 2026
    Progress review session. receipt ↗
  22. Mar 2026
    Aligned the UI with the Figma design: green palette, sections, nav, footer. receipt ↗
  23. Mar 2026
    Published the app from Replit. receipt ↗
  24. Mar 2026
    Added @types/jsdom to resolve the TypeScript TS7016 error. receipt ↗
  25. Mar 2026
    Rewrote the README as the BHD Labs project overview. receipt ↗
  26. Mar 2026
    Added vitest.live.config.ts so live tests aren't blocked by the exclude pattern. receipt ↗
  27. Mar 2026
    Improved the architecture diagram layout. receipt ↗
  28. Mar 2026
    Gated prototype APIs behind ADMIN_SECRET and fixed vulnerable dependencies. receipt ↗
  29. Mar 2026
    Added a unit-test job and live Supabase integration test to CI. receipt ↗
  30. Mar 2026
    Lazy-init the Supabase client so live tests don't crash without env vars. receipt ↗
  31. Mar 2026
    Security gating follow-through; removed binary assets. receipt ↗
  32. Mar 2026
    Replaced Notion with Supabase for the experiment waitlist. receipt ↗
  33. Apr 2026
    Documented the sitemap capture workflow. receipt ↗
  34. Apr 2026
    Two-layer plugin architecture for the Figma MCP integration. receipt ↗
  35. Apr 2026
    Added the screenshot sitemap capture workflow. receipt ↗
  36. Apr 2026
    Migrated to the plugin-based two-layer Figma architecture (docs). receipt ↗
  37. Apr 2026
    Backfilled unit tests across workflow states, Supabase, landing submit, and prototype routes. receipt ↗
  38. Apr 2026
    Experiment hub build session. receipt ↗
  39. Apr 2026
    Defined responsive breakpoints for the hub shell (mobile + tablet). receipt ↗
  40. Apr 2026
    Template simplification follow-through. receipt ↗
  41. Apr 2026
    Fixed three small TODOs across packet flow and hooks. receipt ↗
  42. Apr 2026
    Removed the landing page tab from experiment details. receipt ↗
  43. Apr 2026
    Simplified experiment templates, added learnings, consolidated to one view. receipt ↗
  44. Apr 2026
    Process guardrail: the stop hook now blocks until an open PR exists for feature branches. receipt ↗
  45. Apr 2026
    Review pass on recent changes. receipt ↗
  46. Apr 2026
    Added the experiment type field and branched the market-research agent by type. receipt ↗
  47. Apr 2026
    Matched typography to the Figma spec for experiment PRD and research sections. receipt ↗
  48. Apr 2026
    Instrumented the hub with GA4. receipt ↗
  49. Apr 2026
    Ignored the Obsidian vault directory. receipt ↗
  50. Apr 2026
    Added the nextjs-api-routes convention rule. receipt ↗
  51. Apr 2026
    Added the vitest-conventions rule. receipt ↗
  52. Apr 2026
    Added the component-conventions rule with Figma references. receipt ↗
  53. Apr 2026
    Hub PRD updated to v1.1 with optional features. receipt ↗
  54. Apr 2026
    Notebook eval harness and personal hub entry. receipt ↗
  55. Apr 2026
    Added edit-mode auth tests for middleware and the content API route. receipt ↗
  56. Apr 2026
    Markdown tables now render as HTML tables. receipt ↗
  57. Apr 2026
    PRD session for the hub. receipt ↗
  58. Apr 2026
    Added the sitemap skill to .claude/skills. receipt ↗
  59. Apr 2026
    Business Case + PRD tabs with in-browser editing. receipt ↗
  60. Apr 2026
    Cleaned session artifacts out of the experiment folders. receipt ↗
  61. Apr 2026
    Fixed the PRD edit textarea that was always empty. receipt ↗
  62. Apr 2026
    Used the URL slug as the Supabase key so saves persist on refresh. receipt ↗
  63. Apr 2026
    Added pnpm workspaces, Turborepo, and the shared-packages foundation. receipt ↗
  64. Apr 2026
    Added the business-case writer service and tightened hub skills. receipt ↗
  65. Apr 2026
    Lean PRD outcomes, tool experiment cases, hub sync. receipt ↗
  66. Apr 2026
    Untracked the ephemeral .claude/skills copies. receipt ↗
  67. May 2026
    Session skills identified and inventoried. receipt ↗
  68. May 2026
    Removed the Learnings sidebar from the experiment detail layout. receipt ↗
  69. May 2026
    Adopted OpenSpec spec-driven development: specs, change archive, opsx commands — the operating system for everything after. receipt ↗
  70. May 2026
    Permissions chore for smoother agent sessions. receipt ↗
  71. May 2026
    Aligned Cursor and Claude hook config for cloud agents. receipt ↗
  72. May 2026
    experiment-hub-lite default schema + photo filters banner studio. receipt ↗
  73. May 2026
    Artifact links and opsx skill single-source-of-truth. receipt ↗
  74. May 2026
    OpenSpec apply now ends in a commit and PR. receipt ↗
  75. May 2026
    Refined cursor rules and markdown editing. receipt ↗
  76. May 2026
    Design guidelines now prefer shadcn. receipt ↗
  77. May 2026
    Archived merged changes and synced specs. receipt ↗
  78. May 2026
    Right-aligned the home hero info columns. receipt ↗
  79. May 2026
    BHD phase tabs on the experiment detail page. receipt ↗
  80. May 2026
    Added the issue-triage skill (P0–P4 rubric). receipt ↗
  81. Jun 2026
    Added a PR template with an explicit Closes section. receipt ↗
  82. Jun 2026
    Hooks now block pushes to branches with an already-merged PR. receipt ↗
  83. Jun 2026
    Added token-efficiency guidance to the principles. receipt ↗
  84. Jun 2026
    Codified verify-before-done, root-cause, and secrets-in-config rules with a solo reframe. receipt ↗
  85. Jun 2026
    Fixed footer/nav for logged-in users and added the unresolved-thread gate. receipt ↗
  86. Jun 2026
    Landing submissions use the publishable key; dropped the service-role dependency. receipt ↗
  87. Jun 2026
    Added analytics opt-out support. receipt ↗
  88. Jun 2026
    Added per-experiment notes with a Supabase backend. receipt ↗
  89. Jun 2026
    Migrated experiment data to Supabase with Notes and PR sections. receipt ↗
  90. Jun 2026
    Strengthened Copilot review rules across six gap areas. receipt ↗
  91. Jun 2026
    Added the notes table migration. receipt ↗
  92. Jun 2026
    Fixed the PRD edit tab showing business case content. receipt ↗
  93. Jun 2026
    Synced photo-filters-banner and snap-issue into the experiments JSON. receipt ↗
  94. Jun 2026
    Drafted GitHub Copilot review instructions to complement Claude/Cursor rules. receipt ↗
  95. Jun 2026
    Proper admin area with login form and experiment dashboard. receipt ↗
  96. Jun 2026
    Discovery tab full doc render + PR sync query encoding fix. receipt ↗
  97. Jun 2026
    Symlinked .claude/commands so opsx slash commands work in Claude Code. receipt ↗
  98. Jun 2026
    Discovery, Business Case, PRD tabs — always visible. receipt ↗
  99. Jul 2026
    Constrained experiment-detail content to max-w-screen-xl on wide viewports. receipt ↗
  100. Jul 2026
    Admin surfaces save errors; added error handling to the status PATCH route. receipt ↗
  101. Jul 2026
    Admin falls back to the service-role key for Supabase reads. receipt ↗
  102. Jul 2026
    Wired the GitHub Packages registry and session npm auth for MVDS. receipt ↗
  103. Jul 2026
    Linked-repos backend: external repo tracking, graduation, hub-as-proxy. receipt ↗
  104. Jul 2026
    Supabase build-failure assessment and Postgres upgrade plan. receipt ↗
  105. Jul 2026
    The hub writes experiment edits back to Notion when configured. receipt ↗
  106. Jul 2026
    Resolved the dynamic route conflict crashing admin login (504). receipt ↗
  107. Jul 2026
    The hub reads experiments from the Notion database. receipt ↗
  108. Jul 2026
    Key-value field list on the experiment detail page. receipt ↗
  109. Jul 2026
    Dropped the invalid pull_request_review_thread trigger causing failed push runs. receipt ↗
  110. Jul 2026
    Consolidated the seed organizer into the pnpm workspace on Next 16. receipt ↗
  111. Jul 2026
    Adapted the Notion adapter to the renamed database schema. receipt ↗
  112. Jul 2026
    CI and Vercel skip unaffected builds per path. receipt ↗
  113. Jul 2026
    Rule: open PRs ready-for-review with a Copilot review loop. receipt ↗
  114. Jul 2026
    Removed unused experiment detail tab helpers. receipt ↗
  115. Jul 2026
    Admin cookie guards fail closed when ADMIN_SECRET is unset. receipt ↗
  116. Jul 2026
    The hub moved onto its own design system: Tailwind v4 + native MVDS consumption. receipt ↗
  117. Jul 2026
    Codified the 2026-07-17 process learnings into the scaffold. receipt ↗
  118. Jul 2026
    Labs hub improvements from the investor review. receipt ↗
  119. Jul 2026
    Repointed .cursor/rules links to tracked rules/ paths. receipt ↗
  120. Jul 2026
    tell-the-story spec + design merged (approved 02.1 Figma). receipt ↗
  121. Jul 2026
    OpenSpec apply PRs open ready-for-review, not draft. receipt ↗
  122. Jul 2026
    ExperimentTypeBadge renders the Commercial badge for commercial type. receipt ↗
  123. Jul 2026
    Deploy hub only on app changes; stopped behind-the-scenes deploys. receipt ↗
  124. Jul 2026
    Stopped hardcoding the cursor/ branch prefix. receipt ↗
  125. Jul 2026
    Archived stop-the-leaks and synced the public-content-gate spec. receipt ↗
  126. Jul 2026
    Stop the leaks: curated public experiment pages (allowlist, private-by-default). receipt ↗
  127. Jul 2026
    tell-the-story tasks: resolved the Notion storage shape. receipt ↗
  128. Jul 2026
    Removed the /workflow page; redirects to home. receipt ↗
  129. Jul 2026
    Proposed remove-workflow-page: drop /workflow from the hub app. receipt ↗
  130. Jul 2026
    Folded BDE exemplar evidence into the tell-the-story tasks. receipt ↗
  131. Jul 2026
    Archived remove-workflow-page and synced the spec. receipt ↗
  132. Jul 2026
    Experiment-history read adapter + History band on the detail page. receipt ↗
  133. Jul 2026
    Promoted the 2026-07-21 process learnings into the scaffold. receipt ↗
  134. Jul 2026
    Receipt links on History entries + tasks.md status. receipt ↗
  135. Jul 2026
    History accumulation slice: draft generator, insert-only writer, monthly Action. receipt ↗
  136. Jul 2026
    Notion AI cleaned up the Labs History feed: added taxonomy options, mapped PR milestones to experiments, and documented the curation pass.

    Reviewed the BHD Labs History Feed view and corrected the taxonomy for generated history milestones.

    Outcome: the history feed is now easier to group and scan by experiment, and PR-derived milestones are distinguished from generic notes or commits.