WORKER-REPORT
Task
01G1-NEIGHBOURS — вторым независимым взглядом разобрать наш каталог пакетов
(JSON в git, читаемый чужими инструментами) на фоне реестров-соседей; ответить
на 6 вопросов темы; результат в G1-NEIGHBOURS.md. Задача на
проектирование/суждение, без правок кода.
Changed files (each with why)
- 02
G1-NEIGHBOURS.md— результат: разбор по 6 вопросам + §0 (несогласия, перепроверенные в дереве) + §7 (консолидированные несогласия) + §8 (дополнения к рекомендации свода). Единственный артефакт темы. WORKER-REPORT-G1-NEIGHBOURS.md— этот отчёт (требование темы).
03Код не правился. git/cargo не запускались.
Acceptance, point by point
- 04«
G1-NEIGHBOURS.mdсуществует» -> DONE — evidence: файл создан в корне worktree (G1-NEIGHBOURS.md). - «Назван объединяющий принцип, и показано, как из него следуют приёмы» -> DONE — §1: принцип сформулирован («адресованное неведение»), таблица выводит 7 приёмов из 7 форм неведения и помечает статус каждой у нас.
- «Разобрано минимум три структурных отличия» -> DONE — §2 даёт четыре: (1) автор — один инструмент vs открытая человеческая подача; (2) нет живого сервера на пути чтения; (3) читателей 0 и они перечислимы (перевёрнутая кривая стоимости); (4) каталог и артефакт делят одну git-историю.
- «Разобрана минимум одна натянутая аналогия» -> DONE — §3 разбирает две: Avro-в-git (противоречит собственному тезису свода о «свойствах отношений») и Cloudflare («ближайший аналог» с противоположным режимом отказа).
- «Вопрос про "новый путь" отвечен конкретно для git» -> DONE — §5: путь =
файл в репо/raw-URL (
PROP-005:66,118-205); вариантыv2//тега; цена (двойная запись, обнаружимость+самозагрузка, дилемма записи); что видит старый ходок через год; почему git делает это дешевле, чем живой сервер. - «Двухуровневый словарь применён к настоящим именам из дерева» -> DONE — §6:
верхний уровень —
kind,delivery,naming,format(сфайл:строка); нижний —boot_snippet.category(уже строка, а не enum),description/keywords/homepage,BindingSite; показан пробел (нет дома для нижнего уровня приdeny_unknown_fields). - «Каждое утверждение о внешнем мире несёт метку источника» -> DONE —
см. Self-verify: все внешние утверждения помечены
[ИЗ СВОДА]/[ИЗ ДЕРЕВА: …]/[ПО ПАМЯТИ, НЕ ПРОВЕРЕНО].
Self-verify
- 05«
lsрезультата и отчёта» -> оба файла на месте (G1-NEIGHBOURS.md,WORKER-REPORT-G1-NEIGHBOURS.md). - «проверка покрытия метками источников в
G1-NEIGHBOURS.md» -> ниже отдельной командой (grep по тегам). - Ограничение задачи: git и cargo не запускались ни разу (только Read/Grep/ Glob/Bash-echo/Write).
Decisions taken (each with why)
- 06Прочитал
FINDINGS-DIGEST.mdцеликом до обхода дерева — тема требует второго взгляда; нельзя спорить, не зная тезиса. - Перепроверил числа свода в дереве, а не пересказал их — тема прямо
просит назвать расхождение, если число не сходится. Нашёл: «15 мест deny»
сходится; «5 словарей» — нет (нашёл 4); «объединение без признака» — неточно
(тег
kindвшит). - Для каждого вопроса дал сверх-минимум (4 отличия вместо 3; 2 аналогии вместо 1) — «согласие без добавления — бесполезный ответ».
- Внешние системы помечал
[ПО ПАМЯТИ, НЕ ПРОВЕРЕНО]без выдуманных версий/дат/issue — нет доступа в сеть; «выдуманная точность хуже честного "не знаю"». - Не выдумывал 5-й словарь — лучше честное «не воспроизводится», чем подгон под число свода.
Deviations and resolved ambiguities
- 07Свод ссылается на путь
vibe-registry/src/index_client/wire.rs— он существует (crates/vibe-registry/src/index_client/wire.rs), сверён напрямую; поправил только корневой префиксcrates/. - Свод сводит «терпимость» к
vibe-wire; уточнил, что это отчёты команд (schemas/*.jtd.json), а не каталог — это меняет интерпретацию «наружу правильны».
Not done / leftovers
- 08Не проверял точное число «6 путей перечитывания» свода — нашёл 4 строгих
сайта декода каталога сервером (
index/repomd.rs:38,primary.rs:92,by_name.rs:67,checkpoint.rs:69); структурный вывод (строгий read-modify- write ломает forward-compat) от точного числа не зависит, поэтому не гонялся за шестым. - Не цитировал механику версионирования crates.io/Helm/Nix (нет сети) — только
структурное сходство
[ПО ПАМЯТИ].
С чем я не согласен (обязательный раздел)
09Список не пуст:
- 10Свод неверен в причине хрупкости
RepomdFileEntry. Это не «объединение без признака»: тегkindв варианте Directory вшит намеренно (repomd.rs:44-49). Реальная хрупкость — в отсутствии тега у вариантаFile, что subtler. Рекомендация «тегировать все объединения» здесь уже на 90 % выполнена. - «5 закрытых словарей» не бьётся. В
vibe-index/src/types/их 4; пятый не выдумываю. - Спека противоречит не только коду, но и себе.
FORWARD-COMPAT(PROP-005:302) иNEVER-SILENT-SCHEMA(:624) взаимоисключающи, обаimpl/done; код делает третье;schema_versionне сравнивается нигде. Свод увидел одну трещину из трёх. - «Клиент уже терпим» — слишком чисто. Терпимость случайна (codegen не
умеет
deny,vibe-wire/lib.rs:26-43), неполна (ломается на новом значенииkind/BindingSite, а не на поле) и покрывает отчёты, не каталог. - Avro-в-git — растянутая аналогия, противоречащая собственному тезису свода о смерти «свойств отношений» на диске.
- Стратегически не согласен с позицией «строй аппарат терпимости сейчас». При читателях=0 дешевле ломать и переименовывать; аппарат строить готовым к заморозке, но не замораживать. Преждевременная заморозка про́даёт наше единственное преимущество перед зрелыми соседями.