[2026-05-30] taiga sync: .stfolder/syncthing-folder-940f59.txt wiki/personal-os-catchup-plan-2026-04-27.md wiki/personal-os-schema.md wiki/personal-os-state-2026-04-27.md wiki/wiki-ingest-process.md

This commit is contained in:
Тайга
2026-05-30 17:03:50 +00:00
parent 5c9c895d83
commit 652607a3a9
5 changed files with 0 additions and 504 deletions
-141
View File
@@ -1,141 +0,0 @@
---
source: raw/personal-os-catchup-plan-2026-04-27.md
content_hash: 5081ceb719104e1b7c6b5edd642c1daf38b3fd7cf1a96442a00516e7cdb15379
namespace: work
last_synced: 2026-05-30
confidence: 0.9
tags: [personal-os, plan, executor, catchup, 2026-04-27]
---
# Personal OS — Catch-Up Plan (2026-04-27)
Handoff document for the executor agent: what to build next, in what
order, and why. Companion to [[personal-os-state-2026-04-27]] which
tracks live state. By 2026-04-28 every item below shipped except the
partial MS365 MCP wiring (item 1.7).
## Context
Alex is a macOS Browser DRI at DuckDuckGo with an ADHD profile and a
fully-async workflow (Asana + Slack). The Personal OS holds work context
outside Alex's head — preventing lost comments, runaway projects, and
silent collapse of the career quadrant. Original four-agent design from
`personal-os-design-1.md`:
1. **Стратег** — scheduled Claude reads Asana, writes `status.md`.
2. **Тактик** — reactive layer over `status.md` + ActivityWatch +
Calendar; protects focus.
3. **Ретроспектор** — Friday-only, multi-week patterns.
4. **Исполнитель** — on-demand worker that drafts diffs and comments.
Pre-plan status: Стратег ✅, Тактик 🟡 (no focus gating, no Calendar),
Ретроспектор ✅, Исполнитель 🟡 (v1 only, manual STOP gates).
**Architectural principle (re-confirmed):** no new YAML, no new shell
scripts, no new launchd plists. Everything extends what already exists —
Postgres tables, `generate-status.js` queries, prompt files in
`agent/prompts/`, Eagle's SOUL.md rules.
## Deliverables (dependency-ordered)
### 1.1 Schema migration (single SQL file)
Adds `corrections_log` (date, week_number, source, original_plan,
correction, deferred_gids[], reason_tag), `executor_runs` (state machine
for autonomous executor: `analyzing → awaiting_analysis_approval → fixing
→ pr_open → ci_running → ci_failed → awaiting_user → complete`), and a
`quadrant TEXT` column on `activity_daily`
(`project|aor|career|strategy|other`). Tables over markdown because
Retrospector needs aggregates, not narrative. See [[personal-os-schema]].
### 1.2 `generate-status.js` — three new query blocks
Career advisor pipeline (open tasks where notes mention "Project
Advisor: Set the custom field"), visibility gaps (Assessments / O-N /
O-L tasks where Alex hasn't commented in 7+ days), and quadrant
classification at AW write time (project→quadrant map; top-priority
project is dynamic via config). Empty sections are omitted, not labelled
"No opportunities" — noise discipline.
### 1.3 `inbox-triage.md` STEP 0 — focus gating + scope filter
Prompt-level gate (not a wrapper script) so the agent retains override
judgment. Reads latest `activity_daily` focus_score / current_app, plus
MS365 calendar for active meetings. Skips when in a meeting, or when
focus_score > 60 in Xcode/Cursor/VSCode for 20+ minutes (unless
`status.md` has 🔴 sections older than 3h). Scope filter: inbox = NEW
signal only; overdue stays in daily-brief.
### 1.4 `retrospector.md` — three SQL blocks
Correction patterns (`reason_tag` counts over 4 weeks ≥ 3),
quadrant drift (4-week × 4-quadrant pivot; flag career under 5% for 3+
weeks), and visibility-this-week (count of comments in
Assessment/Objective tasks vs prior 4 weeks).
### 1.5 Eagle SOUL.md — `corrections_log` writeback
On any pushback in any channel: Eagle identifies pushback type and a
hyphen-tagged `reason_tag`, then silently `INSERT`s into
`corrections_log` before responding. Capture happens at the moment of
correction; no separate hook needed.
### 1.6 Executor v2 — draft-PR autonomous flow
Replaces v1 (STOP gates everywhere) with a **single** STOP gate after
the Analysis phase, then autonomous through build → test → branch →
push → `gh pr create --draft --assignee @me` (no reviewers) →
self-review → CI loop. Hard prohibitions: never push to
main/develop/release/*, never open a non-draft PR, never `--reviewer`,
never `gh pr merge`, never touch `.github/` or CI configs without
explicit thread confirmation. CI loop polls every 10 min; max 3 fix
attempts before state→`awaiting_user`.
### 1.7 MS365 MCP in Hermes
Wire `outlook_calendar_search` into Hermes for `inbox-triage`,
`weekly-plan`, and `daily-brief`. STEP 0 query: events with start ≤ now ≤
end + 1h. By 04-28 this was still 🟡 — cloud connector works in Claude
Code, no local npm package yet.
### 1.8 Vault consolidation
Process docs + UI testing skill + `apple-browsers/.cursor/*.mdc` files
all moved into `~/obsidian/work/wiki/`. Rule of thumb: process docs →
vault, runtime configs → original location. `.mdc` files are **copied**
(not moved) so Cursor IDE still finds them at the expected path. Each
moved file is verified by re-running the agent prompt or skill that
references it.
### 1.9 Executor-specific PR template (Option B inline)
Team's `.cursor/*.mdc` template requires manual confirmation of task /
reviewer / description — all known by definition in the autonomous flow.
Executor generates the PR body inline: Task (Asana link from
`executor_runs.task_gid`), Root Cause (from analysis), Fix Summary,
Testing block (build + unit + UI), Self-review checklist, Notes for
review. Draft state IS the "needs polish" signal.
## Order of execution
1, 2 → 3 → 4, 5 → 6, 7 → 8 → 9 → 10. Items 1-9 are independent in
practice; 10 (Executor v2 prompt) needs the schema (1), vault
consolidation (8), and PR template (9). **No new Discord channels
required** — existing seven channels cover every surface.
## Why these choices
- **Postgres over markdown / YAML / shell**: extends existing components,
aggregable, recoverable after crashes.
- **STEP 0 in the prompt, not a wrapper**: ADHD-aware override at the
edge cases ("focus is high but Dominik is tagging you directly").
- **Career as a forcing function**: when not surfaced every week, the
career quadrant predictably collapses to 0%.
- **Draft PR > Discord thread**: durable surface that doesn't scroll away.
- **Single STOP gate**: root-cause identification is the consequential
decision; mechanical CI re-pushes don't need human approval.
- **`executor_runs` table**: enables crash recovery, brief surfacing,
and Retrospector throughput counts.
## Definition of done
Six observable signals: targeted Retrospector callouts, signal-dense
inbox channel, populated Career section in `status.md`, single-row
`corrections_log` writes on pushback, autonomous draft PRs from
`#executor` within 30 min, and vault-resident process docs reachable
via obsidian-mcp.
## Related
[[personal-os-state-2026-04-27]] [[personal-os-schema]]
[[wiki-ingest-process]] [[ddg-asana-workflow]]