HMM Clinic is a practitioner-led lab assessment product at $1,197, delivered by Maria rather than Jes, designed to add revenue without adding Jes's hours. Maria proposed it and built most of it. It is close to shippable and blocked on one thing.
The client agreement's AI section represents that client data is processed on company-controlled infrastructure and never sent to third-party AI products. That is currently false. Today Jes pastes redacted client lab data into a general-purpose Claude project. Shawn's decision on 2026-08-11: build the local pipeline first, do not launch without it.
What is safe to do while paused
- The questionnaire content changes, which are portable to any form builder
- Adding the four new markers to
biomarkers.json - Attorney review of the client agreement, once the AI section's sequencing is confirmed
- Maria's DHA conversation about bundling the added markers
What is settled and should not be relitigated. Panel, price, name, scope, delivery model.
Open → 02MoneyUnit economics, everyone's compensation, competitor pricing, the hours problem.
Open → 03The pipelineHow intake and labs get weighted against each other. Two thirds of it already exists.
Open → 04Assets and linksEvery Notion page, Canva design, source PDF, code path and deployed doc. Start here to avoid re-finding things.
Open → 05Open questionsNine unresolved items, who owns each, and which ones block what.
Open → 06InfrastructureWhere n8n, Ollama and the lab pipeline run, plus what changed on the NAS today.
Open →Decisions locked
All settled on or before 2026-08-11. Treat as decided unless Shawn reopens them.
| Decision | Detail |
|---|---|
| One panel, blood only | DHA Laboratories PMDD Comprehensive plus four added markers: Insulin, GlycoMark, TPO Ab, Thyroglobulin Ab. No HTMA, no GI map, no DUTCH. Reason: nothing to mail, any practitioner can order it, and it keeps HTMA/GI/DUTCH as Jes's premium differentiator. |
| Price | $1,197 all-in, bundled. Not $897 plus labs; that was considered and rejected because a single panel removes the adverse-selection problem that unbundling was solving. |
| Name | Keeps "Mood" in the title. Marketing stays cycle and mood focused. Do NOT market it as broad women's health. Shawn's argument, accepted in the meeting: HMM is the PMDD brand and that is the only door with traffic. |
| Delivery model | No live calls, ever. Recorded findings video (10 to 20 min), root cause summary, PDF protocol, supplement recommendations via Fullscript, nutrition and lifestyle guide, educational resources, personalized habit tracker. Follow-up message at day 7. ONE round of clarification questions within 14 days, limited to clarifying existing recommendations. |
| Eligibility | United States only, EXCLUDING New York State (lab restriction). No international. No HTMA fallback for excluded clients; that was considered and rejected as over-complicating launch. |
| Checkout | Stripe. HMM is moving off Kajabi. Settles Section 2 of the client agreement. |
| Document rendering | Generated locally, as a second document type in ~/hmm-lab-report/generate_report.py. Canva autofill was considered and rejected: the template is not fieldable, and autofill would send client health data to Canva. Maria's Canva template is now the design brief, not infrastructure. |
| Practice Better | Being replaced entirely with an HMM-built UI on Supabase, data local on the NAS. Decided 2026-08-11, being designed in a separate session. |
| Habit tracker | Built in-house, not Maria's Netlify version. Must share schema and backend with the HMM app's daily homepage check-in so it is not built twice. Cap generated habits at five to seven. |
| Pilot volume | 4 per month in the written proposal. Maria says 8 per month is comfortable. Nobody expects to hit either at launch. |
| Launch order | Local pipeline before launch. Not negotiable per Shawn. |
Considered and rejected, do not re-propose
- $897 plus labs at cost. Client would pay $1,222, more than the bundle, for a less certain price.
- A menu of four panels. Flat price with client choice means everyone picks the most expensive one, and a woman who does not know why she feels terrible cannot choose between a DUTCH and a GI map anyway.
- A $1,697 DUTCH-inclusive tier. Superseded by the single-panel decision.
- Broad women's health positioning. Fertility, ADHD, perimenopause as marketing categories. Rejected in the meeting; note the sales page draft still contains this language and needs editing.
Money
Unit economics at $1,197
| Line | Amount | Note |
|---|---|---|
| Revenue | $1,197 | All-in, one charge |
| Lab (DHA) | $344 | Comprehensive plus the 4 added markers. Maria to ask DHA about a bundled rate. |
| Practitioner | $300 | Maria's own number. Covers the whole clinic job end to end INCLUDING the build. She did not ask to be paid separately for building it. |
| Izzy commission | ~$119 | 10%. Which base, and refund clawback, both unresolved. |
| Card processing | ~$35 | Stripe 2.9% + 30c. Not returned on refunds. |
| HMM margin | ~$400 | Intended to fund promotion, so the division is roughly break-even by design at pilot scale. |
Compensation structure, settled
- Maria, $300 per assessment. All-in, her figure, covers the build.
- Maria, hourly increase from $25 to $32. This is for assistant work, content, and PMDD Rehab course production. Entirely separate from the clinic. It was NOT a request for system-owner compensation; that was an early misreading.
- Maria, 10% of clinic profit. Critically, on EVERY assessment the clinic delivers, not only the ones she personally works. If it only paid on her own clients the incentive runs backwards and she loses income by training anyone. Roughly $40 per assessment.
- Izzy, 10%. Base and clawback unresolved.
The hours problem, which is the real constraint
Maria's own breakdown, given unprompted in the meeting:
| Stage | Time |
|---|---|
| Order labs from intake | 10 minutes |
| Interpret labs against intake | 2 to 3 hours, the bottleneck |
| Record the findings video | 1 to 2 hours for the first few |
| Build the protocol | 1 to 2 hours |
| Total | 4 hours best case, 9 worst |
At $300 that is $33 to $75 an hour. Shawn's target, stated in the meeting: get it to a four-hour job. Jes independently reports her own lab reviews take about 3 hours even with Claude helping.
Competitor pricing, gathered live in the meeting
| Who | Price | For |
|---|---|---|
| Cambria (NTP, large following) | $2,000+ | Blood labs, written protocol only |
| Laura Lyons | $777 | Gut clarity test plus foundational bloodwork |
| A "Maria" brand | $700 to $800 | DUTCH, video, protocol, 3 months community. Jes and Shawn both read this as a subscription loss leader, since a DUTCH alone costs the practitioner ~$400. |
| Amanda Montaldo | $200 | HTMA review only, outsourced, client buys the HTMA separately |
Other lab costs on file
GI map $350 · blood panel $265 · DUTCH + saliva cortisol $410 · HTMA $60 · clinic panel (comprehensive + 4 markers) $344
The pipeline
Full design at hmm-clinic-pipeline.pages.dev. Summary here so this document stands alone.
The two design rules that matter
Keep the two inputs blind to each other until stage 2. Hand a model labs and symptoms together and it rationalises, finding a story that fits regardless of evidence. Extracting each side independently makes the convergence at stage 2 real information.
Rules pick the priorities, the model writes the prose. Scoring must be deterministic: reproducible, auditable, correctable, and incapable of inventing a finding. A model asked to rank priorities produces a plausible list that varies run to run and cannot be fixed durably.
body_systems.py and health_concerns.py score 35 categories against a blood panel: 11 body systems including Thyroid Function with TPO and Thyroglobulin already mapped, plus Adrenal, Inflammation, 7 nutrient-status groups, and 16 patient-facing health concerns whose copy is already written in wellness-coach scope. _score_system() returns a 0-100 score, a likelihood band, markers found and missing, and a direction arrow per marker. That is the evidence trail the design needs, already emitted.What is genuinely new
- An intake extractor, questionnaire to structured JSON, with the typical-day walkthrough as its own pass. Biggest new piece.
- An intake scorer mirroring
_score_system()so both halves emit the same shape. - The convergence step plus a reduction from 35 scored categories down to the five a client reads.
- A practitioner review gate, built BEFORE any generation.
Scoring shape
priority_score = lab_signal + intake_signal + convergence_bonus
lab_signal = weighted sum of that priority's markers by deviation
intake_signal = weighted sum of symptom fields by severity
convergence = large bonus when BOTH sides fire
divergence = flag for practitioner attention, NOT a score penalty
Nervous system, sleep and lifestyle score from intake only. No blood marker reaches them, which is exactly why the questionnaire fixes matter.
Gotchas already found
- GlycoMark reads backwards. Low indicates postprandial glucose excursions, so its deviation logic is inverted relative to nearly every other marker. Encode explicitly.
cycle_dependentalready exists as a zone in the scoring model, so the machinery for cycle-varying markers is built and currently fed nothing. Capturing cycle day at draw activates it.- Several strong signals are ratios, not single markers: triglyceride to HDL, percent transferrin saturation, free T3 to reverse T3, sodium to potassium, neutrophil to lymphocyte. Compute at extraction time.
Questionnaire changes, ready to apply
Full detail at hmm-clinic-questionnaire.pages.dev. Fifteen edits: 8 free-text fields converted to scales, 6 new questions, 1 structural. These are portable to any form builder, so they survive the Practice Better replacement.
The important one: the form never asks about mood in a structured, comparable way, on a product named the Mood Root Cause Assessment. Also missing: temperature intolerance, hair/skin/nail changes, dizziness on standing, cycle-timed headaches.
Assets and links
Notion, HMM workspace
The Notion MCP connector is the HMM tenant. There is no RVFD Notion. No delete tool exists on the connector. Note: get-teams reports a single teamspace named "Remove", which is worth a human look since it holds live business pages.
| Page | URL |
|---|---|
| Clinic (parent) | 3803fcb0fc698099ab02cc81cb4ae939 |
| HMM Clinic Proposal | 3803fcb0fc6980dfbe86f3dca274533f |
| Sales Page Draft | 3803fcb0fc698004a5a5ce783701e4f4 |
| HMM Clinic SOP | 3a73fcb0fc6980169ed1f7f00ab7cc98 |
| Root Cause Assessment Includes | 3ad3fcb0fc698023a485f9dd58333791 |
| Personalize Checklist (child of above) | 3ad3fcb0fc6980019703c25e3d10cdf3 |
| Programs & Offerings (parent) | 2f63fcb0fc6980438683ec83aee38aa5 |
| Client & Product Fulfillment | 2f43fcb0fc69803f9783f7c0649248f5 |
| HMM HQ | 2f43fcb0fc6980f2ba12cbac78acc5b8 |
| Her Mood Mentor Business Hub (root) | b519750958684f5783800cbdd62731bc |
| PMDD Rehab Course Revamp | 34f3fcb0fc6981bdb485fc8e849d8871 |
| Sales Process | 2f53fcb0fc69804581e5f0fb9a50e03b |
| Business Links | 2f53fcb0fc6980fc9920d454b8141472 |
| Maria | 2f63fcb0fc69818084e8f75b637326ca |
Canva, HMM account
| Design | ID | Edit / View |
|---|---|---|
| HMM Clinic Protocol Template 8 pages. The design brief for the local renderer. | DAHQymYytO8 | edit · view |
| Practice Better Protocol Template Headers 21 pages | DAHFij0ZCQ4 | edit · view |
| HMM Client Flowchart | DAG6Spk49-0 | edit · view |
| Head of Sales Agreement contract precedent | DAGv6rCRyos | edit · view |
| NDA | DAGv6g_Fx_I | edit · view |
| Non Compete | DAGv6t9VBko | edit · view |
Brand kits: Her Mood Mentor Brand Kit kAEcJRD4pHk, and WSH kAF7HwY0EgM.
Protocol template structure, 8 pages
Read once so the renderer does not have to re-derive it: (1) macro targets with a reason under each, plus building your plate, (2) small sustainable changes, (3) day of eating example with sample meal macros, (4) your next six months, phased month by month, (5) training plan Monday through Sunday plus workout resources, (6 and 7) good mood foods as food-group tiles each with a why, (8) nervous system support split into building safety, building resilience, and regulation techniques.
Source documents on disk
| File | What it is |
|---|---|
/Users/sf/Desktop/20260519_Jes Fleming_Form_Client Agreement -US - 2026-3.pdf | The 1:1 PMDD Comprehensive agreement, 10 pages. Source the clinic agreement was adapted from. |
/Users/sf/Desktop/20260804_Jes Fleming_Form_Root Cause Assessment Onboarding Questio.pdf | Current onboarding questionnaire, 14 pages. |
Work produced 2026-08-11
| Artifact | Path and URL |
|---|---|
| Clinic client agreement draft 19 sections, 10 ATTORNEY callouts, 4 SHAWN callouts | /Users/sf/her-mood-mentor/_artifacts/clinic-client-agreement-draft.md |
| Protocol pipeline design | _artifacts/clinic-protocol-pipeline.htmlhmm-clinic-pipeline.pages.dev |
| Questionnaire changes | _artifacts/clinic-questionnaire-changes.htmlhmm-clinic-questionnaire.pages.dev |
| Pre-meeting call prep | _artifacts/hmm-clinic-call-prep.htmlhmm-clinic-call-prep.pages.dev |
| This handoff | _artifacts/clinic-handoff.htmlhmm-clinic-handoff.pages.dev |
The decision meeting, 2026-08-11
Jes, Maria and Shawn, 58 minutes. Transcribed and diarized locally.
| Analysis and action items | Obsidian/Ideaverse/Wiki/Projects/Her Mood Mentor/Meetings/2026-08-11-hmm-clinic.md |
| Speaker-labelled transcript | ...2026-08-11-hmm-clinic-speakers.md |
| Raw transcript | ...2026-08-11-hmm-clinic-transcript.md |
| Copies on the NAS | /Volumes/Shared_Drive/HMM/Meetings/ |
| Source audio | /Volumes/Shared_Drive/HMM/HMM clinic.m4a |
cd ~/hmm-diarize && ./run.sh "<audio>". Built 2026-08-11 as an HMM-isolated copy of the RVFD pipeline, with its own voices.json (Shawn, Maria and Jes all learned) and its own work/. The .venv is a symlink to ~/rvfd-diarize/.venv; rebuild instructions are in its README if that ever breaks.Open questions
| Question | Owner | Blocks |
|---|---|---|
| Izzy's 10%: on the $1,197 or on HMM's margin? And does it claw back on refund? If she keeps $119 on a refunded sale, the $50 pre-lab admin fee is underwater by about $104. | Shawn and Jes | The refund clause in the agreement |
| Does $344 hold? Maria to ask DHA whether the comprehensive plus Insulin, GlycoMark, TPO Ab and Thyroglobulin Ab can be bundled at a better rate, since DHA built the PMDD Comprehensive for HMM originally. | Maria | Refund clause, margin model |
| Does the clinic sell outside Izzy? Jes flagged Izzy "is probably not going to like that." Website buyers are not in the system and never touch Izzy, which is also where the commission question lives. | Jes | Sales page, commission structure, portal onboarding |
| Janine as a second practitioner? Maria raised it. Jes deferred pending real volume and wants Izzy's actual monthly call count first. | Jes | Nothing yet |
| Is the NACC included? HMM has paid for a year. Jes wants it rebuilt in-house and thinks the symptom burden graph raises the offer's value. Floated: a ~$25 paid retest, or bundling the retest. Maria wants a single link covering intake plus NACC, not a chain of forms. | Jes | Portal design, intake flow |
| Notion sales page edits. ON HOLD at Shawn's instruction. Two changes: the FAQ reroutes anyone wanting ongoing support to the PMDD Comprehensive three separate times, which funnels the most motivated buyers onto Jes's calendar and defeats the clinic's purpose; and the public copy names ADHD, anxiety, fertility and perimenopause, which is diagnostic language on a wellness surface and contradicts the meeting's decision to stay narrow. | Shawn | Launch |
| Attorney review of the agreement. Ten flagged items including the Fullscript compensation disclosure and the chargeback waiver plus credit-bureau reporting exposure. | Shawn | Launch |
| Habit tracker schema. Must be shared with the HMM app's daily homepage check-in. Unverified whether the app already has anything habit-shaped; the read-only Supabase MCP is pointed at the RVFD project, so it could not be checked from this session. | Shawn | Portal and app both |
| Quality control. The SOP's Stage 5 quality review is the practitioner checking her own work. There is no independent review step. Recommendation on file: Jes reviews every report until QC is proven, since her name is on it. | Jes | First client |
Recommendations made but not yet acted on
- The Rehab handoff. Nothing in the SOP or sales page routes a finished client toward PMDD Rehab or the app. A protocol with no support layer gets roughly 30% compliance and produces "I spent $1,200 and nothing changed," which is a testimonial problem in a pilot whose product is testimonials. The fix is not coaching, which rebuilds the Jes bottleneck; it is that the day-7 follow-up and the final "your next 90 days" section point at Rehab. Building the habit tracker on shared schema with the app makes this structural rather than a call to action.
- AI consent should be a disclosure, not a consent. Once processing is local and first-party there is no third-party disclosure, so what is needed is transparency, not a withdrawal right. A withdrawal right creates a manual-only operational branch nobody has staffed. Caveat: this flips back to real consent the moment anything routes to a hosted model. Confirm the Washington My Health My Data angle with the attorney; HMM is not a HIPAA covered entity, so state consumer-health-data law is the live exposure.
- The $50 administrative fee should be justified in the document as the non-recoverable card processing cost, roughly $35 of it, rather than stated as a bare number.
- Cap generated habits at five to seven. Maria's own tracker is long because it is hers, built over years. A twenty-item checklist on a bad luteal day is a reason to close the app.
Infrastructure
Where things run
| Thing | Host | Address |
|---|---|---|
| n8n | NAS (TrueNAS) | 10.3.7.232:5678, tunnel n8n.darcyn8n.com |
| Ollama | Mac Mini | 10.3.7.135:11434. Models: qwen3:14b (9.3GB), qwen3:8b (5.2GB), llama3.2-vision:11b, embeddings. |
| Lab report pipeline | Mac Mini | /Users/sf/hmm-lab-report/ |
| Cal.com, Home Assistant, Twingate | Mac Mini | Deliberately not migrated. Twingate stays by decision: Shawn screen-shares into the Mini, so its remote path must not depend on the NAS. |
| Client data at rest | NAS | tank-mirror/Shared_Drive/HMM_Labs, encrypted, passphrase, re-locks on every reboot and looks like an empty folder over SMB when locked. |
The lab pipeline codebase
| File | Role |
|---|---|
body_systems.py | 11 body systems, Adrenal, Inflammation, 7 nutrient-status groups. Contains _score_system(), the scoring function the intake scorer should mirror. |
health_concerns.py | 16 patient-facing concerns with copy already in wellness-coach scope. |
biomarkers.json | 30KB of marker definitions and ranges. Needs GlycoMark, TPO Abs, Thyroglobulin Abs added; Insulin is already present. |
generate_report.py | 73KB ReportLab renderer with its own assets/. The protocol becomes a second document type here. |
analysis_engine.py, marker_descriptions.py, category_descriptions.py | Analysis and prose. |
scope_of_practice.py | Programmatic wellness-coach term replacement. Applies to protocol copy too, for free, by going local. |
parsing_prompt.py, pipeline.py, watch_input.sh | Ingestion and orchestration. |
Changed on the NAS, 2026-08-11
- New dataset
tank-nvme/n8n-binary,primarycache=metadata,recordsize=1M, owned1000:3100mode 770. Mounted into n8n at/binarydatawithN8N_BINARY_DATA_STORAGE_PATH=/binarydata. Large media now streams through without growing ARC. - ARC cap lowered from 8GiB to 4GiB. Available memory went from 1.4GiB to 5.1GiB. Restore to 8GiB once a podcast episode confirms the binary path works, since hit rate was 99.2% at 8GiB.
- Not done: the
ReadSourceglob in workflowbisimwdlABebIAzJis still/files/podcast-exports/*, which reads every file in the folder before the Switch filters to mp3 and mov. Left alone deliberately: the ARC fix removes the actual harm, and a glob that matches nothing fails silently on a live publishing pipeline.
primarycache on create or update, so it must be set with raw zfs over SSH, and truenas_admin needs a password for sudo, which means Shawn runs it with ssh -t. Also, wrangler pages project list resolved to the RVFD Cloudflare account even with CLOUDFLARE_ACCOUNT_ID exported and threw a 10000 that reads like a bad token; use the REST API to list or create Pages projects. pages deploy itself honours the env var correctly.Hardware
An M4 Pro Mac mini, 48GB, 512GB was ordered 2026-08-11 at $2,179 from B&H. It becomes the dedicated Ollama box; the current M4 16GB Mini stays as the services box running Cal.com, Home Assistant and Twingate. Reason: base M4 is 120GB/s memory bandwidth, M4 Pro is 273GB/s, and token generation is bandwidth bound, so the same model runs roughly 2.3x faster. 48GB lets a 14B and a 30B stay resident together. On arrival: move Ollama, set OLLAMA_NUM_PARALLEL and OLLAMA_MAX_LOADED_MODELS explicitly, and repoint the six n8n workflows that call 10.3.7.135:11434.
People, voice and constraints
Who does what
| Jes Fleming | Founder, Board Certified Nutritional Therapy Practitioner, the public face. Delivers the 1:1 PMDD Comprehensive at $3,999 to $4,500. Does NOT deliver clinic assessments. The whole point is adding revenue without adding her hours. |
| Maria | Head of Operations. Proposed the clinic, wrote the SOP, built the templates, and is practitioner #1. Also an NTP. Already runs lab analysis for current clients, which is why the delivery risk on this proposal is low. |
| Izzy | Head of Sales and Client Onboarding. Runs intro calls and routes prospects between PMDD Comprehensive, the clinic, and PMDD Rehab. Positions the clinic explicitly as working with a different practitioner, not Jes, and wants practitioner credentials available because prospects ask. |
| Janine | Clinical Program Coordinator, NTP-credentialed. Possible second practitioner, deferred. |
| Shawn | Co-founder, all technical and automation work. |
Scope of practice, which governs every word
HMM operates two voices and the correct one depends on the surface.
- Wellness-coach scope for anything public: website, marketing, sales page, app general copy. Avoid diagnostic labels. "Low nutrient status" not deficiency. "Sluggish thyroid function" not hypothyroid. "Blood sugar imbalances" not insulin resistance. "Mood fluctuations" not depression or anxiety. "Support" not treat or cure. "May help" not will help.
- NTP scope for practitioner-authored clinical content: the protocol, the findings video, the interpretation. Named foods, macros, micros, lab markers and mechanisms are all fine.
The clinic SOP is correctly in NTP scope because it is internal. The sales page is not, and currently names ADHD, anxiety, fertility and perimenopause as conditions. That is the open Notion edit.
Even in NTP scope, nobody may diagnose, prescribe, practise medicine, or make treat/cure/heal claims as marketing.
PHI handling, non-negotiable
All client health data stays local. Analysis runs on local Ollama. Never read raw patient data into a session. HMM_Labs on the NAS is encrypted with a passphrase Shawn holds in Proton Pass; Claude does not have it and there is no recovery path.
Writing constraints for anything produced here
- Never use em-dashes. Not the character, not the HTML entity. Commas, colons or sentence breaks.
- Substantial HTML docs use the Timber SAV house style from
~/.claude/artifact-house-style.htmlwith an overview landing page and hash-routed sub-views. - Deploy docs to Cloudflare Pages, one project per doc. Never a claude.ai artifact URL; they do not work for Shawn.
- Anything Shawn must execute goes in a numbered, indented block. Terminal commands stay single-line.
- Simplicity and usability outrank completeness and cleverness. Most users are women managing PMDD symptoms, often on a bad day.