Platform Areas 11
| Area | Status | Detail |
|---|---|---|
| Auth / Accounts | 80% | Supabase Auth, register/login/logout, roles, session. hCaptcha stubbed. |
| Database Schema | 90% | 9 tables, 15 indexes, RLS on all tables, feature flags |
| API Layer | 85% | 10 Edge Functions, SC_API client wrapper, 9 DB queries |
| Stripe Connect | 30% | All 3 functions written but fully mocked. Biggest blocker. |
| File Storage | 40% | Token + expiry in schema, download fn written, upload commented out |
| Designer Storefront | 20% | Backend exists. No UI page. Scope TBD. |
| Product Library | DONE | 20 products, filterable, SVG previews, configurator links |
| Landing Page | DONE | 693 lines, features, pricing, CTAs |
| Buyer Page | DONE | 326 lines, buyer flow, maker-matching placeholder |
| Nav System | DONE | Responsive, auth-aware, shared across all pages |
| Feature Flags | DONE | 8 flags, all disabled, admin override function |
6 Remaining Gaps
| # | Gap | Blocker | Owner |
|---|---|---|---|
| 1 | Stripe Connect — go live | Stripe account + keys needed | Dennis → CC |
| 2 | Storage pipeline | Supabase project needed | Dennis → CC |
| 3 | Designer storefront UI | Scope TBD | CC |
| 4 | Admin panel UI | Edge Function exists, no page | CC |
| 5 | Transactional emails | Email provider needed | Dennis → CC |
| 6 | Legal pages | Drafted. Review + refund decision needed. | Dennis |
Pricing Tiers TBD
| Source | Tier | Price | Notes |
|---|---|---|---|
| Master Spec | Emerging | $29/mo | View + PDF + credits |
| Master Spec | Surging | $79/mo | + DXF, SVG, Jig |
| Master Spec | Converging | $149/mo | + Per-sheet, Offcut, Publish |
| Code | design_and_go | Free | In the paddock |
| Code | emerging | $9.99/mo | First qualifying laps |
| Code | surging | $49.99/mo | Mid-field |
| Code | converging | $149.99/mo | Front of the field |
| Code | diverging | $399.99/mo | Running a team |
All
Done
Built
Stubbed
Todo
Edge Functions 10
| Function | Lines | Status | Detail | TODOs |
|---|---|---|---|---|
| register | 162 | STUB | Member signup, Auth user creation, members row | hCaptcha stubbed, no rollback on partial failure |
| upload-file | 381 | STUB | 7-point validation, originator role check | Storage upload commented out, integrity check, quota |
| list-file | 149 | BUILT | Transitions uploaded → listed | Post-listing hooks |
| create-checkout | 225 | STUB | Stripe Checkout + 10% platform fee | Checkout session fully mocked |
| stripe-webhook | 294 | STUB | checkout.completed + payment_failed | Sig verification UNSAFE, email stubbed, no transfers |
| stripe-onboarding | 179 | STUB | Connect account.updated | Sig verification stubbed |
| download | 192 | STUB | Token validation + signed URL redirect | Signed URL placeholder |
| resend-download | 223 | STUB | Fresh token + re-send email | Email stubbed, max 5 retries |
| verify-earning | 223 | STUB | Tax/W-9 + Stripe Connect Express | Account creation fully mocked |
| admin-overrides | 195 | BUILT | GET/PUT feature flags, admin-only | Audit trail, multi-admin |
Client JS 4 files, 519 lines
| File | Lines | Status | Key Functions |
|---|---|---|---|
| sc-config.js | 32 | DONE | initSupabase(), SC_CONFIG constants. Credentials are placeholders. |
| sc-auth.js | 162 | DONE | register, login, logout, isLoggedIn, getTier, hasRole, onAuthChange |
| sc-api.js | 215 | DONE | browseFiles, getFile, getMyFiles, getMyOrders, getMyPayouts, isFeatureEnabled |
| sc-nav.js | 106 | DONE | Responsive nav, auth-aware links, dark theme, tier badge |
HTML Pages 3 built + 5 needed
| Page | Lines | Status | Purpose |
|---|---|---|---|
| index.html | 693 | DONE | Landing page — features, pricing, CTAs |
| buyer.html | 326 | DONE | Buyer landing — non-woodworker flow |
| library.html | 535 | DONE | Product library — filterable cards, SVG previews |
| configurator_v2.html | — | SEPARATE | Cabinet configurator (developed in other chat) |
| dashboard.html | — | TODO | Designer file management + earnings |
| admin.html | — | TODO | Admin panel — flags, members, orders, moderation |
| terms.html | — | DRAFTED | Terms of Service |
| privacy.html | — | DRAFTED | Privacy Policy |
| refund.html | — | TBD | Refund Policy — 3 options drafted, decision pending |
Database Schema 9 tables
| Table | Edge Functions | Client JS |
|---|---|---|
| members | register, upload-file, stripe-onboarding, verify-earning, download, stripe-webhook | sc-auth (_loadMember) |
| member_roles | upload-file, stripe-onboarding | sc-auth (hasRole) |
| member_communities | — | — |
| files | upload-file, list-file, create-checkout, stripe-webhook, download, resend-download | sc-api (browseFiles, getFile, getFileFamily, getMyFiles) |
| file_community_tags | upload-file | sc-api (joined in browseFiles, getFile) |
| file_royalty_chain | upload-file, create-checkout, stripe-webhook | sc-api (joined in browseFiles, getFile) |
| orders | create-checkout, stripe-webhook, download, resend-download | sc-api (getMyOrders) |
| payouts | stripe-webhook | sc-api (getMyPayouts) |
| override_controls | register, upload-file, create-checkout, admin-overrides | sc-api (isFeatureEnabled, getAllOverrides) |
v6.8 Features (28 Built) Python 3 Script
| # | Feature | Status | Output Pin |
|---|---|---|---|
| 1 | Zone height cascade — top-down priority (Z1 locks, Z4 residual) | DONE | a1–a4 |
| 2 | Column width cascade — left-to-right (Col1 locks, last residual) | DONE | — |
| 3 | Per-zone independent column counts (1–4) | DONE | — |
| 4 | Per-zone per-column width cascade with divider deduction | DONE | — |
| 5 | Divider geometry — HasDivider toggle per boundary | DONE | a5 |
| 6 | Cabinet shell panels (top, bottom, left, right, back) | DONE | a5 |
| 7 | Toe kick with notched end panels — multi-box | DONE | a5 |
| 8 | Front/back/rear stretchers (nailers) | DONE | a9 |
| 9 | CompType system: 0=Off, 1=Drawer, 2=Door, 3=Open | DONE | — |
| 10 | Per-column door fronts (H overlay, V/H reveal) | DONE | a6 |
| 11 | Per-column drawer fronts (graduated ratios) | DONE | a6 |
| 12 | Face frame: off/outer/full modes, 4-level tiered widths | DONE | a7 |
| 13 | Back panel rabbets on all four edges | DONE | a5 |
| 14 | Toe kick notches on end panels | DONE | a5 |
| 15 | Joinery type: butt joint vs. dado | DONE | — |
| 16 | Zone-boundary shelves with HasShelf toggle | DONE | a5 |
| 17 | Shelf pin holes — 32mm system Point3d geometry | DONE | a12 |
| 18 | CNC cut geometry separate output | DONE | a8 |
| 19 | ProjectType gating (0–6) — boolean flags | DONE | — |
| 20 | Distribution modes: Equal, Fibonacci, Golden Ratio, Custom | DONE | — |
| 21 | Distribution direction toggles + Strength slider | DONE | — |
| 22 | JSON input mode (InputMode=1) — reads .pif file | DONE | — |
| 23 | Realistic color mode toggle | DONE | a1–a4 |
| 24 | Material preset menu (Maple, Walnut, etc.) | DONE | a1–a4 |
| 25 | Exploded view mode | DONE | — |
| 26 | Unit mode toggle | DONE | — |
| 27 | Drawer boxes | DONE | a10 |
| 28 | CNC geometry output | DONE | a11 |
WIP / Next Session v7.0
| Priority | Feature | Status | Notes |
|---|---|---|---|
| 1 | DXF export — per-panel DXF for Aspire/ShopSabre | WIP | Feature #6 on build plan. Pass 1 started in v6.8. |
| 2 | JSON mode full verification | WIP | InputMode=1 dimension-change test interrupted in v6.4 |
| 3 | JSON schema v2.4 verification | TODO | 101+ parameters, naming convention locked |
GH Files
| File | Status | Objects | Notes |
|---|---|---|---|
| PIF_ZoneStack_Python_v6.8.gh | CURRENT | 168 | 28 features, 112 sliders, 12 outputs |
| PIF_CabinetGen_v2.1_v24AD.gh | REFERENCE | 1,401 | Archive — Telepathy/slider GUID source |
| PIF_ZoneStack_Test_v4P.gh | ARCHIVE | ~200 | Canvas proof of concept |
Phase A — Accounts & Keys (~75 min Dennis)0/7
- Create hosted Supabase project — get URL + anon key + service role keyDennis
- Create Stripe account + enable Connect — get 4 keysDennis
- Create email provider account (Resend recommended) — get API key + verify domainDennis
- Create hCaptcha account — get site key + secretDennis
- Create Netlify accountDennis
- Lock pricing tiers — reconcile Master Spec vs codeDennis
- Lock refund policyDennis
Phase B — Backend Go-Live (CC)0/11
- Run migrations on hosted Supabase (001, 002, 003)CC
- Set all environment variables / Edge Function secretsCC
- Replace Stripe stubs with real API calls (5 functions)CC
- Implement webhook signature verification (2 functions)CC
- Uncomment storage upload + implement signed URLsCC
- Implement hCaptcha verification in registerCC
- Add auth user rollback on partial registration failureCC
- Implement file integrity check in upload-fileCC
- Implement storage quota enforcement in upload-fileCC
- Complete payment_failed handler in stripe-webhookCC
- Create 24-hour purge cron (migration 004)CC
Phase C — Frontend Pages (CC + Claude)0/6
- Build designer dashboard page (dashboard.html)CC
- Build admin panel page (admin.html)CC
- Create legal pages (terms, privacy, refund) — Claude drafts, Dennis reviewsClaude
- Add legal page links to sc-nav.js footerCC
- Update sc-config.js with production Supabase credentialsCC
- Update sc-config.js with production Stripe publishable keyCC
Phase D — Deploy & Test0/4
- Push code to GitHub + connect to Netlify for auto-deployDennis
- Configure custom domain (selection-connection.com)Dennis
- Test full flow in Stripe test mode (register → purchase → download)Dennis
- Swap Stripe test keys for live + enable feature flags + launchDennis
Selection-Connection/ (top level)
▸ HTML Pages
html index.html 693 lines
html buyer.html 326 lines
html library.html 535 lines
html configurator.html v1
html configurator_v2.html v2 current
html lamiform.html —
▸ JSON Data
json StandardProducts.json 425 lines
json ChassisPresets.json —
json LamiFormParts.json —
▸ js/ (4 files, 519 lines)
js sc-config.js 32 lines
js sc-auth.js 162 lines
js sc-api.js 215 lines
js sc-nav.js 106 lines
▸ supabase/ (14 files, 2,600 lines)
toml config.toml 32 lines
sql migrations/001_initial_schema.sql 188 lines
sql migrations/002_seed_overrides.sql 13 lines
sql migrations/003_rls_policies.sql 145 lines
ts functions/register/index.ts 162 lines
ts functions/upload-file/index.ts 381 lines
ts functions/list-file/index.ts 149 lines
ts functions/create-checkout/index.ts 225 lines
ts functions/stripe-webhook/index.ts 294 lines
ts functions/stripe-onboarding/index.ts 179 lines
ts functions/download/index.ts 192 lines
ts functions/resend-download/index.ts 223 lines
ts functions/verify-earning/index.ts 223 lines
ts functions/admin-overrides/index.ts 195 lines
▸ docs/ — Session Handoffs (13)
▸ docs/ — Specs & Strategy (8)
▸ docs/ — This Session (5)
docx SC_Platform_Spec_v1.0.docx 22,706 bytes
docx PIF_SC_Master_Spec_v1.1.docx 16,882 bytes
docx SC_Legal_Pages_DRAFT.docx 14,467 bytes
docx Supabase_Setup_Walkthrough.docx 13,193 bytes
docx Stripe_Setup_Walkthrough.docx 16,856 bytes
▸ docs/plans/ (13 files)