Every clause from the operating doctrine, next to what's actually built. Now live at ops.jemastudios.com — accessible from anywhere.
Close these and the system stops needing you to push it. Everything else is polish.
| Doctrine clause | What's built | Status |
|---|---|---|
| Pre-event canonical Dropbox folder set | file_management table tracks folder URLs; no auto-creation. Dropbox API integration pending. | not yet |
| Shoot-day card handoff log (count · condition · receiver · timestamp) | project_card_handoff table from migration 0032 captures all fields. UI live. | live |
| Post-shoot lifecycle gates (Backup → File Selection → JPEG Delivery) | production_stages tracks status; gate transitions are manual via Project Hub. | partial |
| Physical asset custody log per item | assets table with custodian_email · 184 assets imported. | live |
| Scheduled gear maintenance | asset_maintenance table exists; no scheduler/reminder. | partial |
| Weekly backup verification | backups_log table tracks per-event; no weekly aggregate report or auto-verification. | partial |
| 24-hour incident response (file loss / breach / backup fail) | Incident logging not modeled; no alert pipe. | not yet |
| Monthly digest auto-distributed to Executive Leadership | "Generate Q2 Asset Digest" PDF button live in workspace; no auto-email. | partial |
| Real-time alert if backups incomplete 48h after event | No alert system yet. | not yet |
| Doctrine clause | What's built | Status |
|---|---|---|
| Six-stage shoot lifecycle | production_stages + project_production_status + project_production_stage_notes — full schema. | live |
| 36-item checklist gating progression | production_checklist_items table with 36 seeded items. | live |
| T-7 to T-3 pre-event team meeting (~20 min) | team_meeting_notes table; Production workspace has the slot. | live |
| Crew assignment + cross-region travel tracking | production_assignments with is_backup + Country Director cross-region travel pattern surfaceable. | live |
| Production budget drafted → routed to Finance for approval | project_production_budget table from migration 0032. Approval queue/UI not yet built. | partial |
| End-of-day card return with timestamped record | project_card_handoff captures all parties + timestamp. | live |
| Field Creatives roster (Photo & Cinema) | team table · dept = "Photography & Cinematography" · ACD = Domi Kodjo Prince. | live |
| Per-event Post-Shoot Reviews feed Creative Project Reviews | creative_project_reviews table exists; auto-feed loop manual. | partial |
| Monthly Production digest with SLA breach analysis | Workspace has "Generate Digest" button; no auto-distribution. | partial |
| Doctrine clause | What's built | Status |
|---|---|---|
| Two tracks (Photo + Video) with parallel editor pools | deliverables type column + editor_assignments routes per-deliverable. | live |
| Ingest from Asset Management after backup verified | deliverables can link to backups_log; backup-verify gate manual. | live |
| Editor pool with seniority (Junior · Mid · Senior · Lead) | team.ladder_level field exists; seniority not yet driving auto-assignment. | partial |
| Canonical SLAs (7/7/21/21/90 working days) | delivery_slas table is the canonical source. UI uses it everywhere. | live |
| QC Gate hard block — 5 mandatory checks before Delivered | qc_checks table with all 5 booleans + trigger preventing Delivered without pass. | live |
| Revisions logged per project with reason + accountable editor | revisions table fully wired. | live |
| Monthly digest with SLA scorecard + backlog | Generate-PDF button live; no auto-distribution or auto-aggregation. | partial |
| Doctrine clause | What's built | Status |
|---|---|---|
| T-30 client questionnaire auto-trigger (next-day for last-minute) | client_questionnaires table (v2 schema). Auto-trigger not built — manual send today. | partial |
| Hybrid client + CX fill with per-field provenance | Schema supports both editors. Provenance audit-trail partial. | partial |
| 9-step Creative Consultation | consultations table + UI fully matches the 9 steps. Live in Consultation surface. | live |
| Consultation outputs (notes · planner · brief · PDF · Otter link) | All fields in schema. PDF export live. Otter integration manual link. | live |
| Payment follow-up partnership with Finance (chase ladder relationship side) | CX dashboard has payment queue; Finance has the chase ladder. No joint surface that pairs them yet. | partial |
| Post-event feedback collection + gifting log | feedback + gifting_log tables live. | live |
| Anniversary outreach + legacy storytelling | past_clients table (1,782 imported). No scheduler firing anniversary emails. | not yet |
| Monthly CX digest auto-emailed to Executive Leadership | Generate-PDF live; auto-distribution not. | partial |
| Doctrine clause | What's built | Status |
|---|---|---|
| Intern intake + cohort assembly | Current cohort tracked in team table. associate_intake table for applicants. | live |
| Structured curriculum delivery (modules) | No curriculum/modules table yet. | not yet |
| Rotational placement inside Production for shoot shadowing | production_assignments can flag interns; rotation calendar not modeled. | partial |
| Periodic KPI review per intern with coaching feedback | kpi_logs table exists; intern-specific cadence not enforced. | partial |
| Promotion pathway: intern → associate → full-time | employment_type field supports all transitions; no workflow surface for the promotion event. | partial |
| Continuing education tracks for tenured team | Not modeled. | not yet |
| Cohort Completion Rate + Module Completion % KPIs | No view aggregating cohort completion. | not yet |
| Doctrine clause | What's built | Status |
|---|---|---|
| Annual top-down master budget, quarterly review, monthly cap monitoring | No master_budget or monthly_cap tables yet. | not yet |
| Four pre-approval categories (travel · gear · infra · brand) | No pre_approval_request workflow yet. | not yet |
| Petty cash managed by Creative Director, audited | expense_type can capture petty-cash; audit cycle not enforced. | partial |
| Emergency spend with 2 valid triggers + 24h SSOT entry | No dedicated emergency_spend table. | not yet |
| Invoicing — Zoho (Ghana) + Pixieset (international) + native | 141 Zoho + 156 Pixieset invoices imported. No live API sync yet. | partial |
| Payment Chase Ladder T-30/14/7/3/past-due | Invoice statuses + due dates + escalation columns live; auto-escalation cron missing. | partial |
| Grace extensions + addendum invoices (child clock, clean parent close) | Migration 0023 fully implements grace + addendum logic. | live |
| Expense workflow draft → pending → approved → paid | Migrations 0033/0034. All 7 canonical expense_types enforced. | live |
| Payroll 4 streams (FT · Associate · Special · Vendor) | payroll table + finance_jobs view. Stream differentiation partial. | partial |
| Production budget approval (Production drafts · Finance locks) | project_production_budget table; no approval queue widget yet. | partial |
| Multi-currency invoicing (contract currency = payment currency) | currency column on invoices + payments. Live across regions. | live |
| Profit & Reserves Framework (Emergency 10% · Tax 12% · Buffer 5% · Growth 30%) | Not modeled. | not yet |
| Quarterly P&L by region · cash position · reserve status | v_project_profitability + financeExpenseSummary views; quarterly aggregation missing. | partial |
| Monthly Finance digest | Generate-PDF live; auto-distribution not. | partial |
| Doctrine clause | What's built | Status |
|---|---|---|
| 4 employment classes (FT · Associate · Hybrid · Intern) | employment_type field from migration 0031. Enforced. | live |
| Onboarding workflow (intake → contract → tier → orientation → 30/60/90) | team_onboarding table; 30/60/90 review cadence not yet automated. | partial |
| Access tier authority (HR proposes · Tier A reviews + overrides) | HR Team Access Management UI shipped today. Edge Function for create/reset PW deployed. RLS gates HR-dept Tier B + Tier A. | live |
| Contract renewals tracking | contracts table exists; 35 rows have empty contract_end — known hygiene backlog. | partial |
| Leave & time-off self-submit + HR approve | leave_requests table not built yet. | not yet |
| KPI review cycles per role | kpi_logs + kpi_escalations tables; cadence enforcement not automated. | partial |
| Anniversaries + milestones + recognition | team.hire_date supports it; no anniversary scheduler. | not yet |
| Vacancy management partnership with CDs | vacancies table exists. | live |
| Performance management + exit processes (full audit trail) | creative_project_reviews + team_offboarding tables; audit-trail partial. | partial |
| Quarterly HR digest + tier-change audit log | tier_change_audit_log table live. Digest auto-distribution not yet. | live |
| Doctrine clause | What's built | Status |
|---|---|---|
| Lead capture from every source (web · referral · walk-in · social · partner) | leads table + lead_source field + anon-INSERT policy for public form. | live |
| Status progression Inquiry → Quoted → Negotiating → Booked (with Lost/On Hold) | leads.status + lost_reason fully wired. | live |
| Sales Playbook cadence (D0 · D2 · D5 · D10) | sales_follow_ups table; no auto-reminders firing on the cadence. | partial |
| Touchpoint logging (call · email · WhatsApp · status change) | lead_activity_log table fully wired. | live |
| Quote builder against region rate cards + add-ons | pricing table holds rate cards; no quote-generator UI yet. | partial |
| Convert to project on Booked (copy known context) | Manual trigger today; auto-conversion partial. | live |
| Brand standards enforcement on every client-facing surface | No brand_standards or brand_flag table; concept-only today. | not yet |
| Lost-reason tagging feeds funnel intelligence | lost_reason column exists; intelligence dashboard partial. | live |
| Monthly Sales digest + lead-source attribution | Workspace + funnel KPIs live; auto-distribution not. | partial |
| Doctrine clause | What's built | Status |
|---|---|---|
| 140 sqm · 8-space facility inventory (studio · 2 edit suites · podcast · VIP · kitchen · store · garden) | No spaces table modeling each room. | not yet |
| Rental program (enquiry → quote → contract → invoicing → hosting → turnover) | Not modeled. Highest-ROI gap in this section. | not yet |
| Studio booking calendar (internal + external rentals on one schedule) | Calendar surface exists for projects; not rental-aware. | not yet |
| Gear hub check-in/check-out with condition logging | assets + asset_maintenance tables cover custody; no checkout UI. | partial |
| Facility upkeep (cleaning · supplies · environmental · security) | Not modeled. | not yet |
| Visitor experience tracking (consultation hospitality · prospect tours · rental hosting) | Not modeled. | not yet |
| Repeat-rental rate KPI · utilization-by-space · rental revenue | No rental data to compute. | not yet |
| Monthly Studio Ops digest | Workspace exists in dept_report; data pipe partial. | partial |
| Doctrine implicit need | What's built | Status |
|---|---|---|
| Production URL the team can sign into | https://ops.jemastudios.com · SSL · accessible globally | live |
| Custom domain (brand-aligned) | ops.jemastudios.com via GoDaddy CNAME + Vercel auto-SSL | live |
| Hosting infrastructure | Vercel — Hobby tier · team jema-s-projects1 · project jema-ssot | live |
| Backend database + auth + storage | Supabase project ayykfhfpurrxtootrbau · 79 tables · 270+ RLS · 61 auth users | live |
| Server-side admin operations | Edge Function admin-team-action v2 · create user + reset password · tier-gated | live |
| Source code backup + version control | GitHub repo quekujema14-ctrl/jema-ssot exists; today's work not yet pushed (stale rebase blocking) | push pending |
| Auto-deploy on git push (CI/CD) | Vercel ↔ GitHub integration not yet wired | setup pending |
| Cache-busting + visible build version per surface | All 13 bundles have no-cache meta + bottom-right build stamp | live |
| Doctrine clause | What's built | Status |
|---|---|---|
| Build for roles not people — every workspace optimized to role | RLS + access_tier + access_scope + HR Access UI deliver this. | live |
| Workspace not report — execution-first surfaces | All 9 dept workspaces follow the pattern; reports are PDF artifacts generated from workspace. | live |
| Canonical standards (7/7/21/21/90 SLAs · 11 dept · 7 expense types) | All locked via CHECK constraints + reference tables. | live |
| Matrix reporting (CD solid line · HQ Director dotted line) | team.reports_to + dotted-line links; surfaces show both relationships. | live |
| Tier C field-creative narrow scope (assigned shoots + own pay only) | Migrations 0038 + 0039 enforce; Domi sees 0 until assignments backfilled. | live |
| Region-scope for Country Directors | Migration 0036 + UI enforcement (Regional View); other surfaces pending pattern replication. | partial |
| HR self-service tier/scope management | Team Access Management UI in HR Workspace + Edge Function shipped today. | live |
| Activity log (who changed what) | activity_log + tier_change_audit_log + per-table specialized logs. | live |
| Build version visible per surface | All 13 bundles show build stamp bottom-right. | live |
This is your finishing list. Three rules: (1) work top-down — the five ranked gaps deliver the most cognitive relief per day of work. (2) If something is live, don't touch it. (3) If something is partial, ask whether the missing piece is "automation" or "UI surface" — that tells you the size of the fix.
Total estimated effort for the top 5 gaps: 6–8 working days. After those land, the system stops needing you to push it. The "everything feels clustered" feeling goes away because the connective tissue is in place.
Open this anytime. Tell me to refresh it after migrations land.