Files
obsidian-vault/wiki/personal-os-state-2026-04-27.md

132 lines
5.7 KiB
Markdown

---
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/<branch>` + 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]]