Science Archive

Daily briefing feed + your submissions

📬 Submit an article

📚 Archive

Student Packets

Hello and aftercare templates sent before/after each service. Use {client_name}, {appointment_date}, {retail_recs}, {next_visit_plan} as placeholders.

🎓 Teaching Home

🎓 Paul Mitchell — PMTS cohorts & tracks
Loading…
Loading…
Loading…
Loading…

Loading…

🧑‍🎓 Apprenticeship Master Esthetics · DOPL hours
Loading…

Loading…

🗓️ Teaching Calendar

Loading…

📣 Marketing Home

📊 Upload Monthly Insights

Drop a screenshot here, or tap to choose

Loading…
Loading…
Loading…
Loading…

👥 Treatment Room

Loading…
Loading…
Loading…
Loading…
Loading…

Students

Active
Graduated
Total

📅 Due Friday by Track

Loading…

🎯 Final Phase Queue

Loading…

📖 This Week's Chapter by Student

Loading…

🎯 Scheduled Final Phase Batches

Loading…

📚 Library

Everything in one place — pick a shelf. (The full tabs stay up top for quick jumps.)

🎓 Teaching & Curriculum Weekly packets, handouts, decks & readings — by track, week & status. Open: Curriculum Library · Assignments · Classes
📋 Protocols Treatment protocols — steps, contraindications & aftercare.
🧴 Products Retail + backbar, safety flags & ingredients.
🧪 Ingredients A real INCI database — science, not marketing.

Curriculum

Catalog of classes to develop + the teaching materials behind them. Sorted by demand.

Loading…

📚 Curriculum Library

📋 Assignments

The weekly teaching calendar — practical, ingredient & honors assignments per week, plus the cohort gradebook.

📧 Weekly email for your apprentice

Compile this week's chapter, assignments & documents into one email. Review it, then send.

PMTS Classes

Class Sessions

Loading…

🛠 Workbench

One-tab access to the dev surfaces. Apps Script is a real ping — if it is not green, the backend deploy is stale or unreachable, which is the usual cause of an “Unknown action” error. Netlify shows the frontend build this browser is actually running; if it lags a push you just made, hard-refresh. The rest are shortcuts with no status signal.

🔧 Dev tools & smoke test

no Apps Script editor needed
Maintenance & smoke tests

Tap a button → it runs on the backend and its full log appears below. Every run is also saved to the RMS Dev Task Logs Notion database for Claude to review — no copy needed.

Frontend build: —
10 quick checks · run after every push
🧰 Maintenance6

Routine upkeep. Reach for 🔄 Refresh Notion data whenever a Notion-backed card looks stale. The 🧹 pair is dry-run first, then a real delete — read the count before the second one.

🧹 Sheet recovery (legacy tabs)9

One-time repair from the rename-aside incident, kept for if it ever recurs — not routine. Every step has a dry-run: run it, read its counts, then run the matching commit. In order.

Run in order. Dry-run each step and read the log before its APPLY. ② → ③ FIRST (re-links history to clients), then ④/⑤, then ⑥/⑦ last. Legacy tabs stay until ⑦.

🎓 Apprenticeship6

Run the two 🧪 preflights before an apprentice’s first session. They prove the hour log writes a correct DOPL row and the curriculum actually renders — the two failures that are silent from the code. Read-only; the hour-log smoke voids its own test rows.

🩺 Health · after every push5

Run right after a deploy. A failure here usually means the backend deploy is stale or a scope needs re-consent — that is what an “Unknown action” error looks like from this side.

🩹 Charting6

Diagnostics for the chart / treatment-record path. Dump the columns before repairing anything; the repair is dry-run here and its Apply lives in the red drawer below.

📊 Data health6

Read-only audits across clients, products, services and KPIs. They report; nothing here changes data.

💵 Money · PF / QBO4

Checks the finance plumbing — CSV imports, classifier accuracy, QuickBooks duplicate pairs. All read-only: the reclassify button is the DRY RUN, and its apply is deliberately not wired to a button.

⚠️ Writes — confirm each7

These CHANGE live data and each one asks first. Most have a dry-run twin in the sections above — run that and read its counts before committing here.

These change data. Each is confirm-gated and idempotent/reversible — run the matching dry-run first.
Lookup by ID
Recent runs
Post-push smoke test

📝 Code

GitHub — rms-dashboard Apps Script + PWA frontend repo
Open ↗
GitHub — rms-website Public marketing site repo
Open ↗

🚀 Deploy

Netlify — website hosting Last build status
Open ↗
Apps Script Editor Backend live deployment
live
Open ↗

📊 Data

Google Sheets DB Source-of-truth spreadsheet
Open ↗
Google Drive — RMS root Client photos + form scans + protocol PDFs
Open ↗

Status chips are best-effort. GitHub + Netlify chips need PATs in Script Properties (GITHUB_PAT, NETLIFY_PAT) to populate. Apps Script chip is live (always renders).

Massage Apprenticeship

Utah Admin Code R156-47b-302c — 1,000 hrs / 24 months. Log by DOPL category so the CSV export is ready for DOPL submission.

Overall Progress

0 / 1,000 hrs

Log

🎨 Brand

Rocky Mountain Skin

Owned by Jake Howard, Master Esthetician based in South Salt Lake, UT. Rocky Mountain Skin combines clinical expertise with a modern, grounded aesthetic — inspired by the mountains we call home.

Loading…
Loading…
Loading…
Loading…
Loading…

🖊 Signing Wizard — Master Forms

Blank PDFs clients sign on iPad

Upload a blank PDF for each form type. Replaces the previous master.

Loading…

📝 Structured Forms

Web-form templates (intake, consent, media, screening)

Each row in the StructuredForms sheet is one form. Add or edit here — the renderer reads the fields JSON directly.

Loading…