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

6.8 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-29 0.8
personal-os
catchup
plan
executor
retrospector
schema

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

Handoff for the executor agent: what to build next, in what order, why. Companion to personal-os-state-2026-04-27.

Context

Alex is a macOS Browser developer / DRI at DuckDuckGo. ADHD profile, fully async, primary channels Asana + Slack. The Personal OS holds work context outside Alex's head so comments aren't lost, daily focus survives, and career goals don't get crushed by the current project.

Four-agent design from the original spec: Стратег (strategist — status writer, ), Тактик (reactive, ADHD-aware, 🟡 partial), Ретроспектор (Friday-only patterns, ), Исполнитель (executor, 🟡 v1 only).

What's being caught up: career tracking, inbox hygiene, focus-aware ping gating, structured corrections (table not file), quadrants, Executor v2 (draft-PR + CI loop), MS365 wiring, vault consolidation, executor PR template variant.

Architectural principle (hard): no new YAML files, shell scripts, or launchd plists. Extend the existing four components — Postgres, generate-status.js, prompt files, Eagle's SOUL.md. See personal-os-state-2026-04-27.

Deliverables

1.1 Schema migration

Three changes: new corrections_log (date, week, source, original_plan, correction, deferred_gids, reason_tag); new executor_runs (state machine: analyzing | awaiting_analysis_approval | fixing | pr_open | ci_running | ci_failed | awaiting_user | complete | abandoned); activity_daily.quadrant TEXT (project | aor | career | strategy | other). Tables not markdown because Retrospector needs aggregates.

1.2 generate-status.js blocks

  • Career — Advisor pipeline: filter on notes ILIKE '%Project Advisor: Set the custom field%', recent 14d. Omit section if empty (no noise).
  • Visibility — Active Assessments without Alex's input: 14d-active tasks named Assessment/O-N/O-L where Alex hasn't commented in 7d.
  • Quadrant classification at AW write time: static PROJECT_TO_QUADRANT map plus dynamic "current top priority project" read from config/status (not hardcoded — top priority shifts).

1.3 inbox-triage.md STEP 0

Two-part gating in the prompt itself (not a wrapper — agent retains override): focus check (focus_score > 60 + Xcode/Cursor + 20 min stable → exit unless 🔴 sections older than 3h; active calendar meeting → exit silently); scope filter (NEW SIGNAL ONLY — no overdue, no system events, no Alex-already-responded). Empty → write "Inbox quiet — nothing new."

1.4 retrospector.md SQL blocks

  • Correction patternsreason_tag grouped by 4w, threshold ≥3.
  • Quadrant drift — 4w × 4-quadrant pivot from activity_daily. Flag career quadrant <5% for 3+ weeks.
  • Visibility this week — count Alex's strategic comments via stories joined on Assessment/Objective/project tasks.

1.5 Eagle SOUL.md — corrections writeback

On any user pushback in Discord, Eagle infers reason_tag, runs INSERT INTO corrections_log silently, then replies. Replaces markdown log. Natural capture moment is in-conversation, not via a separate hook.

1.6 Executor v2 — draft-PR autonomous flow

Single STOP gate: Analysis approval. After approval, autonomously: fix → build → test → branch executor/<gid>-<slug>gh pr create --draft --assignee @me (no --reviewer!) → self-review comment → CI polling loop (10 min, max 3 auto-retry attempts → awaiting_user).

Hard prohibitions: never push to main/develop/release; always --draft; never --reviewer; never gh pr merge; no force-push outside own branch; no edits to .github/ or dependency manifests without thread confirmation.

Existing Discord channels suffice — no new ones.

Rationale: draft PRs are durable surface (vs. ephemeral Discord threads), don't trigger reviewer pings, easy one-click flip to ready. ADHD-friendly.

1.7 MS365 MCP into Hermes

Calendar gating needs outlook_calendar_search(afterDateTime: "now", beforeDateTime: "now + 1h"). Wire once at Hermes config layer so inbox-triage, weekly-plan, daily-brief all benefit. Microsoft 365 (not Google) — that's what's in the workspace.

1.8 Vault consolidation

Move process docs from Personal OS → ~/obsidian/work/wiki/. Move/copy UI testing skill and 43 apple-browsers/.cursor/*.mdc files (copy .mdc — Cursor needs originals in place). Verification: invoke each moved skill/prompt end-to-end after move.

Decision rule: "process/convention/workflow → vault; read-at-runtime → original location." Both → canonical in vault, stub or symlink at runtime path.

1.9 Executor PR template (Option B)

Executor inlines the template — task link (auto from executor_runs.task_gid), reviewer = Alex, description auto-generated from analysis + diff. Draft state is the "needs polish" signal. Sections: Task / Root Cause / Fix Summary / Testing (build, unit, UI) / Self-review / Notes. Footer: "Generated by Executor — DRAFT until Alex flips to ready-for-review."

Execution order

Dependency-ordered. Items 19 can run in parallel; item 10 (Executor v2 prompt rewrite) needs #1 (executor_runs), #8 (vault has .mdc + UI skill), #9 (PR template).

The implementing agent does one-time discovery (reads .cursor/*.mdc + GHA workflows + UI testing skill in vault) and hardcodes Xcode scheme + test command + UI runner specifics into config — Hermes does not re-discover every run.

Open questions

All resolved. Repo at ~/DuckDuckGo/apple-browsers/main. Worktrees as siblings. Scheme DuckDuckGo macOS. No CODEOWNERS. Team OK with [executor]-tagged drafts on Alex only.

Postponed: NAS migration (done), personal, Phase 2-family.

"Done" looks like

  1. Friday retrospector says specific things ("deferred 4× for ship-review-crunch", "career <5% three weeks").
  2. Inbox = only new human signal; empty during meetings.
  3. status.md has ## ⚡ Career (empty when nothing).
  4. Pushback → one corrections_log row, no ceremony.
  5. "fix [task]" → thread → analysis → approval → draft PR within 30 min for trivial bugs; CI runs solo.
  6. Vault has UI skill + .mdc + process docs, all searchable via obsidian-mcp.

Key Points

  • Extend existing components; add no new shell scripts, plists, or YAML.
  • Postgres tables (not markdown) for anything Retrospector needs to aggregate.
  • STEP 0 gating lives in the prompt, not a wrapper — agent keeps judgment.
  • Executor v2 has exactly one human gate (Analysis approval); rest is autonomous to draft PR + CI green.
  • Draft PRs > Discord-only handoff — durable surface, no reviewer pings.

personal-os-state-2026-04-27 personal-os-schema wiki-ingest-process