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

This commit is contained in:
Alexey Martemyanov committed 2026-10-04 12:25:57 +06:00
1 parent f1ad02ba35
commit 81ae995e22
2 files changed
+13 -5

No files matched your search

@@ -9,7 +9,7 @@ Focus, дневной план, подготовка к career advisor call и
## Контракт
- Локальный read-only сбор событий по каждому проекту: Asana parent/subtasks и комментарии, GitHub PR/commit/review, Zoom решения, текущая проектная заметка. Связывать точными ID/URL и временем. Сырой транскрипт не дублировать.
- Сохранять `project_id`, `work_item_id`, `claim`, `state` (`proposed|approved|cancelled|implemented|verified|released|unknown`), `event_time`, `observed_at`, `source_ref`, `scope`, `supersedes`, `confidence`, `open_questions`. Состояние задачи в Asana и состояние технического решения — разные поля.
- Сохранять `project_id`, `work_item_id`, `claim`, `state` (`proposed|approved|cancelled|implemented|verified|released|conflict|unknown`), `event_time`, `observed_at`, `source_ref`, `scope`, `supersedes`, `confidence`, `open_questions`. Состояние задачи в Asana и состояние технического решения — разные поля.
- При конфликте проверять последовательность: предложение → явное решение/отмена → код и PR → проверка сборки. Более поздний явный комментарий об отмене перевешивает раннее предложение и checkbox `completed`; событие закрытия PR не доказывает текущий статус — нужно проверить последующее reopening; Draft PR не доказывает merge или внедрение. Если подтверждения недостаточно, выводить `unknown/conflict` со ссылками, без уверенной формулировки.
- Публиковать краткий `project_state`: цель, принятые и отменённые решения, реально внедрённое и проверенное, открытые пункты, кто/что ждёт Алекса, свежесть и ссылки. Пересчитывать при новых событиях и периодически. Производные агенты используют этот снимок и проверяют его свежесть, прежде чем утверждать текущий статус.
- Карьерный факт отделять от результата реализации: предложение, исследование и корректный отказ после новых данных могут быть вкладом; внедрение заявлять только по подтверждённому коду/проверке. Подготовка к звонку и другие brief-сценарии должны ссылаться на `project_state` и блокировать противоречащие ему claims.
@@ -24,6 +24,8 @@ Focus, дневной план, подготовка к career advisor call и
## Порядок реализации
1. Сделать один read-only вертикальный срез для VSCode/SPM: события → доказательства → актуальная проекция; проверить этот конфликт и событие закрытия с последующим reopening PR.
2. Ввести gate для advisor brief и карьерного профиля: статус проекта берётся из проекции, claims о внедрении без доказательства отклоняются.
3. После приёмки расширить на остальные активные проекты и подключить `project_state` к `work_timeline` и `work_demand`. Shadow-калибровка и Zoom/iPad идут параллельно, без дополнительных уведомлений.
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,6 +1,6 @@
# VSCode/Cursor Builds & Debugging (macOS)
Status: **IN PROGRESS** · updated 2026-10-01
Status: **IN PROGRESS** · updated 2026-10-04
**Asana:** [Migration to fully VSCode-supported builds&debugging](https://app.asana.com/1/137249556945/project/1203301625297703/task/1209808486380252)
**Repo:** `~/DuckDuckGo/apple-browsers.git` (bare + worktrees)
@@ -33,6 +33,12 @@ SPM-compatible, so `swift build` + SourceKit-LSP work, and configure
| Remote debugging (VMs, old hardware) | ⏸ not started |
| AI instructions, GitHub MCP subtasks | ⏸ not started |
## Current decision and evidence (2026-10-04)
- Code-initialized Core Data models were proposed at Apple Weekly on 2026-09-29, then cancelled after Xcode 27 / Swift 6.4 validation. [Asana subtask 1218854852229979](https://app.asana.com/0/0/1218854852229979) is completed because the conversion became unnecessary, not because the new model code was implemented. Existing `.xcdatamodeld` files stay as SPM resources and load through `Bundle.module`; the project documents local Xcode 27.2 verification.
- [Cleanup task 1218987523298563](https://app.asana.com/0/0/1218987523298563) to remove runtime model compilation test hacks remains open. [PR #7080](https://github.com/duckduckgo/apple-browsers/pull/7080) packages the browser as SwiftPM, is currently Draft, and is separate from the cancelled code-defined model approach. GitHub shows it was temporarily closed and reopened on 2026-10-02.
- For cross-project focus and career analysis, use [[personal/projects/personal-os/project-truth-analyzer]] to distinguish proposals, decisions, implementation, and verification.
## Open items after the cancellation
- [x] Closed PR [#6976](https://github.com/duckduckgo/apple-browsers/pull/6976) (AssetCatalogPlugin) and the Core Data PR; their worktrees are removed.