{
  "version": "2026.05.25-trainee-sync-v2",
  "name": "Codee Veteran-First Training Platform",
  "mission_rule": "Open-source Codee training is reserved first for homeless veterans and disabled veterans. Public business clients pay for done-for-you services, hosting, scans, support, and business packages.",
  "public_client_rule": "A public client can buy a finished service lane, hosting, support, or Codee Business Suite. The client does not receive the free veteran training track unless the owner grants mission access.",
  "trainee_rule": "A qualified veteran trainee can learn the open-source course path and can also receive done-for-you support while learning how to offer the same service responsibly.",
  "domain_rule": {
    "front_door": "https://codee.chat",
    "app_workspace": "https://clients.codee.chat",
    "storage": "GCS and Cloud Run are infrastructure and should stay behind branded Codee routes for normal client delivery.",
    "recommendation": "Keep Codee Chat intake on codee.chat and use clients.codee.chat for generated sites, delivery rooms, trainee hub, support rooms, and proof pages."
  },
  "theme_rule": {
    "editable": true,
    "cli_command": "python3 codee.py theme . --preset codee-dark --force",
    "reason": "Colors should be data-driven so Codee can update visual identity like a design assistant without rebuilding the whole page."
  },
  "identity": {
    "required": ["codee_user_id", "cohort", "workspace_id", "training_access", "support_room_url"],
    "stable_id_rule": "Every trainee gets one stable Codee ID tied to progress, generated files, scan proof, support packets, certificates, and delivery rooms."
  },
  "hosted_sync_rule": {
    "api": "https://clients.codee.chat/api/codee/trainee/sync",
    "push_command": "python3 codee.py trainee-sync .",
    "pull_command": "python3 codee.py trainee-pull .",
    "purpose": "The CLI stays local-first, then syncs trainee progress, theme, queue, readiness, certificate, and support-room proof into the hosted Codee account.",
    "client_benefit": "A trainee or client can come back later from the same Codee ID and workspace ID instead of losing proof in one local folder."
  },
  "cohorts": [
    {
      "id": "disabled-veteran",
      "label": "Disabled Veteran",
      "training_access": "mission-sponsored",
      "support_model": "learn-with-done-for-you-support",
      "billing_rule": "No public course charge. Hosting or paid client work can be attached later with owner approval."
    },
    {
      "id": "homeless-veteran",
      "label": "Homeless Veteran",
      "training_access": "mission-sponsored",
      "support_model": "learn-with-done-for-you-support",
      "billing_rule": "No public course charge. Prioritize simple phone-first workflows, saved app mode, and support continuity."
    },
    {
      "id": "public-client",
      "label": "Public Business Client",
      "training_access": "paid-services-only",
      "support_model": "done-for-you-delivery-room",
      "billing_rule": "Pays for the service, hosting, scans, support, or business suite."
    },
    {
      "id": "partner-trainee",
      "label": "AI K9 Partner Trainee",
      "training_access": "approved-partner",
      "support_model": "partner-workspace",
      "billing_rule": "Partner terms apply. Keep mission access separate from public paid client fulfillment."
    }
  ],
  "course_lanes": [
    {
      "id": "qrcodee",
      "name": "QRCodee",
      "trainee_output": "A branded QR image, target route, scan proof, and simple explanation of offline-to-online marketing.",
      "paid_output": "Done-for-you QRCodee image, hosted landing page, delivery room, and route scans.",
      "proof_required": ["target URL opens", "QR route avoids 404", "logo/color intent documented", "delivery room or support packet exists"]
    },
    {
      "id": "codeeflyer",
      "name": "Codee Flyer",
      "trainee_output": "A hosted-ready flyer folder with one image, CTA, QR route, and proof report.",
      "paid_output": "Codee Flyer 100 or 250 with hosted flyer, QRCodee styling, CTA actions, and delivery support.",
      "proof_required": ["flyer image loads", "CTA opens", "QR route opens", "mobile layout readable"]
    },
    {
      "id": "codeeapp",
      "name": "Codee App",
      "trainee_output": "A guidebook app page with cover, bullets, QR return path, and buyer or download action.",
      "paid_output": "Codee App 250 with upload, hosted guidebook, checkout/download path, and delivery room.",
      "proof_required": ["cover loads", "button route opens", "guide route opens", "buyer path documented"]
    },
    {
      "id": "codeecard",
      "name": "Codee Card",
      "trainee_output": "A profile card that explains who they help, how to contact them, and what proof they can show.",
      "paid_output": "Done-for-you Codee Card with contact flow, booking/support room, QR, and profile sections.",
      "proof_required": ["card route opens", "message path documented", "share path works", "support room exists"]
    }
  ],
  "scale_system": {
    "profile_ledger": "One Codee profile per trainee or client.",
    "progress_engine": "Lesson completion and proof are stored in .codee/trainee-progress.json.",
    "hosted_sync_engine": "trainee-sync sends the local .codee proof packet to the hosted Codee profile so support, delivery rooms, and scans use the same account identity.",
    "queue_engine": "Heavy work is queued as generation, scan, screenshot, email, delivery, and certificate jobs.",
    "scan_engine": "webapp-health, route loop, course smoke, browser screenshot, and delivery checks feed one proof system.",
    "offline_pwa": "Core pages and trainee hub stay installable and cacheable for weak internet.",
    "accessibility": ["plain language", "high contrast", "large tap targets", "low motion", "keyboard-ready forms", "screen reader labels"],
    "dashboard": "Trainees see next action, course status, generated files, proof reports, support room, and paid hosting option.",
    "admin_center": "Owner sees cohort counts, stuck trainees, failed proof, queue pressure, and paid-client separation.",
    "certificate_rule": "A certificate is generated only after required proof checks pass.",
    "client_billing": "Public business clients pay. Mission-sponsored veteran training remains separate and owner-controlled."
  },
  "readiness_targets": [
    "codee-trainee-hub.html",
    "codee-operator-command.html",
    "assets/codee/codee-trainee-platform.json",
    "api/codee/trainee/sync",
    "manifest.json",
    "sw.js",
    "codee-webapp-health.html"
  ]
}
