Files
obsidian-vault/wiki/personal-os-catchup-plan-2026-04-27.md
T

6.1 KiB
Raw Blame History

source, content_hash, namespace, last_synced, confidence, tags
source content_hash namespace last_synced confidence tags
raw/personal-os-catchup-plan-2026-04-27.md 5081ceb719104e1b7c6b5edd642c1daf38b3fd7cf1a96442a00516e7cdb15379 work 2026-05-31 0.9
personal-os
planning
executor
catch-up-plan

Personal OS — Catch-Up Plan (2026-04-27)

Handoff plan to the executor agent — what to build next and why. Companion to personal-os-state-2026-04-27 (current state).

Context

Alex is a macOS Browser DRI at DuckDuckGo, ADHD profile, fully async work. The Personal OS holds work context outside Alex's head so comments don't get lost, the day doesn't drift, and career goals don't get crushed by the current project.

Four-agent design: Стратег (Strategist, ), Тактик (Tactician, 🟡 partial), Ретроспектор (Retrospector, ), Исполнитель (Executor, 🟡 v1 only).

Architectural Principle

No new YAML files, shell scripts, or launchd plists. Everything extends what's there: Postgres tables, generate-status.js queries, prompts in agent/prompts/, and Eagle's SOUL.md. The system has enough moving parts.

Nine Deliverables (dependency-ordered)

1.1 Schema migration

Three changes (see personal-os-schema):

  • corrections_log table — Tactic records pushback, Retrospector aggregates patterns by reason_tag / week_number.
  • executor_runs table — state machine for autonomous Executor work (states: analyzing → awaiting_analysis_approval → fixing → pr_open → ci_running → ci_failed → awaiting_user → complete | abandoned).
  • activity_daily.quadrant column — project | aor | career | strategy | other.

1.2 generate-status.js — three new query blocks

  • Career: Advisor Opportunities — ILIKE %Project Advisor% notes, modified ≤14d. Empty → omit section.
  • Visibility: Active Assessments without Alex's input in 7+ days.
  • Quadrant classification at AW write time, dynamic top-priority project read from config (iOS toggle today won't be the TP in June).

1.3 inbox-triage.md — STEP 0 gating

  • 0a Focus check — read latest activity_daily, check MS365 calendar for active meeting. Active meeting OR focus_score>60 AND current_app IN (Xcode,Cursor,VSCode) AND >20m no switch → exit silently unless status.md has 🔴 sections >3h.
  • 0b Scope filter#inbox is NEW SIGNAL ONLY. Exclude overdue (lives in daily-brief), system events, already-responded tasks. Include only new human comments, new assignments, ship/TD status changes, mentions in untracked tasks.

Gating in the prompt (not a wrapper) so the agent can override on edge cases (e.g. Dominik directly tagging Alex during deep focus).

1.4 retrospector.md — three SQL blocks

Replaces the markdown corrections_log.md. Surfaces correction patterns (≥3 in 4 weeks by reason_tag), quadrant drift (4-week × 4-quadrant pivot, flag <5% for 3+ weeks), and visibility this week (strategic comment count).

1.5 Eagle SOUL.md — corrections_log writeback

On pushback in any channel, Eagle classifies (discord_pushback | morning_brief_correction | manual), tags the reason (ship-review-crunch | urgent-bug | meeting-day | ...), INSERTs a row via psql, then responds normally without announcing the insert.

1.6 Executor v2 — draft-PR autonomous flow

Single human gate: Analysis approval. After that, autonomous.

Pipeline: Analysis → STOP → Fix → Build (xcodebuild) → Test → executor/<gid>-<slug> branch → push → gh pr create --draft --assignee @me --title "[executor] ..." (NO --reviewer) → self-review → CI poll every 10 min (max 3 auto-fix attempts).

Hard prohibitions: no push to main/develop/release, no non-draft PRs, no --reviewer, no gh pr merge, no force-push, no .github/ or CI config edits.

Draft + assignee=@me + no reviewers because the goal is durable surface, not interruption. Discord scrolls; GitHub doesn't.

1.7 MS365 MCP wired into Hermes

Calendar access for inbox-triage, weekly-plan, daily-brief. Only needs outlook_calendar_search between now and now+1h. Wire once at Hermes config layer, not per-prompt.

1.8 Vault consolidation

Move process docs into ~/obsidian/work/wiki/. Decision rule: process/conventions/workflows → vault; runtime configs read by agents → leave in place. .cursor/*.mdc files are copied (not moved) because Cursor IDE still reads them from apple-browsers/.cursor/. Frontmatter notes the original path. Verification after every move is non-negotiable (silent skill breakage is the failure mode).

1.9 Executor PR template (Option B inline)

Adapted variant — team template requires manual confirmation of task/reviewer/description; Executor knows all three deterministically. Inline the template in the prompt rather than checking a file into .github/. The draft state IS the safety net.

Order of Execution

Items 19 in any order. Item 10 (Executor v2 prompt) needs schema (1.1) + vault consolidation (1.8) + PR template (1.9) done first.

No new Discord channels needed. Existing seven cover everything.

Open Questions — All Resolved

  • macOS repo: ~/DuckDuckGo/apple-browsers/main, sibling executor worktrees.
  • Xcode scheme: one-time discovery during Executor v2 setup, hardcoded into config.
  • GitHub remote: gh CLI auto-detects from worktree.
  • No CODEOWNERS file → no auto-assigned reviewers.
  • Team OK with [executor] drafts on Alex only.

Postponed: NAS, personal, Phase 2-family.

Definition of Done

  1. Friday retrospector says specific things ("deferred bug work 4× for ship-review-crunch", "career quadrant <5% three weeks").
  2. #inbox shows only new human signal; silent during meetings.
  3. status.md has ## ⚡ Career section, empty when nothing.
  4. Pushing back on Discord adds one corrections_log row, no ceremony.
  5. fix [task] in #executor → analysis post → approval → draft PR in GitHub within 30 min for trivial bugs.
  6. Vault contains UI skill, all .cursor/*.mdc, and process docs, all reachable via obsidian-mcp.

personal-os-state-2026-04-27 personal-os-schema wiki-ingest-process ddg-asana-workflow