Project Status
What's shipped, what's in progress, and what's next.
12
Shipped
2
In Progress
12
Planned
Timeline
✅ Shipped
Junction API integration
Production/US, smoke test passing
DoneGHL API integration
Full read/write on contacts, fields, tags, notes
DoneGHL data map
190 custom fields, 21 tags documented
DoneAWS Bedrock (Claude)
Haiku 4.5, Sonnet 4.6, Opus 4.7 confirmed working
DoneNext.js pipeline app
App Router, TypeScript, Tailwind, SQLite
DonePipeline step: Parse biomarkers
Claude Sonnet 4.6 extracts structured JSON from lab text
DonePipeline step: Clinical analysis
Claude Opus 4.7 generates summary, patterns, recommendations
DonePipeline step: Generate PDF
Puppeteer renders branded 2-section client report
DoneObservability dashboard
Live run list, step-by-step trace, token counts, timing
DoneSample data seeder
4 realistic completed runs pre-seeded for demo
DoneDuckDNS + SSH access
protocolhc.duckdns.org → server, auto-renews every 5 min
DoneEngineering docs site
This site — Next.js, Mermaid diagrams, Cloudflare Pages
Done🔄 In Progress
OCR fallback (Claude vision)
Try pdf-parse first; if scanned PDF, convert pages to PNG and send to Claude Sonnet vision
In ProgressGHL client wrapper
lib/ghl.ts — typed getContactByEmail, updateContact, addTags, addNote
In Progress📋 Up Next
GHL write-back step
Wire writeGhl.ts into runner.ts as Step 6 — update call_notes, swap tags, create note
PlannedEnd-to-end test on real PDF
Run the sample scanned blood report all the way through the full pipeline
PlannedNext-Auth login
Individual logins per staff member on the dashboard — Google or email/OTP
PlannedCloudflare + HTTPS
Port 443 + nginx + Cloudflare tunnel for proper browser access without SSH tunnel
PlannedBAA — AWS
Sign HIPAA Business Associate Agreement via AWS Artifact (free, online)
Planned🔮 Future
Junction webhook trigger
Auto-trigger pipeline when lab_results.completed fires — no manual upload
PlannedBAA — GoHighLevel
Required before storing PHI in GHL custom fields at scale
PlannedEBS disk encryption
AWS admin task — encrypt EC2 volume at rest
PlannedAWS Secrets Manager
Move secrets off .env files into managed secret store
PlannedBedrock key renewal
Confirm key is set to "no expiration" with AWS admin — or switch to IAM role on EC2
Needs actionTextract / IAM access
Requires IAM credentials from AWS admin — using Claude vision as fallback for now
Needs actionMFA on dashboard
One config line in Next-Auth — add when team grows
Planned