{
  "_doc": "Active-projects source of truth for Sam's hub. Hub /index.html Active Projects section reads this and renders. Update status here, hub reflects automatically. Schema: each entry has id, title, icon, status, status_color, description, link, last_updated (ISO date), last_meaningful_update (Phase 3.A schema · ISO date · only bumps on substantive state change), cross_listed_in (Phase 3.A schema · many-to-many object · {sam_blocking: [...], backlog: [...], issues: [...]} — null/omit if no cross-refs), and optional 'archived':true to hide from active view. Status colors: green=done/complete, blue=in-progress, gold=ready/queued, orange=blocked-on-sam, red=urgent, muted=reference. Sort order in hub: priority (high→low), then last_meaningful_update (newest first).",
  "_consumers": [
    "/index.html -- Active Projects strip on hub home (renders top entries by priority)",
    "/our/index.html -- Big Tasks section (filters priority >= 6 + status_color in [orange|red|blue|gold])",
    "/personal/system-overview/index.html -- system inventory + recent activity panel",
    "/handoff-blocks/scripts/self-audit.ps1 -- -StaleContent reads status_color age for archive eligibility",
    "/handoff-blocks/scripts/generate-issues-markdown.ps1 -- cross_listed_in resolution for issue-to-project links"
  ],
  "version": 2,
  "updated": "2026-06-08",
  "_schema_history": [
    {
      "version": 1,
      "shipped": "2026-05-16",
      "shape": "id/title/status/last_updated/archived"
    },
    {
      "version": 2,
      "shipped": "2026-05-22",
      "shape": "v1 + last_meaningful_update + cross_listed_in (many-to-many object per Q6 decision)"
    }
  ],
  "projects": [
    {
      "id": "donlin-team-medallions",
      "title": "Donlin Team Medallions (SS-Q012)",
      "icon": "🏆",
      "priority": 7,
      "status": "Filament selected (Sunlu 10-pack PLA+ ~$140) · pending Sam order",
      "status_color": "muted",
      "description": "4 team-logo medallions for Denise Donlin. Jarod (Celtics + Blue Jays) HARD DEADLINE June 7 birthday. Luke (Bucks + Steelers) flexible. Filament source updated 2026-05-23: Sunlu PLA+ 10-pack (~$140, 10kg) chosen over Bambu Lab for value + color variety. Order doc: /handoff-blocks/orders/filament-order-2026-05-23.md. Blocker: Sam orders filament → delivery → print tests → production. Stays archived from Big Tasks until filament arrives.",
      "link": "/handoff-blocks/orders/filament-order-2026-05-23.md",
      "last_updated": "2026-05-23",
      "last_meaningful_update": "2026-05-23",
      "cross_listed_in": {
        "sam_blocking": [
          "sb-donlin-filament"
        ],
        "issues": [
          "sb-donlin-blue-jays-celtics-filament"
        ]
      },
      "filament_source": "Sunlu PLA+ 10-pack 1kg bundle (~$140, 10kg, 10 colors)",
      "filament_order_doc": "/handoff-blocks/orders/filament-order-2026-05-23.md",
      "archived": true,
      "_archived_reason": "Sam-paused 2026-05-22 hub cleanup; updated 2026-05-23 with filament source (Sunlu). Re-surface (archived:false) when filament delivers and prints can start."
    },
    {
      "id": "aceves-trim-finish",
      "title": "Aceves — Trim Paint Final",
      "icon": "🎨",
      "priority": 9,
      "status": "Complete · trim finish confirmed 2026-05-19 17:00 · billed in SS-013",
      "status_color": "green",
      "description": "Mon 2026-05-18 trim work + Tue 2026-05-19 17:00 trim finish completed. Captured in invoice SS-013 ($1,500.00 total Aceves paint). Archived 2026-05-22 — no longer an active task.",
      "link": "/customer-jobs/aceves-home-fence-2026-04/overview.html",
      "last_updated": "2026-05-22",
      "last_meaningful_update": "2026-05-19",
      "cross_listed_in": {
        "sam_blocking": [
          "sb-aceves-mon-trim-resolved-2026-05-19"
        ],
        "backlog": [
          "bk-P2-002"
        ]
      },
      "archived": true,
      "_archived_reason": "Complete — finalized as part of SS-013 invoice on 2026-05-22. Was incorrectly persisting on Big Tasks because resolution was tracked in sam-blocking.md but not mirrored here. Phase 3.A schema fix: cross_listed_in now explicit so cross-source-mirror detection isn't fuzzy."
    },
    {
      "id": "aceves-paint-ss-q010",
      "title": "Aceves Paint (SS-Q010)",
      "icon": "🎨",
      "priority": 7,
      "status": "✅ Complete · ready for customer survey",
      "status_color": "green",
      "description": "Paint work complete · $1,500.00 final (SS-013, canonical: /customer-jobs/aceves-home-fence-2026-04/status.json). Itemized: $1,369.62 labor (industry-low $1/sq ft) + $130.38 paint at cost. Ready for customer survey. Finalized 2026-05-22 after room re-measurement + paint receipt audit. Aceves trim-finish is a SEPARATE job — see aceves-trim-finish entry.",
      "link": "/customer-jobs/aceves-home-fence-2026-04/",
      "last_updated": "2026-06-04",
      "last_meaningful_update": "2026-05-22",
      "cross_listed_in": {
        "sam_blocking": [
          "sb-jon-invite-send"
        ]
      },
      "archived": true,
      "_archived_reason": "Closed 2026-06-04 — paint complete + billed (SS-013). Customer-survey send remains tracked separately in sam-blocking (sb-jon-invite-send); not an active project task."
    },
    {
      "id": "pirates-phillies-3d-print",
      "title": "Pirates + Phillies 3D Print",
      "icon": "🏴‍☠️",
      "priority": 9,
      "status": "🎉 SUCCESS · worn at PNC Park",
      "status_color": "green",
      "description": "3D-printed Clemente #21 medallions worn by family at PNC Park Saturday — the trip's purpose achieved. Yellow chain attempt failed but medallions complete and gifted. Photo proof on /bets/games/2026-05-16-pit-phi/ and trip page.",
      "link": "/personal/pirates-phillies-3d-print-2026-05/cost-analysis.md",
      "last_updated": "2026-05-16",
      "last_meaningful_update": "2026-05-16",
      "archived": true
    },
    {
      "id": "rain-hair-studio",
      "title": "Rain Hair Studio · CeCe's Salon Hub",
      "icon": "🌧️",
      "priority": 8,
      "status": "Multi-tenant scaffold live · CeCe-only Phase 1",
      "status_color": "blue",
      "description": "CeCe's salon hub (Rain Collective LLC dba Rain Hair Studio). Multi-tenant architecture from day one — owner/member/viewer roles via /auth/gate.js + _data/members.json. Hub home + CeCe's stylist dashboard + 5 shared sections + invite flow scaffold all built 2026-05-18 late-evening. Phase 2 wires Vagaro + Google Calendar. Phase 3 builds invite-token flow (design at /cece/rainhairstudio/invites/README.md).",
      "link": "/cece/rainhairstudio/",
      "last_updated": "2026-05-18",
      "last_meaningful_update": "2026-05-18"
    },
    {
      "id": "cece-schedule-sync",
      "title": "CeCe Schedule Sync (Vagaro + Google)",
      "icon": "📅",
      "priority": 6,
      "status": "Phase 2 planning · awaiting CeCe authorize on /cece/",
      "status_color": "gold",
      "description": "Wire Vagaro work appointments + Google Calendar personal events into Rain Hair Studio hub (Today/Week views) and CeCe's /cece/ schedule. Reuses existing /auth/google/connect flow. Trigger: CeCe authorizes the connection. Task IDs: task-RHS-PHASE2-VAGARO-001, task-RHS-PHASE2-GCAL-001 in handoff-blocks/task-ledger.md.",
      "link": "/cece/rainhairstudio/stylists/cece/schedule.html",
      "last_updated": "2026-05-18",
      "last_meaningful_update": "2026-05-18"
    },
    {
      "id": "cloudflare-migration-complete",
      "title": "Cloudflare Pages Migration",
      "icon": "☁️",
      "priority": 3,
      "status": "✅ Complete · samesolutionsllc.com on Pages · 5-day deploy stall ended",
      "status_color": "green",
      "description": "Migrated samesolutionsllc-website from Cloudflare Workers (wrong product, broken builds since 2026-05-13 due to node_modules > 25 MiB asset limit) to Cloudflare Pages (correct product for static site). Zero-downtime via create-first / atomic-domain-swap / delete-Worker-last order. Full investigation + walkthrough: handoff-blocks/cloudflare-fix-2026-05-18.md. Phase 7 (hub. + party. subdomains) pending dashboard work.",
      "link": "/handoff-blocks/cloudflare-fix-2026-05-18.md",
      "last_updated": "2026-05-18",
      "last_meaningful_update": "2026-05-18",
      "archived": true
    },
    {
      "id": "peter-scott-shed",
      "title": "Peter Scott — Shed Investigation",
      "icon": "🏚️",
      "priority": 7,
      "status": "Visit done 2026-05-12 · superseded by peter-scott-shed-relevel (active)",
      "status_color": "muted",
      "description": "3232 Green Oak, Commerce Twp MI. Tuesday May 12 visit done. Assessment notes captured; awaiting quote generation. Archived from Big Tasks 2026-05-22 — surfaces back when quote work resumes.",
      "link": "/customer-jobs/peter-scott-shed-2026-05/2026-05-12-visit.html",
      "last_updated": "2026-05-22",
      "last_meaningful_update": "2026-05-12",
      "archived": true,
      "_archived_reason": "Sam removed from Big Tasks 2026-05-22 — visit complete but no scheduled follow-up. Re-surface by setting archived:false when quote work resumes. Note: last_meaningful_update stays at visit date — 2026-05-22 was just the archival metadata edit, not substantive work.",
      "_superseded_by": "peter-scott-shed-relevel"
    },
    {
      "id": "aceves-multi-phase",
      "title": "Aceves — Fence + Paint Multi-Phase",
      "icon": "🪵",
      "priority": 6,
      "status": "Paint done (SS-013) · fence deferred",
      "status_color": "blue",
      "description": "Aceves home: paint work complete and billed in SS-013. Fence replacement assessment was quoted but deferred (not scheduled). Archived 2026-06-04 — re-surface (archived:false) if/when the fence phase resumes.",
      "link": "/customer-jobs/aceves-home-fence-2026-04/overview.html",
      "last_updated": "2026-06-04",
      "last_meaningful_update": "2026-05-15",
      "archived": true,
      "_archived_reason": "Paint phase done (SS-013); fence phase deferred with no scheduled follow-up. Archived 2026-06-04."
    },
    {
      "id": "sw-bulk-paint",
      "title": "SW Bulk Paint Order",
      "icon": "🎨",
      "priority": 5,
      "status": "In use · 2026-05-18 SW Pro run done",
      "status_color": "gold",
      "description": "4-color Aceves master + 5 jobs walk-in sheet. SW Pro run on 2026-05-18 picked up FrogTape Multi-Surface 1.41\" + trim quart. Inventory tracker: /personal/equipment/painting-tools/.",
      "link": "/personal/sw-bulk-paint-order-2026-05/walkin-sheet-v2.html",
      "last_updated": "2026-05-18",
      "last_meaningful_update": "2026-05-18",
      "intentional_hidden": true,
      "_intentional_hidden_reason": "Surfaces via /personal/sw-bulk-paint-order-2026-05/ dedicated page + recalibration notes. Not Big Tasks material. Sam Q2 R2 confirmed 2026-05-24."
    },
    {
      "id": "boat-battery-cables",
      "title": "Four Winns Battery + Cables",
      "icon": "⚓",
      "priority": 4,
      "status": "Planning · cable-end specs + pontoon-swap evaluation",
      "status_color": "muted",
      "description": "Identify correct cable end types for Four Winns H190 battery connection; decide whether to repurpose pontoon battery as 12V replacement or buy fresh. Affects season readiness. Sub-tasks live on /index/equipment/fourwinns-h190.md.",
      "link": "/index/equipment/fourwinns-h190.md",
      "last_updated": "2026-06-04",
      "last_meaningful_update": "2026-05-18",
      "archived": true,
      "_archived_reason": "Folded into the Four Winns H190 page 2026-06-04 (/index/equipment/fourwinns-h190.md) — cable-end + battery-swap work now tracked there + on issues.json (sb-fourwinns-terminals), not as a standalone project entry."
    },
    {
      "id": "salon-chairs-sale",
      "title": "Sell CeCe's Salon Chairs (1 of 2 sold)",
      "icon": "💺",
      "priority": 5,
      "status": "Chair 1 sold $250 · Chair 2 listed $300 (active)",
      "status_color": "blue",
      "description": "List CeCe's old salon chairs (from her pre-Salon-&-Co setup) on FB Marketplace / Craigslist / OfferUp. Chair 1: SOLD ~$250 around 2026-05-26 (Sam closed the deal in person). Chair 2: listed at $300 (Sam's target final price; active listing). Resolves when chair 2 sells, is donated, or Sam decides to keep. Owner: CeCe; Sam operates buyer interactions. task-CECE-SELL-SALON-CHAIRS-001.",
      "link": "/personal/items-to-sell/",
      "last_updated": "2026-05-26",
      "last_meaningful_update": "2026-05-26",
      "tags": [
        "cece",
        "side-income",
        "active-listing"
      ]
    },
    {
      "id": "printer-stand-enclosure",
      "title": "Printer Stand + Enclosure Design",
      "icon": "🔧",
      "priority": 4,
      "status": "On hold · design reference (post-Pittsburgh)",
      "status_color": "muted",
      "description": "Aluminum extrusion ($275-355, 6-10 hr) vs hybrid wood + 3DP pegboard ($275-395, 10-12 hr). AMS planning + 3DP accessory ecosystem.",
      "link": "/personal/3d-printing/stand-enclosure-design.html",
      "last_updated": "2026-06-04",
      "last_meaningful_update": "2026-05-11",
      "archived": true,
      "_archived_reason": "On hold 2026-06-04 — design reference only, no scheduled build. Re-surface when AMS/enclosure build starts."
    },
    {
      "id": "pittsburgh-trip",
      "title": "Pittsburgh Trip · May 15-17",
      "icon": "🏈",
      "priority": 10,
      "status": "Trip complete · home 2026-05-17",
      "status_color": "green",
      "description": "Pittsburgh Pirates + Pistons G7 + PGA R4 weekend with family. Medallions worn at PNC. 🐕 Picked up Dunkin (Westie) + Teagan (long-haired Dachshund) from boarding ~6:30 PM Sunday on the drive home — dogs home and accounted for. Auto-archive applied 2026-05-18 by CC.",
      "link": "/personal/trips/pittsburgh-2026-05-15.html",
      "last_updated": "2026-05-18",
      "last_meaningful_update": "2026-05-17",
      "archived": true
    },
    {
      "id": "peter-scott-shed-relevel",
      "title": "Peter Scott — Shed Releveling",
      "priority": 6,
      "status_color": "blue",
      "status": "Active · guide built; Option A (frame over concrete) recommended; awaiting Sam to contact Peter",
      "description": "12x10.5 shed on a concrete pad, ~12.8 in out of level. Peter Scott (Judy Scott's son; Judy = Sam's next-door neighbor) · 3232 Green Oak, Commerce Twp. Recommended: build a level PT frame over the existing concrete (Option A).",
      "link": "/customer-jobs/peter-scott-shed-2026-05/releveling-guide.html",
      "last_meaningful_update": "2026-06-04",
      "last_updated": "2026-06-04",
      "archived": false
    },
    {
      "id": "ddr-ht400-grill-pontoon",
      "title": "DDR HT 400 grill - 1 lb propane + pontoon rail mount",
      "icon": "🔥",
      "priority": 4,
      "status_color": "orange",
      "status": "Page built; regulator gate CONFIRMED yes 2026-06-08 (-> plain 1 lb adapter); 3 gates remain before buying (QC gender/thread, rail profile, grill mount interface)",
      "description": "Adapt Sam's DDR HT 400 LP grill (RV quick-connect + folding RV-bracket stand) to run on 1 lb propane bottles and mount to the pontoon rail. Propane gate: grill regulator yes/no decides regulated vs plain adapter (do not double-regulate). Mount: OEM DDR bracket (may be discontinued) vs universal rail-clamp + adapter plate, gated on rail profile + grill mount-interface measurements. Page: /personal/ddr-ht400-grill-pontoon/. SAM-FILL: chosen parts + prices.",
      "link": "/personal/ddr-ht400-grill-pontoon/",
      "last_meaningful_update": "2026-06-08",
      "last_updated": "2026-06-08",
      "archived": false
    }
  ]
}
