{
  "snapshot_built": "2026-05-03",
  "source": {
    "claude_sessions": 19,
    "codex_sessions": 37,
    "date_range": "2026-04-19 to 2026-05-03"
  },
  "totals": {
    "groups": 8,
    "projects": 31,
    "items_done": 32,
    "items_in_progress": 11,
    "items_blocked": 6
  },
  "schema": {
    "group": "{ name: string, blurb: string, projects: Project[] }",
    "project": "{ name: string, sub: string (path/url subtitle), items: Item[] }",
    "item": "{ status: 'done'|'wip'|'blocked', source: 'claude'|'codex', when: string (date label), title: string, detail: string }"
  },
  "groups": [
    {
      "name": "Client websites & SEO work",
      "blurb": "Paying-client deliverables: site rebuilds, on-page fixes, monthly SEO trackers, invoicing.",
      "projects": [
        {
          "name": "Lover Clinic — Astro site rebuild",
          "sub": "Repo: /Users/tidacha/loverclinic-rebuild · Cloudflare Pages staging",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 20", "title": "Static homepage redesign prototype",
              "detail": "Built MediPoint-style premium medical layout while keeping red/black brand feel. Cleaner hero, curated service cards, stronger doctor section, mobile nav toggle. Saved as /Documents/Codex/2026-04-20-.../index.html." },
            { "status": "done", "source": "codex", "when": "Apr 27", "title": "Site-wide Back to top floating button",
              "detail": "Added to src/layouts/Layout.astro:232. Hidden until scroll > 360px, smooth scroll, works in TH + EN." },
            { "status": "done", "source": "claude", "when": "~Apr 28", "title": "Initial SEO market research deliverables",
              "detail": "LoverClinic_SEO_Market_Research.docx + LoverClinic_SEO_Data.xlsx (5 tabs). DR 25, 217 keywords, ~1,049 traffic/mo. Tracker showed 8% complete (2/24)." },
            { "status": "done", "source": "codex", "when": "May 1", "title": "RankMath to Astro mapping verified + branding pushed",
              "detail": "Commit be47134 'feat: update homepage branding and add back to top widget'. Set Lover Clinic title + og:site_name in Layout.astro." },
            { "status": "done", "source": "codex", "when": "May 1", "title": "JSON-LD schemas added to homepage",
              "detail": "Redeployed to Cloudflare Pages staging. Homepage now has >=1 JSON-LD block (was 0)." },
            { "status": "done", "source": "codex", "when": "May 1", "title": "Messenger floating button matched LINE styling",
              "detail": "Layout.astro:264, real circular brand SVG icons for both buttons." },
            { "status": "done", "source": "codex", "when": "May 2", "title": "Rollup/Linux Cloudflare build fix pushed",
              "detail": "Removed @rollup/rollup-darwin-arm64 dependency, pushed b659034 so Linux build passes." },
            { "status": "done", "source": "codex", "when": "May 2", "title": "Service-page bottom-box layout cleanup",
              "detail": "Latest commit 5c7ab30 'fix: clean up service branch section layout' - local 0 ahead/behind origin/main." },
            { "status": "wip", "source": "codex", "when": "May 1", "title": "Activity tracker / reports redesign for Lover Clinic + others",
              "detail": "Reports page is currently placeholder; converting to real per-client/month detail page tied to dashboard cards." },
            { "status": "blocked", "source": "codex", "when": "May 2", "title": "Cloudflare staging serving old content",
              "detail": "loverclinic-staging.pages.dev still shows old 5.0-star/16-reviews copy + old multi-doctor section + old menu. Local build fixes haven't propagated. GitHub showing recent commits as 'pending' with no deployment objects written back." },
            { "status": "wip", "source": "codex", "when": "May 2", "title": "Mobile menu fix verification",
              "detail": "Local fix in place (list, no scroll), but staging hasn't picked it up - pending CF redeploy." },
            { "status": "wip", "source": "codex", "when": "May 2", "title": "Hero alignment adjustment",
              "detail": "Pushed; awaits visual confirmation on staging." }
          ]
        },
        {
          "name": "osm-spc-site - Thai SPC tile WordPress blog",
          "sub": "/Users/tidacha/osm-spc-site - xn--12cma8ewbd5ewaw0c1f4e.net",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 28", "title": "Site rebuild + scheduled WP publishing",
              "detail": "3 immediate posts (spc-kitchen, spc-living-room, spc-home-office) plus rest scheduled every 3 days at 09:00 Asia/Bangkok from 5 May to 7 Jun 2026." },
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "osm-blog-opportunity-finder skill built + validated",
              "detail": "New skill at /skills/osm-blog-opportunity-finder/ with site-context.md, README index. Tuned to SPC: prefers refresh existing > create new, scores topic fit & cannibalization risk." },
            { "status": "wip", "source": "claude", "when": "May 1", "title": "Day-3 indexing check (scheduled task)",
              "detail": "Automated reminder fired: check Google site:xn--12cma8ewbd5ewaw0c1f4e.net/blog/ + URL Inspection tool in GSC. Next checkpoints Day 7 / Day 14." }
          ]
        },
        {
          "name": "Hashed Analytic - WordPress speed + branding",
          "sub": "/Users/tidacha/Hashed ionos - hashedanalytic-36tu07i1me.live-website.com",
          "items": [
            { "status": "done", "source": "codex", "when": "May 1", "title": "Logo replacements + hero revert + Elementor cache clear",
              "detail": "Hero reverted to ns-img-292.svg, all new logo replacements remain. Verified live HTML." },
            { "status": "done", "source": "claude", "when": "Apr", "title": "TH Word + Excel handover docs (font fix)",
              "detail": "Hashed-Analytic-Handover-TH.docx + Handover-Template-Minimal-TH.docx. Switched all fonts to Tahoma to fix Thai glyph boxes. OSM logo wired as clickable hyperlink via post-processor." }
          ]
        },
        {
          "name": "Burijingjai - WooCommerce ecom (tile brand)",
          "sub": "burijingjai.com / Codex/burijingjai",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "Restored bureenok-checkout v1.1.1 + homepage structure",
              "detail": "billing_phone_required server validation back, floating bnk-backtotop button restored. Homepage ID 27 structure restored without removing current content." },
            { "status": "done", "source": "codex", "when": "May 2", "title": "Ahrefs tracking added",
              "detail": "Tracking integrated; surfaced concern that current brand-taxonomy sort isn't ideal A-Z (numeric/EN comes before Thai brands)." }
          ]
        },
        {
          "name": "thesisdd-astro - content + widgets",
          "sub": "/Users/tidacha/From CLAUDE/thesisdd-astro - dimgrey-cat-453791.hostingersite.com",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 28", "title": "Phone/LINE widget repositioning + Back-to-top in widget",
              "detail": "Widget moved lower on desktop + mobile; Back-to-top added inside widget. Edits in Layout.astro + global.css." }
          ]
        },
        {
          "name": "Past-week activity review (Apr 22 - 29)",
          "sub": "Cowork session - across all client trackers",
          "items": [
            { "status": "done", "source": "claude", "when": "Apr 29", "title": "Lover Clinic at 16/22 done, 6 WIP",
              "detail": "Doctor schema + /doctors/ TECH-002 closed in window." },
            { "status": "done", "source": "claude", "when": "Apr 29", "title": "PM Accounting closed company-registration pillar early",
              "detail": "EEAT-004 + base-tax OP-006 done. Tracker now 11/15 done, 4 WIP." },
            { "status": "done", "source": "claude", "when": "Apr 18", "title": "PMED Clinic content cleanup decisions",
              "detail": "Merged fat-grafting safety trio into #8863, de-duped price vs FAQ #21081/21083, decided guide-page strategy #21611 vs #2069." },
            { "status": "wip", "source": "claude", "when": "ongoing", "title": "Idle accounts: The Area Plus, I.D. Decoration, Bureenok",
              "detail": "Show 0 tasks loaded in tracker for 2+ weeks. Backlog seeding suggested." }
          ]
        },
        {
          "name": "April 2026 client payment reconciliation",
          "sub": "Cowork session - agency cashflow",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr 30", "title": "Reconciled 6 of 12 April invoices paid (50% collection)",
              "detail": "Outstanding 109,941.85 THB across 6 clients flagged for chase: Arctic Asia 30+ days, Lover Clinic 30+ days (Uraiwan irregular), I.D. Decoration 30K, AST Printing 26.2K, PMed 14K, GET 7K. Arctic Asia + Lover Clinic = priority." },
            { "status": "wip", "source": "claude", "when": "~Apr 30", "title": "Chase messages drafting",
              "detail": "Awaiting your go-ahead to draft the 6 chase messages." }
          ]
        }
      ]
    },
    {
      "name": "OSM agency property",
      "blurb": "The agency's own marketing site.",
      "projects": [
        {
          "name": "OSM agency website (onestopmarketing.agency)",
          "sub": "/Users/tidacha/osm-agency",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 30", "title": "PageSpeed fixes + crawler unblocking",
              "detail": "Repo-controlled robots.txt, sitemap exposed, Cloudflare managed robots.txt off, AI-bot blocking rule off, speed fixes deployed." }
          ]
        }
      ]
    },
    {
      "name": "OSM internal tools / platform builds",
      "blurb": "In-house tooling for running the agency: CRM, reports, SEO data pipelines, AI tools.",
      "projects": [
        {
          "name": "OSM-Operation - internal CRM + monthly client reports",
          "sub": "/Users/tidacha/Documents/Codex/OSM-Operation - gsc-sync, Astro UI prototype",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "Clickable static UI prototype built",
              "detail": "ui/index.html (Dashboard), ui/clients.html, ui/client.html, ui/reports.html. HTML/CSS only, no backend yet." },
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "BACS payment gateway pattern extracted from public bureenok.com",
              "detail": "bacs_extended key, checkout.js path, AJAX upload_slip flow, nonce passing, allowed jpg/jpeg/png. Ready to clone into osm-bacs-gateway." },
            { "status": "wip", "source": "codex", "when": "May 1", "title": "GSC OAuth sync for client GSC data",
              "detail": "Started cd gsc-sync && npm run oauth:url. Client-secret JSON + clients.json config in worktrees/5c30/OSM-Operation/gsc-sync/." },
            { "status": "wip", "source": "codex", "when": "May 1", "title": "PMed report tightening for client-ready handoff",
              "detail": "Plan: rewrite Executive Summary, write 'Next Month Priorities', 'Notes from your SEO Lead', client-facing tone, internal/client split, real share workflow (Copy client link, Email draft)." },
            { "status": "done", "source": "codex", "when": "May 3", "title": "Tracked-keyword history table fixed for all April reports",
              "detail": "Pink history table now renders for every client with tracked keywords - gsc_keyword_groups -> fallback to client's top tracked KWs. Verified across loverclinic, bettermove, etc. on localhost:4323." }
          ]
        },
        {
          "name": "OSM-SEO-API - Ahrefs MCP/API integration",
          "sub": "/Documents/Codex/OSM-SEO-API",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 28", "title": "Approach options + content recommendations",
              "detail": "Outlined Ahrefs MCP/API connection paths, plus follow-up Thai tax/legal explainer KWs (taxpayer ID, P.P.30, etc.) for accounting client." }
          ]
        },
        {
          "name": "osm-reports - CRM MVP planning",
          "sub": "/Users/tidacha/osm-reports - confirm-first mode",
          "items": [
            { "status": "wip", "source": "codex", "when": "Apr 28", "title": "MVP scope decision pending",
              "detail": "Awaiting your 'yes' on: build CRM MVP first (no report migration yet), tech = Cloudflare + D1. Lean on tokens, decision checkpoints. Memory entry was later removed when work moved into OSM-Operation." }
          ]
        },
        {
          "name": "AI SEO Software platform - pipeline spec",
          "sub": "/Documents/Codex/2026-05-02/see-possibilities-to-build-any-of",
          "items": [
            { "status": "wip", "source": "codex", "when": "May 1", "title": "MVP shortlist + recommendation",
              "detail": "Picked 4 starter modules: URL Source Code Analyzer, Multi-Source SEO Snapshot Tool, Weekly SEO Report Generator, Strategy Library. Competitor Tracker, Content Brief Generator, AI SEO Chat to follow." }
          ]
        },
        {
          "name": "Brand visibility tracker (AI search mentions)",
          "sub": "/Documents/Codex/2026-05-02/i-want-to-track-bran-visibility",
          "items": [
            { "status": "wip", "source": "codex", "when": "May 1", "title": "Architecture proposed",
              "detail": "3-layer: (1) API layer - GSC + URL Inspection + Bing Webmaster + Programmable Search; (2) Manual/browser-capture for ChatGPT/Claude/Gemini/Perplexity/Copilot - brand mention, rank, sentiment, citations; (3) Scoring layer for weekly index. Treat AI answer-export APIs as unverified per vendor." }
          ]
        }
      ]
    },
    {
      "name": "New ventures / own properties",
      "blurb": "Side-project sites and acquisition plays.",
      "projects": [
        {
          "name": "thaisolarguide.com - Thai solar SEO content hub",
          "sub": "Solar/PV market research + content plan",
          "items": [
            { "status": "done", "source": "claude", "when": "Apr", "title": "10-tab SEO research workbook delivered",
              "detail": "127 TH KWs, 70 EN, 32 question KWs, 18 tax/govt cluster (3,960 vol), 33 competitors, 26 top pages, 25 prioritized content gaps, 31 affiliate targets. Key insight: 'solar-cell' (TH spelling A) at 31K/mo >> spelling B at 4.2K/mo. 200K-baht tax deduction = pillar topic." }
          ]
        },
        {
          "name": "healthyandglowing.com - health & beauty hub planning",
          "sub": "Domain on IONOS - explored Astro on Cloudflare vs WordPress",
          "items": [
            { "status": "wip", "source": "codex", "when": "Apr 29", "title": "Stack & cost decision underway",
              "detail": "Static + markdown + scheduled build/deploy = simplest; WP = easier 'set and forget' scheduling. Token cost roughly equivalent either way." }
          ]
        },
        {
          "name": "thesimscc.com - Sims custom content review blog",
          "sub": "/Documents/Codex/2026-04-29-i-want-to-build-a-cool",
          "items": [
            { "status": "wip", "source": "codex", "when": "Apr 28-29", "title": "Starter project + first review created",
              "detail": "Lightweight content structure for CC reviews; first entry sonyasims-delight-hair-kids.md drafted in personal voice. Aiming for AdSense placement." }
          ]
        },
        {
          "name": "Fiverr backlink service verification (fungoes.net + mindtechsolar.com)",
          "sub": "Cowork session - domain/backlink audit",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Verdict: skip relaxspathaimassageliestal.ch (spam-attacked)",
              "detail": "Backlinks 100% off-topic + 100% nofollow - XRumer/GSA spam blast. fungoes.net + mindtechsolar.com prioritized as real opportunities." },
            { "status": "wip", "source": "claude", "when": "~Apr", "title": "Awaiting fungoes.net site-state answers",
              "detail": "Need: WP login? Hosting? Theme/version? SSL? GSC verified? Old posts state? Determines week-1 plan." },
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "mindtechsolar.com domain transfer in flight",
              "detail": "GoDaddy expired-domain transfers take 7-30 days. Useful waiting period to build fungoes.net case study first." }
          ]
        },
        {
          "name": "News-aggregation business model strategy",
          "sub": "Cowork research session",
          "items": [
            { "status": "done", "source": "claude", "when": "Apr", "title": "Reframed: don't beat PEA/KBank calculators - build aggregator marketplace",
              "detail": "Top picks: Solar installer aggregator (high CPC, 2K-10K THB/lead), Handyman aggregator (open SERP, agency synergy), Interior design renovation (dark horse, 10K-50K THB/lead). Layered plan: Solar MVP 4-6 wk, Handyman 10-12 wk, SME newsletter ongoing." }
          ]
        }
      ]
    },
    {
      "name": "Agency operations",
      "blurb": "Recurring agency-running tasks: calendar, outreach, asset prep.",
      "projects": [
        {
          "name": "Calendar + reminders setup",
          "sub": "Cowork - Google Calendar",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Shifted 19 events + 4 scheduled reminders 9am to 3pm Bangkok",
              "detail": "All same dates, just shifted." },
            { "status": "done", "source": "claude", "when": "~Apr", "title": "WordPress plugin update reminder - recurring monthly for 24 months",
              "detail": "Starts May 15 2026, every 15th, 3pm Bangkok, through Apr 15 2028." }
          ]
        },
        {
          "name": "PR / Backlink outreach pack (Thailand)",
          "sub": "Cowork session - OneStopMarketing project folder",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Word + Excel deliverables produced",
              "detail": "Thailand-PR-News-Outreach-Pack.docx (Tahoma font fix for TH glyphs) + Thailand-PR-Backlink-Pack.xlsx (3 sheets, hyperlinks, mailto, frozen headers, autofilter, tier color-coding)." }
          ]
        },
        {
          "name": "OSM blog post photo mapping",
          "sub": "Cowork - ~/Downloads/OSM Blogs",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "9 photos sorted into blog-slug filenames",
              "detail": "~119 MB total. Covers Meta Ads Learning Phase, conversion tracking, Google Ads cost-per-lead, Meta ROAS, Bettermove SEO case study, Technical SEO Checklist." },
            { "status": "wip", "source": "claude", "when": "~Apr", "title": "Resize/WebP + alt-text generation offered",
              "detail": "Awaiting go-ahead for resize -> WebP -> Thai+EN alt-text pipeline + web-ready/ folder + alt-text.md cheat sheet." }
          ]
        }
      ]
    },
    {
      "name": "Research & strategy",
      "blurb": "Background research and decision-support sessions.",
      "projects": [
        {
          "name": "Spam backlink / Thai SEO landscape research",
          "sub": "Cowork research session",
          "items": [
            { "status": "done", "source": "claude", "when": "Apr", "title": "Thailand identified as top blackhat market",
              "detail": "Gambling money funds shadow industry; .go.th and .ac.th hijacking ongoing. Three competitor patterns: parasite hosts, fresh PBN burns, legit sites with strong contextual links + competitor neg-SEO. Strategic moat = real Thai E-E-A-T (GBP, Pantip, Wongnai, .ac.th editorial)." }
          ]
        },
        {
          "name": "Money-robot / backlink tools think-piece",
          "sub": "Cowork conversation",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 28", "title": "Honest take + better-source list given",
              "detail": "Most profile/directory links are trust/citation more than rank power. Strongest links: industry blogs, podcasts, local news, partner pages, guest posts, niche resource pages." }
          ]
        },
        {
          "name": "Blog generation + scheduling research",
          "sub": "/Documents/Codex/2026-04-29-i-want-a-solutions-to-generate",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "Static markdown vs WordPress comparison delivered",
              "detail": "Static + markdown + scheduled build/deploy = simplest; WP = easier scheduling. Token usage similar." }
          ]
        },
        {
          "name": "Cross-tool agent experiments (Codex <-> Claude <-> Claude Code)",
          "sub": "/Documents/Codex/2026-04-29-i-wanna-create-a-small-agent",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 29", "title": "Permission/context guidance documented",
              "detail": "Folder access lets it touch files; opening in the right folder makes it load CLAUDE.md/AGENTS.md context." }
          ]
        }
      ]
    },
    {
      "name": "System setup & file ops",
      "blurb": "Tool setup, memory consolidation, file/folder housekeeping.",
      "projects": [
        {
          "name": "Set up Cowork",
          "sub": "Cowork onboarding",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Skills loaded: seo-thai-content + standard suite",
              "detail": "/seo-thai-content (custom for agency), /docx, /xlsx, /pptx, /pdf, /schedule available." }
          ]
        },
        {
          "name": "Connect Cowork <-> Claude Code",
          "sub": "Cowork session - bridge guidance",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Bridge = the shared folder (Personal Work Track)",
              "detail": "Files shared, MCPs partially shared, memory + conversation context separate. Install: curl -fsSL https://install.claude.ai | bash, then cd into shared folder." }
          ]
        },
        {
          "name": "Codex memory consolidation - Phase 2 agent",
          "sub": "/Users/tidacha/.codex/memories",
          "items": [
            { "status": "done", "source": "codex", "when": "Apr 29 - May 1", "title": "Five rolling consolidation runs",
              "detail": "MEMORY.md and memory_summary.md kept in sync across rollouts. Added osm-spc-site task group, OSM-Operation top-priority block, loverclinic-rebuild block. Pruned unsupported osm-reports thread." }
          ]
        },
        {
          "name": "Desktop file cleanup + rename",
          "sub": "Cowork - ~/Desktop",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "126 images in Desktop Check/ renamed to content-based slugs",
              "detail": "18 cryptic + 108 macOS screenshots -> meaningful names. Reference TSVs saved in Personal Work Track folder for audit." }
          ]
        },
        {
          "name": "Identify files to delete from Downloads",
          "sub": "Cowork session",
          "items": [
            { "status": "done", "source": "claude", "when": "~Apr", "title": "Downloads review list compiled",
              "detail": "downloads_review_list.csv produced in Personal Work Track folder." }
          ]
        }
      ]
    },
    {
      "name": "Blocked / awaiting external",
      "blurb": "Tasks parked because of connector limits, missing inputs, or external dependencies.",
      "projects": [
        {
          "name": "Canva design edit (Remove Background)",
          "sub": "Cowork session - Canva connector",
          "items": [
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "BG Remover not exposed in Canva connector",
              "detail": "Canva connector covers text/image swap/format/resize but not Remove Background (editor-UI-only). Local rembg blocked by sandbox proxy. Workarounds: Canva Pro BG Remover, or macOS Finder right-click -> Quick Actions -> Remove Background." }
          ]
        },
        {
          "name": "Compare products across two websites",
          "sub": "Cowork session - Chrome control",
          "items": [
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "Chrome control not responding consistently",
              "detail": "Tried mcp__Control_Chrome__execute_javascript twice. Fell back to requesting computer-use access for screenshots; thread idle." }
          ]
        },
        {
          "name": "Write Thai script from YouTube video",
          "sub": "Cowork session",
          "items": [
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "YouTube + transcript sites not in Anthropic allowlist",
              "detail": "Could not pull subtitles for video jfYJywPBZM8. Identified as 'How I'd Teach a 5 Year Old to Build AI Agents (No Code, n8n)'. Brain/Conscience/Tools framing + Santa's Helper Agent example surfaced." }
          ]
        },
        {
          "name": "Competitor research (spop_lp2_audit)",
          "sub": "Cowork - Chrome connector",
          "items": [
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "Awaiting master strategy file upload",
              "detail": "Project knowledge folder + workspace folder were empty besides spop_lp2_audit.html. Offered to push live competitor research via Ahrefs+SEMrush+Google in parallel." }
          ]
        },
        {
          "name": "Google Ads MCP integration",
          "sub": "Cowork session - Google Ads",
          "items": [
            { "status": "blocked", "source": "claude", "when": "~Apr", "title": "Self-hosted MCP server required",
              "detail": "Google's official Google Ads MCP exists (read-only) but needs your team to set up local server with API credentials. Cowork can't install directly. Alternative: Ahrefs/SEMrush already connected." }
          ]
        }
      ]
    }
  ]
}
