126 lines
5.6 KiB
Markdown
126 lines
5.6 KiB
Markdown
---
|
||
source: raw/personal-os-catchup-plan-2026-04-27.md
|
||
content_hash: 5081ceb719104e1b7c6b5edd642c1daf38b3fd7cf1a96442a00516e7cdb15379
|
||
namespace: work
|
||
last_synced: 2026-06-01
|
||
confidence: 0.8
|
||
tags: [personal-os, planning, executor, catchup]
|
||
---
|
||
|
||
# Personal OS — Catch-Up Plan (2026-04-27)
|
||
|
||
Handoff doc for the executor agent: what to build next and why. Companion
|
||
to [[personal-os-state-2026-04-27]] (state snapshot). All open questions
|
||
resolved at write time; postponed: NAS migration, personal, Phase 2-family.
|
||
|
||
## Architectural Principle
|
||
|
||
**No new YAML files, no new shell scripts, no new launchd plists.**
|
||
Everything extends existing components: postgres tables,
|
||
`generate-status.js` queries, prompt files in `agent/prompts/`, Eagle's
|
||
SOUL.md rules. The system has enough moving parts.
|
||
|
||
## Nine Deliverables (Dependency Order)
|
||
|
||
### 1. Schema migration
|
||
Three additions to [[personal-os-schema]]:
|
||
- `corrections_log` — Tactic records pushback by `reason_tag`,
|
||
Retrospector aggregates patterns. Table beats markdown because
|
||
Retrospector needs `GROUP BY`.
|
||
- `executor_runs` — state machine for autonomous executor work
|
||
(`analyzing → awaiting_analysis_approval → fixing → pr_open →
|
||
ci_running → ci_failed → awaiting_user → complete`). Survives
|
||
worker crashes mid-run.
|
||
- `activity_daily.quadrant` column — `project | aor | career |
|
||
strategy | other` for Retrospector drift detection.
|
||
|
||
### 2. `generate-status.js` — three new query blocks
|
||
- **Advisor pipeline**: last 14d advisor-tagged tasks → new `## ⚡ Career`
|
||
section. Empty result → omit (no noise).
|
||
- **Visibility gaps**: open Assessment / O-N / O-L tasks where Alex
|
||
hasn't commented in 7+ days → `## 📊 Visibility` section.
|
||
- **Quadrant classification at AW write time**: map project → quadrant
|
||
using a static map plus a *dynamic* "current top priority" slot read
|
||
from config so it shifts as focus shifts.
|
||
|
||
### 3. `inbox-triage.md` STEP 0
|
||
Gating + scope filter at prompt level (not wrapper) so the agent can
|
||
override on edge cases:
|
||
- Active calendar meeting → silent exit.
|
||
- `focus_score > 60` + Xcode/Cursor + 20+ min uninterrupted → silent
|
||
unless 🔴 section is 3h+ stale.
|
||
- Scope: only **new** signal (new human comments, new assignments,
|
||
Ship/TD status changes, new mentions). **Never** overdue tasks
|
||
(those belong in `daily-brief`, not `#inbox`).
|
||
|
||
### 4. `retrospector.md` — SQL-based blocks
|
||
- Correction patterns: `reason_tag` count ≥ 3 in last 4 weeks.
|
||
- Quadrant drift: pivot weeks × quadrants; flag any quadrant < 5% for
|
||
3+ weeks. Career quadrant gets strongest flag — it's first to collapse.
|
||
- Visibility: weekly count of strategic comments — measurable proxy
|
||
for the "thin Strategic Leadership" EP3 gap.
|
||
|
||
### 5. Eagle SOUL.md — corrections_log writeback
|
||
On any user pushback, classify `reason_tag` and `INSERT INTO
|
||
corrections_log` *before* responding. Eagle writes, no separate hook —
|
||
the natural moment to capture a correction is during the conversation.
|
||
|
||
### 6. Executor v2 — draft-PR flow
|
||
**Single human gate**: Analysis approval. Then autonomous:
|
||
worktree → build → test → branch → push → `gh pr create --draft
|
||
--assignee @me` (no `--reviewer`) → self-review comment → CI loop
|
||
(poll every 10 min, auto-fix up to 3 attempts, escalate on exhaustion).
|
||
|
||
Hard prohibitions baked into the prompt: never push to `main` /
|
||
`develop` / `release/*`, never non-draft PR, never `--reviewer`, never
|
||
`gh pr merge`, never modify `.github/` or CI configs without explicit
|
||
thread confirmation.
|
||
|
||
Draft + `assignee=@me` + no reviewers = durable surface visible in
|
||
"assigned to me" without dragging the team into WIP work.
|
||
|
||
### 7. Microsoft 365 MCP into Hermes
|
||
Wire `outlook_calendar_search` into the Hermes MCP config so
|
||
`inbox-triage`, `weekly-plan`, and `daily-brief` can all check for
|
||
active meetings. STEP 0 gating depends on this. Wire once at the
|
||
config layer, not per prompt.
|
||
|
||
### 8. Vault consolidation
|
||
Move process docs from `~/Developer/personal-os/` into
|
||
`~/obsidian/work/wiki/`. Runtime files (`system-prompt.md`,
|
||
`agent/prompts/*.md`, SOUL/IDENTITY) **stay in place**.
|
||
**Decision rule**: process/convention → vault; runtime config →
|
||
original location. **Copy** (don't move) `apple-browsers/.cursor/*.mdc`
|
||
files because Cursor IDE still reads them in-tree. Verification step
|
||
is non-negotiable — run each prompt/skill end-to-end after the move.
|
||
|
||
### 9. Executor PR template (Option B — inline)
|
||
Team PR template requires manual confirmation of task / reviewer /
|
||
description. For the autonomous flow all three are deterministic.
|
||
Inline a variant in the executor prompt that auto-generates the body
|
||
(task link, root cause, fix summary, build/test status, self-review
|
||
checklist, notes for reviewer). Draft state is the safety net.
|
||
|
||
## Execution Order
|
||
|
||
Items 1–9 are largely independent; only Executor v2 (item 6 prompt
|
||
rewrite) requires schema (1), vault consolidation (8), and PR template
|
||
(9) first. Each step ends with a concrete test (insert a row, run a
|
||
query, post to thread, etc.).
|
||
|
||
## "Done" Looks Like
|
||
|
||
1. Retrospector says specific things ("deferred 4×", "Career <5% for 3
|
||
weeks", "3 strategic comments vs 0").
|
||
2. `#inbox` stays signal-dense — empty or 1–2 entries most days, no
|
||
pings during meetings.
|
||
3. `status.md` has a `## ⚡ Career` section.
|
||
4. Pushback in any channel → one DB row, no ceremony.
|
||
5. "fix [task]" in `#executor` → analysis → approval → draft PR within
|
||
30 min for trivial bugs, CI runs autonomously.
|
||
6. Vault is the one searchable surface for `.mdc`, UI testing skill,
|
||
and process docs via [[obsidian-mcp]].
|
||
|
||
## Related
|
||
[[personal-os-state-2026-04-27]] [[personal-os-schema]] [[wiki-ingest-process]] [[ddg-asana-workflow]]
|