14 KiB
Executable File
namespace, tags, date, status, plan, updated
| namespace | tags | date | status | plan | updated | |||
|---|---|---|---|---|---|---|---|---|
| personal |
|
2026-10-03T00:00:00.000Z | read-only-audit | personal/plans/personal-os-operating-plan-2026-10-03 | 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. |
| Выгрузки транскриптов агентов | Алекс уточнил 4 октября: явная грубость в его сообщениях другим агентам — предварительный сигнал раздражения. Personal OS не должен становиться собеседником. | Сейчас читаются только metadata сессий. Нужен локальный импорт выгруженных транскриптов, разделение сообщений Алекса и агента, производная метка с временем/источником и проверка ложных срабатываний. |
| 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 читает мои, отслеживаемые, делегированные и проектные задачи, stories и часть зависимостей. sync_state для my_tasks, following, delegated обновлён 3 октября около 19:15 +06. В schema.sql есть assignee, creator, due date, stories, edges и raw JSON. |
generate-attention.js считает любой чужой комментарий без моего ответа кандидатом «ответить»; это может быть FYI. asana.js сохраняет только первую 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: ложное «ответь» не проходит приёмку. |
| GitHub | gh-snapshot.js читает до 20 моих open PR с агрегированным CI/review decision. CLI авторизован; проверка 3 октября нашла 19 открытых PR в duckduckgo/apple-browsers. |
Review requests берутся из notifications?all=false&participating=true и потому зависят от unread; team requests отбрасываются. reviewDecision и ci — агрегаты, нет модели новых review comments, конкретного required action, approval после последнего push, timestamps и независимого refresh state. Ограничение 20 PR близко к текущим 19. |
Заменить notification-only review queue на запрос текущих reviewer assignments; отдельно получать reviews, unresolved threads, CI checks и head SHA для моих PR. Хранить fetched_at и ошибку по каждому потоку. Сверить set PR на ревью с GitHub UI/API, затем fixture: новый push после approval, failed CI, resolved/unresolved comment. |
| ActivityWatch, браузер и VS Code | Локальный AW отвечает. Buckets window/afk_Mac обновлены 3 октября около 21:08 +06; Xcode — 1 октября, VS Code — 2 октября, DDG URL — 8 июня. aw-query.js совмещает foreground window с editor/browser событиями для агрегатов. |
currentFocus выбирает Xcode→VS Code→DDG→window из последних 20 минут, а не последнее активное окно; app у VS Code обозначен Cursor. DDG URL сегодня недоступен, поэтому Asana/PR/статью в браузере нельзя надёжно привязать. aw-projects.json классифицирует проекты по regex, не конкретные задачи и намерение. |
Исправить Now по свежему foreground window + AFK, строго проверить перекрытие и freshness специализированных buckets; восстановить URL watcher либо пометить browser_url_unknown. Разбирать точные Asana task ID/PR number из URL; article URL связывать с задачей только при доказательстве. Проверить 20 интервалов, включая browser→Asana, lock, VS Code, статью и личный проект. |
| Git worktrees ↔ рабочая тема | Xcode watcher сообщает имя worktree/repo; aw-query.js агрегирует время. У старого Executor executor_runs хранит task_gid, worktree_path, branch_name, pr_url. |
Нет общего индекса актуальных локальных worktrees, связей repo/worktree/branch/head SHA ↔ PR ↔ Asana task. Regex проекта не объясняет, что именно ревьюится или решается. Executor охватывает только собственные runs. |
context-links.js: read-only git worktree list --porcelain по зарегистрированным репозиториям, branch/head SHA и явные PR/Asana ссылки; сохранять origin каждой связи и confidence. Проверить один PR с двумя worktrees и один worktree без PR; последний оставить unknown. |
| 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 есть несколько namespace: personal проектов и общий класс Documentation/Research. |
Статья может быть рабочим исследованием, отдыхом или незапланированным переключением; приложение/домен не доказывают намерение или самочувствие. | `context_type=work_task |
Состояние запуска на момент аудита 3 октября, до нового shadow-сбора
com.personalos.readonly.plist описывает 30-минутный sync → status → attention, но 3 октября launchctl не нашёл загруженный com.personalos.readonly. Следовательно, свежие данные Asana были результатом разового запуска; регулярный refresh сейчас не подтверждён. GitHub и ActivityWatch доступны в read-only проверке, но это не означает, что Personal OS регулярно объединяет их в рабочую тему.
Минимальный сквозной пилот P0.1
Один реальный рабочий поток: Asana task с явным запросом к Алексу → связанный browser PR → локальный worktree → Codex/Claude run → итог, ожидающий его ревью. Система показывает текущую тему, источник запроса, свежесть, confidence и отдельно время человека/агента. Вторая ветка: статья или личный проект остаётся unknown/personal, пока нет доказательства намерения. Приёмка — 20 вручную проверенных интервалов из двух дней: ни одной ложной high-confidence связи и ни одного выдуманного needs_human.
Следующий шаг по состоянию на 4 октября: тихий сбор уже запущен. Проверить 20 интервалов на двух рабочих днях и исправить ложные связи; Outlook ждёт разрешённый Microsoft Graph app. Исполняемые пакеты и условия пилота — personal/plans/personal-os-operating-plan-2026-10-03.