[2026-10-03] eagle: personal/plans/personal-os-operating-plan-2026-10-03.md personal/projects/personal-os/personal-os-purpose.md
This commit is contained in:
1 parent
e150ff5039
commit
2c40fdd789
2 files changed
+26
-4
No files matched your search
Executable → Regular
+25
-4
@@ -34,6 +34,27 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]"
|
||||
|
||||
Короткая доставка и обратная связь — следующий этап, который проверяет, что оба блокера действительно решены. Ровный сбор ActivityWatch без семантики рабочей темы не закрывает блокер 1; точная временная линия без выбора посильной работы не закрывает блокер 2.
|
||||
|
||||
### Что проверяем после сбора данных
|
||||
|
||||
Сбор событий — вход в цикл проверки, а не самостоятельная цель. **Первая проверка: можно ли восстановить человеческую рабочую тему и очередь его решений. Вторая: помогает ли предложенный выбор сохранить самочувствие и фокус, не теряя обязательств.** Ниже — гипотезы пилота; пороги уточняются по исходному замеру, а не выдаются за уже доказанный эффект.
|
||||
|
||||
| Гипотеза | Наблюдение и опровержение | Что меняем при ошибке |
|
||||
|---|---|---|
|
||||
| H1. ID/URL Asana и PR, worktree/ветка и явное состояние agent run позволяют связать большую часть важных интервалов и ожиданий без угадывания по приложению. | На 20 интервалах из разных типов работы вручную по исходным ссылкам проверяем `work_thread_id`, `actor`, `activity`, `needs_human` и свежесть; считаем долю верных `high-confidence`, долю `unknown`, ложные связи и пропущенные обязательства. Любая уверенная привязка, противоречащая источнику, опровергает правило, давшее её. | Исправить конкретный adapter/binding; снизить confidence; оставить `unknown`. Не повышать confidence только ради покрытия. |
|
||||
| H2. «Рваный фокус» лучше объясняют переходы **между рабочими темами** и неожиданные agent review/approval, чем число смен приложений. | За два дня сопоставить реальные переходы, время возврата к теме и неплановые запросы с короткой добровольной оценкой «насколько рваным был день» 1–5. Если смены приложений без смены темы считаются прерываниями или оценка не согласуется с наблюдаемыми событиями, модель фрагментации неверна. | Пересмотреть правила границ темы и события прерывания; не оптимизировать счётчик окон. Субъективная оценка не заменяется ActivityWatch. |
|
||||
| H3. Роли, зависимости, последствия ожидания и доступная ёмкость дают полезнее выбор «сейчас/позже», чем overdue/easiest-first. | На обычном и перегруженном дне в shadow-режиме сравнить предложение с проверенными Asana/PR/meeting обязательствами, свободным временем, перерывами и границей работы. Проверять: нет пропущенного важного действия, нет работы сверх ёмкости, есть причина переноса. Одного неверно названного срочным FYI достаточно для исправления роли. | Исправить извлечение `work_demand` или правило приоритета; явно показать неопределённость. Не повышать срочность из-за одного комментария, красного CI или даты без последствий. |
|
||||
| H4. Пакетное ревью готовых agent results уменьшает неплановые обращения без накопления действительно срочных решений. | В пятидневном пилоте сравнить число обращений, минуты ревью, возраст очереди и пропущенные сроки с исходным замером. Если обращений меньше, но обязательства теряются или вечер занят ревью, гипотеза не подтверждена. | Изменить reviewer slot, WIP и правило критического исключения; не увеличивать параллельность агентов ради throughput. |
|
||||
| H5. Добровольная отметка энергии/настроения улучшает посильность плана без дополнительной нагрузки. | Сравнить корректировки в дни с отметкой и `unknown`, частоту «слишком много», самочувствие и время на ввод. Если отметка не даёт пользы или раздражает, убрать запрос и оставить консервативный `unknown`. | Изменить `capacity-model.js`/момент запроса, а не выводить настроение из окна или активности. |
|
||||
|
||||
### Калибровка и исправление правил
|
||||
|
||||
1. **Тихий baseline, два рабочих дня.** Проверить свежесть каждого источника и восстановить события без уведомлений. Для Asana отдельно различать `assigned`, `mentioned`, `commented`, `blocked_by`, `requested_review`, `FYI`; для GitHub — мой PR, CI, approvals/changes requested и PR, где ожидается именно моё ревью. Отсутствующий канал обозначать `unknown`, не «нет обязательств».
|
||||
2. **Выборка и эталон.** Взять 20 интервалов поперёк Asana, браузера/PR, VS Code/worktrees, agent sessions, встреч и личного контекста. Для каждого сохранить исходный ID/URL, тип источника, время наблюдения, автоматическую метку, confidence и проверенную метку. Личные проекты и статьи различать как `personal_project`, `work_research`, `leisure_or_break` или `unknown` по контексту и намерению; домен сайта сам по себе не доказывает «отвлечение». Без подтверждения Алекса не приписывать намерение или самочувствие.
|
||||
3. **Разбор расхождений.** Сначала исправлять неверный/устаревший источник, затем связь объектов, затем роль и приоритет, затем момент/формат обращения. Менять одно правило за раз; сохранить в `calibration_cases` и `calibration_changes` исходный пример, исправление и результат повторного прогона. Уточнение у Алекса только на естественном переходе и лишь когда неоднозначность меняет его план; в пилоте максимум один такой вопрос в день.
|
||||
4. **Shadow-план и пятидневный пилот.** На двух днях воспроизвести решения без доставки и проверить H3; после согласованного включения короткой карточки проверить H2/H4/H5 на пяти рабочих днях. Ежедневно смотреть только критические ложные срочности и пропущенные обязательства; по завершении сравнить субъективный фокус/самочувствие, неплановые обращения, review minutes, границу дня и расход токенов. Если карточки не читаются или вредят фокусу, остановить доставку и исправить правило. Отсутствие обратной связи не считать согласием.
|
||||
|
||||
**Непосредственный следующий артефакт:** read-only аудит источников/адаптеров в отдельной параллельной задаче: `есть / нет / свежесть / достоверность / что требуется от Алекса / точная правка / проверка` для Asana, GitHub, браузера, worktrees и Codex/Claude/Balda. Его выводы уточняют P0.1, пока готовится baseline; аудит не включает автозапуск сборщиков.
|
||||
|
||||
## 2. Что действительно есть 2026-10-03
|
||||
|
||||
| Слой | Проверенный факт | Граница факта |
|
||||
@@ -64,11 +85,11 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]"
|
||||
|
||||
**Было:** [`aw-query.js`](file:///Users/admin/Developer/personal-os/aw-query.js#L305) считает время приложений/проектов и может назвать старое Xcode/Cursor/DDG событие или `loginwindow` «текущим фокусом». Asana, браузерные PR, VS Code, Codex/Claude, worktrees, встречи и очередь агентных ревью не соединены. Название приложения не говорит, планирует ли Алекс работу, ревьюит TD, контролирует агента или пишет код.
|
||||
|
||||
**Станет:** локальная `work_timeline` из интервалов `start/end`, `actor=human|agent`, `work_thread_id`, `activity=planning|asana|pr_review|td_review|ship_review|team_growth|coding|agent_supervision|meeting|break|unknown`, `source`, `evidence_url/id`, `confidence` и `state` агентной задачи (`running|blocked|waiting_review|done`). Несколько приложений могут соответствовать одной рабочей теме; две параллельные агентные задачи — двум отдельным потокам. Переход между темами и входящий агентный запрос на ревью отмечаются отдельно; именно их частота и время возврата характеризуют «рваный фокус». Никакой интервал с низкой уверенностью не становится основанием для срочного прерывания.
|
||||
**Станет:** локальная `work_timeline` из интервалов `start/end`, `actor=human|agent`, `work_thread_id`, `activity=planning|asana|pr_review|td_review|ship_review|team_growth|coding|agent_supervision|meeting|break|unknown`, `context_type=work_task|work_research|personal_project|leisure_or_break|unknown`, `source`, `evidence_url/id`, `confidence` и `state` агентной задачи (`running|blocked|waiting_review|done`). Несколько приложений могут соответствовать одной рабочей теме; две параллельные агентные задачи — двум отдельным потокам. Статья и личный проект не получают автоматически ярлык «отвлечение»: возможны работа, осознанный перерыв и неизвестный контекст. Переход между темами и входящий агентный запрос на ревью отмечаются отдельно; именно их частота и время возврата характеризуют «рваный фокус». Никакой интервал с низкой уверенностью не становится основанием для срочного прерывания.
|
||||
|
||||
**Как привязывать:** (1) точные ID/URL Asana task и GitHub PR; (2) git branch/worktree и явная связь с PR/Asana; (3) Codex/Claude session metadata `cwd/git/branch/time`, без текста разговоров; (4) календарь/Zoom для встречи; (5) классификация агентом только оставшихся неоднозначных интервалов, со ссылкой на улики и `unknown`, когда доказательств мало. Агент не задаёт вопрос по каждому `unknown`: уточнение допускается на естественном переходе, только если ответ изменит план, в пилоте — не более одного в день. Статус `waiting_review/needs_human` берётся из явного состояния задачи/запроса на approval, **не** из mtime файла или непрочитанного чата. В текущем Codex desktop read-only список задач показывает `active/idle/notLoaded`, но это ещё не полная семантика «ждёт Алекса»; доступ к pending approvals/ответам должен быть проверен отдельным адаптером. Для Claude и Balda/Broker аналогично использовать подтверждённые состояния или `unknown`. ActivityWatch определяет *когда* человек активен/AFK и какое окно впереди, не подменяет смысл работы. Учёт токенов и человеко-минут ревью привязан к отдельным agent runs.
|
||||
|
||||
**Правки:** [`aw-query.js`](file:///Users/admin/Developer/personal-os/aw-query.js) — frontmost window + AFK как основа, свежесть, интервалы, исключить lock и старые bucket из `Now`; проверить установленное VS Code расширение, обновить [`README.md`](file:///Users/admin/Developer/personal-os/README.md#L106), диагностировать старый DDG URL watcher в [`DDGWatcher.swift`](file:///Users/admin/Developer/aw-watcher-ddg/Sources/AWWatcherDDG/DDGWatcher.swift) и Xcode watcher только если их данные нужны для связки. [`aw-projects.json`](file:///Users/admin/Developer/personal-os/aw-projects.json) — обновить правила рабочих тем. Новые `session-observer.js` (метаданные Codex/Claude), `agent-run-adapters.js` (явные состояния и запросы на human action из доступных Codex/Claude/Balda источников), `context-links.js` (worktree→branch→PR→Asana), `work-timeline.js` (нормализованный timeline и confidence), миграция `migrations/003_focus_core.sql` (`work_threads`, `work_intervals`, `agent_obligations`, `activity_bindings`). [`gh-snapshot.js`](file:///Users/admin/Developer/personal-os/gh-snapshot.js) — текущие PR/review assignments, [`sync.js`](file:///Users/admin/Developer/personal-os/sync.js) — Asana ownership; у каждого источника `observed_at/ok/stale/failed`. Старый `generate-status.js` перестать использовать как единственный источник «Now».
|
||||
**Правки:** [`aw-query.js`](file:///Users/admin/Developer/personal-os/aw-query.js) — frontmost window + AFK как основа, свежесть, интервалы, исключить lock и старые bucket из `Now`; проверить установленное VS Code расширение, обновить [`README.md`](file:///Users/admin/Developer/personal-os/README.md#L106), диагностировать старый DDG URL watcher в [`DDGWatcher.swift`](file:///Users/admin/Developer/aw-watcher-ddg/Sources/AWWatcherDDG/DDGWatcher.swift) и Xcode watcher только если их данные нужны для связки. [`aw-projects.json`](file:///Users/admin/Developer/personal-os/aw-projects.json) — обновить правила рабочих тем и личного контекста. Новые `session-observer.js` (метаданные Codex/Claude), `agent-run-adapters.js` (явные состояния и запросы на human action из доступных Codex/Claude/Balda источников), `context-links.js` (worktree→branch→PR→Asana), `work-timeline.js` (нормализованный timeline и confidence), миграция `migrations/003_focus_core.sql` (`work_threads`, `work_intervals`, `agent_obligations`, `activity_bindings`, `calibration_cases`, `calibration_changes`). [`gh-snapshot.js`](file:///Users/admin/Developer/personal-os/gh-snapshot.js) — регулярный refresh моих PR, CI failures, approvals/changes requested, review comments и полного списка PR на моё ревью, не только unread notifications; [`sync.js`](file:///Users/admin/Developer/personal-os/sync.js) — Asana ownership, роли и явные requests к Алексу; у каждого источника `observed_at/ok/stale/failed`. Точные интервалы обновления определить после аудита источников и измерения задержек; старый `generate-status.js` перестать использовать как единственный источник «Now».
|
||||
|
||||
**Приёмка:** два рабочих дня тихого shadow-сбора, без новых сообщений Алексу. На 20 проверенных интервалах ни одна `high-confidence` привязка не противоречит исходной Asana/PR/session ссылке; неоднозначные остаются `unknown`. Fixture `Asana task → browser PR → Claude по той же задаче` показывает одну рабочую тему и отдельную работу агента; fixture с двумя агентами показывает два `waiting_review` без удвоения человеческих часов. Xcode→browser, VS Code→Asana, lock/AFK и устаревший watcher дают корректное состояние, а не ложное «сейчас кодит».
|
||||
|
||||
@@ -125,8 +146,8 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]"
|
||||
|
||||
## 5. Последовательность, зависимости, участие Алекса
|
||||
|
||||
1. **Сейчас — утверждена миссия, план предложен.** Уточнить только границы: желаемое окончание рабочего дня, начальные лимиты reviewer/tokens, допустимый канал короткой карточки. Предлагаемые настройки в P1 позволяют принять их одним решением; добровольная энергия/настроение не обязательны.
|
||||
2. **P0.1 — сначала блокер фактов:** собрать тихую временную линию человека/агентов/рабочих тем, проверить привязки к Asana/PR/meeting/worktree и честно показать неизвестные интервалы. Проверить 20 интервалов и два дня без новых сообщений Алексу.
|
||||
1. **Сейчас — утверждена миссия, план предложен.** Отдельная read-only задача аудирует, какие источники реально доступны и чего не хватает Asana/GitHub/browser/worktree/agent adapters. По её результату уточнить конкретные правки P0.1 и показать Алексу изменения до включения сборщиков. Границы рабочего дня, начальные лимиты reviewer/tokens и канал карточки согласовать перед пилотом; добровольная энергия/настроение не обязательны.
|
||||
2. **P0.1 — блокер фактов:** после аудита собрать тихую временную линию человека/агентов/рабочих тем, проверить привязки к Asana/PR/meeting/worktree и честно показать неизвестные интервалы. Проверить 20 интервалов и два дня без новых сообщений Алексу.
|
||||
3. **P0.2 — затем блокер решений:** выбрать посильную работу из Asana, PR, TD, Ship Review, встреч, team growth и агентных ревью по роли, пользе, сроку, энергии и доступному времени; испытать перегруженный день до включения schedule.
|
||||
4. **P0.3 → P0.4:** показать один короткий живой focus state, провести 5 рабочих дней измеряемого пилота с возможностью исправить перегрузку. Только после этого решать о регулярной доставке.
|
||||
5. **P1 и параллельные ветки:** включить ограниченный coding loop с учётом review/tokens; импортировать Zoom; отдать тот же focus state на iPad. Balda/Broker/Virfield не дублировать.
|
||||
|
||||
Executable → Regular
+1
@@ -29,6 +29,7 @@ status: current-mission
|
||||
|
||||
- **Рабочие обязательства:** Asana — основной источник задач, назначений, комментариев, сроков, Tech Designs и Ship Reviews; GitHub — PR, CI, review requests и ожидание ответов; встречи и team growth — часть рабочего и карьерного контекста. Ни просрочка, ни комментарий сами по себе не доказывают срочность.
|
||||
- **Фактическая работа и контекст:** ActivityWatch показывает переднее приложение, AFK, окна работы, перерывы и переключения. Работа может происходить в VS Code, Codex, Claude, Asana, браузере на PR/документах или во встрече; приложение **не равно рабочей задаче**. Git worktrees, ветки, PR, Asana task и сессии агентов помогают восстановить конкретную рабочую тему. Время агента и время Алекса учитываются раздельно. Старый Cursor больше не является актуальным рабочим инструментом.
|
||||
- **Личный контекст:** личный проект, чтение статьи или открытый сайт могут быть исследованием для работы, сознательным отдыхом или уходом от текущей темы. Система отмечает наблюдаемый контекст и неопределённость, но не называет это «плохим отвлечением» по домену или приложению; намерение и самочувствие подтверждает только Алекс.
|
||||
- **Ритм дня:** подтверждённые встречи, Zoom-записи/транскрипты, окна между встречами, время на переходы и восстановление контекста. Существование записи не означает, что она уже импортирована.
|
||||
- **Человеческая сторона:** настроение и энергия по желанию Алекса, заданный им фокус, доступное время и граница рабочего дня. Отсутствие самоотчёта — «неизвестно», а не «энергии достаточно».
|
||||
- **Нагрузка от агентов:** какие Codex/Claude/Balda задачи идут параллельно, какие застряли, какие готовы и сколько времени ревью/решений потребуют от Алекса; стоимость, токены, длительность и повторы. Агентный результат — новый входящий запрос к ограниченному человеческому ресурсу.
|
||||
|
||||
Reference in new issue
Block a user