diff --git a/personal/plans/personal-os-operating-plan-2026-10-03.md b/personal/plans/personal-os-operating-plan-2026-10-03.md index 5edb722c..1bf16a62 100755 --- a/personal/plans/personal-os-operating-plan-2026-10-03.md +++ b/personal/plans/personal-os-operating-plan-2026-10-03.md @@ -1,18 +1,23 @@ --- namespace: personal -tags: [personal-os, execution-plan, focus, work-life-balance] -date: 2026-10-03 +tags: + - personal-os + - execution-plan + - focus + - work-life-balance +date: '2026-10-03T00:00:00.000Z' status: approved-for-implementation -approved_on: 2026-10-03 +approved_on: '2026-10-03T00:00:00.000Z' implementation_status: shadow-running -mission: "[[personal/projects/personal-os/personal-os-purpose]]" +mission: '[[personal/projects/personal-os/personal-os-purpose]]' +updated: '2026-10-04' --- # Personal OS — аудит и план запуска вокруг фокуса **Утверждённое решение от 2026-10-03:** сначала запустить контур управления самочувствием, фокусом и посильной нагрузкой Алекса. Его главная проблема сейчас — **рваный фокус**: одновременно идут его задачи и много агентных задач, которые неожиданно возвращаются к нему как ревью/решения. Технические источники дают факты, но само приложение на переднем плане не определяет рабочую тему. Кодинговые агенты — второй контур, ограниченный человеческим временем ревью и токенами. Этот документ заменяет прежнюю версию плана от 2026-10-03, где на первое место ошибочно поставлена техническая надёжность feed. -**Состояние выполнения:** пакеты A–C реализованы до доступных сегодня источников; D работает как локальный shadow-фокус с явными unknown; E запущен как тихий сбор 3 октября. Двухдневная калибровка и пользовательский пилот ещё не завершены. Утверждение охватывает локальный код, read-only интеграции и новый тихий shadow-автозапуск после теста; не охватывает старый Executor, push-уведомления или запись в Asana/GitHub. Миссия: [[personal/projects/personal-os/personal-os-purpose]]. Исходное состояние: [[personal/projects/personal-os/personal-os-status-2026-10]]. +**Состояние выполнения на 2026-10-04:** пакеты A–C реализованы для подтверждённых источников; D работает как локальный shadow-фокус с явными `unknown`; E запущен как тихий сбор 3 октября. `com.personalos.focus-shadow` выполнял полный цикл 3 октября (последний код 0), после этого запускается по будням 08:00–20:00 каждые 15 минут. Корпоративный Mattermost теперь собирается отдельным read-only клиентом каждые 15 минут. Двухдневная калибровка, ручная проверка 20 интервалов и пользовательский пилот ещё не завершены. Старый Executor, push-уведомления и запись в Asana/GitHub не включены. Миссия: [[personal/projects/personal-os/personal-os-purpose]]. Текущее состояние: [[personal/projects/personal-os/personal-os-status-2026-10]]. ## 1. Системная задача и критерий пользы @@ -63,6 +68,8 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]" **Ход 2026-10-03, 22:42 +06.** `com.personalos.focus-shadow` загружен с интервалом 15 минут: 3 октября тихий сбор продолжается до полуночи, затем — рабочие дни 08:00–20:00; два полных read-only прогона сегодня завершились без ошибок. Снимок сохраняется в `~/context/shadow.json`, `focus.json` и `shadow-history/`. GitHub: 27 моих open PR и 5 текущих review requests, оба набора точно совпали с независимым REST API; CI, head SHA, approvals и unresolved threads читаются. ActivityWatch: 254 локальных интервала; текущая тема `unknown`, потому что AFK-данные сейчас stale. DDG URL watcher загружен, но свежего URL ещё нет — не строить привязку по названию окна. Метаданные Codex/Claude и локальные worktrees читаются без текста разговоров; `needs_human` остаётся unknown без подтверждённого события. Календарь и Balda не имеют подтверждённого read-path/контракта в этом срезе. 18 тестов проходят. Два рабочих дня shadow и проверка 20 разнообразных интервалов остаются впереди; доставка карточек, Zoom, iPad и старый Executor не включены. +**Обновление 2026-10-04, 00:41 +06.** Последний полный снимок: Asana/GitHub и AW window/AFK/DDG URL `fresh`; Xcode/VS Code `stale` из-за отсутствия недавних событий. Обнаружены 78 worktrees, 40 с незавершёнными изменениями, 2157 изменённых путей и 64 коммита за 30 дней; учитываются размеры и пути без diff. Из 53 интервалов iTerm 18 привязаны к точному worktree по пути в заголовке. 65 Codex и 24 Claude сессии видны по metadata без бесед. Корпоративный Mattermost авторизован отдельным Chrome-клиентом: первый сбор 21 сообщение из 202 каналов, далее каждые 15 минут; на mm.qentra.top проверен сбор 265 сообщений из 9 каналов без фонового расписания. Outlook виден только как активность окна; чтения писем/встреч нет, доступные коннекторы отключены администратором, для Graph нужен разрешённый app/client ID. Календарь и Balda остаются `unknown`. Последний полный snapshot и 27 тестов прошли. Исторические цифры в абзаце выше относятся к 3 октября и не описывают текущую свежесть источников. + **Режим разработки:** одна активная coding-задача Personal OS за раз, один проверяемый результат на задачу, без unattended respawn; текущие Balda/Broker/Virfield уже занимают часть reviewer capacity. До достоверного учёта токенов не выдавать агенту бесконечный Ralph loop. Лимиты первого среза: одна попытка исправления после неудачной проверки, один пакет на ревью Алексу в день, целевой размер ревью до 20 минут. Фактические токены/стоимость логировать, отсутствие usage обозначать `unmetered`; численные token caps P1 согласуются отдельно. Параллельно coding-задаче можно вести read-only диагностику следующего адаптера без нового запроса к Алексу. @@ -178,7 +185,7 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]" ## 5. Последовательность, зависимости, участие Алекса -1. **Сейчас — миссия и первый срез утверждены, реализация не начата.** Аудит источников записан отдельно; следующая сессия стартует с пакета A выше. До пятидневного пользовательского пилота уточнить границу рабочего дня и канал карточки; добровольная энергия/настроение не обязательны. +1. **Сейчас — тихий сбор запущен, калибровка не завершена.** Сверить 20 интервалов на двух рабочих днях, включая iTerm, DDG URL, личную работу и агентные ожидания; отметить ошибочные привязки. До пятидневного пользовательского пилота уточнить границу рабочего дня и канал карточки. 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 рабочих дней измеряемого пилота с возможностью исправить перегрузку. Только после этого решать о регулярной доставке. diff --git a/personal/plans/personal-os-source-audit-2026-10-03.md b/personal/plans/personal-os-source-audit-2026-10-03.md index 8653c377..be3c8627 100755 --- a/personal/plans/personal-os-source-audit-2026-10-03.md +++ b/personal/plans/personal-os-source-audit-2026-10-03.md @@ -1,15 +1,35 @@ --- namespace: personal -tags: [personal-os, source-audit, focus] -date: 2026-10-03 +tags: + - personal-os + - source-audit + - focus +date: '2026-10-03T00:00:00.000Z' status: read-only-audit -plan: "[[personal/plans/personal-os-operating-plan-2026-10-03]]" +plan: '[[personal/plans/personal-os-operating-plan-2026-10-03]]' +updated: '2026-10-04' --- # Personal OS — аудит источников для P0 **Вывод:** технические факты уже собираются частично, но текущий feed не может надёжно ответить на два вопроса: **чем Алекс занят как рабочей темой** и **какого действия от него действительно ждут**. Это граница P0.1, а не повод включать старые briefs/Executor. Аудит выполнен чтением кода, локальной БД, ActivityWatch и проверкой доступа GitHub 3 октября; полнота каждого рабочего обязательства ещё не проверена по эталонной выборке. +## Обновление 2026-10-04 + +Таблица ниже сохраняет исходные выводы аудита 3 октября. Текущий проверенный статус находится в [[personal/projects/personal-os/personal-os-status-2026-10]]; изменение по источникам: + +| Источник | Что работает сейчас | Оставшаяся граница | +|---|---|---| +| Asana/GitHub | Полный shadow-снимок `fresh`; 27 моих PR, 5 review requests; прямые запросы Asana отделены от FYI. | Семантические привязки ещё ждут проверки 20 интервалов. | +| ActivityWatch/DDG | Window, AFK и DDG URL `fresh`; URL watcher работает. Xcode/VS Code buckets `stale` при отсутствии недавних событий. | Свежесть специализированных bucket проверять при реальной активности приложения. | +| Git worktrees | 78 проверены; 40 с незавершёнными изменениями, 2157 изменённых путей, 64 коммита за 30 дней. Размеры изменений учитываются без diff. | Worktree без PR/Asana связи остаётся `unknown`. | +| Codex/Claude | 65/24 сессии по metadata без текста бесед. | `needs_human` нельзя выводить из mtime/idle. | +| Mattermost | Отдельный авторизованный read-only клиент: корпоративный сервер собирается каждые 15 минут (первый сбор 21 сообщение / 202 канала); Qentra проверена (265 / 9). | Qentra была тестом; корпоративные сообщения пока хранятся отдельным локальным потоком. | +| iTerm | 18 из 53 окон привязаны к worktree по точному пути prompt в заголовке. | Остальные окна не имеют доказанной темы. | +| Outlook | Активность окна классифицируется как mail/calendar browsing. | Письма и события не читаются: доступные коннекторы отключены администратором, нужен разрешённый Graph app с `Mail.Read`/`Calendars.Read`. | +| Календарь/Balda | `unknown`. | Подтверждённого read-only контракта нет. | + + | Источник | Есть сейчас | Пробел, который влияет на P0 | Конкретная следующая правка и проверка | |---|---|---|---| | Asana | [`sync.js`](file:///Users/admin/Developer/personal-os/sync.js) читает мои, отслеживаемые, делегированные и проектные задачи, stories и часть зависимостей. `sync_state` для `my_tasks`, `following`, `delegated` обновлён 3 октября около 19:15 +06. В [`schema.sql`](file:///Users/admin/Developer/personal-os/schema.sql#L15) есть assignee, creator, due date, stories, edges и raw JSON. | [`generate-attention.js`](file:///Users/admin/Developer/personal-os/generate-attention.js#L125) считает любой чужой комментарий без моего ответа кандидатом «ответить»; это может быть FYI. [`asana.js`](file:///Users/admin/Developer/personal-os/asana.js#L57) сохраняет только первую project membership в нормализованных полях; источник обнаружения сводится к одному `source`. Нет структурированного `owner/reviewer/advisor/observer`, прямого запроса, ожидающего человека, последствий ожидания и confidence. | Добавить `work_demand` с `role`, `requested_action`, `requester`, `due_evidence`, `evidence_gid/story_gid`, `confidence`, `observed_at`; классифицировать assignment, mention, вопрос, dependency и FYI отдельно. Проверить 20 разных Asana событий по исходным stories: ложное «ответь» не проходит приёмку. | @@ -19,7 +39,7 @@ plan: "[[personal/plans/personal-os-operating-plan-2026-10-03]]" | Codex/Claude/Balda и окна | Локальные Codex/Claude session JSONL существуют; metadata содержит `cwd/git` или `cwd/gitBranch` (без чтения бесед). Codex desktop даёт список задач со статусами `active/idle/notLoaded`. Старый Executor имеет отдельные run states и PR links. | Список задач не означает `needs_human`; desktop approval/request, завершённый результат и ответ нельзя вывести из mtime или `idle`. В Personal OS нет адаптера окон/сессий и единой review queue. Balda/Broker развивается отдельно, стабильный контракт пока не подтверждён. | `session-observer.js` читает только metadata и времена; `agent-run-adapters.js` принимает подтверждённые события `running/blocked/needs_human/done`, artifact URL, estimate review minutes и usage. Неизвестный approval = `unknown`. На двух одновременно активных агентах проверить отдельный agent time и один ограниченный human review slot. | | Личный контекст | В [`aw-projects.json`](file:///Users/admin/Developer/personal-os/aw-projects.json) есть несколько `namespace: personal` проектов и общий класс Documentation/Research. | Статья может быть рабочим исследованием, отдыхом или незапланированным переключением; приложение/домен не доказывают намерение или самочувствие. | `context_type=work_task|work_research|personal_project|leisure_or_break|unknown`; источник/уверенность отдельно. Попросить уточнение лишь когда оно меняет рекомендацию, не более одного в день в пилоте. | -## Состояние запуска +## Состояние запуска на момент аудита 3 октября, до нового shadow-сбора [`com.personalos.readonly.plist`](file:///Users/admin/Developer/personal-os/com.personalos.readonly.plist) описывает 30-минутный `sync → status → attention`, но 3 октября `launchctl` не нашёл загруженный `com.personalos.readonly`. Следовательно, свежие данные Asana были результатом разового запуска; регулярный refresh сейчас не подтверждён. GitHub и ActivityWatch доступны в read-only проверке, но это не означает, что Personal OS регулярно объединяет их в рабочую тему. @@ -27,4 +47,4 @@ plan: "[[personal/plans/personal-os-operating-plan-2026-10-03]]" **Один реальный рабочий поток:** Asana task с явным запросом к Алексу → связанный browser PR → локальный worktree → Codex/Claude run → итог, ожидающий его ревью. Система показывает текущую тему, источник запроса, свежесть, confidence и отдельно время человека/агента. Вторая ветка: статья или личный проект остаётся `unknown/personal`, пока нет доказательства намерения. Приёмка — 20 вручную проверенных интервалов из двух дней: ни одной ложной high-confidence связи и ни одного выдуманного `needs_human`. -**Следующий шаг:** утверждённый 3 октября первый срез и исполняемые пакеты A–E находятся в [[personal/plans/personal-os-operating-plan-2026-10-03]]. Реализация начинается в следующей сессии с пакета A; этот аудит не изменял код, сервисы и внешние системы. +**Следующий шаг по состоянию на 4 октября:** тихий сбор уже запущен. Проверить 20 интервалов на двух рабочих днях и исправить ложные связи; Outlook ждёт разрешённый Microsoft Graph app. Исполняемые пакеты и условия пилота — [[personal/plans/personal-os-operating-plan-2026-10-03]]. diff --git a/personal/projects/personal-os/personal-os-status-2026-10.md b/personal/projects/personal-os/personal-os-status-2026-10.md index 4c119fc7..e69c6108 100755 --- a/personal/projects/personal-os/personal-os-status-2026-10.md +++ b/personal/projects/personal-os/personal-os-status-2026-10.md @@ -3,39 +3,39 @@ title: Personal OS — статус (октябрь 2026) tags: - personal-os - status -updated: '2026-10-03' +updated: '2026-10-04' confidence: 1 --- -# Personal OS — статус на 2026-10-03 +# Personal OS — статус на 2026-10-04 -> **Главный источник правды о текущем состоянии.** Остальные заметки personal-os -> (architecture, state-2026-04-27, catchup-plan, hermes-cron-jobs, executor-*) — исторические. +> **Главный источник правды о текущем состоянии.** Архитектурные заметки 2026-04 и старый Executor — исторические. -## TL;DR +## Коротко -- **Personal OS (рабочий контур вокруг Asana) — ВЫКЛЮЧЕН.** Остановлен после инцидента с - автономным Executor (апр–май 2026, см. [[personal/projects/personal-os/executor-security-analysis]]). - Новый план утверждён 2026-10-03, реализация ещё не начата — старая архитектура (Hermes/Eagle + cron + executor) не возобновляется как есть. -- **Миссия и приоритет теперь уточнены Алексом:** [[personal/projects/personal-os/personal-os-purpose]] — - самочувствие, фокус, баланс, затем работа и карьера. Текущий главный симптом — «рваный фокус» - из-за параллельной работы и контроля агентов. Первые два блокера: точная временная линия - человеческой/агентной работы с привязкой к теме; затем анализ нужной работы с учётом - энергии, встреч и reviewer load. Утверждённый план с исполняемыми пакетами A–E: - [[personal/plans/personal-os-operating-plan-2026-10-03]]. Аудит источников: - [[personal/plans/personal-os-source-audit-2026-10-03]]. Старт — в следующей сессии с пакета A; код и сервисы пока не запущены. -- Агентная инфраструктура в целом живёт отдельно (Balda / Callee / Prism на Mac) — это - не Personal OS, а общий агентный стек; на нём может быть построена будущая версия. +- **Тихий read-only сбор работает.** `com.personalos.focus-shadow` запущен каждые 15 минут (12 запусков, последний код 0); после ночи расписание ограничено рабочими днями 08:00–20:00. Результаты: `~/context/shadow.json`, `shadow.md`, `focus.json`, `shadow-history/`. Доставки карточек и старого Executor нет. +- **Корпоративный Mattermost подключён отдельно.** Клиент с собственной Chrome-сессией читает сообщения `chat.duckduckgo.com` каждые 15 минут (первый запуск 21 сообщение из 202 каналов, повторный 0 новых; LaunchAgent код 0). Тест на `mm.qentra.top` дал 265 сообщений из 9 каналов; Qentra не добавлена в фоновое расписание. Токены/куки в Personal OS не копируются, файлы снимков имеют режим 0600. +- **iTerm и рабочие ветки учитываются.** Последний снимок: 78 worktrees, 40 с незавершёнными изменениями, 2157 изменённых путей, 64 коммита за 30 дней. Диффы не сохраняются. Из 53 интервалов iTerm 18 привязаны к worktree по пути в заголовке, прочие остаются `unknown`. +- **Outlook подключён только как активность окна.** За последний снимок интервалов Outlook нет; письма и встречи не читаются. Outlook Email/Calendar connectors отключены администратором; для Graph нужен разрешённый client ID/tenant ID с `Mail.Read` и `Calendars.Read`. Календарь остаётся `unknown`. +- **Пилот не завершён.** Двухдневная калибровка, ручная проверка 20 интервалов и пятидневный пользовательский пилот впереди. План: [[personal/plans/personal-os-operating-plan-2026-10-03]]. Аудит: [[personal/plans/personal-os-source-audit-2026-10-03]]. -## Что выключено (факты) +## Проверенные источники (снимок 2026-10-04 00:41 +06) -| Компонент | Состояние | Последний след | -|---|---|---| -| `sync.js` / `generate-status.js` (Asana → Postgres → `status.md`) | ⛔ регулярный cron на паузе; один ручной прогон 2026-10-03 успешен | `~/context/status.md`, 402 строки; `~/context/attention.md`, 28 строк; `com.personalos.readonly` не загружен | -| Брифы (daily / weekly / inbox / EOD / retrospector) | ⛔ cron на паузе | последний daily brief — 2026-06-16 (git `61f0831`) | -| Executor (v1 autonomous, v2 runner/analyzer) | ⛔ на паузе с ~2026-05-01, «waiting for new executor arch» | `executor/logs/` | -| Hermes cron на Eagle | 1 из 22 активен (`sync-vault`) на 2026-06-24 | [[personal/projects/personal-os/hermes-cron-jobs]] | -| ActivityWatch | 🟡 локальный сервер работает; 2026-10-03 window/AFK свежие, Xcode последний раз 2026-10-01, `aw-watcher-vscode` 2026-10-02, DDG URL 2026-06-08 | расширение VS Code установлено, README ошибочно описывает только Cursor; локальный API buckets 2026-10-03 14:13 UTC; `aw-query.js` ещё неверно выбирает `currentFocus` | -| Репо `~/Developer/personal-os` | последний коммит 2026-06-16; много незакоммиченного (брифы мая–июня, `agent/infra/`) | `git status` | +| Источник | Текущее состояние | +|---|---| +| Asana и GitHub | `fresh`; 27 моих открытых PR, 5 текущих запросов на ревью. Прямые запросы Asana отделены от FYI. | +| ActivityWatch | Window/AFK и DDG URL `fresh`; Xcode и VS Code `stale` из-за отсутствия недавних событий, а не доказанной поломки. Текущая тема привязывается только по доказательству. | +| Codex/Claude | Метаданные 65 и 24 сессий; `needs_human` не выводится из mtime или состояния окна. | +| Worktrees | `fresh`; коммиты и незакоммиченные пути учитываются без текста diff. | +| Mattermost | Корпоративный и тестовый снимки `fresh`; фоновый сбор включён только для корпоративного сервера. | +| iTerm | Частичная привязка к worktree по точному пути shell prompt в заголовке окна. | +| Outlook/календарь | Активность приложения — частично; сообщения, события и тема встречи — `unknown`. | +| Balda | Подтверждённого read-only контракта для этого среза нет. | + +## Что остаётся выключенным + +- Старый Executor, Hermes briefs и их push-уведомления остаются на паузе после инцидента 2026-04/05 ([[personal/projects/personal-os/executor-security-analysis]]). +- Старый `com.personalos.readonly` не является контуром нового shadow-сбора. +- Запись в Asana/GitHub, доставка focus-карточек, Zoom-импорт и iPad-клиент не включены. ## Что живо рядом (не Personal OS, но связано) @@ -51,16 +51,12 @@ confidence: 1 - **Virfield** (VM-лизы для UI-тестов): кандидат v2, до production не готов ([[personal/projects/virfield]]). - **Obsidian vault** `~/obsidian/` — жив, синхронизация через git/NAS + Syncthing; MCP — `mcpvault`. -## Что нужно для перезапуска (утверждённый порядок) +## Что осталось до пилота -> 📋 **Актуальный утверждённый план:** [[personal/plans/personal-os-operating-plan-2026-10-03]]. -> Прежний [[personal/plans/personal-os-v2-plan]] — технический черновик до уточнения миссии; -> его порядок (iPad/иконки/порт) не задаёт приоритет для запуска Personal OS. - -1. В следующей сессии начать с пакета A в утверждённом плане: Asana obligations с ролями, явным запросом и evidence. -2. Затем пакеты B–D: GitHub obligations, рабочая тема/агентные ожидания и посильный focus state. -3. Пакет E: тихая проверка на двух днях и 20 интервалах; после согласования границы рабочего дня и канала — пятидневный пилот. -4. Старый Executor остаётся выключенным; его возвращение зависит от контролей в [[personal/projects/personal-os/executor-security-analysis]]. +1. Проверить 20 разнообразных интервалов и два рабочих дня shadow-сбора; исправить ложные уверенные связи и пропуски обязательств. +2. Получить разрешённый Microsoft Graph app (tenant ID, client ID, делегированные `Mail.Read`/`Calendars.Read`) для чтения Outlook; до этого встречи не учитываются как подтверждённая занятость. +3. Перед доставкой карточки согласовать границу рабочего дня и канал; затем провести пятидневный пилот с короткой обратной связью. +4. Старый Executor возвращать только после контролей безопасности и лимитов ревью/токенов из утверждённого плана. ## Связанные