{"meta":{"version":"v7.0","codename":"@Sovereign-Architect v7.0-HARDENED","status":"HARDENED · GENSPARK-AI-DEV-NATIVE","date":"2026-05-20","owner":"Reza Estes / Haidar — Sovereign AI Dev","motherBrand":"SparkMind","motherUrl":"https://www.sparkmind.web.id/","repo":"github.com/ganihypha/Sovereign","supersedes":"v6.0 (2026-05-19)","hardener":"Genspark AI Developer audit pass","subBrandCount":4,"executionMode":"PARALLEL","constraints":16,"driftSignals":22,"antiPatterns":22,"sprintWindow":"D2 (2026-05-19) → D60 (2026-07-17)","sprintDays":60,"cycleLayers":7,"trilogy":["MASTER-ARCHITECT-PROMPT v7.0","SESSION-HANDOFF v2.0","FULL-SPRINT-PLAN v1.0"]},"subBrands":[{"id":"barberkas","name":"BarberKas","icon":"fa-cut","color":"blue","accent":"#3b82f6","priority":"P0","lane":"E","laneCode":"EDGE","subdomain":"barberkas.sparkmind.web.id","monorepoPath":"apps/barberkas/","positioning":"Capster utama — Multi-tenant SaaS POS untuk barbershop","tagline":"Multi-tenant POS · Capster Edge","scoreNow":45,"scoreTarget":88,"lifespan":"D2 → D16 build, D17–D60 hardening","revenue":"Rp 99K/199K/399K per tenant/bulan","primaryPG":"Duitku QRIS","secondaryPG":"Xendit (fallback)","revenueTargetD60":"Rp 1–3 juta/bulan recurring","topGaps":["GAP-BK-1","GAP-BK-2","GAP-BK-3","GAP-BK-5"],"description":"Existing code base ada (Hono + Supabase + Fonnte). NEEDS MIGRATION ke D1 per §29.","keyFeatures":["Multi-tenant subdomain routing (<tenant>.barberkas...)","Pattern B isolation (tenant_id row-scoping)","POS transaction (cash/QRIS)","Subscription billing (Duitku recurring)","Fonnte WhatsApp reminder"],"stack":["Hono","D1","KV","Duitku","Fonnte","R2"]},{"id":"kuratorkas","name":"KuratorKas","icon":"fa-palette","color":"purple","accent":"#a855f7","priority":"P1","lane":"K","laneCode":"KURATOR","subdomain":"kuratorkas.sparkmind.web.id","monorepoPath":"apps/kuratorkas/","positioning":"Sister-brand — AI Stylist + POS UMKM fashion (Curator.OS)","tagline":"Curator.OS · 5-Module AI · Sister Lane","scoreNow":0,"scoreTarget":70,"lifespan":"D17 → D45 build (paralel BK hardening)","revenue":"Rp 149K/299K/499K per UMKM/bulan","primaryPG":"Duitku QRIS (reused dari BK)","secondaryPG":"Xendit","revenueTargetD60":"Rp 500K–1.5 juta/bulan recurring (10–25 UMKM)","topGaps":["GAP-KK-1","GAP-KK-2","GAP-KK-3","GAP-KK-5"],"description":"Reverse-extract ≥80% dari BarberKas (auth, tenant, PG, ui-kit). 5-module Curator.OS MVP.","keyFeatures":["AI Stylist Curator (Workers AI vision)","Content Curator (IG caption gen)","Marketplace Curator (Shopee/Tokopedia/TikTok)","Pricing Curator (dynamic price suggest)","Trend Curator (TikTok/IG scraping)"],"stack":["Hono","D1","R2","Workers AI","@sparkmind/curator-os"]},{"id":"pacelokal","name":"PaceLokal","icon":"fa-running","color":"emerald","accent":"#10b981","priority":"P2","lane":"B","laneCode":"BANYUMAS","subdomain":"pacelokal.sparkmind.web.id","monorepoPath":"apps/pacelokal/","positioning":"Hobby — Hyperlocal running OS Banyumas Raya","tagline":"Banyumas Running OS · Hyperlocal Defense","scoreNow":10,"scoreTarget":81,"lifespan":"D15 → D28 build","revenue":"Premium Rp 49K/bulan + race sponsorship","primaryPG":"Free MVP, premium scaffold","secondaryPG":"Duitku (premium)","revenueTargetD60":"Rp 0 (free MVP), premium scaffolded","topGaps":["GAP-PL-1","GAP-PL-2","GAP-PL-3","GAP-PL-8"],"description":"Defensibility: Strava blind-spot hyperlocal (Banyumas) + WhatsApp-first onboarding.","keyFeatures":["Verify-Stub MVP (no Strava dependency)","Sunday Run Generator (cluster + route picker)","Banyumas route catalog (R2 GPX)","Leaderboard per-kabupaten","WhatsApp-first onboarding (Fonnte)"],"stack":["Hono","D1","R2","Strava webhook","Fonnte"]},{"id":"nurani-os","name":"Nurani.OS","icon":"fa-mosque","color":"amber","accent":"#f59e0b","priority":"P3","lane":"N","laneCode":"NURANI","subdomain":"nurani.os.sparkmind.web.id","monorepoPath":"apps/nurani-os/","positioning":"Devotion — Tadarus-first Pan-Islamic platform (untuk Ibu)","tagline":"Tadarus-First · Pan-Islamic · Ramadhan 1448H Runway","scoreNow":5,"scoreTarget":72,"lifespan":"D30 → D60 preview (production: Ramadhan 1448H Feb 2027)","revenue":"Donation (Xendit) + Premium Tadarus","primaryPG":"Xendit (donation primary)","secondaryPG":"Duitku (premium)","revenueTargetD60":"Rp 0 (preview only, donation infra ready)","topGaps":["GAP-NU-1","GAP-NU-2","GAP-NU-3","GAP-NU-9"],"description":"D60 = preview only. Production target: Ramadhan 1448H (Feb 2027). NU + Muhammadiyah neutral.","keyFeatures":["Quran reader (30 juz indexed)","Murattal R2 streaming (5 qari)","Tadarus group (invite link)","Dhikr counter (KV-backed)","No-tracking privacy doctrine"],"stack":["Hono","D1","R2 (Murattal)","KV","Xendit donation"]}],"packages":[{"name":"@sparkmind/core","icon":"fa-cube","purpose":"Types, Result monad, env schema, error taxonomy","consumers":"ALL","status":"planned","priority":1},{"name":"@sparkmind/auth","icon":"fa-fingerprint","purpose":"Magic-link, JWT, sessions, D1 schema","consumers":"ALL","status":"planned","priority":1},{"name":"@sparkmind/pg-router","icon":"fa-credit-card","purpose":"Duitku/Xendit dual-PG adapter + StubAdapter","consumers":"BK, KK, NU","status":"planned","priority":1},{"name":"@sparkmind/ui-kit","icon":"fa-palette","purpose":"Shared React components, dark theme tokens","consumers":"ALL","status":"planned","priority":2},{"name":"@sparkmind/analytics","icon":"fa-chart-line","purpose":"CF Analytics Engine wrapper, privacy-first","consumers":"ALL (4 datasets)","status":"planned","priority":2},{"name":"@sparkmind/curator-os","icon":"fa-robot","purpose":"Multi-agent AI runtime untuk KuratorKas","consumers":"KK primary, extensible","status":"planned","priority":3}],"constraints":[{"id":1,"text":"Stack Lock 100% Cloudflare","critical":true,"category":"stack"},{"id":2,"text":"Repo Lock monorepo SSOT (Sparkmind-Sovereign)","critical":true,"category":"repo"},{"id":3,"text":"No-Tracking, No-Ads-Default (especially Nurani.OS)","critical":false,"category":"privacy"},{"id":4,"text":"Halal-by-Default lintas-stack","critical":true,"category":"identity"},{"id":5,"text":"NU + Muhammadiyah Dual-Acceptance (Nurani.OS)","critical":false,"category":"identity"},{"id":6,"text":"Public-Safe Doctrine (no PII Nurul/family)","critical":true,"category":"privacy"},{"id":7,"text":"Dual-PG Mandatory (Duitku + Xendit)","critical":true,"category":"payment"},{"id":8,"text":"Monorepo SSOT — 4 apps minimum","critical":true,"category":"repo"},{"id":9,"text":"Single-Operator Scalable","critical":false,"category":"ops"},{"id":10,"text":"Revenue-First (path-to-revenue mandatory)","critical":false,"category":"business"},{"id":11,"text":"Public-Safe Artifact (no secret leak)","critical":true,"category":"security"},{"id":12,"text":"Cost-Aware monthly review","critical":false,"category":"cost"},{"id":13,"text":"4-Sub-Brand Lock","critical":true,"category":"identity"},{"id":14,"text":"Priority Order Lock (BK→KK→PL→NU)","critical":true,"category":"identity"},{"id":15,"text":"AIDEV Pillar 4-Stack Mandatory (Direction+Comprehension+Defense+Selection)","critical":true,"category":"discipline","newInV7":true},{"id":16,"text":"Smoke Test Before Commit","critical":true,"category":"discipline","newInV7":true}],"driftSignalsCount":22,"weaknessesCount":13,"sprintWeeks":9,"aidevPillars":[{"id":1,"icon":"🎯","name":"Direction","source":"Doc-AIDEV-A v1.0","outcome":"Zero ambiguity di input. 5-layer prompt scaffold.","layers":["L1 Context","L2 Constraints","L3 Spec","L4 Acceptance","L5 Output Format"]},{"id":2,"icon":"📚","name":"Comprehension","source":"Doc-AIDEV-B v1.0","outcome":"Zero blindness di output. 10h tech vocab curriculum.","layers":["Stack vocab","Workers/D1/R2/KV","Hono patterns","CF deploy lifecycle"]},{"id":3,"icon":"🛡️","name":"Defense","source":"Doc-AIDEV-C v1.0","outcome":"Zero disaster di prod. 20-item risk checklist.","layers":["SEC (6 items)","DATA (5 items)","CODE (5 items)","COST (4 items)"]},{"id":4,"icon":"⚙️","name":"Selection","source":"Doc-AIDEV-D v1.0","outcome":"Zero waste di tooling. Genspark→Claude Code→Cursor.","layers":["Genspark AI Dev","Claude Code Pro","Cursor IDE","GitHub web"]}]}