145 lines
6.1 KiB
Markdown
145 lines
6.1 KiB
Markdown
---
|
||
source: raw/personal-os-catchup-plan-2026-04-27.md
|
||
content_hash: 5081ceb719104e1b7c6b5edd642c1daf38b3fd7cf1a96442a00516e7cdb15379
|
||
namespace: work
|
||
last_synced: 2026-05-31
|
||
confidence: 0.9
|
||
tags: [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 1–9 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`.
|
||
|
||
## Related
|
||
[[personal-os-state-2026-04-27]] [[personal-os-schema]] [[wiki-ingest-process]] [[ddg-asana-workflow]]
|