[2026-10-04] eagle: personal/projects/personal-os/personal-os-status-2026-10.md personal/projects/personal-os/project-truth-analyzer.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-04 13:46:56 +06:00
1 parent 7cd298592d
commit abc34531f0
2 files changed
+8 -8

No files matched your search

@@ -17,7 +17,7 @@ confidence: 1
- **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`.
- **Zoom My Notes настроен на ночной импорт.** `com.personalos.zoom-browser` запускает отдельный headless Chrome в 02:15. Два transcript от 29 сентября сохранены в Obsidian как Markdown/JSON с дедупликацией по `note_id`; два ручных запуска LaunchAgent завершились с кодом 0, но нашли 0 новых заметок. Первый запуск по расписанию ожидается 5 октября; импорт новой заметки этим расписанием ещё не проверен. Детали: [[personal/projects/personal-os/zoom-ai-transcript-export]].
- **Первый срез проектной правды подключён к shadow.** Подготовка к career advisor ошибочно приняла обсуждённые code-initialized Core Data models за актуальное направление: 30 сентября конверсию отменили после проверки Xcode 27, существующие модели оставили. Новый read-only analyzer для VSCode/SPM сводит датированные Asana/GitHub/Zoom/проектные события и пишет `~/context/projects.json`; claim-gate блокирует неподтверждённое внедрение. Код и тест готовы; живой прогон 4 октября дал полный свежий статус через прямое read-only чтение недостающего Asana-комментария. `~/context/projects.json` создан с режимом 0600, проверка внедрения отклонена. Полный shadow-прогон во временной папке прошёл; повторный shadow-прогон прошёл в режиме `json_only`, без DB-миграции. Для следующих advisor briefs добавлен playbook, который обновляет и читает project state; вторничная автоматизация `career-advisor-call-weekly-preparation` включена на 09:00; первый запуск ещё не проверен. Контракт и первая приёмка: [[personal/projects/personal-os/project-truth-analyzer]].
- **Первый срез проектной правды подключён к shadow.** Подготовка к career advisor ошибочно приняла обсуждённые code-initialized Core Data models за актуальное направление: 30 сентября конверсию отменили после проверки Xcode 27, существующие модели оставили. Новый read-only analyzer для VSCode/SPM сводит датированные Asana/GitHub/Zoom/проектные события, а для CPM — текущие Asana parent + 19 прямых подзадач и выбранные PR; он пишет `~/context/projects.json` с явным `coverage_scope`; claim-gate блокирует неподтверждённое внедрение. Код и тест готовы; живой прогон 4 октября дал полный свежий статус через прямое read-only чтение недостающего Asana-комментария. `~/context/projects.json` создан с режимом 0600, проверка внедрения отклонена. Полный shadow-прогон во временной папке прошёл; повторный shadow-прогон прошёл в режиме `json_only`, без DB-миграции. Для следующих advisor briefs добавлен playbook, который обновляет и читает project state; вторничная автоматизация `career-advisor-call-weekly-preparation` включена на 09:00; первый запуск ещё не проверен. Контракт и первая приёмка: [[personal/projects/personal-os/project-truth-analyzer]].
- **Пилот не завершён.** Двухдневная калибровка, ручная проверка 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; Zoom проверен 10:16 +06)
@@ -57,7 +57,7 @@ confidence: 1
## Что осталось до пилота
1. Расширить реестр после проверенного VSCode/SPM среза на следующие активные проекты; для каждого проверить Asana-подзадачи, Zoom-решения и текущий GitHub PR. Первый live-прогон уже подтвердил `projects.json`: Core Data code-init cancelled, cleanup open, PR #7080 Draft.
1. Расширить реестр за пределы двух проверенных проектов. Для CPM связать подтверждённые Zoom-решения и актуальные проектные проверки; текущий снимок покрывает Asana и выбранные PR, но не продуктовый эффект. Для новых проектов проверять Asana-подзадачи, решения и PR. `projects.json` уже подтверждает Core Data code-init cancelled, cleanup open, PR #7080 Draft.
2. Проверить 20 разнообразных интервалов и два рабочих дня shadow-сбора; исправить ложные уверенные связи и пропуски обязательств.
3. Настроить локальный импорт выгруженных транскриптов других агентов и извлечение сигнала раздражения из сообщений Алекса; проверить ложные срабатывания, не создавая диалог с Personal OS.
4. Получить разрешённый Microsoft Graph app (tenant ID, client ID, делегированные `Mail.Read`/`Calendars.Read`) для чтения Outlook; до этого встречи не учитываются как подтверждённая занятость.
@@ -26,10 +26,10 @@ Focus, дневной план, подготовка к career advisor call и
VSCode/SPM имеет `coverage_scope=correlated_decision_task_pr`; CPM — `coverage_scope=current_asana_tasks_and_selected_prs`. Статус `fresh` означает свежесть настроенных источников, а не полноту сведений обо всех решениях проекта. Следующий кодовый шаг — пополнить реестр другими активными проектами и связывать Zoom/проектные заметки только с подтверждёнными ID и решениями. Первый запуск вторничной автоматизации — 2026-10-06; его результат ещё не проверен.
## Порядок реализации
## Реализация и приёмка
1. **Реестр и схема.** Добавить `migrations/004_project_truth.sql` с `project_events`, `project_states` и свежестью источников; завести явную карту VSCode/SPM → Asana parent/subtasks, GitHub repo/PR, Zoom note ID, Obsidian project note. Событие хранит отдельные поля для состояния задачи и состояния технического решения.
2. **Read-only сбор.** В `project-evidence.js` читать Asana tasks/stories из локального mirror, текущий статус связанных PR из GitHub, сохранённые Zoom JSON и проектную заметку. Писать датированные события с точными ссылками и `observed_at`; дубли убирать по source ID. Недоступный источник помечать stale/failed, не считать его пустым.
3. **Сверка.** В `project-truth.js` строить `project_state` по последовательности proposal → later decision/cancellation → actual code/PR → verification. Явная отмена перекрывает предложение; Asana completed не означает implemented; GitHub close → reopen даёт текущий Draft. Неразрешённое противоречие — `conflict` со ссылками.
4. **Подключение потребителей.** Включить `project_state` в `source-snapshot.js` и локальный `~/context/projects.json` (0600). `day-coordinator.js` и advisor/career prompts читают эту проекцию; утверждения «внедрено/выпущено» без evidence и свежего статуса блокируются. Интеграция остаётся без записи в Asana/GitHub и без уведомлений.
5. **Приёмка.** `node --test test/project-truth.test.js`: Zoom proposal 29 сентября → отмена 30 сентября/1 октября → существующие `.xcdatamodeld` в SPM → PR #7080 close/reopen/Draft → cleanup open. Дополнительно проверить stale source и конфликт; выполнить один тихий shadow-прогон. Только после этого расширять карту на другие проекты. Shadow-калибровка и Zoom/iPad идут параллельно.
1. **Реестр — работает.** `project-truth-projects.json` связывает VSCode/SPM с Asana, Zoom, заметкой и PR; CPM — с Asana parent, автоматически читаемыми прямыми подзадачами и выбранными PR. `migrations/004_project_truth.sql` подготовлена, но не применена; JSON-путь не зависит от неё.
2. **Сбор и сверка — работают.** `project-evidence.js` читает настроенные источники без записи в них. `project-truth.js` разделяет решение, задачу, PR и проверку, учитывает время событий и помечает конфликт или неполный источник.
3. **Потребители — подключены.** `source-snapshot.js` пишет `~/context/projects.json` (0600); focus и advisor playbook используют свежесть и `coverage_scope`. Claim-check блокирует неподтверждённое внедрение.
4. **Проверка — пройдена.** 45 тестов из `test/*.test.js`; живой refresh двух проектов и полный shadow-прогон с `project_truth.persistence=json_only` прошли 4 октября. Первый запуск автоматизации advisor call 6 октября ещё не проверен.
5. **Следующая граница.** Для CPM добавить подтверждённые Zoom-решения и актуальные проверки продукта; затем включать следующие проекты по конкретным Asana/PR/Zoom ID. Статус `fresh` означает только свежесть уже настроенных источников.