Anything you change in one place propagates everywhere it should — and nowhere it shouldn't. Eight-step protocol below. The cascade matrix catches downstream impact. The verification checklist proves it landed.
Run this top to bottom every time. Skip nothing. The protocol exists because every change has more downstream impact than feels intuitive.
The cascade matrix (further down this page) maps "if X changes, then Y must change too". Walking it is how you avoid the classic failure mode — updating the spec but forgetting the runbook, or updating the runbook but forgetting the investor narrative.
Output: a write list of every doc, system, scenario, schema, and external surface that needs touching.
BA-Whatever-Architecture-v1.2.html.2026-05-31 in filename when the version of record changes.Master-Algorithm-Design-Doc change ledger.-completed, archive into Archive/. Never overwrite.Archive/ subfolder within the same topic directory. No deletes, ever.Order of operation always: specification → implementation → operations → narrative → evidence. Updating downstream artifacts before the spec is the bug pattern that produces silent drift.
Examples:
ba-database-schema.sql before migration scripts, RLS policies, Worker endpoints.project_unit_economics_tiered_pricing memory before pro forma, investor deck, or sales materials.01-SCRIPTS/ using python3. Never manual entry unless the API can't do it.The order here protects IP layer separation. Under V2 canon, IP layers are resolved against the kb_ip_layers lookup in Supabase — a four-tier model that replaces the prior L1-L3 SmartSuite-internal model:
kb_* tables) and in Worker code — not in SmartSuite tasks/planners, which are mirror-only under V2.Use the verification checklist below. Anything unchecked is a half-finished change. Half-finished changes are the source of drift.
The 8 most common triggers and their typical cascade. If you can name the trigger, you can predict the impact surface.
ba-database-schema.sql → migration SQL → Worker endpoints → Worker handler TypeScript types → seed scripts → sync scripts → BETA Architecture HTML §6 → dashboard runbookRead across each row. "Must" means a change in the row's trigger forces a change in that column. "Maybe" means review-required. Empty means no propagation needed.
| Doc type | Versioning scheme | Example filename | When to bump |
|---|---|---|---|
| Architecture doc | Semver (MAJOR.MINOR.PATCH) | BA-Platform-Migration-Architecture-v1.0.html |
MAJOR = breaking · MINOR = additive · PATCH = clarification |
| Sprint plan | Date-anchored | Dashboard-Sprint-Week-Jun1-Jun7.md |
New week = new file. Prior moves to Archive/ |
| Strategy / narrative | Date stamp on rename | BA-Strategic-Workstream-Cross-Walk-v2.0.html |
When voice or framing materially shifts |
| Algorithm / IP | Semver + change ledger | Master-Algorithm-Design-Doc-v3.0.docx |
Any variable, weight, threshold, composition change |
| Investor doc | Date + content version | BA-Investor-Memo-v3-May30.html |
Any material change to thesis, capital plan, or projections |
| Code (Worker, scripts) | Semver in source comments | lesri.ts // v1.2 |
Standard semver. Tag deployments. |
| SmartSuite schema | Field slug catalog dated | reference_smartsuite_field_slugs |
Any add/rename/delete of fields. Update memory file. |
| Memory entries | Update in place + date in body if material | project_lesri_phase1_plan.md |
Continuously. Add date when status changes materially. |
For every change, run through this. Check off as you confirm. Persists in this browser.
If a change introduces drift, breaks production, or violates IP compartmentalization, follow this protocol in order.
Stop. Do not propagate further. If the change is mid-cascade, pause Make.com scenarios that would touch the affected layer. Disable the affected Worker route if necessary.
Copy the archived predecessor back to its canonical location with a -restored-YYYYMMDD suffix. Do not overwrite the failed new version — archive that too with a -failed-YYYYMMDD suffix. Both versions coexist for forensic review.
End-to-end (V2): assessment intake → LESRI Worker compute → Supabase row write → trigger-driven SmartSuite mirror (F.32) → dashboard read → Worker prescription endpoint output. Verify on Justin Wallace test record first, then any other BETA athletes.
Write a feedback memory entry naming what failed, why it failed, and the rule going forward. Failure is data; it makes the methodology better.
| Audience | When to notify | Channel | Voice |
|---|---|---|---|
| Internal (Claude memory) | Every change | MEMORY.md entry | Terse fact. Why. How to apply. |
| Sunhae / Justin (BETA athletes) | Methodology or dashboard change that affects their view | iMessage + dashboard banner | Positive, aspirational, commitment-forward. Crawl-walk-run framing. |
| Investors | Material change to thesis, capital plan, projections, IP, or operating model | Email + updated investor memo | Confident, data-led, pragmatic. Lead with the why. |
| Schools / Clubs | Pricing, methodology, or service change affecting their pilot | Email + updated partner deck | Prevention-first. Outcomes language. No vendor brand mentions. |
| Franchisees (future) | Any change to franchise economics, brand standards, or operating system | Operator handbook update + email | System-led. Operator-owner voice. |
| Public / marketing | Only after all L2/L3/L4 propagation verified | Public site + social | L1 only. Generic functional description. No methodology detail. |
| Trademark attorney (Courtney Thornton) | New mark filing, audience change for an existing mark, or material brand evolution | Email with action item list | Action-item-led. Reference IP doc inventory. |
These never change. They are the constraints inside which all updates happen.
Every superseded file moves to Archive/ within the same topic directory. No rm. No delete tool calls on user files. This is non-negotiable.
If a change will affect more than one canonical doc, prompt the user before executing. Show the cascade. Confirm scope.
Always index, audit, and search the directory before any brand, messaging, architecture, or strategy work. Never work from assumption.
Algorithm weights, thresholds, and composition functions stay compartmentalized inside Worker code and the kb_ip_layers = 'trade_secret' rows. No external doc. No client-facing surface. No public site. Ever.
Client comms: positive/aspirational/commitment-forward. Investor: confident/data-led. No silence/exit/financial-pressure framing. No emojis. Avenir Next throughout.
Never fabricate alternate credentials. SmartSuite has one token/account-id pair. Supabase has one key. Use what is in the reference memories.
kb_ip_layers; SmartSuite reframed as operational mirror throughout.