vault-sync: 2026-09-13 12:07 (jimmy)

This commit is contained in:
jimmy
2026-09-13 12:07:23 -07:00
parent e918f23707
commit aa52eecb5c
50 changed files with 4101 additions and 103 deletions
@@ -2,7 +2,7 @@
**Updated:** 2026-07-09
**Repo:** `Tony_tech/ai-talk-show`
**Local:** `C:/Users/fight/Projects/ai-talk-show/`
**Local:** `/home/vpsadmin/projects/ai-talk-show/`
## What it is
@@ -0,0 +1,74 @@
# AshBot — Status
> Personal assistant agent for **Ashley** (Phoenix Salon + Spa — Veripath's active client),
> delivered over **iMessage via Photon**. Hermes profile `ashbot`.
> Last worked: 2026-09-12.
## Identity
| | |
|---|---|
| Profile | `ashbot` — `~/AppData/Local/hermes/profiles/ashbot` |
| Purpose | Ashley's personal assistant (scheduling, business admin, marketplace scouting) |
| Channel | Photon → iMessage. **Own Photon project**, separate from the coach line |
| Reachable by | Ashley (home channel + allowed user); Tony tests from his own line |
| Sidecar | Photon sidecar on `127.0.0.1:8790` |
| Gateway | PID 17968, platform `photon: connected`, Hermes 0.21.1 |
## Model stack (changed 2026-09-12)
| | |
|---|---|
| Provider | `omniroute` → `http://127.0.0.1:20128/v1` |
| Primary | `auto/best-free` (OmniRoute free-tier auto-combo — live roulette) |
| Fallback | `openrouter/deepseek/deepseek-v4.1-flash` → `freetoken-gemma26b/Gemma-4-26B-A4B-NVFP4` (local, free) |
Before 2026-09-12 this profile had **no failover at all** — `hermes -p ashbot fallback list`
returned "No fallback providers configured"; the `model.fallback:` key in her config is not
the failover chain. See [[01_Wiki/omniroute-routing-failover]] for the failure mode.
## Incident log
### 2026-09-12 — turn died mid Marketplace scan (fixed)
- 10:07–10:17 PT. Ashley/Tony asked for a live Facebook Marketplace flip scan.
- Browser work (`browser_exec`) ran; the connection hiccuped mid-scan; then the model API
collapsed — **9 empty streams in a row** (`http 200, bytes 0`) at 10:14:53–10:15:11.
- Cause: the `auto/best-free` combo's OpenRouter primary dropped out, and the chain fell into
broken targets — `opencode/minimax-m3-free` (401, model unsupported) and
`auggie/claude-sonnet-4.6` (200 with an empty body, ~1.0 s). A 200 never trips OmniRoute's
breaker, so the combo never reached a working target and Hermes killed the turn.
- User-visible: 276 s of silence → a 141-char stub → an 18,045-char dump truncated to **8,000
chars mid-sentence** by the Photon adapter. Session `20260912_100658_6c1e9828`; last message
persisted 10:12:49 — the turn never completed.
- Fixed: `fallback_providers` added to her `config.yaml` (backup:
`config.yaml.bak.20260912_133720`) **and** `blockedProviders = ["auggie","opencode"]` set in
OmniRoute (`~/.omniroute/storage.sqlite`). Catalog went 476 → 453 models.
## Active automation
- **Cron job `e4df5902e96f` — "Tony daily check-in"**, `0 9 * * *`, provider pinned
(`--provider omniroute`). Created and test-run 2026-09-12; delivery verified.
- Contact/scheduling jobs discussed with Ashley — the 9/12 test confirmed a scheduled
check-in actually fires and delivers.
## Open items
- **iMessage outbound cap: 8,000 chars.** The Photon adapter truncates long replies
mid-sentence (`truncating outbound from 18045 to 8000 chars`). Her scan reports routinely
exceed it — cap her output or chunk it.
- **Primary is still the free roulette.** A failure now costs the retry window (~1 min
typical, up to ~4.5 min) before the fallback takes over, instead of killing the turn.
- **Browser mid-scan hiccup** — `browser_exec` dropped during the marketplace scan; the retry
path is untested since the model fix.
## Files
| Path | Change |
|---|---|
| `profiles/ashbot/config.yaml` | `+ fallback_providers` (2026-09-12); backup alongside |
| `~/.omniroute/storage.sqlite` | `settings.blockedProviders` = `["auggie","opencode"]` |
| Hermes skill | `omniroute-routing-failover` (jimmy profile) |
See also: [[04_projects/phoenix-salon/status]] · [[04_projects/veripath/status]] ·
[[01_Wiki/omniroute-routing-failover]]
@@ -0,0 +1,73 @@
---
type: research-summary
source: "Julian Goldie (YouTube): OpenViking Cuts AI Agent Token Usage by 91%!"
url: https://youtu.be/xhR5BQS0ZpI
date_ingested: 2026-08-29
tags: [ai-memory, byte-dance, openviking, agent-architecture]
---
OpenViking Cuts AI Agent Token Usage by 91%!
by Julian Goldie (digital avatar) / YouTube
https://youtu.be/xhR5BQS0ZpI
=== TRANSCRIPT ===
OpenViking cuts AI agent token usage by 91%.
What if your AI agent is doing way more work than it needs to? Every single time it thinks, it rereads everything. Over and over, burning through text you never even see. Then ByteDance quietly dropped a free tool that stops it. 91% less load, same smarts, way less effort. Let me show you how OpenViking actually pulls that off.
I'm the digital avatar of Julian Goldie, and my whole thing is helping you learn and actually use AI tools in your real work, not just watch a cool demo and forget it by lunch. So today, I'm breaking down what OpenViking is, how it cuts token usage this hard, what the real test numbers say, and three pro tips to get the most out of it. And stick with me, because the smartest way to use this is the part most people skip right past.
So let's start simple. What even is OpenViking? It's a free, open source tool from ByteDance. Think of it as a memory system for AI agents. Right now, most AI agents have a bad memory problem. They forget what you told them. They ask for the same thing twice. They lose track of what worked yesterday. OpenViking fixes that.
Instead of dumping all your info into one messy pile, it organizes everything like folders on a computer. Memories, documents, skills, all filed neatly in one place. The agent browses it like you browse files on your laptop.
Here's how I'd use this for the AI Profit Boardroom. I take all our AI Profit Boardroom tutorials, the docs, the notes from past coaching calls, and let OpenViking file them into that neat memory system. Then when I ask an AI agent a question, it doesn't reread the whole stack. It knows exactly where to look. That gives me a helper for the AI Profit Boardroom that answers fast and doesn't get lost.
Now, here's the clever part — and this is where that 91% comes from. When OpenViking saves something, it doesn't save it just one way. It saves it in three layers:
Layer zero is a one-line summary, super tiny — around 100 tokens, just enough to say what this file is about.
Layer one is a bigger overview, the key points — around 2,000 tokens.
Layer two is the full thing, every single detail.
Here's why that matters. Most old-school AI memory grabs everything at once — the full document, every time — even when the agent only needed one line. That's like reading a whole book to answer one tiny question. OpenViking doesn't do that. It reads the one-line summary first. If that's enough, it stops right there. If it needs more, it opens the overview. And only if it truly needs the deep detail does it open the full file. So the agent reads only as much as the job actually needs, nothing wasted.
And it gets smarter than that. OpenViking doesn't just search blindly. It works like a sharp librarian. First, it figures out what you're really asking, then it finds the right folder, then it looks closer inside that folder. If there are folders inside folders, it keeps drilling down until it lands on the exact thing you need. So instead of one messy guess, you get a careful step-by-step search that actually finds the right answer.
There are two more features I really want you to know about:
First, you can actually see what the agent looked at. Most AI memory is a total black box — you have no idea why it grabbed the wrong thing. OpenViking shows you the trail: every folder it opened, every file it touched. So when something goes wrong, you can see why and fix it fast.
Second, it learns as it goes. At the end of a session, OpenViking looks back at what happened, what worked, what the agent figured out, then it files that away as a fresh memory. So the more you use it, the smarter it gets.
Okay, let's talk about that 91%, because I don't want you taking it on faith. ByteDance ran real tests on something called the LoCoMo benchmark. That's a test built for long conversations where the agent has to remember stuff from way back. They hooked OpenViking up to three different AI agents:
- On one agent called OpenClaw, token usage dropped by 91% — and at the same time, its accuracy jumped from 24% all the way up to 82%.
- On another agent, the drop was around 34%.
- On Claude Code, about 63%.
But every single one used fewer tokens and got more accurate. All three crossed 80% accuracy. That's the real story — not one lucky number, a real pattern across the board.
So why does this actually matter to you? Two big reasons:
First, speed — less to read means faster answers. In those tests, the agents responded up to 66% faster too.
Second, reliability. An agent that remembers things and grabs the right context makes way fewer dumb mistakes. And if you're building anything real with AI, dumb mistakes are the thing that kills it.
This is the kind of setup I'd run for the AI Profit Boardroom. Say I've got an agent helping answer AI Profit Boardroom member questions. Every time it helps someone, OpenViking pulls out what it learned and files it away. So the next member who asks something similar gets a sharper answer because the agent actually remembers what worked last time. It keeps getting better on its own without me touching it.
And here's where AI is right now. Everyone is building agents — agents that write, agents that code, agents that answer questions all day long. But almost all of them slam into the same wall: memory. They forget, they waste effort, they eat up way more processing than they should. The big labs know this. And that's the exact problem OpenViking was built to solve. But instead of keeping it locked away, ByteDance made it free and open for everyone. That tells you where this whole space is heading. Memory is the next big fight in AI and OpenViking just moved the goalposts.
So who actually needs this? If you're just chatting with an AI now and then, honestly, you don't need it. This is for people building agents that run over and over — support agents, research helpers, coding assistants, anything that has to remember stuff across lots of sessions. If your agent keeps forgetting, keeps repeating itself, keeps burning through huge piles of text, this is built for exactly you. And it plugs into tools you might already be using like Claude Code, Cursor, and Codex.
All right, three quick pro tips before you go:
Pro tip one: don't install anything yet. Go try OpenViking Studio first. It's a live demo that runs right in your browser over at OpenViking.ai. You can play with the whole thing, no setup at all, and see if it fits what you're doing before you commit.
Pro tip two: use that retrieval trail I told you about. When your agent grabs the wrong thing, don't sit there guessing. Open up the trail, see which folder it walked into, and fix your setup from there. That one habit alone will save you hours.
Pro tip three: check the license before you build something big on it. The main project uses AGPLv3. That's totally fine for a lot of uses, but if you're building a full product on top of it, read the terms first so there are no surprises down the road.
That's OpenViking — a free tool that gives your AI agent a real memory and cuts the wasted effort by a massive chunk.
=== END TRANSCRIPT ===
@@ -0,0 +1,84 @@
#1 [github] open-kritt: Open-source, self-hosted AI vulnerability research tool that orchestrates agents to find and validat
URL: https://github.com/Kritt-ai/open-kritt
(1) It turns the manual bottleneck of security auditing into an automated agentic workflow, allowing builders to scale security without a massive team.
(2) Stop manually hunting for bugs. open-kritt uses autonomous agents to find and validate vulnerabilities on your own infrastructure. It’s the shift from reactive patching to proactive, automated defense.
#2 [github] nanocodex: Building blocks for frontier OpenAI agents in Rust. Nanocodex empowers you with Codex-level performa
URL: https://github.com/gakonst/nanocodex
(1) Rust is becoming the standard for production-grade agentic infrastructure where reliability and execution speed are non-negotiable.
(2) Stop building your agents on bloated abstractions. Nanocodex provides high-performance, Rust-based primitives for frontier AI models. Move your production logic out of heavy wrappers and into optimized code.
#3 [github] cindy: Consider it done. The open-source AI agent that works out of the box · 想到,就能做到。开源、开箱即用的 AI Agent。
URL: https://github.com/makecindy/cindy
1. It eliminates the "plumbing" hurdle that kills most indie projects before they reach MVP.
2. Most AI agent projects die in the configuration phase. Cindy removes that friction with an out-of-the-box, open-source framework. Stop building infrastructure and start shipping features.
#4 [github] pireel: The open-source alternative to Capcut、ChatCut. Drivable by any AI agent over MCP.
URL: https://github.com/pireel/pireel
(1) It turns manual video editing into a programmable pipeline for AI agents via MCP.
(2) Video production is usually the final hurdle in creating autonomous social media machines. Pireel removes that barrier by exposing CapCut-style capabilities to LLMs through the Model Context Protocol. Build an automated content factory without the manual overhead.
#5 [github] pinvou-agent: Open-source desktop AI agent for tools, files, knowledge, workflows, and real deliverables.
URL: https://github.com/Pinvou/pinvou-agent
1. It moves AI from a conversational wrapper to an execution layer by giving agents direct access to local files, tools, and workflows.
2. Most AI projects are just chat wrappers. pinvou-agent shifts the focus to actual output by integrating tools and file systems directly into the desktop environment. It's an open-source foundation for building agents that do work instead of just talking about it.
#6 [github] caspian-sdk: Agent communication SDK. The open-source agent communication layer for AI agents — email, WhatsApp,
URL: https://github.com/TryCaspian/caspian-sdk
(1) It eliminates the "glue code" tax by abstracting fragmented messaging APIs into a single, unified layer for agent deployment.
(2) Building AI agents shouldn't require mastering the unique quirks of every messaging API. Caspian-sdk provides a unified communication layer for WhatsApp, email, and beyond. Stop building wrappers and start building logic.
#7 [github] memmy-agent: 🍙 A personal AI agent & local memory hub for all AI agents like Claude Code, Codex, OpenClaw and Her
URL: https://github.com/MemTensor/memmy-agent
1. It eliminates context fragmentation by providing a shared, persistent memory layer across disparate AI agents.
2. Context fragmentation kills complex workflows. Memmy-agent solves this by creating a unified local memory hub for tools like Claude Code and Codex. Stop starting from scratch every time you switch agents.
#8 [github] paritok-4b-v1: Non-destructive compression gateway for AI coding agents. Cuts token bills 25% on turn 1 to past 85%
URL: https://github.com/Paritok-official/paritok-4b-v1
(1) It eliminates the "context tax" of coding agents by slashing token costs without degrading model comprehension.
(2) Coding agents are expensive because they re-send massive amounts of context with every turn. paritok-4b-v1 solves this by compressing the payload while keeping the logic intact. It cuts costs up to 85%—essential for anyone building scalable dev tools.
#9 [github] andrej-karpathy-skills: Behavioral guardrails for Claude Code, distilled from Andrej Karpathy's field notes on where LLMs go
URL: https://github.com/0xwilliamortiz/andrej-karpathy-skills
1. Reliability is the bridge between a toy demo and a production-ready coding agent.
2. Claude Code is powerful but requires strict behavioral constraints to be useful in production. These distilled notes from Karpathy provide the framework to turn erratic LLM outputs into disciplined engineering workflows. Stop guessing at prompts; start enforcing guardrails.
#10 [github] deja-vu: Your agents already solved this. deja finds it — it indexes the sessions your coding agents already
URL: https://github.com/vshulcz/deja-vu
1. Stop your agents from looping and wasting tokens by giving them a persistent memory of every past session.
2. Most AI agents fail because they have no "memory" of previous turns. They get stuck in loops and waste context windows on tasks they've already attempted. Deja solves this by indexing your coding sessions so the agent actually knows what happened before it started.
#11 [huggingface] QwQ-32B (text-generation) by Qwen
URL: https://huggingface.co/Qwen/QwQ-32B
**Why it matters:**
QwQ-32B delivers "o1-style" reasoning in a footprint small enough to bypass the high costs and latency of frontier model APIs.
**Social Post:**
Stop overpaying for basic logic. QwQ-32B brings deep chain-of-thought reasoning to a 32B scale, making it a powerhouse for autonomous agents and complex coding tasks. It’s the ultimate middle ground between raw power and accessible deployment.
#12 [github] open-kimi-ppt-skill: 非官方 Kimi Slides Skill:让 AI Agent 生成可编辑 PPTD + PPTX,并附带本地浏览器编辑器 Unofficial Kimi Slides skill for AI a
URL: https://github.com/Binaryify/open-kimi-ppt-skill
1. It solves the "last mile" problem by converting raw AI output into production-ready, editable slide decks instead of static text blocks.
2. Stop wasting time copy-pasting LLM outputs into PowerPoint. This Kimi Slides skill bridges the gap between generation and production by creating actual .PPTX files with a local editor. A massive win for anyone building content automation tools.
@@ -0,0 +1,58 @@
#1 [github] open-kritt: Open-source, self-hosted AI vulnerability research tool that orchestrates agents to find and validat
URL: https://github.com/Kritt-ai/open-kritt
[LLM error: <urlopen error timed out>]
#2 [github] nanocodex: Building blocks for frontier OpenAI agents in Rust. Nanocodex empowers you with Codex-level performa
URL: https://github.com/gakonst/nanocodex
[LLM error: <urlopen error timed out>]
#3 [github] cindy: Consider it done. The open-source AI agent that works out of the box · 想到,就能做到。开源、开箱即用的 AI Agent。
URL: https://github.com/makecindy/cindy
[LLM error: <urlopen error timed out>]
#4 [github] pireel: The open-source alternative to Capcut、ChatCut. Drivable by any AI agent over MCP.
URL: https://github.com/pireel/pireel
[LLM error: <urlopen error timed out>]
#5 [github] pinvou-agent: Open-source desktop AI agent for tools, files, knowledge, workflows, and real deliverables.
URL: https://github.com/Pinvou/pinvou-agent
[LLM error: <urlopen error timed out>]
#6 [github] caspian-sdk: Agent communication SDK. The open-source agent communication layer for AI agents — email, WhatsApp,
URL: https://github.com/TryCaspian/caspian-sdk
[LLM error: <urlopen error timed out>]
#7 [github] memmy-agent: 🍙 A personal AI agent & local memory hub for all AI agents like Claude Code, Codex, OpenClaw and Her
URL: https://github.com/MemTensor/memmy-agent
[LLM error: <urlopen error timed out>]
#8 [github] genoffice: Free, open-source AI office suite for macOS, Windows & Linux — Word (.docx), Excel (.xlsx), PowerPoi
URL: https://github.com/genspark-ai/genoffice
[LLM error: <urlopen error timed out>]
#9 [github] paritok-4b-v1: Non-destructive compression gateway for AI coding agents. Cuts token bills 25% on turn 1 to past 85%
URL: https://github.com/Paritok-official/paritok-4b-v1
[LLM error: <urlopen error timed out>]
#10 [github] andrej-karpathy-skills: Behavioral guardrails for Claude Code, distilled from Andrej Karpathy's field notes on where LLMs go
URL: https://github.com/0xwilliamortiz/andrej-karpathy-skills
[LLM error: <urlopen error timed out>]
#11 [github] deja-vu: Your agents already solved this. deja finds it — it indexes the sessions your coding agents already
URL: https://github.com/vshulcz/deja-vu
[LLM error: <urlopen error timed out>]
#12 [huggingface] QwQ-32B (text-generation) by Qwen
URL: https://huggingface.co/Qwen/QwQ-32B
[LLM error: <urlopen error timed out>]
@@ -1,8 +1,8 @@
# Athena Oracle — Status
**Updated:** 2026-08-31
**Repo:** `~/Projects/athena-oracle/` (cloned from `Tony_tech/athena-oracle`)
**DB:** `~/Projects/athena-oracle/oracle.db`
**Updated:** 2026-09-05
**Repo:** `~/athena-oracle-new/` (cloned from `Tony_tech/athena-oracle`)
**DB:** `~/athena-oracle-new/oracle.db`
## What it is
@@ -24,17 +24,18 @@ oracle/variants/ → Render config (default, research, devops, brief)
|--------|--------|-------|
| GitHub | ✅ Token-auth (5k req/hr) | 20 entries fetched, scored |
| arXiv | ✅ Working | 20 entries fetched, scored |
| Reddit | ⏸ 429 rate-limited | JSON blocked, RSS fallback also 429 from this IP |
| Reddit | ✅ Working (RSS) | Subreddits: HuggingFace, llamacpp, artificial, DeepLearning. Rate-limit-aware (waits ~60s between subs) |
| HackerNews | ✅ Working (via HN API) | 19 entries fetched, scored |
| HuggingFace | ✅ Working | 20 entries fetched, scored |
| RSS | ✅ Working | feedparser installed, 14 entries fetched |
## Current State
- **93 entries** in `oracle.db` (20 GitHub + 20 arXiv + 19 HN + 20 HF + 14 RSS)
- 82 scored via `attach_scoring()`
- **Verdicts:** 4 PUBLISH, 14 WATCH, 42 ARCHIVE, 33 DROP
- **Buckets:** 44 Uncategorized, 20 Research, 18 Infrastructure, 4 Shipping, 2 Culture, 2 Model Release, 3 Problem Solved
- **144 entries** in `oracle.db`
- 5 variants rendered: default, brief, devops, research, ai-news-daily
- **Site deployed:** `https://preprod2.afterthedemo.com/` + `/ai-news-daily/index.html` + `/brief/` + `/devops/` + `/research/`
- Deploy mechanism: pre-render locally → commit site/ → create Gitea release → webhook fires → listener syncs to VPS webroot
- Build command set to `true` (no-op) since files are pre-rendered
## Done
@@ -44,6 +45,9 @@ oracle/variants/ → Render config (default, research, devops, brief)
- `python -m oracle ingest --limit 20` — full pipeline working
- Cron job `athena-ingest` (daily 24h) → ingests + scores + writes digest to vault
- Vault project files created: `status.md`, `decisions.md`, `digest-template.md`
- **2026-09-02:** Deployed to preprod2 — 5 variants live with fresh stories through 2026-09-02
- **2026-09-02:** Fixed `cli.py` `_load_env` to tolerate missing `dotenv` module on VPS
- **2026-09-05:** Reddit adapter working — AI subs (HuggingFace, llamacpp, artificial, DeepLearning), rate-limit-aware RSS. Two daily cron jobs (6am/6pm). Pushed `main` → live on preprod2. Workflow saved to `08_workflows/ai-news-daily-deploy.md`
## Not done / next
@@ -51,15 +55,17 @@ oracle/variants/ → Render config (default, research, devops, brief)
- [ ] Fix Reddit RSS (429 from this IP — may need proxy)
- [x] Cron job for daily ingestion
- [ ] Wire digests into daily notes automatically
- [x] Test render (variants → static site) — 4 variants + AI News Daily built
- [x] Test render (variants → static site) — 5 variants + AI News Daily built
- [ ] Surface top entries to daily notes
- [ ] Set up oracle pipeline on VPS (needs SSH access — currently blocked)
## Deployment blocker (2026-08-31)
## Deployment (2026-09-02)
- **Rendered fully locally** (99 entries, 31 summarized): 4 HTML variants in `_preview/{default,brief,devops,research}/` + `site/ai-news-daily/index.html` (12KB, 50 stories).
- **Deploy to `preprod1.afterthedemo.com` blocked:** all remote access is down. VPS SSH local-vps-reference:22 is firewalled (times out), Tailscale 100.64.0.1:22 times out, all users/key/password auth rejected. Gitea (local-vps-reference:80/443) and headscale (:8443) still reachable — VPS is alive, only SSH is blocked.
- **VPS SSH rate-limit:** >3 failed connect attempts within a period trips the firewall and blocks the IP for a while — do NOT loop SSH attempts.
- **Options (need Anthony):** (a) SSH in himself and add `~/.ollama/id_ed25519.pub` or `~/ssh-keys/vps-deploy.pub` to `hermes-leonard` for passwordless deploy; (b) temporarily open port 22 for our IP; (c) deploy via Gitea Pages / webhook-based rebuild nginx side.
- **Deployed to `https://preprod2.afterthedemo.com/`** ✅
- 5 variants live: default, brief, devops, research, ai-news-daily
- Fresh stories through 2026-09-02
- VPS SSH still blocked; pipeline lives locally for now
- Oracle needs to be migrated to VPS (can't ingest from local PC without SSH)
## Decisions
@@ -67,3 +73,4 @@ oracle/variants/ → Render config (default, research, devops, brief)
- Pure rule-based — no embeddings, no LLM classification
- Velocity ranking for GitHub (not raw stars)
- GitHub unauthenticated rate limit: 60 req/hr (budget calls, 30s timeout per source)
- **VPS SSH is firewalled:** >3 failed connects blocks IP. Do NOT loop SSH attempts.
@@ -10,10 +10,9 @@
- SOUL.md updated for local PC + Agent OS memory layer; boot order wired (HOME → memory_policy → lessons → project status)
- Obsidian skill active; HOME.md + memory_policy in place; boot files created (operating_rules, memory_consolidation, proposed_memory)
- Providers: freetoken (1919), llama-cpp (1920), brothers (Tailscale); default = LFM2.5-2.6B via llama-cpp, fallback = brother-5090 (27B via tailnet)
- FreeToken gpt-oss-20b at :1919 — **50+ tok/s on RTX 3060**, primary performer for high-throughput tasks
- LFM2.5-2.6B at :1920 via llama.cpp — always-on daemon, cannot coexist with gpt-oss on 12GB VRAM
- LFM2.5 on llama-cpp CUDA at :1920 (~145 tok/s, RTX 3060); FreeToken gpt-oss-20b at :1919 (manual start, can't coexist on 12GB GPU)
- Voice/TTS: wake word "hey Jimmy" (sherpa, input_device=1) + Edge TTS AriaNeural, auto_tts=true, barge-in enabled (wired 2026-08-30)
- Vault search: Native `search_files` (ripgrep) — zero infrastructure overhead
- Vault RAG live: `~/Projects/vault-kb/` ChromaDB + LM Studio embeds (:1234) — 167 chunks / 29 files indexed, venv at `.venv/`
- Auto-start: `start-models.bat` in Windows Startup (LFM2.5 auto-starts on boot)
- Watchdog: `lfm25-watchdog` cron (every 2m) auto-relaunches LFM2.5 if port 1920 dies
- Constant-learning loop: `vault-consolidation` cron (daily 6am) consolidates sessions → vault
@@ -0,0 +1,63 @@
---
type: client-deliverable
client: Ashley (Phoenix Salon + Spa)
date: 2026-08-13
author: Leonard
tags: [audit, phoenix-salon, la-mae-cleanup]
---
# Phoenix Salon + Spa — Online Presence Check
**Date:** August 13, 2026
Hi Ashley,
Quick check on how Phoenix shows up online. Two things are worth fixing — both simple, both matter.
---
## 1. Your hours are showing wrong on your website
Your website currently shows:
> **Mon–Fri 9:00–7:00, Sat & Sun 9:00–5:00**
Your actual hours:
> **Mon–Fri 9:00–6:00, Sat 9:00–3:00, Sun Closed**
The problem: the website says you're **open on Sundays** — you're closed. Anyone who sees that and shows up is a lost customer before they reach the door, and search engines repeat these hours everywhere.
**Fix:** Update the hours on your website's Contact page to match reality.
---
## 2. Your old name is still showing up in 6 places
Phoenix rebranded from **La Mae / LaMae**. The old name is still live online. Here's every instance:
### Change these (update to Phoenix Salon + Spa)
| # | Where | What it says now |
|---|-------|------------------|
| 1 | **CityFeet** (building directory — `cityfeet.com`) | "Lamae Salon & Spa" listed as tenant at 3460 Robin Ln |
| 2 | **BestProsInTown** (`bestprosintown.com`) | Page slug itself is `la-mae-salon-and-spa` |
| 3 | **Yelp search result** (Ulta query) | "La Mae Salon & Spa, Cameron Park, CA" |
### Keep these (they correctly say "we're now Phoenix")
| # | Where | Why keep |
|---|-------|----------|
| 4 | **Facebook** — "Formally La Mae…" | Tells loyal customers where you went; carries your history |
| 5 | **Yelp listing** — "formerly known as La Mae Salon & Spa" | Same reason — keeps old-customer searches landing on you |
### Leave these alone
| # | Where | Why |
|---|-------|-----|
| 6 | **Vagaro review** mentioning "LaMae" | It's a real customer review — authentic, can't and shouldn't change |
---
**The simple rule:** keep the old name only where it clearly says *"we're now Phoenix."* Everywhere else, the old name is just confusion — update it to Phoenix.
Happy to help with any of it.
—
Leonard · for Phoenix Salon + Spa
@@ -0,0 +1,73 @@
---
type: project-overview
client: Ashley Thornhill (Phoenix Salon + Spa)
status: active
canonical_url: https://phoenixcameronpark.com/
canonical_name: "Phoenix Salon + Spa"
verified: 2026-09-11
tags: [client, salon, veripath-audit, overview]
---
# Phoenix Salon + Spa — Overview
Single authoritative picture of the Phoenix Salon + Spa engagement. Verified against the live site 2026-09-10 and re-verified 2026-09-11 (live sweep). Supersedes scattered notes; [[status]], [[roadmap]], and [[handout]] hold the operational detail.
## The business
- **Phoenix Salon + Spa** — 3460 Robin Lane, Suite 4, Cameron Park, CA 95682 (near Dutch Bros / Moonraker / Wally's Pizza Bar; last parking lot on the right)
- **(530) 350-9197** (call or text) · ashley@phoenixcameronpark.com · phoenixcameronpark.com
- Booking via **Vagaro**; by appointment, same-day when available; 24-hour cancellation policy
- **Rebranded from La Mae / LaMae Salon & Spa** — legacy name still live in several third-party directories (see `handout` findings #2)
- Website stack: modern rebuild (Vite/astro-style assets), contact form, Vagaro booking, member login
## The owner
- **Ashley Thornhill** — founder + lead esthetician; licensed since 2007 (~19 years)
- Specialties: custom corrective facials, microdermabrasion, chemical peels, Brazilian/bikini + full-body waxing, airbrush spray tanning
- Positioning: experience + intuition + advanced esthetic knowledge, "customized to you"
- Nominated in Style Magazine's 2026 Readers' Choice Awards (winners Oct 2026) — live vote page
- **Relationship to operator (AshBot):** records show business client only. (No girlfriend/personal dimension in any vault/memory file — user mentioned it in chat 2026-09-10; not recorded until confirmed.)
## Services & membership
- **Services:** custom corrective facials, spray tans, waxing, lash extensions + brows, hair (independent stylists, booth/suite rental)
- **Phoenix Glow Membership:** $70/mo — 1 monthly skin-maintenance facial, 20% off enhancements, 15% off retail, 3-month commitment
- **Spray Tan Membership:** from $95/mo
- **Integrations:** IMAGE Skincare, Microbiome Labs (MegaSproBiotic, MegaMucosa, MegaPre, Mega IgG2000)
- **10 content pillars:** skin journey, treatment-room education, product education, inside-out support, membership culture, spray-tan authority, waxing confidence, owner/salon culture, local community, personal brand
- **Gut-skin rule (hard):** plain language, short sentences, no jargon — per social-media vision doc (AgentOS `salon-social-media-system`)
## VeriPath audit (2026-08-13, Leonard)
- **Finding 1:** website hours wrong (site said Sunday open; owner closed)
- **Finding 2:** La Mae residue across 6 surfaces (3 update, 2 keep, 1 untouchable customer review) — detailed in `handout`
- **Trigger:** newest Google review 125 days stale; GBP showed no photos publicly
- **Roadmap:** 4 owner-side fixes (GBP, Apple Business Connect, Yelp, website) → 30-day (JSON-LD hours, canonical URL, review-request flow 3–5/mo, 15–25 GBP photos) → 30–90 day (directory cleanups, 301 kill lamaesalonspa.com) → standing monthly NAP re-check
- **Status:** open items behind. See `roadmap.md` for the full checklist.
## Open items surfaced 2026-09-10/11 (needs action)
1. **Site hours still wrong — and now internally contradictory (verified 09-11).** The contact page *visible text* says **Mon–Fri 9–7, Sat & Sun 9–5**; the site's **JSON-LD structured data** says **Mon–Sat 10:00–18:00, Sunday omitted**. Neither matches owner truth (**Mon–Fri 9–6, Sat 9–3, Sun closed**). Search engines/AI trust JSON-LD; humans trust the text — two wrong answers. **To fix:** one source of truth in both places, then re-scrape clean. See [[phoenix-hours-fix]] for paste-ready copy
2. **Ghost domain is a dead 301.** lamaesalonspa.com redirects to www.lamaesalonspa.com, which fails **HTTP 526 (Cloudflare can't reach origin)** — a dead endpoint still living under her old name, confusing crawlers/links. Kill or repoint in the 30–90 day work; see roadmap item 14
3. **Yahoo listing:** still shows **9–7 daily** hours (wrong) and lists the city as **Shingle Springs** (not Cameron Park). Aggregator refresh will lag until source data is right (fix website + GBP first, then it streams)
4. **Call note mislabel (2026-08-15):** the call note says "Ashley's gym" — verbal fumble; Ashley owns the salon/spa and trains at **Overcome Fitness** (member, not owner). Correction recorded here; file kept as history
5. **Overcome Fitness** — where Ashley trains. Adjacent relationship, not a Phoenix asset. Also the gym vertical the 08-15 call planned to audit next (never started). Possible warm referral; do not merge with Phoenix work
## Verified sweep 2026-09-11 — what's actually good now
- **Google:** 4.9★ ~64–65 reviews (up from the stale trigger). 2026-02-14 (Elizabeth E.) and 2026-04-21 (Julia C.) reviews live
- **Yelp (via Yahoo feed):** 5.0★ / 65 reviews; recent spray-tan review 2026-06-20 visible
- **Bonus fact:** Yahoo photo caption identifies **"Owners & Mother / Daughter: Pat & Ashley Thornhill"** — mother-daughter co-owner fact, useful for team/press/social
## Documents
- [[handout]] — original audit findings (client-facing, 2026-08-13)
- [[roadmap]] — implementation plan with effort/impact (2026-08-13)
- [[status]] — project status + open work
- [[veripath/index|VeriPath]] — parent service/project
## To do
- Fix contact-page hours + JSON-LD to owner truth, then verify Google/Yelp/Apple pick-up
- Sweep remaining La Mae residue + legacy-listing layer
- Stand up the standing monthly NAP re-check
@@ -0,0 +1,95 @@
---
type: fix-package
client: Ashley Thornhill (Phoenix Salon + Spa)
date: 2026-09-11
owner: Tony-to-handle (set Monday)
verified: live sweep 2026-09-11
tags: [phoenix-salon, hours, paste-ready, fix]
---
# Phoenix Hours Fix — Paste-Ready Package
Goal: get every public surface to one source of truth. **Owner truth (from the 08-13 roadmap):**
> **Mon–Fri 9:00 AM–6:00 PM · Sat 9:00 AM–3:00 PM · Sun Closed**
Below is the exact copy to paste into each surface. Do the website first (it feeds Google/Yelp/Apple), then the platforms.
---
## 1. Website — contact page (visible text)
Replace the current hours block (Mon–Fri 9–7, Sat & Sun 9–5):
```
Monday – Friday: 9:00 AM – 6:00 PM
Saturday: 9:00 AM – 3:00 PM
Sunday: Closed
By appointment only. Same-day appointments when availability allows.
For fastest booking, reserve online or text the salon directly.
```
## 2. Website — JSON-LD (structured data, search engines/AI read this)
Replace the `openingHoursSpecification` block with:
```json
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "15:00"
}
]
```
(Sunday absent = closed. Do not include a Sunday entry.)
## 3. Google Business Profile (GBP)
- Hours → Mon–Fri 9:00 AM–6:00 PM, Sat 9:00 AM–3:00 PM, Sun closed
- Verify the address city shows **Cameron Park**, CA 95682 (the audit flagged it clean; Yahoo still says Shingle Springs — don't trust that)
- If still no public photos, upload 15–25 (interior, team, work, spa area)
## 4. Apple Business Connect
- Hours → Mon–Fri 9–6, Sat 9–3, Sun closed (Saturday was the flagged item per roadmap #2)
## 5. Yelp (business page)
- Hours → Mon–Fri 9:00 AM–6:00 PM, Sat 9:00 AM–3:00 PM, Sun closed
- Also remove/change the "Menu" link: currently points to **lamaesalonspa.com/schedule-online** — that domain is dead (526 error); point it at the Vagaro booking link instead
- City/Category consistent with Cameron Park, CA 95682
## 6. Third-party cleanup already filed (30–90 day)
- lamaesalonspa.com: dead 301 → kill or repoint to phoenixcameronpark.com
- Yahoo (aggregator): hours 9–7 daily are wrong + city mislabeled. Will lag until source (site+GBP) fixed, then verify refresh
---
## Verification after fixes
After ~7 days, verify each surface re-picked-up the new hours:
- Google Business Profile search
- Yelp page
- Apple Maps
- local.yahoo.com listing
- Site's own JSON-LD via `curl -s https://phoenixcameronpark.com/ | grep -A20 'ld+json'`
Standing monthly NAP re-check (roadmap #16) covers this forever after.
## Notes
- Bonus fact for future use: Yahoo photo caption shows "Owners & Mother / Daughter: Pat & Ashley Thornhill" — confirm with Ashley; good for press/team/social.
- Reviews are healthy (Google 4.9★ ~64–65, Yelp 5.0★/65) — the stale-review trigger has self-healed; keep the flow (roadmap #7) for 3–5 new/month.
**The 10-minute path:** items 1+2 (website) → 3 (GBP) → 4 (Apple) → 5 (Yelp). All are owner-account changes; no special access needed.
@@ -0,0 +1,39 @@
---
type: implementation-roadmap
client: Ashley (Phoenix Salon + Spa)
date: 2026-08-13
author: Leonard
reference: "[[handout]]"
tags: [roadmap, phoenix-salon]
---
Implementation Roadmap — Phoenix Salon + Spa
Reference: Executive Report findings #1 (hours) and #2 (La Mae residue).
Owner truth (target state): Mon–Fri 9:00 AM–6:00 PM · Sat 9:00 AM–3:00 PM · Sun closed · canonical URL https://phoenixcameronpark.com/ · canonical name "Phoenix Salon + Spa"
This Week (≈2 hours total)
# Action Where Effort Impact
1 Change Saturday hours to 9 AM–3 PM Google Business Profile 5 min ★ Highest — most-checked surface
2 Fix Saturday hours + remove Sunday hours Apple Business Connect (app) 10 min High
3 Set full real schedule (all days) Yelp business page 10 min Medium
4 Update hours on contact page to match truth Website 15 min Medium
First 30 Days
# Action Effort Impact
5 Update website JSON-LD OpeningHoursSpecification to the owner-verified schedule 1 hr Medium (search/AI accuracy)
6 Standardize website URL to https://phoenixcameronpark.com/ (no www) on GBP, Apple, Bing 30 min Medium
7 Launch review-request flow: after-appointment text to happy clients asking for a Google review (target 3–5 new reviews/month) 2 hr setup High — newest review is 125 days old
8 Upload 15–25 photos to Google Business Profile (interior, team, work, spa area) 1 hr High — GBP currently shows none in public view
30–90 Days
# Action Effort Impact
9 La Mae cleanup — Nextdoor (update name/address) 20 min Medium
10 La Mae cleanup — MapQuest (update or request removal) 15 min Medium
11 La Mae cleanup — BestProsInTown + Loc8NearMe (claim/update listings) 30 min Medium
12 La Mae cleanup — FindGlocal (correct "Formally" copy) 15 min Low
13 Legacy Yelp listing — claim, merge into Phoenix, or request removal 30 min Medium
14 Redirect lamaesalonspa.com → phoenixcameronpark.com (301, whole domain) 30 min + DNS High — kills the ghost site
15 Add GBP description (2–3 sentences: services, location, team) 10 min Low-Medium
Standing (Monthly)
# Action Why
16 NAP + hours re-check across Google/Apple/Bing/website/Yelp Directories drift; Google edits listings over time
17 Review-count and recency check Keep the fresh-review stream visible
Notes: Items 1–4 are yours to do directly — all are owner-account settings. Items 9–14 are directory correspondence; items 5, 14 need the website admin (DNS/hosting for the redirect). Happy to handle any of 9–15 end-to-end, or run the monthly check on a standing basis.
@@ -0,0 +1,30 @@
---
type: project-status
client: Ashley (Phoenix Salon + Spa)
status: active
canonical_url: https://phoenixcameronpark.com/
canonical_name: "Phoenix Salon + Spa"
hours: "Mon–Fri 9–6, Sat 9–3, Sun closed"
tags: [client, salon, veripath-audit]
---
# Phoenix Salon + Spa — Status
## At a glance
- **Client:** Ashley (owner)
- **Service:** VeriPath online presence audit
- **Status:** Active — implementation roadmap in progress
- **Auditor:** Leonard
## Open work
- Items 1–4 from [[roadmap]] (owner-side settings)
- Items 5–15 (directory + website cleanups)
- Standing monthly NAP + hours re-check
## Documents
- [[handout]] — the original audit findings (2026-08-13)
- [[roadmap]] — implementation plan with effort + impact
- [[veripath/index|VeriPath]] — parent service / project
## Background
Phoenix rebranded from **La Mae / LaMae Salon & Spa**. Online presence still has the old name in 6 places (handled in [[handout]]) and hours are wrong on the website.
@@ -34,7 +34,7 @@
## Open / Blockers
- **Deployment pending.** DNS: `thornhillconstruction.net` currently resolves to `162.255.119.233` — NOT the VPS (`local-vps-reference`). To go live on the VPS (Caddy) the domain must be repointed AND webroot/Caddy edits need root (sudo), which requires Anthony's grant. Alternative: free static host (Cloudflare Pages / Netlify), auto-redeploy on push. Preview route: `*.afterthedemo.com` subdomain (no root needed) — awaiting Anthony's choice.
- **Deployment pending.** DNS: `thornhillconstruction.net` currently resolves to `162.255.119.233` — NOT the VPS (`74.208.111.99`). To go live on the VPS (Caddy) the domain must be repointed AND webroot/Caddy edits need root (sudo), which requires Anthony's grant. Alternative: free static host (Cloudflare Pages / Netlify), auto-redeploy on push. Preview route: `*.afterthedemo.com` subdomain (no root needed) — awaiting Anthony's choice.
- Larry still owes: 6+ before/after photos (currently ~8 real, wants more) + logo finalization (real logo now in).
- Gitea URL field mentions `.com→.net` correction was applied (domain bought back).
@@ -43,6 +43,47 @@
- Pick deployment path (VPS+Caddy vs Cloudflare/Netlify) once Anthony grants sudo/DNS decision.
- Keep canonical number out of any landline references; collect before/after shots from Larry.
## Links
## Update (2026-09-10) — live verification by the focus coach
- [[HOME]]
**This supersedes the "Current State" and "Open / Blockers" sections above. The site is LIVE.**
Verified by loading the live page, not by reading notes.
- **It is a WordPress install with Contact Form 7** — *not* the static single-file HTML recorded
above. The deployment question is closed; the `.com/.net` DNS and sudo blockers are moot.
- Live page verified: canonical phone **530-306-4629** (3 `tel:` links), **CSLB #336956** ×3,
`mailto:larry@thornhillconstruction.net` in nav + footer, **11 images, none broken**
(3 before/after pairs live), old wrong number absent from the site.
- **Still open: contact form delivery is UNVERIFIED.** A CF7 form that renders and a CF7 form
that delivers look identical. Test-submit and confirm arrival at `Larry@ThornhillConstruction.net`,
and confirm the mailbox itself receives.
- Still open: Google Business Profile not created · Yelp wrong number 530-344-1504 off-site ·
copy is thin (371 words visible) · more photos owed by Larry · **a 🐴 in the `<title>` tag — FALSE ALARM, corrected 2026-09-11: that was the coach's browser tool, not the site; the title is clean** ·
service-area vs. street address undecided for NAP.
- **Lesson for agents reading this:** a status file is a claim with a date on it, not ground truth.
Tony's own word outranks it, and a stale status file here caused a wrong conclusion to be
published. Verify against the live artifact before acting.
Tony's own estimate (2026-09-10): "about 85% finished."
## Update (2026-09-11) — two claims in this file were wrong
Both were caught by checking the live artifact instead of trusting the note. Read this before acting
on the sections above.
1. **"Deployment pending" / "static single-file HTML" — wrong.** The site is **live** and is
**WordPress + Contact Form 7**. The DNS/sudo blockers described above are moot.
2. **"Yelp has a WRONG/dead number (530-344-1504) — must fix" — wrong.** The Yelp listing shows
`(530) 306-4629`, which is correct, and Tony confirmed it on 2026-09-11. **Nothing to fix. Do not
spend time on this.**
**Google Business Profile: it EXISTS.** Tony set it up previously. Do not create a duplicate. Found by
searching the phone number on Maps — a name search does not surface it. Current state:
primary category now **Deck builder** (changed 2026-09-11, was General contractor), hours Mon–Fri 9–5,
phone ✅, website ✅, no address shown, **zero reviews**, description/services now filled in.
**Also corrected:** CSLB licence #336956 is **Sole Ownership** (not Inc./LLC), class B–General
Building, **issued 07/01/1977** — the site's "Licensed 1976" appears to be wrong and is pending Larry.
Live landline on the state record is `(530) 303-3950`; Tony confirmed it's alive, so CSLB stays as-is.
**Lesson, again:** this file is a claim with a date on it. Verify against the live thing, and treat
Tony's word as the source.
@@ -0,0 +1,203 @@
---
title: Call with Tony 8/15/2026
date: 2026-08-15
type: call
tags: [veripath, geolocal, hermes, strategy, call, tailscale, headscale]
source: source.m4a
duration: 2:00:15
speakers: [Tony, Christian, Anthony]
projects: [VeriPath, GeoLocal, Hermes]
---
# Call with Tony — 2026-08-15
VeriPath / GeoLocal strategy call covering branding, the self-service portal (SSP) workflow, standardized audit process, ticketing infra, security, Hermes infrastructure buildout, and a live Tailscale/Headscale Windows-client repair session.
## Action Items
- **Standardize the audit run path** — everything identical per vertical except a genre template (~8–10 verticals cap; start with gym + salon). _[Tony]_
- **Run the fresh on-boarding workflow exercise** — elevator pitch → walk the full client lifecycle to expose every data point/credential needed. _[Tony]_
- **Protect secrets from day zero** — Vault Warden already stood up; project doesn't know about it yet. Hard requirement, everything else is flexible. _[Anthony]_
- **Ticketing system** (lightweight, container on VPS, ~40 possible options) + email→agent→ticket→execute→SLA close loop. _[Anthony builds schema; Tony evaluates]_
- **Get first 10 wins at "2017 bar" then 10 at "2027 bar"** — validation before scaling. _[Tony]_
- Refactor / defer Larry's construction website build until a reliable tool chain exists. _[Tony]_
- Close out Phoenix (Ashley's gym) audits; run gym audit deep-dive. _[Tony]_
- **Get HS_Tony (Windows node 100.64.0.4) back online** — reconnect to Headscale 74.208.111.99:8443 per the cheat sheet; do not use `--force-reauth`. _[Tony]_
- **Reward first $3k with a 5070 Ti** (~$900); hold on the 3060 for now, borrow Anthony's inference in the meantime. _[Tony]_
- **Pivot Hermes to a stripped-down, business-only role** on the VPS (sole mission = run the business); sandbox it; everything-personal lives on local machines. _[Anthony]_
---
## 1. Branding & Positioning
### Defining Brand Vibe and Empowerment
Tony pushes back on a cold, competitive tone in favor of an empowering brand personality — helping businesses control their digital footprint on their own terms. Yelp/Angie's List framed as closed moats that abuse customers.
### The Self-Service Portal Solution
Anthony validates the scalable SSP acting as a "trusted advisor." Two pains SMBs face: technical complexity (passwords, schemas) and natural drift (menu/business changes) that never get discovered if decisions happen by phone call.
### Overcoming Skepticism and Building Trust
Tony: jaded owners get knock-after-knock every day; counter with a warm referral network, beta testimonials, paid-gig referrals. Anthony: open-source model (GitHub-style iterate/discover/fork) but SMB owners just need payroll — the pitch is simply "AI chat sees my business."
### AI Discoverability Requirements
Consistent ground truth (GBP, Apple Maps, Yelp: same name/address/phone) makes businesses findable; easily digestible, trustworthy website data fuels AI agents. Agents gravitate to trusted, not fragmented, info. "2017-ready before 2027-ready."
### Market Entry Strategy and Validation
Crawl before walk. Smaller-town networking is an advantage (referrals); first 10 clients at 2017 bar, then 10 at 2027 bar, teach what to do next. Phoenix (Ashley) + Larry construction are the active leads.
---
## 2. Sales Funnel & Onboarding
### The Sales Funnel: Intake to Action Plan
Anthony walks "Susie's Salon": SSP validates ownership → free intake in perky business-consultant tone → cross-check against Apple/Google/Bing → action plan → upsell bronze/silver/gold or self-serve ($20 one-time) → monthly newsletter for stickiness.
### Workflow Onboarding Exercise
Anthony recommends a completely fresh session from elevator pitch → walk the full workflow to surface every needed datum: domain registrar, hosting, creds, Google/Bing/Yelp state, partner-key delegation. End state = all 4 platforms aligned to one vertical template. Pre-write the salon + gym templates (99% doable).
### Onboarding Workflow & Data Collection
Tony starting on-boarding via Google Docs + form → customer database in Google Docs.
---
## 3. Audit Product & Process
### Refactoring Codebase and Standardizing Processes
Anthony: repos (GeoLocal / VeriPath) are overwrought — layered ideas lose spirit. Proposes: max 3 "what" artifacts, then a standardized execution path with the only variance being a **genre template** per vertical. Tony agrees: same recipe every time; ~8–10 main verticals.
### Schema Design for Audit Conclusions
A tooled AI-skill should emit one schematized audit document (markdown/json) with conclusions + corrective actions — same code path whether driven by GeoLocal SSP or kicked manually by VeriPath.
### Schema Depth & Verification
Business metadata is deeper than hours/address: veteran-owned / woman-owned metafields, dog-on-deck, etc. Need rigorous verification with git-issue patterns until "schema complete for V0.5."
### AI Handoffs & Audit Challenges
Anti-bot walls: Apple Maps hard for agents to read full info; Google BP can't scan hours beyond current day. Tony 48h into engineering workarounds with Leonard.
### Technical Solutions: Residential IPs & Politeness
Anthony solved a chunk: reverse-Tailscale to Deep Blue → Docker SearXNG → exits on **residential IP** (reduces friction); throttled SearXNG query rate ("web-polite") to avoid self-jailing. V1.5 problem = pay a search-reseller at scale.
### Agent Trust & Narrow Task Focus
Tony wants to trust an agent with credentials to make corrections reliably without hyper-checking work (anti-hallucination workflow). Anthony: sandboxed Hermes in a container, limited rights, specialty narrow tasks ("Pass the Butter" robot).
---
## 4. Business Ops, Tooling & Security
### Hermes Update and Ticketing System Proposal
Hermes Technium rewrite: plugins now interface with other plugins, cascading, version control. Anthony proposes a ticketing system as fundamental table stakes.
### AI Assistant Persona and Urgency
Tony's "Quinn" (grumpy-uncle persona, standing "push back on everything" prompt) tells him to drop tooling and go get paid ASAP. Ticketing-light via Apple Notes acceptable until SLAs force real action items.
### Technical Architecture for Ticketing
Anthony: light container on VPS (~64 MB RAM) → email forwarded to chat → execution agent opens service request → tweaks hours across Apple/Bing/LLM text/FTP → returns summary + canned client response showing SLA met, full audit trail.
### CRM Integration and Data Storage
Tony: ticketing = lightweight CRM; baseline = Excel spreadsheet of clients/billing. Anthony: clients hand you credentials — store in **Vault Warden** (already created), not on the project's radar yet.
### Security Standards and Compliance
SOC 2 (not compliant), industry-standard trust language for "your secrets are safe." Vault Warden/Bitwarden: independently audited, multi-factor encryption, SOC 2, HIPAA, ISO 27001, GDPR. The "badges" page is the pitch.
### Security Requirements & Initial Constraints
Only hard requirement from day 0: protected secret storage. Everything else shoestring is fine.
### Infrastructure Scaling Strategy
After passing ~10 clients: drop self-hosted Vault Warden for the $6/mo business plan so an agent can grab credentials programmatically. Precedent: Passsafe ~270 passwords today.
### Strategic Pivot to Focused Hermes Role
Agree to pivot: the VPS Hermes becomes a **stripped-down, business-only** agent (sole mission = run the business). Nothing personal competes for its resources — everything-personal moves to local machines. Vault Warden, Gitea, ticketing all live on the VPS without contention.
---
## 5. Technical Infrastructure — Tailscale / Headscale & Systems
### Directory Correction and Installation Progress
Installation hit the wrong directory first; once corrected, Tailscale installs but comes up logged out.
### Login Failure Diagnosis and Upgrade Complications
"Installed and working, but logged out" — diagnosis: expired/invalid auth key or invalid system state after a Tailscale version upgrade. Client offers browser login or "generate new auth key."
### Initial Diagnosis and AI Consultation
Anthony: can't be fixed from his side — must be fixed on Tony's machine. Recommends asking DeepSeek with precise context ("only using Tailscale to reach the Headscale on this VPS; shouldn't need to log in").
### Auth Key Verification and Context Clarification
Confirm the key ending `7ZHB` was already shared with DeepSeek — it's the valid Headscale auth key.
### Locating Documentation for Windows Client Setup
Anthony points to the **Windows client cheat sheet** added to the repo README (root) — instructs Tony to copy-paste it to DeepSeek.
### Successful Connection and Status Check
Running the cheat-sheet steps connects the Windows node (`100.64.0.4`) to the Headscale server; Deep Blue Ubu shows offline / last seen 10 days ago.
### Verifying Network Connectivity and Status
Anthony gets a ~70 ms ping on `.4` — connection live. But `tailscale status` / headscale `nodes list` wrongly report nodes offline. Root cause: **headscale caches old state** — don't treat it as downtime; the "offline" listing is stale until the node reopens its map stream.
### Remote Node Connectivity Troubleshooting
`HS_Tony` (desktop-81cbtv2) unreachable despite a valid 10-year key. Key is healthy but the node is logged out / no state. Fix = run the original join command in PowerShell **as Administrator** (drop `--force-reauth`); restart the Tailscale service first.
### Grok 4.6 Login Configuration Review
Grok 4.6 confirms the login-server (`http://74.208.111.99:8443`) + auth key required are already present — running the join command should complete the connect.
### Optimizing Token Usage with X Grok
Tony tip: use the paid X/Grok instance (browser) for heavy context work instead of burning free Grok subscription tokens — they're not bridged, so it's free capacity.
### Cheat Sheet Reference and Tailscale Verification
The repo README (Tailscale configs) adds a **CLI management cheat sheet** (headscale `docker exec` commands) + Linux + Windows client sheets. Control plane is **HTTP**, not HTTPS; `.\\tailscale` only runs from `C:\Program Files\Tailscale`; never use `--force-reauth` (hangs; doesn't rotate keys).
---
## 6. Technical Infrastructure — Hardware & Models
### Technical Scalability and Data Privacy
Lightweight (9B param) models handle the workload; 5090s run ~10 concurrent seats. Scale COGs = server racking. Selling point: no data sold, no routing through big AI providers — private, secure inference inside GeoLocal space. AI as execution trigger (deterministic scripts), not full inference. Address medium-business cohort (min 3-person IT, SLAs, data) separately.
### Iterative Development vs One-Shot Approach
Anthony: 10 wins then write most of the refactor yourself, AI polishes. Tony: breaking the one-shot urge — frame first, then fill it in layers. Wants to restart the repo with a coherent beginning/middle/end (uses Hermes `/plan`).
### Hermes Infrastructure Strategy
Anthony: get both "amazing experts at Hermes" — it's the Swiss Army knife. Beginning infra: second 5090 → Linux with Windows VM (daily driver); repave Hermes into hardened Docker container, reimport portable profiles (DeepSeek probed feasibility). **"H-A-A-S": Hermes-as-a-Service** — haas.io business idea. VPS = business-only, nothing personal. Local + Tailscale to his inference for personal. Prototype on old Mac mini; Tony takes workflow-script path, learns per-audit (4 in front now).
### Model Strategy and Hardware Planning
Anthony: run 3.8-uncensored + 3.8-unsloth on the 5090s; explore voice-to-text / speaker-recognition on the 5060s (recorded this call via desktop-mic-near-iPhone). Hermes voice recognition in wait/awaken state. Want Hermes on Windows to hit inference at a tailed IP (same box OK). **Prometheus** stats in the exe file → dashboard on token footprints / speeds to tune. Archiving models to NAS as insurance. Local is "six-month frontier horizon" behind.
### Advanced Inference Architecture
Vision for **dynamic model swapping**: GPU0/GPU1 (5060s) hold ~7 models each on the NAS; when a task needs a specific model's expertise, an agent unloads/loads the right one, then infers. Hermes handles static assignments today (exec files + systemd, works per-card) but not dynamic swap-on-demand. **VLLM** flagged as a partial solution; requires research.
### Planning Linux Migration and GPU Setup
Recommendation: run Linux on the built-up rig, not the Dell laptop. Same pattern as Anthony's 5090 plan — bare-metal Linux, then **Windows in a VM** (Ubuntu desktop full-screen → click the Windows VM). Dedicate the **3060 purely to inference**; VM uses onboard/processor video so no GPU is wasted on display.
### GPU Upgrade Strategy and Pricing
Tony considering selling 3060 + 1070 to step up. **5070 Ti** baseline card (16GB, ~$900–1000; occasional ~$900 deal) vs 60 Ti (~$580). Decision: don't shell out now — hold the 3060, borrow Anthony's inference via Tailscale; **reward first $3k earnings with a 5070 Ti**. Options: put a 1070 in as a toy for small models (LFM 2.5).
### Server Auction Analysis and Hardware Specs
Anthony chasing decommissioned-business hardware at auction. Frame for any deal: *can I part it out on eBay and double my money?* (No on recent picks.) Saw a high-end Super Micro: AMD EPYC 16-core, 16×32GB RAM (512GB), 4× Micron 3.8TB NVMe, and 4× **A100 80GB** — chased it to $22k, too risky. Wants a **4U chassis** to rack his 5090s in a Quincy data center.
### Unified Memory Hardware Comparison
M5 MacBooks with 512GB unified memory run giant models — but system-RAM inference is slow. AMD unified (192GB) "pretty cool" but not fast. **Dream config: 512GB on 5090-class speed.** Guy running 80× 5090s together in a SETI-style cluster.
### Leonard System Troubleshooting and Sandboxing
`Leonard`'s venv broke when the Hermes model config was updated mid-flight (Hermes lives under `vps-admin`, Leonard jailed in `hermes-leonard` world; model-list upgrades unseated the venv; gateway also broke). Current setup described as a **hack** — Anthony wants Hermes self-sandboxed properly (or just use `oh-my-pie`/another system-level tool) so instability can't recur. Prefers to run the whole VPS Hermes sandboxed for the business role.
---
## 7. Personal / Casual
### Personal Updates & Auction Plans
Missed auction (slept in); possible snow trip, truck. Maybe come home empty.
### Car Troubleshooting and Boat Discussion
Anthony's car light went off; ~27 mpg on way home. Jimmy bought a 1448 semi-V John boat (14 ft, 15hp four-stroke, likely ~$3k); Tony may take his own boat, maybe bring pink one out with Jason & Johnson. Tow vs boat trailer, fuel numbers, Baker road mileage (~18 mpg).
### Brief Interruption and Resumption
Dog barking mid-call; short pause, resumed.
### Call Conclusion
Mutual appreciation; Anthony signs off — "I love these talks, man. I love planning this out." Tony to continue focusing on the onboarding workflow path.
---
## Related
- [[VeriPath]]
- [[veripath/status]]
- [[phoenix-salon/status]] — active client (Ashley)
- Tailscale cheat sheet: `~/src/Tailscale-configs/README.md` (Windows/Linux client + headscale CLI sheets)
- [[Tailscale-Headscale-Cheatsheet]] — vault copy of the above
@@ -0,0 +1,28 @@
# VeriPath
> Human-supervised, agent-assisted digital growth platform for SMBs. We prevent **silent customer loss** by ensuring customers can find, trust, and engage a business — and that search engines + AI systems can find, understand, and accurately represent it.
## Where it lives
- **Source of truth (Git):** `https://gitea.vps1.afterthedemo.com/Tony_tech/veripath` (private, default branch `main`)
- **Local folder:** `~/Projects/veripath`
- **Codebase is NOT mirrored here** — Git holds the full repo. This note is the index.
## Core concepts
- **Silent Customer Loss** — acquisition problems the owner can't see: **Customer Path Leakage** (digital friction stops contact/booking) + **Discovery Failure** (search/AI can't find or represent the business).
- **Service domains:**
- Customer Path Integrity — no preventable friction in find→trust→contact→book→visit.
- AI Visibility Integrity (**AEO** + **GEO**) — facts extractable/parseable by answer engines & generative engines.
## Current focus (as of 2026-08-28)
| Horizon | Status |
|---------|--------|
| **NOW** — manual audits: evidence capture, AI representation testing, Silent Customer Loss Maps, canonical business records, owner review | **Active** |
| **LATER** — GeoLocal, MCP/agent infra, payment flows, automated multi-tenant | Deferred |
## Repo layout
- `README.md`, `cold-audit-protocol.md`, `.gitignore`
- `docs/` `founding-partner-audit/` `gtm/` `implementation/` `research/` `skills/` `specifications/` `tools/` `web/`
## Related
- [[Call-2026-08-15-Tony]] — 8/15 strategy call (branding, SSP workflow, audits, ticketing, security, Hermes infra)
- [[Business MOC]]
@@ -17,6 +17,7 @@
- `veripath/audit-keisha-tucker-2026.md` — first audit (Service Dog Team Academy / Canine Solutions Dallas)
- `veripath/templates/` — audit templates, email delivery templates
- `veripath/skill/` — veripath skill (pending)
- [[phoenix-salon/status]] — current active client (Ashley, Phoenix Salon + Spa)
## Deferred (LATER)