Timeline
86,615 memories — chronological, newest first.
[USER]
https://www.turnkeybathremodel.com/ hey Oliver, I want to do something interesting here. Take this website and grab the GMB of course. I want you to do multiple audits. One just the COREG method, one COREG mixed with my methods, and then one with the whole ecosystem, tying everything in.
But listen motherfucker, you better make sure that you're using the Merlino, SOP, MCP server, Einstein, Tommy, Shakespeare, the whole fucking squad, bro. Don't play yourself.
And I don't want to do the PRD like we usually do. I want you to spec it out in front of me now per environment, per LLM. Who's going to handle what? What each audit will entail as far as skills, what SOPs will be used. Make sure that on my shit we're using Bill at the C, Matt Diggity's SOP site, my Patton SOP site, my Merlino SOP site. Please, it's time to rock and roll and get this shit poppin'. Use multiple environments, report to Discord, put it on merlinoai.com, Paperclip, Multica, and if you can, a Hermes Kanban board, but if not, that's fine.
Give me back a detailed PRD, Ultra Think, and we're gonna do this with teams of agents, fan out sub-agents, Ultra Work, Workforce, Workflow. workflow
[ASSISTANT]
All sources resolved. Here's the full spec, Mike. Decoded your voice input first so we're aligned on names:
- **"COREG"** = Koray Tugberk GUBUR semantic SEO method. Assets confirmed: https://koray-semantic-seo-docs.vercel.app + full course transcripts at `<eco_root>/youtube-transcripts/koray-tugberk-seo-course` + `koray-semantic-seo-master` and `koray-topical-map` skills.
- **"Bill at the C"** = Bill Slawski / SEO by the Sea. Assets confirmed live: https://seobythesea-docs.vercel.app + https://slawski-seo-dashboard.vercel.app
- **"Patton SOP site"** = reading this as your **Patents** SOP site: https://google-patents-seo-learning.vercel.app (live, and it pairs naturally with Slawski). If you meant a person named Patton, correct me at GO, nothing named Patton exists anywhere on disk or Vercel.
- **Matt Diggity** = no dedicated SOP site exists, but you have the full 871-transcript corpus at `<eco_root>/youtube-transcripts/matt-diggity`. Agents will mine that directly.
- **Merlino SOP** = `merlino-sops` MCP, 38 categories verified live (relevant: `seo`, `local`, `links`, `content`, `ghost-engine`, `screaming-frog`, `sitebulb`).
One real finding from recon already: **Google Places autocomplete returns NOTHING for "TurnKey Bath Remodel"** (tried with and without New Orleans). Either it's a service-area business with a hidden address, it's listed under another name, or the GBP is weak/missing. That's headline material and Phase 0 resolves it.
---
# PRD: TurnKey Bath Remodel, Triple-Method SEO Audit
**Target:** https://www.turnkeybathremodel.com/ + GMB
**Client profile (verified via live fetch):** TurnKey Bath Remodel, 3436 Magazine St Suite 414-N, New Orleans, LA 70115, (504) 513-6366. Bath/shower remodels, 1-day installs, 14 LA service-area cities (Metairie, Kenner, Slidell, Baton Rouge, etc.). Pages: Home, About, Showers, Bathtubs, Service Areas, Blog, Contact, Projects, Testimonials, FAQ.
**Date:** 2026-06-11
## Phase 0: Shared Data Layer (run once, feeds all 3 audits)
| Task | Tool | Where it runs |
|---|---|---|
| Resolve GBP (place_id, CID, reviews, categories, photos) | `seo-utils` find_google_business + DataForSEO Business Data + `dataforseo-gmb` skill | Hetzner |
| Full technical crawl | Screaming Frog MCP (`mcp__screaming-frog__*`, already licensed on Hetzner) | Hetzner |
| Content inventory + screenshots | Firecrawl (firecrawl-first rule) | Hetzner |
| Organic keywords, SERPs, backlinks, traffic, competitors | `seo-utils` MCP (DataForSEO: get_organic_keywords, fetch_serp_data, fetch_backlinks, get_backlink_summary, get_content_gap, get_traffic_competitors) | Windows MCP, API-side work |
| Local SERP scans, geo + broad, per service-area city | `seo-utils` fetch_serp_data with NOLA-metro geos | API |
| Competitor set (3 to 5 local bath remodelers) | Raven via DataForSEO + Firecrawl | Hetzner |
Not available: GSC/GA (not our property). Stated plainly in every report, never faked.
## Audit A: Pure Koray (COREG only)
**Lead: Einstein.** Nothing but the Koray method, scored exactly as Koray would score it.
- **Sources (exclusive):** https://koray-semantic-seo-docs.vercel.app, `koray-tugberk-seo-course` transcripts, merlino-sops `seo` category (Koray rows only)
- **Skills:** `koray-semantic-seo-master`, `koray-topical-map`, `semantic-web-foundations`, `query-classification-content-mapper`
- **What gets audited:** Source Context, Central Entity + Central Search Intent, topical map coverage (core vs outer section), contextual vectors per page, attribute coverage for "bath remodel" entity, query networks, internal linking per semantic distance, cost of retrieval signals, momentum/publishing cadence (Blog), topical authority vs the NOLA competitor set
- **Output:** Koray scorecard + the topical map TurnKey SHOULD have vs what exists, gap-listed
## Audit B: Koray x Merlino Method
**Leads: Einstein (semantic) + Ghost (GMB/local) + Tommy (technical/patents).** Audit A's lens PLUS your stack layered on top.
- **Sources:** everything in A, plus https://seobythesea-docs.vercel.app, https://slawski-seo-dashboard.vercel.app, https://google-patents-seo-learning.vercel.app, `matt-diggity` 871-transcript corpus, merlino-sops `seo` + `local` + `links` + `content`, https://clickminded-sop.vercel.app MCP where relevant
- **Skills:** `intent-behind-intent` + `intent-analyzer` (your 3-layer intent decode on every money page), `gmb-secret-sauce`, `gmb-maps-expert`, `maps-seo-checklist`, `geogrid-reporting-sop`, `local-falcon-sop`, `eeat-audit`, `helpful-content-audit`, `google-qrg-seo`, `location-page-builder` (audit mode: 17-point checklist against their Service Areas pages), `citation-link-building`, `cloud-stack` (recommendation layer), `merlino-magic-blog-framework` (content engine rec), `paa-researcher`
- **What gets added over A:** GBP deep audit (categories, services, posts cadence, review velocity, photo signals), geogrid visibility across the 14 cities, citation/NAP consistency, Slawski patent-signal analysis (entity salience, site quality scores, local prominence patents) applied to their pages, Diggity-style onsite/CRO + link profile evaluation, intent-behind-intent mapping per service page, PAA capture opportunities per city
- **Output:** hybrid scorecard + ranked fix list, each fix tagged with WHICH method caught it (Koray / Slawski-patent / Diggity / Merlino), so the delta vs Audit A is visible
## Audit C: Full Ecosystem
**Carlos conducts, all leads play.** Everything in A + B, plus every lane the fleet has.
| Lane | Agent | Skills / Tools |
|---|---|---|
| Forensic deep-dive (why they rank where they rank, root cause) | Sherlock | `seo-forensic-incident-response`, `seo-audit` |
| Technical + CWV + indexation | Tommy | Screaming Frog MCP, `core-web-vitals`, `internal-linking-optimizer`, sitebulb + screaming-frog SOP sites |
| Schema + entity | Schemabrain | `schema-spider`, `agent-visibility-audit`, `entity-seo`, `knowsabout-schema-generator` |
| AI/LLM visibility | Einstein | `ai-visibility-audit-pro` (your pilot tool), `aaron-geo-content-optimizer`, `ai-llm-seo`, `dataforseo-llm-mentions` |
| Content quality | Shakespeare | `aaron-content-quality-auditor` (CORE-EEAT 80-item), `content-gap-analysis`, `content-quality-scorer` |
| Backlinks + authority | Linx | `backlink-analyzer`, `aaron-domain-authority-auditor` (CITE 40-item), seo-utils backlink suite |
| Competitor + market intel | Raven | `competitor-analysis`, `last30days` (NOLA remodel market signals), `niche-research` |
| CRO + conversion | Frankie (analysis only) | `conversion-optimizer`, `landing-page-optimizer` |
| Call/CTA tracking gaps | Hawkeye | call tracking + attribution observations on their (504) number setup |
| Growth playbook synthesis | Oliver + Shakespeare | ties all three audits into ONE prioritized 90-day roadmap with projected impact |
**Output:** full ecosystem report + the money section: side-by-side of what each audit tier caught, proving the compounding value of the stack (this doubles as a sales asset for your agency pitch).
## Environment x LLM Matrix
| Environment | LLM | Role |
|---|---|---|
| Windows home box | Opus 4.8 (Claude Code, this seat) | Oliver + Carlos: orchestration + dispatch ONLY, zero heavy load (remote-default rule) |
| Hetzner BIG (merlino-fleet-hel1) | Opus 4.8 via Claude Code in tmux | Primary execution: crawls, Firecrawl, audit agents A/C, Screaming Frog |
| Mac Studio | Opus 4.8 (Hermes mac-main) | Audit B lane runs parallel to Hetzner's A lane |
| Robert box (robert-seo-1 / 95.217.4.113) | Claude 2.1.173 | Overflow SEO lane if A/B/C saturate, optional |
| Codex (Cody) | GPT 5.5 Extra High | Builds the deliverable report site while audits run |
| Gemini CLI | Gemini (free tier, dies 2026-06-18, use it while it lasts) | Heartbeats + status pings only |
| Qwen worker tier | OFF | Per standing rule, not used unless you say so |
## Orchestration
- **Harness:** Workflow tool (you opted in: "workflow"). Three parallel pipelines (A, B, C-prep) fan out lead agents as subagents, with adversarial verify on every major finding before it enters a report. Audit C synthesis barriers on A + B completing (it needs both for the comparison section).
- **PDCA:** Oliver scores (this doc), Carlos conducts, Queen vetoes anything without evidence, Petey banks learnings.
- **Sequencing:** Phase 0 (shared data) -> A and B in parallel -> C lanes in parallel -> C synthesis -> report site -> QA -> ship.
- If you want persistent **Teams** sessions instead of Workflow fan-out, say so at GO; default is Workflow + subagents (same capability, ~5x cheaper).
## Deliverable + Distribution
- **Report site:** Next.js + Tailwind, WHITE theme, Vercel: `https://turnkey-bath-audit.vercel.app` with routes `/koray`, `/koray-merlino`, `/ecosystem`, `/compare`, `/proof/<session>`. Cody builds, Frankie polishes, Queen gates with deployed-URL screenshots.
- **Discord (Merlino server):** `#audits` per audit completion, `#deploys` on site live, `#powd` with proof link.
- **https://merlinoai.com** Mission Control: project entry + status.
- **Paperclip + Multica:** result push per remote-default rule.
- **Hermes Kanban:** mirror board on VPS3 Herman (tailscale :9119/kanban), best effort as you said.
- **Task board:** task-handler rows per audit (To Do -> Doing -> Done).
## Done-When
1. Three distinct audit reports live at the URL above, each with scorecard + ranked findings
2. `/compare` page shows what each method tier caught that the previous one missed
3. GBP mystery resolved (found, weak, or missing, with evidence)
4. POWD screenshots at `/proof/<session>`, Discord posted, boards updated
5. VERIFICATION: FULL (browser-loaded screenshots of the deployed report)
## Open Items (confirm at GO)
1. "Patton" = the Google Patents SOP site, correct?
2. Budget sanity: DataForSEO + Firecrawl spend estimated under $15 total for this scope. Fine?
Say **GO** and Carlos gets the baton.
Jun 11, 06:37 PM
[USER]
[tool_result] ['attachment_id', 'filename', 'size', 'content_type', 'content_disposition', 'download_url', 'expires_at']
{'attachment_id': 'e6388be1-007f-44eb-90b6-3a43b9a99b2d', 'filename': 'LSB-Ball-Academy-SOW-signed-lsb_ball_academy.pdf', 'size': 80852, 'content_type': 'application/pdf', 'content_disposition': 'attachment', 'download_url': 'https://cdn.agentmail.to/attachments/e6388be1-007f-44eb-90b6-3a43b9a99b2d?Expires=1781205611&Key-Pair-Id=KEP2XXZ8TNG4T&Signature=USLq2WfIFLQ2UnPwoW0iYt3~VJmUGYbkvCwOF
[ASSISTANT]
[tool_use:Bash]
Jun 11, 06:21 PM
[USER]
put on vercel so I can fucking ocmpare asshole
[ASSISTANT]
[tool_use:Bash]
Jun 11, 06:19 PM
[USER]
[tool_result] --- latest DB row:
[{"id":"82a7c364-ff77-409e-b928-b140d6f01e03","created_at":"2026-06-11T18:13:32.111457+00:00","party":"lsb_ball_academy","signer_name":"Lamont Smith","option_selected":"Option A: Retainer","date_signed":"June 11, 2026"}]
--- latest sent email:
2026-06-11T18:13:32.239Z | to: ['mike@merlinomarketing.com'] | subj: LSBA SOW signed: Lamont Smith (Option A: Retainer) | attachments: 1
[ASSISTANT]
TESTED: Full browser e2e passed on the live page, every link in the chain verified
A real headless Chrome on Hetzner did exactly what Lamont will do at https://lsba.magisterdigitalai.com/#signatures:
1. **Clicked Option A** -> gold check appeared (`optionChecked: true`)
2. **Drew a signature** with real mouse strokes on the LSB Ball Academy pad -> ink registered, **date autofilled "June 11, 2026"**
3. **Clicked Submit signed SOW** -> green "Signed and recorded. Thank you!" + button flipped to "✓ Submitted" (screenshot above, `test/e2e-1-before-submit.png` and `e2e-2-after-submit.png` in the project)
4. **Database**: row landed in `lsba_signatures` (Lamont Smith, Option A, signature PNG, timestamp, IP)
5. **Email**: copy sent from `sow@magisterdigitalai.com` to mike@merlinomarketing.com with the signature PNG attached, 0.1s after submit
Heads up: that email in your inbox right now, subject **"LSBA SOW signed: Lamont Smith (Option A: Retainer)"** from ~1:13pm CT, is this test, not the real Lamont. The test row is already deleted from the DB so the table is clean for the real signature.
**Your 30-second manual test** (worth doing once from your phone since that's likely how Lamont will sign): open https://lsba.magisterdigitalai.com/#signatures, tap an option, finger-draw in the LSB box, hit Submit, then check your inbox. Tell me afterward and I'll clear your test row too.
The test script lives at `test/ui-e2e.mjs` and reruns anytime with one SSH command on Hetzner, so we can re-verify after any future edit.
Jun 11, 06:14 PM
[USER]
Base directory for this skill: C:\Users\mikem\.claude\skills\design-shotgun
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->
## Preamble (run first)
```bash
_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -exec rm {} + 2>/dev/null || true
_PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"
_SKILL_PREFIX=$(~/.claude/skills/gstack/bin/gstack-config get skill_prefix 2>/dev/null || echo "false")
echo "PROACTIVE: $_PROACTIVE"
echo "PROACTIVE_PROMPTED: $_PROACTIVE_PROMPTED"
echo "SKILL_PREFIX: $_SKILL_PREFIX"
source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true
REPO_MODE=${REPO_MODE:-unknown}
echo "REPO_MODE: $REPO_MODE"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
echo "TELEMETRY: ${_TEL:-off}"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
_EXPLAIN_LEVEL=$(~/.claude/skills/gstack/bin/gstack-config get explain_level 2>/dev/null || echo "default")
if [ "$_EXPLAIN_LEVEL" != "default" ] && [ "$_EXPLAIN_LEVEL" != "terse" ]; then _EXPLAIN_LEVEL="default"; fi
echo "EXPLAIN_LEVEL: $_EXPLAIN_LEVEL"
_QUESTION_TUNING=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false")
echo "QUESTION_TUNING: $_QUESTION_TUNING"
mkdir -p ~/.gstack/analytics
if [ "$_TEL" != "off" ]; then
echo '{"skill":"design-shotgun","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
fi
for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do
if [ -f "$_PF" ]; then
if [ "$_TEL" != "off" ] && [ -x "~/.claude/skills/gstack/bin/gstack-telemetry-log" ]; then
~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true
fi
rm -f "$_PF" 2>/dev/null || true
fi
break
done
eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true
_LEARN_FILE="${GSTACK_HOME:-$HOME/.gstack}/projects/${SLUG:-unknown}/learnings.jsonl"
if [ -f "$_LEARN_FILE" ]; then
_LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ')
echo "LEARNINGS: $_LEARN_COUNT entries loaded"
if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then
~/.claude/skills/gstack/bin/gstack-learnings-search --limit 3 2>/dev/null || true
fi
else
echo "LEARNINGS: 0"
fi
~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"design-shotgun","event":"started","branch":"'"$_BRANCH"'","session":"'"$_SESSION_ID"'"}' 2>/dev/null &
_HAS_ROUTING="no"
if [ -f CLAUDE.md ] && grep -q "## Skill routing" CLAUDE.md 2>/dev/null; then
_HAS_ROUTING="yes"
fi
_ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false")
echo "HAS_ROUTING: $_HAS_ROUTING"
echo "ROUTING_DECLINED: $_ROUTING_DECLINED"
_VENDORED="no"
if [ -d ".claude/skills/gstack" ] && [ ! -L ".claude/skills/gstack" ]; then
if [ -f ".claude/skills/gstack/VERSION" ] || [ -d ".claude/skills/gstack/.git" ]; then
_VENDORED="yes"
fi
fi
echo "VENDORED_GSTACK: $_VENDORED"
echo "MOD
[ASSISTANT]
[tool_use:Read]
Jun 11, 06:13 PM
Google Calendar Event: Wolfpack Digital Marketing Done For You SEO Neo Chat
Status: confirmed
Start: 2026-06-11T14:00:00-04:00
End: 2026-06-11T15:00:00-04:00
Location: https://us02web.zoom.us/j/87616425528?jst=3
Organizer: brian@infintechdesigns.com
Attendees: brian@infintechdesigns.com - accepted, gregory@digitalrooftop.com - accepted, Michael Merlino (mike@merlinomarketing.com) - accepted
Link: https://www.google.com/calendar/event?eid=N2Q0MWlhdjV2ZmY3ODl1ODJqOWVxaGk4bjdfMjAyNjA2MTFUMTgwMDAwWiBtaWtlQG1lcmxpbm9tYXJrZXRpbmcuY29t
Description: <p><br>──────────<br><br>Brian Hong is inviting you to a scheduled Zoom meeting.<br>Join Zoom Meeting<br>https://us02web.zoom.us/j/87616425528<br><br>Meeting ID: 876 1642 5528<br><br>---<br><br>One tap mobile<br>+13017158592,,87616425528# US (Washington DC)<br>+13052241968,,87616425528# US<br><br>Join instructions<br>https://us02web.zoom.us/meetings/87616425528/invitations?signature=jp7lmonQm8KfLlnsOJkm_sX94tbP8Nt20vC7_0DayA8<br><br><br><br>──────────</p>
Jun 11, 06:00 PM
[USER]
# Wrap Session
> End-of-session command. Fans out session state to EVERY memory source (Supabase, Mem0, Chroma Cloud, Hindsight, SQLite, LanceDB, Obsidian, GitHub agent-memory repo, Multica, qmd), updates project handoff, and creates a context bundle for the next session.
## Instructions
You are wrapping up the current session. Execute ALL of the following steps. do not skip any.
### Step 1: Gather Session Context
Silently collect:
- What was the primary task/request this session?
- What was accomplished? (files created, edited, deployed)
- What decisions were made and why?
- What's unfinished or blocked?
- Any key discoveries, preferences, or corrections from the user?
### Step 2: Auto Memory (Built-in File Memory)
Write memories to the project memory directory at `~/.claude/projects/<project-key>/memory/`. Create the directory if it doesn't exist.
For each significant item from this session, determine the type (user, feedback, project, reference) and write a memory file with frontmatter:
```markdown
---
name: {{name}}
description: {{one-line description}}
type: {{user|feedback|project|reference}}
---
{{content}}
```
Then update or create `MEMORY.md` in the same directory as an index.
**What to save:**
- User preferences or corrections expressed this session (feedback type)
- Project state changes or decisions (project type)
- New references discovered (reference type)
- User context learned (user type)
**What NOT to save:**
- Code patterns derivable from reading the codebase
- Git history facts
- Trivial exchanges
- Anything already in CLAUDE.md
### Step 3: Project Handoff (NEVER SKIP)
A handoff is written EVERY wrap. There is no "no project, skip" path. Resolve the target, then write `STATE.md` + `HANDOFF.md`, then update a project `CLAUDE.md` status section.
**3a. Resolve the handoff target dir:**
1. If the cwd (or its nearest ancestor) is a real project (has a `CLAUDE.md`, or sits under `D:/ClaudeDev/00_GITHUB/<proj>`, or has a `.planning/`) → target = that project root.
2. Else if the session clearly worked in one project folder (infer from the files edited this session) → target = that project root.
3. Else (cwd is a root like `D:/ClaudeDev`, or work spanned many folders) → target = the central folder `D:/Ecosystem/Memory/session-handoffs/{YYYY-MM-DD}/`.
**3b. Ensure `.planning/` exists at the target.** If it does NOT exist, invoke the **`superpowers:writing-plans`** skill to scaffold the `.planning/` structure (PROJECT/PLAN/STATE/HANDOFF). Do not hand-roll the scaffold when the skill is available. (For the central folder, `STATE.md` + `HANDOFF.md` directly is sufficient.)
**3c. Write `.planning/STATE.md`** — current phase, completion status, date (ISO 8601).
**3d. Write `.planning/HANDOFF.md`** with:
- What was done this session
- Current state
- What to do next
- Key files touched
- Any blockers or open questions
- Resume instructions for the next agent
**3e. Project `CLAUDE.md` (update EVERY wrap).** If the target project has a `CLAUDE.md`, update/append a `## Session Status` section (date + one-line state + pointer to the HANDOFF.md). If it has none and the target is a real project, create a minimal `CLAUDE.md` with that section. (Skip creating one for the central session-handoffs folder.)
Record the absolute path of the HANDOFF.md you wrote — pass it to Step 5 as `--handoff`.
### Step 4: Context Bundle
Create a context bundle for session recovery:
1. Create `.agents/context-bundles/` in the project root if it doesn't exist
2. Write a bundle file named `bundle-{YYYY-MM-DD}-{HH}h.md` with:
```markdown
# Context Bundle — {date} {time}
## Session Summary
{1-3 sentence summary of what happened}
## Task
{The original request/task}
## What Was Done
{Bullet list of completed work}
## Key Files Touched
{List of files created/modified with one-line descriptions}
## Decisions Made
{Key decisions and their rationale}
## Unfinished / Next Steps
{What's left to do}
## Resume Instructions
To continu
[ASSISTANT]
```
SESSION WRAPPED. 2026-06-11
PROJECT: archangel-infographics
TASK: Full audit stack on 163 staging pages + consolidate the whole engagement into one hub URL and one desktop file for the GK call
DONE: 3 audits live with per-page fixes (/audit.html 66/100 + /koray.html 45 nodes + /scores.html 84.3), 2 infographics regenerated $0 via free codex lane, LanguageTool live on Hetzner, Project HQ hub at https://archangel-infographics.vercel.app/, desktop collapsed to ARCHANGEL.cmd, Option B decision verified via Pieces and recorded
NEXT: GK call walk-through (preview https://archangel-compare.vercel.app first), AZ integration handoff, GK Notion topics, gws Gmail re-auth (interactive, yours)
MEMORY SAVED TO:
✓ Auto memory (2 new this wrap: archangel-hub + one-hub-url-per-project, 6 total indexed)
✓ Context bundle (.agents/context-bundles/bundle-2026-06-11-13h.md)
✓ Project handoff (D:/ClaudeDev/00_GITHUB/archangel-infographics/.planning/HANDOFF.md)
✓ Project CLAUDE.md status updated
✓ memz_write (Supabase + Mem0 + Chroma Cloud + Hindsight + SQLite): ok
✓ LanceDB: ok
✓ Obsidian (master-memory): ok
✓ GitHub agent-memory repo: ok
✗ Multica issue: error, stale assignee ID e004372c (same known config issue as the last wrap; everything else landed)
✓ qmd re-index: dispatched
✓ Provenance log (~/.claude/logs/wrap-provenance.log): ok
✓ Honcho: conclusion saved
```
All wrap artifacts committed and pushed (e25ad8e). Tomorrow: double-click `ARCHANGEL.cmd` and you're looking at the hub with the terminal ready behind it.
Jun 11, 05:52 PM
[USER]
[tool_result] [
{
"antipattern": "side-tab",
"name": "Side-tab accent border",
"description": "Thick colored border on one side of a card — the most recognizable tell of AI-generated UIs. Use a subtler accent or remove it entirely.",
"severity": "warning",
"file": "F:\\Projects\\clients\\magister-digital\\lsba-sow\\index.html",
"line": 80,
"snippet": "border-left:3px solid var(--gold)"
},
{
"antipattern": "overused-font",
"name": "Overused font",
"description": "I
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:51 PM
[USER]
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE4Zgqa/qBP2yy6fxu3mo8fKsGZp0lltoOYYVC7iFTpE ryzen@Robert
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:41 PM
[USER]
he does that from his home ocputer right
[ASSISTANT]
Yes, that alias is fine, but it's just a nickname so he can type `ssh rob`. The part that actually matters for killing the password is the key. Send him this instead, it does everything in one shot (key + alias + prints what he sends back):
**Mac/Linux:**
```
[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
mkdir -p ~/.ssh && printf "\nHost rob\n HostName 95.217.4.113\n User robert\n IdentityFile ~/.ssh/id_ed25519\n" >> ~/.ssh/config
echo "=== SEND THIS LINE BACK TO MIKE ==="; cat ~/.ssh/id_ed25519.pub
```
**Windows (PowerShell):**
```
if (!(Test-Path ~\.ssh\id_ed25519)) { ssh-keygen -t ed25519 -N '""' -f $HOME\.ssh\id_ed25519 }
Add-Content ~\.ssh\config "`nHost rob`n HostName 95.217.4.113`n User robert`n IdentityFile ~/.ssh/id_ed25519"
Write-Host "=== SEND THIS LINE BACK TO MIKE ==="; Get-Content ~\.ssh\id_ed25519.pub
```
He runs the block for his OS, sends you the one line starting with `ssh-ed25519`, you drop it here. I install it, shut off password auth, and from then on `ssh rob` drops him straight in, no password anywhere on the server.
Jun 11, 05:39 PM
[USER]
so I will have him do this? That's a one-time setup on Robert's home computer (it's an SSH alias, nothing changes on the server). Copy-paste this to him on Zoom; works on Windows PowerShell and Mac/Linux terminal:
Mac/Linux:
mkdir -p ~/.ssh && cat >> ~/.ssh/config <<EOF
Host rob
HostName 95.217.4.113
User robert
IdentityFile ~/.ssh/id_ed25519
EOF
Windows (PowerShell):
mkdir -Force ~\.ssh; Add-Content ~\.ssh\config "`nHost rob`n HostName 95.217.4.113`n User robert`n IdentityFile ~/.ssh/id_ed25519"
After that, he just types:
ssh rob
One note: until he does the ssh-keygen step from my last message and his public key gets installed on the box, ssh rob will still ask for the password (RobertMerlino2026!). Once that key
lands and password auth is shut off, ssh rob drops him straight in, no password, which is the end state you want.
[ASSISTANT]
Done on both fronts:
- **robert-seo-1 is shredded.** Gone from the account, €11.99/mo back. 6 cloud servers remain.
- **fail2ban is live** and already banned 5 bot IPs (47 failed attempts caught). Robert stays logged in, nothing interrupted.
Now to kill the password, I need one thing from Robert. Copy-paste this to him on Zoom, he runs it **on his home computer** (works on Windows and Mac):
```
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
```
(If it says the file already exists, skip straight to the `cat` line.)
He pastes the output (one line starting with `ssh-ed25519`) into the call chat, you drop it here, and I'll install it and shut password auth off completely within a minute. From then on he logs in the exact same way, no password, and the box is un-brute-forceable.
Jun 11, 05:35 PM
[USER]
Hey, so Robert's on the server. Shred that first server we whipped up for him. We don't need that anymore. And then, does he have to get off the server for you to harden it? And should he use his own tail scale? Nothing to do with me, just to help him out with all this stuff? Or is he good just how he is? I really don't want a password on the server because I don't want to get it hacked.
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:34 PM
[USER]
he's in
[ASSISTANT]
Done. Robert's live on the box with full tooling, keys verified, Discord reporting wired, and the memory record is current. Ping me for the fail2ban hardening pass whenever the call wraps.
Jun 11, 05:29 PM
[USER]
he is trying to access now should he get on tailscale after we are in or
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:13 PM
[USER]
Hey, he's on his home computer, which he was able to SSH into the first one that you did. He's SSH'd in now, but it asks for a password, so I don't understand all this shit that you just sent me. Make this shit easy so I can copy and paste him something on Zoom and he can get on.
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:09 PM
[USER]
[tool_result] len 216896
LOGOS: ['/wp-content/uploads/2024/06/NVSP_RightLogoBig_240530_NS.png', '/wp-content/uploads/2024/06/NVSP_RightLogoBig_240530_NS-White.png', '/wp-content/uploads/2024/06/NVSP_RightLogoBig_240530_NS-White.png']
TOP COLORS: [('#1b1464', 37), ('#ff6600', 4), ('#32373c', 3), ('#ffffff', 3), ('#ff8200', 3), ('#0073e6', 2), ('#f5f5f5', 2), ('#000000', 1), ('#abb8c3', 1), ('#f78da7', 1), ('#cf2e2e', 1), ('#ff6900', 1)]
[ASSISTANT]
DELIVERED: NVSP pro client report portal, the new client-delivery format, covering all 15 locations from the Drive folder.
LIVE URL: https://nvsp-reports.vercel.app (login: `nvsp` / `solar2026`)
POWD: https://nvsp-reports.vercel.app/proof/2026-06-11 (same login)
COMMIT: https://github.com/mmerlino23/nvsp-reports (private)
VERIFICATION: VISUAL (Firecrawl full-page screenshots through the auth wall, overview + Yuba City reviewed; auth gate verified 401/200)
VALIDATION: build PASS (overview + 15 SSG pages + edge middleware) | live 200s | Discord #deploys, #powd, #client-nvsp | board task Done
What Kurt gets:
- One link, one login. Overview page with NVSP's real logo and brand (navy `#1b1464` / orange `#ff6600`), KPI strip (15 locations, 90 cloud sites, 54 entity properties, weekly engagement), and a card per city.
- A full report page per location: GBP listing, live geogrid link, both audits, weekly engagement status, press + SEO NEO (+ bio stacks for Auburn and Lodi), the 6-mirror cloud stack, and entity/media properties. Every link from the source docx is clickable.
- Protected by basic auth at the edge (free, vs Vercel's paid password feature), noindex, print-to-PDF friendly. June 2026 is stamped as the report period; the data layer is keyed so July becomes an archive entry, not an overwrite.
All 15 docx reports parsed clean with zero missing fields (including the "Powerr" typo'd Auburn file). The whiteboard style stays in the toolbox for explainers and internal training; this portal pattern is now the client-report standard, and the same generator can spin up Archangel/Ascend portals whenever you want them migrated.
One flag: the 5 standalone sites from this morning are now superseded for NVSP. I left them up, your call whether to retire them.
Jun 11, 05:08 PM
[USER]
its askingf or a password when he logged in
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:06 PM
[USER]
Base directory for this skill: C:\Users\mikem\.claude\plugins\cache\claude-plugins-official\frontend-design\unknown\skills\frontend-design
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
## Design Thinking
Before coding, understand the context and commit to a BOLD aesthetic direction:
- **Purpose**: What problem does this interface solve? Who uses it?
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
- Production-grade and functional
- Visually striking and memorable
- Cohesive with a clear aesthetic point-of-view
- Meticulously refined in every detail
## Frontend Aesthetics Guidelines
Focus on:
- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
Remember: Claude is capable of extraordinary creative work. Don't hold back, show what
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:06 PM
[USER]
[tool_result] [1;34m2026-06-11 16:52:59 - Repository configured successfully.[0m
[38;5;79m2026-06-11 16:52:59 - To install Node.js, run: apt install nodejs -y[0m
[38;5;79m2026-06-11 16:52:59 - You can use N|solid Runtime as a node.js alternative[0m
[1;32m2026-06-11 16:52:59 - To install N|solid Runtime, run: apt install nsolid -y
[0m
trying to overwrite '/usr/include/node/common.gypi', which is also in package libnode-dev 12.22.9~dfsg-1ubuntu3.6
dpkg-deb: error: paste subprocess was killed by signa
[ASSISTANT]
[tool_use:Bash]
Jun 11, 05:04 PM
[USER]
[tool_result] [2K[1A[2K[G▲ Production https://lsba-4atlh4c8n-mmerlino23s-projects.vercel.app
Completing…
▲ Aliased https://lsba-sow.vercel.app
✓ Ready in 5s
[ASSISTANT]
DELIVERED: Digital signing + print options on the LSBA SOW signatures section
LIVE URL: https://lsba-sow.vercel.app/#signatures
POWD: Fresh Firecrawl capture of the deployed page, saved as `crop-v9-signatures.png` / `powd-v9-fullpage.png` in the project folder (screenshot shown above, rendered from production)
VERIFICATION: VISUAL (deployed URL, fresh screenshot, maxAge:0 + cache-buster)
What Lamont/Dimitry can now do on the page:
- **Click Option A or B** to check it (gold highlight, radio behavior, click again to uncheck)
- **Draw their signature** in each party's box with mouse or finger (works on phone, Clear button included)
- **Date auto-fills** on the first pen stroke
- **Print / Save signed copy as PDF** button fires the print dialog; the existing print stylesheet renders it clean (nav, Clear buttons, and helper text hidden; signatures and the checked option print as drawn)
- **Download blank PDF** still serves the official SOW file
One honest scope note: this is client-side signing on a static page, so nothing is submitted or stored anywhere (the page says so explicitly). It is a "sign, save the PDF, send it back" flow, not a legally-audited e-sign service. If you want certificate-backed signing with audit trail and auto-delivery to both parties, that is a DocuSign/Dropbox Sign embed or a small backend, say the word and I will scope it.
Also still open from the last session: the page says June 11 while the PDF says June 10, and the Dimitri vs Dimitry spelling on dentalht. Both unresolved, flagging again before this goes to Lamont.
Jun 11, 05:01 PM
Google Calendar Event: StealthCode Shareholder Meeting: Weekly Chat
Status: confirmed
Start: 2026-06-11T13:00:00-04:00
End: 2026-06-11T14:00:00-04:00
Location: https://us02web.zoom.us/j/84098821568
Organizer: brian@infintechdesigns.com
Attendees: elivadaras@gmail.com - accepted, kkarentzos@gmail.com - accepted, brian@infintechdesigns.com - accepted, gregory@digitalrooftop.com - accepted, Michael Merlino (mike@merlinomarketing.com) - accepted, kbourro@gmail.com - accepted, stephen@infintechdesigns.com - accepted, fred@fireflies.ai - needsAction
Link: https://www.google.com/calendar/event?eid=NXExbmx1ZHF0YjRucWE0MTZpOHFxdXV2MmpfMjAyNjA2MTFUMTcwMDAwWiBtaWtlQG1lcmxpbm9tYXJrZXRpbmcuY29t
Description: <br><br><p><b><u>To Do List:<br></u></b><a href="https://fellow.app/public/streams/c4eb5bd3-395e-41e7-b6e4-3e4b14096df0/" target="_blank"><u>https://fellow.app/public/streams/c4eb5bd3-395e-41e7-b6e4-3e4b14096df0/</u></a><b>Google Doc </b></p><p><b>Notes:</b><br><a href="https://docs.google.com/document/d/1s3wagS67zG-9hOm2MHoPmTN6lPRIc7sz0XEFJZGYDPk/edit" target="_blank"><u>https://docs.google.com/document/d/1s3wagS67zG-9hOm2MHoPmTN6lPRIc7sz0XEFJZGYDPk/edit</u></a></p><p></p><p><br>──────────<br><br>Brian Hong is inviting you to a scheduled Zoom meeting.<br><br>Join Zoom Meeting<br>https://us02web.zoom.us/j/84098821568<br><br>Meeting ID: 840 9882 1568<br><br>---<br><br>One tap mobile<br>+16465588656,,84098821568# US (New York)<br>+16469313860,,84098821568# US<br><br>---<br><br>Dial by your location<br>• +1 646 558 8656 US (New York)<br>• +1 646 931 3860 US<br>• +1 301 715 8592 US (Washington DC)<br>• +1 305 224 1968 US<br>• +1 309 205 3325 US<br>• +1 312 626 6799 US (Chicago)<br>• +1 669 900 6833 US (San Jose)<br>• +1 689 278 1000 US<br>• +1 719 359 4580 US<br>• +1 253 205 0468 US<br>• +1 253 215 8782 US (Tacoma)<br>• +1 346 248 7799 US (Houston)<br>• +1 360 209 5623 US<br>• +1 386 347 5053 US<br>• +1 507 473 4847 US<br>• +1 564 217 2000 US<br>• +1 669 444 9171 US<br><br>Meeting ID: 840 9882 1568<br><br>Find your local number: https://us02web.zoom.us/u/kdsDVlKO0v<br><br><br><br>──────────</p>
Jun 11, 05:00 PM
[USER]
Base directory for this skill: C:\Users\mikem\.claude\skills\backup-chats
# Backup & Classify EVERYTHING (chats + all memory stores)
One command snapshots Claude+Codex chats AND all 10 memory stores (Pieces, Gemini, Hindsight, Honcho, Memz, Mem0, Supermemory, Chroma, qmd) into per-source Obsidian vaults.
## Run It
```bash
python "D:/Ecosystem/Memory/backup-system/unified-backup.py"
```
This runs:
1. **Existing chat pipeline** — Claude `.claude/projects/` + Codex `.codex/sessions/` + Pieces HTTP + provenance activity.db → `chat-backups` vault
2. **10 snapshotters in sequence** — each writes to its own vault under `D:\Ecosystem\vaults\<source>-snapshots\`:
- `pieces_couchbase` — on-disk Pieces conversations + activities the HTTP API hides
- `pieces_agentic` — Pieces tool-call traces per session
- `gemini` — Antigravity conversations + workspace shadow-git
- `hindsight` — all 110 memory banks at mac:8888
- `honcho` — cloud conclusions (155K+)
- `memz` — Master Brain + dedicated Memz Supabase (147K+ rows)
- `mem0` — api.mem0.ai
- `supermemory` — Supermemory docs
- `chroma` — Chroma Cloud collection
- `qmd` — tobi/qmd index state (74,839 docs, 12 collections)
3. **Scheduled task `MerlinoUnifiedBackup`** — runs this hourly on Windows
## Just chats (legacy)
If you ONLY want chat backup without the memory store snapshots:
```bash
python "D:/Ecosystem/Memory/backup-system/backup-pipeline.py"
```
## Options (unified-backup.py)
```bash
python unified-backup.py # Everything (existing pipeline + all 10 snapshotters)
python unified-backup.py --test # Connectivity check only, no writes
python unified-backup.py --dry-run # Preview what would happen
python unified-backup.py --only hindsight # Run just one source
python unified-backup.py --no-honcho # Skip a source (slow ones: honcho, memz)
python unified-backup.py --no-pipeline # Skip existing pipeline, just snapshotters
```
## Options (backup-pipeline.py legacy, chats only)
```bash
python backup-pipeline.py # Full chat run (Phase 1 + Rust Phase 2)
python backup-pipeline.py --dry-run # Preview without writing
python backup-pipeline.py --verbose # Show per-chat classification decisions
python backup-pipeline.py --classify-only # Skip Phase 1 copy, run Python classify only
python backup-pipeline.py --rag # Also push to RAG pipeline (stub)
python backup-pipeline.py --supabase # Also push to Supabase vector (stub)
```
## Rust Sorter (standalone)
```bash
"D:/ClaudeDev/00_GITHUB/_working-on/Tools/agent-soul-system/scripts/chat-router/target/release/chat-sorter.exe" [OPTIONS]
--input <DIR> Input dir (default: D:/Ecosystem/vaults/chat-backups/By Date)
--output <DIR> Output dir (default: D:/Ecosystem/vaults/chat-backups/Project Chats)
--no-llm Skip Tier 4 LLM classification
--dry-run Preview only
--verbose Per-chat decisions
--stats-only Stats without writing
```
Build: `cd D:/ClaudeDev/00_GITHUB/_working-on/Tools/agent-soul-system/scripts/chat-router && cargo build --release`
## 3-Tier Classification
| Tier | Signal | How |
|------|--------|-----|
| 1 | Folder name | Parent folder in `By Date/YYYY-MM-DD/{Name}/` (skips Home-General) |
| 2 | CWD path | Regex on `cwd` field from matching .jsonl (first 20 lines) |
| 3 | Keyword scoring | Weighted keywords on first 50KB of .md content (min score: 2) |
Anything that matches no tier lands in `Project Chats/_Unclassified/` (small, ~0.6% of archive). Post-classification consolidation merges junk categories into canonical parents.
NOTE: the current `backup-pipeline.py` is 3-tier. There is no LLM fallback tier in the running code (the old Tier-4 Anthropic step and its `Codeland2026` key path are retired). Snapshotter API keys load from `D:\Ecosystem\secrets\MASTER_API_KEYS.env` via `snapshotter
[ASSISTANT]
Status: the hourly scheduled backup is already mid-run (started 12:15 PM, holds the single-run lock), so my first attempt correctly bailed. I've queued a background job that waits for it to exit, then immediately runs the manual `unified-backup.py` pass to capture anything newer. I'll report counts when it completes.
Jun 11, 04:56 PM
[USER]
Hey architect an infra let me know I asked you three times how much am I paying for the auction server the ecosystem server And then also I see a lot more servers here than I thought I see Ava MP and mark agent runtime Hetzner one What is that agent runtime Hetzner one eight dedicated 32 gigs of RAM 240 gigs. What what is that?
[ASSISTANT]
[tool_use:Bash]
Jun 11, 04:43 PM
[USER]
hey listen this is from him on the server right now: ● Everything's confirmed. Here's the honest picture before I build:
- No image-generation key on this box (only DataForSEO + Firecrawl in ~/.fleet.env), so the skill's AI infographic
step can't run here.
- No Vercel CLI / deploy access, so I can't publish it publicly.
- The skill's full pipeline points at Mike's Windows machine (D:/, E:/ drives) and a Hetzner fleet, none of which this
server can reach.
[ASSISTANT]
[tool_use:Bash]
Jun 11, 04:38 PM
[USER]
[tool_result] 50 - [Compound Engineering explainer site](project_compound-engineering-explainer.md) - 2026-06-11: LIVE https://compound-engineering-explainer.vercel.app (Every's CE plugin, whiteboard-explainer skill, repo mmerlino23/compound-engineering-explainer). gpt-image-1 WORKS on restored key. Cycle-diagram prompt fix: "pentagon corners, each label once, no empty box".
51 - [TurnKey Bath Remodel kit + PAA pipeline](project_turnkey-bath-remodel-kit.md) - 2026-06-11: kit LIVE https://turnkey-bath-remodel-
[ASSISTANT]
[tool_use:Edit]
Jun 11, 04:31 PM
[USER]
# Archangel Centers, Full Report + Standing Rules
Date: 2026-06-11 | Working repo: https://github.com/mmerlino23/archangel-infographics (desktop: D:/ClaudeDev/00_GITHUB/archangel-infographics)
Client: Archangel Centers (Brand North / George "GK") | Site: https://archangelcenters.netlify.app/ | AZ owns the site deploy; Mike's team delivers assets + content.
---
## THE ARCHANGEL RULES (hard, every agent, every deliverable)
### Brand
1. Colors: BLACK #0d0d0d / GOLD #cbaa6b / WHITE only. NO blue, navy, teal, or cyan anywhere, in any image or page. ("BlueCross BlueShield" as an insurance NAME in copy is allowed; the color blue is not.)
2. Infographics: BLACK backgrounds ONLY. Never show GK white-background options.
3. Locked style: Gold Line Editorial (style 1) is PRIMARY. Secondary styles allowed per page for variety: Blackboard Chalk, Paper-Craft, Gold Ink Wash, Art-Deco (from https://archangel-infographics.vercel.app/black-gold.html). Embossed Relief was eliminated head-to-head.
4. Logo: composited TOP-LEFT on every infographic. Prompts reserve empty top-left space (~20%w x 15%h). Hetzner pipeline: `convert logo.png -resize 280x140 /tmp/aa-logo-small.png` then `composite -gravity NorthWest -geometry +42+34 /tmp/aa-logo-small.png out/X.png out/X-logo.png`.
### Image generation
5. Models: GPT Image 2 (gpt-image-1, 1536x1024, quality high) + Nano Banana Pro (FAL fal-ai/nano-banana-pro, 3:2). Co-equal, never rank. NEW FREE LANE: codex-cli provider on Hetzner (regen-flawed.py / baoyu-image-gen --provider codex-cli) replaces paid calls when credits are out.
6. Generation runs on HETZNER (~/jobs/archangel-infographics/, keys in ~/fleet.env), never the home box.
7. Multi-candidate is mandatory: 2-3 candidates per slot. GPT flips to white backgrounds even with the BLACK_BG hammer sentence; candidates absorb it.
8. Typo-prone labels (Benzodiazepines, Methamphetamine, GABA, glutamate, CONTINUUM) go to the EDITORIAL style only, never chalk/engraved/hand styles. Anchor spellings letter-by-letter in prompts ("ends in 'uum' exactly like vacuum"). Count-the-items instructions on every multi-label diagram.
9. Eyeball-QC every PNG before it ships. Zoom-crop the risky labels. Zero typos ship.
### Content (YMYL discipline)
10. Addiction treatment = YMYL. Every stat, figure, and clinical claim gets a source URL in a claims ledger before publishing. No fabricated numbers, ever.
11. Article pipeline = /article-elevation: start from what Google already ranks (UULE browser PAA harvest geo-locked to Tinton Falls NJ + top-ranking page scrape), never from the model's head. Length = #1 content competitor +10-20%.
12. PAA source = UULE browser harvest (Browserbase/Steel/mobile, retries punch through Google's bot wall), NEVER DataForSEO for PAA. Off-intent harvested PAAs (sentencing, trivia, celebrities) are excluded from client pages.
13. Snippet bands: FAQ answers and definition blocks are 40-50 words, lead with the direct answer, active voice.
14. Zero em dashes, zero AI stop words, full https:// URLs, ISO 8601 dates. FAQPage + MedicalWebPage JSON-LD on content pages.
15. Hub pages get definitive deeply-written articles covering all substance types with 6-7 infographics (GK voice note 2026-06-10). Drug pages get on-page definitions + PAA/query-responsive sections.
### Delivery
16. Every delivery: LIVE URL + POWD (Steel screenshot of the deployed URL). Discord deploys + powd channels on the Merlino server. No localhost proof, no local Playwright.
---
## DELIVERED TODAY (2026-06-11), ALL LIVE
### Infographics (28 total)
- Hub set (7): https://archangel-infographics.vercel.app/addiction.html | POWD: https://archangel-infographics.vercel.app/out/powd-addiction-page.png
- Drug pages set (21, all 8 substances: opioids 3, fentanyl 3, heroin 3, cocaine 3, benzos 2, meth 3, prescription 2, polysubstance 2): https://archangel-infographics.vercel.app/drugs.html | POWD: https://archangel-infographics.vercel.app/out/powd-drugs-page.png
- 54 candidates generate
[ASSISTANT]
[tool_use:Bash]
Jun 11, 04:22 PM
[USER]
save report to desktop fo rme with all ARCHANGELruls please
[ASSISTANT]
Saved and opened: `C:\Users\mikem\Desktop\archangel-report-2026-06-11.md` (this is on the main desktop, DESKTOP-R1T5LD1, not synced to your laptop).
It's a standalone reference with three parts:
- **The 16 Archangel rules**: brand (black/gold/white, no blue, logo top-left pipeline command), image generation (co-equal models + the new free codex lane, Hetzner-only, multi-candidate, typo-label routing, eyeball-QC), YMYL content (claims ledger, UULE-only PAA, 40-50w snippet bands, article-elevation method), and delivery (LIVE URL + POWD always)
- **Everything delivered today** with all live URLs: 28 infographics, the 4,002-word hub article, 8 drug-page PAA sections, plus the three audits from your other terminal
- **Open items in priority order**: AZ handoff (nothing is wired into the live site yet), the E-E-A-T launch blockers, GK's Notion list, the next 4 thin hubs + 45 Koray nodes, FAL top-up, and the gws re-auth one-liner
Jun 11, 04:18 PM
[USER]
I need full erpot with all urls on all things arch anel
[ASSISTANT]
[tool_use:Bash]
Jun 11, 04:15 PM
[USER]
that accoutn is on MAX $200 a motnh plan.... so all my keys
[ASSISTANT]
No new keys needed. He's covered for SEO work on day one.
**What he already has (riding on your existing accounts):**
- **Claude itself**: comes from the team@merlinomarketing.com login, which is a subscription seat, not an API key. Zero setup, zero per-token billing.
- **DataForSEO + Firecrawl**: your keys are already in `~/.fleet.env` on his box. Keyword volumes, SERPs, scraping all work. Usage bills to your existing accounts (pennies per query).
- **SOP brain**: merlino-sops MCP is already wired and verified.
That trio covers keyword research, SEO audits, PAA content, competitor checks, and SOP lookups, which is his actual job.
**What he deliberately does NOT have:** image gen, GHL, Vercel deploys, email sending, client logins. If his work grows into one of those, you say "give Robert X" and I add that one key to his box in a minute. Add per-need, never the master file.
**How you actually use this day to day:**
1. You assign work in plain English (Slack, text, whatever): "Robert, do keyword research for the Sarasota plumber."
2. He sshs in, runs `claude`, says what you said. Claude does the work using your skills/SOPs, the same playbooks your fleet uses, so output comes back in YOUR format.
3. Results land in `~/work/<client>/` on his box. You have root on it, so you (or your agents) can pull anything he produces. Or he pastes deliverables into email.
**The two things to watch:**
1. **Shared rate limits**: he's on team@'s quota. If you or anyone else hammers that account at the same time, you'll feel it. If he becomes a heavy daily user, the fix is a $20-100/mo Claude seat of his own, not API keys.
2. **DataForSEO spend**: his queries hit your balance. It's cheap, but if you want, I can put a usage note in his CLAUDE.md telling Claude to batch keyword lookups.
Optional upgrade when you're ready: wire `discord-post` on his box so every deliverable he finishes pings your Merlino server automatically and you never have to ask "what did Robert do today." Say the word.
Jun 11, 04:03 PM
[USER]
TLDR on this and my set up and how we would or not use it
[ASSISTANT]
DELIVERED: Whiteboard explainer site for Every's Compound Engineering plugin, built from the /whiteboard-explainer template, all 8 concepts covered.
LIVE URL: https://compound-engineering-explainer.vercel.app
COMMAND LIBRARY: https://compound-engineering-explainer.vercel.app/prompts
POWD: https://compound-engineering-explainer.vercel.app/proof/powd-home-fullpage.png and https://compound-engineering-explainer.vercel.app/proof/powd-prompts-fullpage.png
REPO: https://github.com/mmerlino23/compound-engineering-explainer (private)
COMMIT: 3 commits, master pushed
VERIFICATION: VISUAL (Firecrawl full-page screenshots of both deployed routes, read and confirmed)
What's on the wall:
- **8 poster sections**: the compounding-vs-debt big idea, the brainstorm/plan/work/review/compound loop, the 80/20 ratio, STRATEGY.md + product-pulse, plan+work skills, the 20-persona reviewer swarm, /ce-compound learning capture, and install/get-started
- **8 infographics**, 5 GPT Image 2 + 3 Nano Banana Pro per the both-models rule. The OpenAI key is confirmed working for gpt-image-1 again
- **Command Library** at /prompts: every /ce-* skill grouped (core loop, quality, git+shipping, context+signal) plus one-time install blocks for Claude Code, Codex, Cursor, Copilot, and the converter targets. Filter tabs relabeled Skills/Setup
- White theme, chrome fully stripped (no playbook leftovers in nav, hero, footers, or metadata)
Discord posted to #deploys and #powd. One craft note: the core-loop cycle diagram took 2 regens because GPT kept drawing a sixth empty box; "five boxes at pentagon corners, each label exactly once" fixed it, and that's banked in memory.
Jun 11, 03:58 PM
[USER]
[tool_result] [1/6] bb-t2-cand-a OK (209s)
[2/6] t5-e-cand-a OK (507s)
[3/6] bb-t2-cand-b OK (209s)
[4/6] t5-e-cand-b OK (208s)
[5/6] bb-t2-cand-c OK (181s)
[6/6] t5-e-cand-c OK (138s)
REGEN COMPLETE
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:54 PM
[USER]
<task-notification>
<task-id>bmt5zw1ta</task-id>
<tool-use-id>toolu_01SMGpCVwkEKPD6VY83KQers</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\33fa1aa0-803b-4281-9a7d-43b959ce8c0f\tasks\bmt5zw1ta.output</output-file>
<status>completed</status>
<summary>Background command "Re-harvest 3 missing keywords, 4 attempts each" completed (exit code 0)</summary>
</task-notification>
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:43 PM
[USER]
[tool_result] [stage] done
[install] done
[LIVE] ascend-recovery-nc-report https://ascend-recovery-nc-report.vercel.app
[LIVE] ascend-recovery-fl-report https://ascend-recovery-fl-report.vercel.app
[LIVE] archangel-centers-report https://archangel-centers-report.vercel.app
[LIVE] ascend-recovery-nm-report https://ascend-recovery-nm-report.vercel.app
[ALL DONE]
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:42 PM
[USER]
how will we use this and do I have to get him api keys and shit
[ASSISTANT]
No new keys needed. He's covered for SEO work on day one.
**What he already has (riding on your existing accounts):**
- **Claude itself**: comes from the team@merlinomarketing.com login, which is a subscription seat, not an API key. Zero setup, zero per-token billing.
- **DataForSEO + Firecrawl**: your keys are already in `~/.fleet.env` on his box. Keyword volumes, SERPs, scraping all work. Usage bills to your existing accounts (pennies per query).
- **SOP brain**: merlino-sops MCP is already wired and verified.
That trio covers keyword research, SEO audits, PAA content, competitor checks, and SOP lookups, which is his actual job.
**What he deliberately does NOT have:** image gen, GHL, Vercel deploys, email sending, client logins. If his work grows into one of those, you say "give Robert X" and I add that one key to his box in a minute. Add per-need, never the master file.
**How you actually use this day to day:**
1. You assign work in plain English (Slack, text, whatever): "Robert, do keyword research for the Sarasota plumber."
2. He sshs in, runs `claude`, says what you said. Claude does the work using your skills/SOPs, the same playbooks your fleet uses, so output comes back in YOUR format.
3. Results land in `~/work/<client>/` on his box. You have root on it, so you (or your agents) can pull anything he produces. Or he pastes deliverables into email.
**The two things to watch:**
1. **Shared rate limits**: he's on team@'s quota. If you or anyone else hammers that account at the same time, you'll feel it. If he becomes a heavy daily user, the fix is a $20-100/mo Claude seat of his own, not API keys.
2. **DataForSEO spend**: his queries hit your balance. It's cheap, but if you want, I can put a usage note in his CLAUDE.md telling Claude to batch keyword lookups.
Optional upgrade when you're ready: wire `discord-post` on his box so every deliverable he finishes pings your Merlino server automatically and you never have to ask "what did Robert do today." Say the word.
Jun 11, 03:41 PM
[USER]
what ar eyou doing I need you to work on this -
What you send Robert (both on the desktop):
1. His private key: D:/Ecosystem/secrets/robert-seo-1/robert_id_ed25519
2. The guide: D:/Ecosystem/secrets/robert-seo-1/ROBERT-QUICKSTART.md
His whole life is: ssh -i robert_id_ed25519 robert@178.156.201.17 then claude, log in once with team@merlinomarketing.com via the URL it prints.
Verification: whoami=robert, hostname=robert-seo-1, claude mcp list shows merlino-sops Connected, login as robert tested OK. Discord #deploys posted,
board task Done. (Server-side work, so proof is the command output above; no visual POWD applies.)
Two open items, flagged honestly:
1. The sops MCP on his box uses the Master Brain service-role key (full write access), and Robert can read it. You said use your MCPs, so it ships
working, but I recommend a read-only Supabase role swap soon. Say the word and I'll dispatch it.
2. The box is not a /sync target, so his skills will drift. One command re-syncs from the big box whenever you want, or I can add it as a permanent
sync target. Rober needs access
[ASSISTANT]
[tool_use:Edit]
Jun 11, 03:35 PM
[USER]
[tool_result] 48 - [Obsidian vaults system (D:/Vaults)](project_merlino-vaults-github-vercel.md) — 2026-06-07: 6 organized Obsidian vaults at D:/Vaults (skills 526/agents 29/projects 131/people 24/businesses 21/meetings 2246) w/ tags+properties+callouts+Dataview+wikilinks. Curated note-per-item. Private repo mmerlino23/merlino-obsidian-vaults (Obsidian Git sync). Rich generators in D:/ClaudeDev/merlino-vaults-build/ (build-vaults-rich.py + build-people-orgs.py read _maps/*.yaml). Meetings auto-tagged by parti
[ASSISTANT]
[tool_use:Edit]
Jun 11, 03:34 PM
[USER]
<task-notification>
<task-id>ba2lazbh9</task-id>
<tool-use-id>toolu_013nuFA6R7eQoC5cYeBFPEgy</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\33fa1aa0-803b-4281-9a7d-43b959ce8c0f\tasks\ba2lazbh9.output</output-file>
<status>completed</status>
<summary>Background command "UULE PAA harvest loop, 8 substance keywords, 3 retries each" completed (exit code 0)</summary>
</task-notification>
[ASSISTANT]
6 of 8 pages written (40+8 FAQ answers gated, all in band). The harvest loop is grinding through CAPTCHAs on the last two keywords; when it completes I'll append meth + polysubstance, run the final gates, deploy the preview with POWD, and report.
Jun 11, 03:34 PM
[USER]
what is that dont owrk
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:33 PM
[USER]
<task-notification>
<task-id>bney31vej</task-id>
<tool-use-id>toolu_01UJta6HPgNfadsENwU4yMBw</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\a31b2f81-46db-480a-bda3-eeea64dafc33\tasks\bney31vej.output</output-file>
<status>completed</status>
<summary>Background command "Smoke-test LanguageTool API on Hetzner" completed (exit code 0)</summary>
</task-notification>
[ASSISTANT]
[tool_use:Read]
Jun 11, 03:31 PM
[USER]
what you can do do it use free codex on server for infograhpics...
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:30 PM
[USER]
anythign left to do
[ASSISTANT]
DELIVERED: Koray-methodology semantic SEO audit, three layers over all 163 pages, run by parallel agents grounded in the full koray-semantic-seo-master SOP.
LIVE URL: https://archangel-infographics.vercel.app/koray.html
POWD: https://archangel-infographics.vercel.app/out/powd-koray-page.png
COMMIT: 0a655ed + 3a52529
VERIFICATION: VISUAL (Steel screenshot of deployed report, Discord posted to powd + client-archangel, em-dash sweep clean)
**Part 1, Topical Map (Vastness):** Central entity "Addiction Treatment" is INCONSISTENT, missing from 25-30 title tags. **45 missing topical nodes across 8 contextual domains**: zero detox knowledge section (6 pages needed), zero MAT medication pages (Suboxone and Vivitrol are the actual clinical offering), zero payer-specific insurance pages despite Aetna/Cigna/BCBS/Tricare logos on every page, zero demographics layers (veterans, professionals, young adults), missing brand-name substance pages (Xanax, OxyContin), missing per-substance withdrawal timelines. Plus 10 conversational query paths the map can't serve end to end.
**Part 2, Contextual Vectors + IR Zones:** The big template bug: four chrome widgets (Get Answers Now / Reviews / In 30 seconds / Tour) render as H2s on every substance, service, and city page, so Google reads them as the page's first four contextual attributes. Hub pages use "Leaf pages" as their first H2 (a nav label, not a topic). Meta descriptions open with the brand instead of the core term sitewide. Good news: the therapy pages are near-Koray-compliant and serve as the internal model, and first sentences on substance pages are strong featured-snippet candidates.
**Part 3, Connections + Momentum:** Hub-to-money bridge gap confirmed by live inspection: `/addiction/fentanyl/` links to NEITHER state's fentanyl-rehab service page, while `/levels-of-care/iop/` does it correctly ("IOP at our Tinton Falls clinic"), so the fix pattern already exists in the template. Full 15-row bridge matrix included. Conversion pages (/admissions, /verify-insurance) are structural dead ends. Momentum plan: 20-article sudden launch wave within 72 hours of cutover to force source re-evaluation, then an 8-week patternless schedule (never same weekday twice running, max 7/week, freeze during core updates), sectioned by topical wave and ending with the GK Notion topics.
The 45-node gap list doubles as the article terminal's production backlog: source markdown at `scripts/koray-topical-map.md`, `koray-vectors-ir.md`, `koray-links-momentum.md`, all logged in `.planning/STATE.md`.
Jun 11, 03:23 PM
[USER]
<task-notification>
<task-id>acd85d3915c6eca58</task-id>
<tool-use-id>toolu_01PQTh5oEi1ZXbHL3nqJidQk</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\a31b2f81-46db-480a-bda3-eeea64dafc33\tasks\acd85d3915c6eca58.output</output-file>
<status>completed</status>
<summary>Agent "Koray vectors and IR zones audit" completed</summary>
<result>Audit written to `D:/ClaudeDev/00_GITHUB/archangel-infographics/scripts/koray-vectors-ir.md`.
Key findings:
**Critical (fix first):**
- AggregateRating on own entity detected site-wide -- remove immediately (Merlino schema hard rule)
- 4-chrome H2 injection (Get Answers Now / Reviews / In 30 seconds / Tour) renders as Google's first four contextual attributes on every substance, levels-of-care, dual-diagnosis, and city-service page. Template-level fix: strip H2 tags from those four widget containers
**High priority:**
- Meta descriptions open with brand name instead of title core term, site-wide
- Hub pages (/insurance/, /levels-of-care/, /recovery/) use "Leaf pages" / "The leaf pages" as H2 #1 -- navigation label, not a topic
- Homepage H1 carries zero keyword
**What's working:**
- Therapy pages (/therapies/cbt/ pattern) are near-Koray-compliant: mechanistic H2 #1, no chrome injection, declaration-evidence rhythm in subordinate text
- Substance page content vectors are well-ordered once past the chrome (definitional first is consistent)
- Recovery sub-pages have the cleanest semantic vectors on the site
- First sentences on substance and levels pages are strong featured snippet candidates (declarative, under 40 words, clinical authority)
[DONE]</result>
<usage><subagent_tokens>75770</subagent_tokens><tool_uses>10</tool_uses><duration_ms>366197</duration_ms></usage>
</task-notification>
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:19 PM
[USER]
<task-notification>
<task-id>buifqspzr</task-id>
<tool-use-id>toolu_013UK9mbytC6Ar69kTuvHza4</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev\309ba554-db6c-402c-bc94-243ffd6d36c7\tasks\buifqspzr.output</output-file>
<status>completed</status>
<summary>Background command "Generate the 7 infographics with both image models" completed (exit code 0)</summary>
</task-notification>
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:19 PM
[USER]
r u still going
[ASSISTANT]
Yes, still going. The daily-report build is running in the background (the previous jobs took 15-25 minutes each; this one is the biggest of the day since it includes the Hetzner cron automation plus the tabbed site plus a full end-to-end test run). No completion signal yet, which is expected at this point.
Done so far this session, all verified live:
- 17 skills installed + synced fleet-wide
- 3 infra fixes (Master Brain scope filter, Carlos soul primitives, bot-404 skill)
- Internal-link agent pipeline on Hetzner
- https://ai-visibility-audit-pilot.vercel.app (pilot, 69/100)
- https://lsb-ai-visibility-audit.vercel.app (32/100) + https://hardaway-ai-visibility-audit.vercel.app (53/100), Magister-branded, attribution stripped
- https://fleet-week-report.vercel.app (v2, real data: 588 messages, 50 domains shipped this week)
You can close this terminal if you want; the build runs detached and I'll have the live URL + POWD + the installed cron line when it reports in.
Jun 11, 03:16 PM
[USER]
<task-notification>
<task-id>a22c85bcf0d332531</task-id>
<tool-use-id>toolu_01NgLou3qirzZGqmUUUMKWcT</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\a31b2f81-46db-480a-bda3-eeea64dafc33\tasks\a22c85bcf0d332531.output</output-file>
<status>completed</status>
<summary>Agent "Koray links and momentum audit" completed</summary>
<result>Audit written to `D:\ClaudeDev\00_GITHUB\archangel-infographics\scripts\koray-links-momentum.md`.
Here is what is in the document:
**Section 1: Internal Link Architecture**
The distribution audit found three tiers. The most urgent problem: conversion-critical pages (/admissions, /verify-insurance, /contact) have 1-3 outbound links each and are structural dead ends. Navigation anchors in the global footer (Levels of Care, Therapies, Dual Diagnosis, Recovery, Insurance) repeat on all 163 pages, but the body anchor budget for those exact phrases is effectively spent, so body copy should vary anchors.
The bridge gap is confirmed by live inspection: /addiction/fentanyl/ links to the knowledge article but does NOT bridge to either /new-jersey/tinton-falls/fentanyl-rehab/ or /north-carolina/charlotte/fentanyl-rehab/. The IOP page (/levels-of-care/iop/) does this correctly with "IOP at our Tinton Falls clinic" and "IOP at our Charlotte clinic". The 15-row bridge matrix covers all 9 substances plus detox, dual diagnosis, and all three levels of care.
**Section 2: Cost of Retrieval**
The site has strong trust signals (consistent central entity, editorial standards page, named medical director). The main cost drivers: 16 proximity city pages with near-identical entity profiles across NJ and NC, /programs at 53 words (the most damaging single page on the site), zero publication dates on all articles (YMYL vulnerability), and the NJ/NC parallel service page duplicate-dataset problem.
**Section 3: Momentum Plan**
20-article launch wave at cutover, published within 72 hours. Specific article list with targets by section. Then an 8-week patternless schedule covering addiction, dual diagnosis, therapies, recovery, family, and insurance section depth, followed by GK Notion topics in weeks 7-8. Hard timing rules: no publishing during core updates, never the same weekday two weeks in a row, no more than 7 articles per week after the launch wave.
**Section 4: Supplementary vs Full Node Classification**
19 pages should stay supplementary (legal/resource/bio/narrow comparison pages). 11 hub and core pages must be expanded (especially /programs, /about-us, /dual-diagnosis/, /insurance/). 27 missing topical map nodes are identified across all six sections.
**Top 5 actions:** Bridge matrix installation, /programs expansion, date metadata on all existing articles, 20-article launch wave at cutover, and NJ/NC parallel page differentiation with local data.
[DONE]</result>
<usage><subagent_tokens>120018</subagent_tokens><tool_uses>11</tool_uses><duration_ms>255551</duration_ms></usage>
</task-notification>
[ASSISTANT]
Topical map audit landed (1 of 3): 45 missing nodes across 8 contextual domains, the biggest being zero detox section, zero MAT medication pages (Suboxone/Vivitrol), zero payer pages despite the insurance logos sitewide, and the NJ/NC near-duplicate canonical risk. Waiting on vectors+IR and links+momentum.
Jun 11, 03:15 PM
[USER]
go
[ASSISTANT]
Harvest loop running in the background (8 keywords, Tinton Falls NJ geo-lock, up to 3 Browserbase attempts each, ~20-40 min). When it lands I'll QC each harvest, write the 8 per-page deliverables (snippet-targeted definition block + 10-12 PAA answers at 40-50 words + FAQPage schema + the page's infographics woven in), deploy the preview, POWD it, and report. Email lane still needs your `! gws auth login -s gmail,calendar,drive,sheets,docs,slides` whenever you have 30 seconds.
Jun 11, 03:14 PM
[USER]
<task-notification>
<task-id>a436faf9dadd1c9e4</task-id>
<tool-use-id>toolu_01X8CYcJWSzx6v5dRCCpbtcM</tool-use-id>
<output-file>C:\Users\mikem\AppData\Local\Temp\claude\D--ClaudeDev-00-GITHUB-archangel-infographics\a31b2f81-46db-480a-bda3-eeea64dafc33\tasks\a436faf9dadd1c9e4.output</output-file>
<status>completed</status>
<summary>Agent "Koray topical map audit" completed</summary>
<result>Audit complete. Here is the summary:
**What I delivered:** `D:\ClaudeDev\00_GITHUB\archangel-infographics\scripts\koray-topical-map.md`
**Key findings from the Koray topical map audit:**
**Source Context / Central Entity / Intent**
- Central entity: Addiction Treatment (outpatient). It is inconsistent site-wide. Roughly 25-30 URLs carry no explicit entity signal in the title tag (team bios, scholarship, contact, sitemap, verify-insurance).
- Central Search Intent: "find, verify, understand, afford, start" treatment. Expressed partially but the outer-to-core bridge is broken.
**Core structural problems (5 of them):**
1. NJ/Tinton Falls and NC/Charlotte substance-rehab pages are near-duplicate with swapped city names. Canonical risk, authority dilution.
2. Global `/programs` pages compete with location-specific program pages. `/programs` hub is 53 words, critically thin.
3. Several orphan contexts: scholarship (4 links), about-us (3 links), NJ drug court (8 links).
4. No hub-to-money bridges. Outer section articles rarely route users to the location service pages.
5. Insurance section routes to the global verify-insurance page instead of location-specific pages.
**Coverage gaps: 45 missing nodes across 8 contextual domains**
The biggest structural holes:
- Zero detox knowledge section (6 pages needed: `/detox` hub + alcohol, opioid, benzo, at-home risks, timeline)
- Zero MAT medication specificity (Suboxone and Vivitrol are the primary medications offered, no dedicated pages)
- Zero payer-specific insurance pages despite displaying Aetna, Cigna, BCBS, Tricare logos
- Zero demographics layer (veterans, young adults, women, professionals)
- Substance-specific withdrawal timelines missing for alcohol, heroin, meth
- Xanax and OxyContin brand-name substance pages missing (highest-searched benzos and opioids by name)
**10 unservable query paths** documented including the Suboxone path, veterans/Tricare path, and fentanyl overdose-to-treatment path.
[DONE]</result>
<usage><subagent_tokens>119477</subagent_tokens><tool_uses>8</tool_uses><duration_ms>192279</duration_ms></usage>
</task-notification>
[ASSISTANT]
Three Koray-methodology agents running in parallel, each grounded in the full koray-semantic-seo-master SOP plus our crawled data:
1. **Topical map**: source context / central entity / central search intent consistency, core vs outer section mapping of all 163 URLs, missing-node gap list with concrete slugs (MAT meds, withdrawal timelines, demographics layers, payer pages), unservable query paths
2. **Contextual vectors + IR zones**: H1-H2 sequence audit per template family, five-zone alignment (title/meta/URL/image), microsemantics spot-checks on live pages, FS-format opportunities
3. **Contextual connections + momentum**: hub-to-money bridge matrix (article pages to both states' service pages), anchor-text rules, cost-of-retrieval assessment, and the 8-week patternless publication plan timed to the cutover (sudden ~20-article batch then patternless cadence)
When they land I assemble /koray.html, deploy, POWD, Discord.
Jun 11, 03:13 PM
[USER]
Base directory for this skill: C:\Users\mikem\.claude\skills\koray-semantic-seo-master
# Semantic SEO Master Framework — Koray Tugberk Methodology
## When to Use
- Starting a new semantic SEO project from scratch
- Understanding how all Koray skills connect into one system
- Explaining the complete methodology to a team or client
- Deciding which specific skill to invoke for a given task
- Understanding the cost of retrieval principle behind topical authority
- Planning a full semantic content network deployment
## The Three Principles
### 1. Vastness (Go Wide)
Cover the entire knowledge domain around your central entity. The topical map must include:
- Every entity attribute (root, rare, unique)
- Every contextual domain connected to the central entity
- Every query network reachable from the source context
- Core section + outer section + supplementary nodes
Vastness is NOT about word count or article count. It is about contextual coverage — defining every relevant entity, connecting every relevant attribute, answering every relevant question.
### 2. Depth (Go Deep)
Each article must go DEEPER than any competitor on the same topic:
- More research sources and citations
- More numeric values and measurement units
- More demographic variations
- More expert opinions and institutions
- More answer format completeness
- Higher information density in every passage
Depth is measured by quality thresholds. Keyword difficulty is rejected as a concept. Instead: can you exceed the quality threshold that the current top-ranking pages have set?
### 3. Momentum (Go Fast)
Publication frequency and timing determine how quickly the search engine evaluates your content.
**Publication Rules:**
- Be PATTERNLESS — search engine should never predict when you publish
- Publish weekends, weekdays, morning, night — vary everything
- Sometimes 3 articles in one day, then wait 4 days, then publish 7, then wait 3
- In any given timeline, you should be the source that publishes MOST
- Do NOT publish during core algorithm updates — wait for flat algorithmic seasons
**Launch Strategy:**
- Publish first 20 articles SUDDENLY to signal the website has fundamentally changed
- This forces the search engine to re-evaluate the source (expertise, topicality, trustworthiness)
- After the initial launch, follow a patternless cadence
- If budget allows, go to 60 in the initial batch — but NOT 300+ (red flag for AI content)
- After initial batch, go one-by-one with patternless timing
**The Cost Principle:**
- Purpose of momentum is taking search engine attention
- If they crawl you and find quality, they invest more — crawl rate correlates with positive rankings
- If they crawl you and find garbage, they won't come back for 8 months (two core algorithm updates)
- The cost of ranking a website CANNOT be higher than the cost of NOT ranking the website
- This is the main principle of topical authority
**Ranking Progression:**
- Each core algorithm update has an UP level and a BOTTOM level you can rank at
- With enough historical data and quality, a core update creates a breakthrough — rankings jump suddenly
- New UP and BOTTOM levels are established after each breakthrough
- Every ranking helps increase overall rank ability
## Procedures (in SOP.md)
For full step-by-step procedures, read `SOP.md` in this skill folder.
| # | Section |
|---|---------|
| 1 | The COREIS Framework |
| 2 | Semantic Content Network Architecture |
| 3 | Algorithmic Authorship |
| 4 | IR Zones and Context Specification |
| 5 | Entity-Attribute-Value Model |
| 6 | Query Semantics and Question Generation |
| 7 | Microsemantics (Sentence and Passage Level) |
| 8 | Content Auditing |
| 9 | Google's Language Models and Semantic Understanding |
| 10 | Contextual Domains and Layers |
| 11 | Answer Construction Patterns |
| 12 | Lean Management (Production) |
| 13 | Skill Routing Guide |
| 14 | Anti-Patter
[ASSISTANT]
[tool_use:Agent]
Jun 11, 03:10 PM
[USER]
make him a new SEER he can ssh into now way e will ssh into mine do it now please
[ASSISTANT]
[tool_use:Bash]
Jun 11, 03:10 PM
[USER]
[tool_result] [normal] North Valley Solar Power - Yuba City
CLIENT REPORT
[normal] Presented By:
[normal] Mike Merlino
[Heading 2] GMB Information:
[normal] GMB: North Valley Solar Power
[normal] Address: 1510 Poole Blvd Suite 100, Yuba City, CA 95993, United States
[normal] Phone Numbers: 530-564-3260
[normal] MAP: https://maps.app.goo.gl/GB3DBp9wzqvmR6kC7
[normal] Website: https://northvalleysolarpower.com/location/yuba-city-ca/
[Heading 2] Report:
[normal] Map Rank Report: https://app.localbran
[ASSISTANT]
3 of 7 images done, both models firing. Waiting on the rest of the generation; I'll continue when it completes.
Jun 11, 03:09 PM