--- source: raw/personal-os-state-2026-04-27.md content_hash: 1640cb63145b49263b9476e2c39fe443ac561fdf6c27faccc50cfc8568552614 namespace: work last_synced: 2026-06-01 confidence: 0.8 tags: [personal-os, state, snapshot, executor] --- # Personal OS — State Snapshot (2026-04-27) Current state after the [[personal-os-catchup-plan-2026-04-27|catch-up plan]] executed. Supersedes `state-2026-04-27.md` and `personal-os-plan-v3.md`. ## Infrastructure (✅ Live) | Component | Notes | |-----------|-------| | PostgreSQL `personal_os` | tasks, stories, task_edges, sync_state, signal_queue, activity_daily — see [[personal-os-schema]] | | `sync.js` | 4-source Asana fetch, incremental deltas, `sweepRecentlyCompleted()` | | `generate-status.js` | DB → `status.md` + `asana_context.md`, `possibly_deleted` filter fixed | | ActivityWatch | DDG browser watcher + Xcode watcher | | Hermes v0.11.x | launchd `ai.hermes.gateway`, Claude Code OAuth, `claude-sonnet-4-6` | | Discord bot `Орёл#0898` | No `@`-mention required; channels: `#daily-brief #inbox #focus #executor #projects #journal #retrospector` | ## Automation **Hermes cron** (workdays): data-pipeline `*/30`, morning-brief 08:30, eod-summary 18:00, inbox-check `*/30 9-19`, weekly-plan Mon 08:00, weekly-review Fri 17:00, retrospector Fri 17:30, commit-vault 23:00. **launchd** (fires on wake): `personal.os.heartbeat` `:05` hourly (watchdog), `personal.os.wiki-ingest` 22:00 daily (see [[wiki-ingest-process]]). ## Vault Layout Git remote: `ssh://truenas_admin@mallexxx.duckdns.org/mnt/RED_2TB/storage/git/obsidian-vault.git` ``` ~/obsidian/ ├── wiki/ ← LLM-generated (this skill) + human-written (confidence 1.0) ├── raw/ ← symlinks to external sources ├── work/ ← Eagle write zone (projects/, decisions/, tech-design/) ├── personal/ └── family/ ``` ## Agent Prompts (`agent/prompts/`) `daily-brief`, `weekly-plan`, `weekly-review`, `inbox-triage`, `generate-status`, `wiki-ingest`, `executor-bug-fix`, `executor-td-review`. ## Catch-up Plan — Execution Status All ten items shipped: 1. Schema migration ✅ (corrections_log, executor_runs, activity_daily.quadrant) 2. MS365 MCP 🟡 — cloud connector works in Claude Code; Hermes `claude -p` will pick it up once exposed to the CLI env. No local npm package available. 3. `inbox-triage` STEP 0 ✅ 4. Advisor + visibility + executor queue queries ✅ (first run: 5 advisor opps, 8 visibility gaps, 10 executor queue items) 5. Quadrant classification + `upsertActivityDaily` ✅ 6. Retrospector SQL blocks ✅ 7. SOUL.md writeback to `corrections_log` ✅ 8. Vault consolidation ✅ (43 `.cursor/rules/*.mdc` files in `~/obsidian/work/wiki/apple-browsers/`) 9. Inline PR template ✅ 10. Executor v2 prompt ✅ (prompt written; not yet exercised on a real task) ## Open Items | Item | Status | |------|--------| | Executor v2 end-to-end live run | 🟡 not yet exercised | | `work/projects/` | 🟡 empty — Eagle fills on first relevant convo | | MS365 MCP in Hermes runtime | 🟡 blocked on CLI env exposure | | Phase 2-family | 🔴 deferred until after Phase 4 | ## Executor v2 — Design Summary On-demand worker that evaluates the backlog, picks a task, spawns a sub-agent in a Discord thread under `#executor`, streams progress, opens a draft PR, self-reviews, runs a CI poll loop (every 10 min, 3 auto-fix attempts), and surfaces summaries in daily/weekly briefs. Trigger modes: user-initiated (`fix [task]` in `#executor`), scheduled (Friday weekly-review suggests next), and status-driven (`## ⚡ Executor Queue` in `status.md`). Task qualification SQL: assigned to me, not completed, not `possibly_deleted`, no stories in 14 days, due in next 30 days. Worktree path: `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor-{gid}-{slug}/`. Scheme: `DuckDuckGo macOS` (workspace required, `xcbeautify` required). Cleanup on merge/close: `git worktree remove --force` + `git push --delete executor/` + stop/delete VM if used. ## Key Divergences From Plan v3 (Reasoning) 1. **wiki-ingest moved from Hermes cron → launchd `claude -p`** — needs local filesystem (read raw, write vault); Hermes agents only touch the API. 2. **`personal-wiki` MCP → `obsidian-mcp`** — the custom DB-backed wiki was never finished; standard package over `~/obsidian/` replaces it. `wiki_pages` / `file_references` tables dropped. 3. **Per-job launchd plists → single hourly heartbeat** — one watchdog reads `jobs.json` and triggers missed one-per-day jobs. Frequent jobs self-recover within Hermes's 2-hour grace window. 4. **Retrospector split out of weekly-review** — separate prompt, separate cron, separate `#retrospector` channel; weekly-review rewritten without duplicate `OUTPUT FORMAT` blocks. 5. **NAS git path `/home/...` → `/mnt/RED_2TB/storage/git/`** — boot pool is wiped on TrueNAS OS update; persistent data must live on `/mnt/`. 6. **Phase 2-family deferred** — VPS + family Hermes + iCloud vault sync waits until Executor v2 (Phase 4) proves itself. 7. **Executor v1 = manual-only STOP gates** — first autonomous code agent ships conservative; v2 (single gate + PR/CI loop) follows. 8. **wiki-ingest rewritten DB-first → file-based** — vault is now source of truth; SHA256 content_hash in frontmatter does incremental sync without DB dependency. See [[wiki-ingest-process]]. ## Known Tech Debt - Morning brief not yet smoke-tested in production - `executor-bug-fix.md` v1 is the live prompt — needs replacement with v2 - NAS SSH key still in boot-pool `/home` — must migrate to `/mnt/RED_2TB/` - Hermes memory (`~/.hermes/memory/`) not backed up ## Related [[personal-os-catchup-plan-2026-04-27]] [[personal-os-schema]] [[wiki-ingest-process]] [[ddg-asana-workflow]]