Commit Graph
237 Commits
Author SHA1 Message Date
Dmitry DementievandClaude Opus 5 f650451c5f feat(agents): репо-локальные субагенты плейбука взяты под git
- Зачем:
  - claude-subagent-playbook вызывает deep-reasoner, craftsman и
    fast-worker, но определений в репозитории не было; ступень эффорта
    задаётся только фронтматтером, без файла агент приедет на эффорте
    сессии.
- Что:
  - добавлены .claude/agents/{deep-reasoner,craftsman,fast-worker}.md
    дословно по заготовке references/claude-agents.md (opus/high,
    opus/medium, sonnet/default).
  - в .gitignore правило /.claude/ заменено на /.claude/* с исключением
    !/.claude/agents/ — остальное локальное по-прежнему вне git.
- Проверка:
  - git check-ignore -v .claude/agents/*.md — пусто;
    git check-ignore -v .claude/settings.local.json — правило срабатывает.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 22:15:06 +03:00
Dmitry Dementiev 8218a211b4 refactor(skills): claude-subagent-playbook — старые уроки вынесены в архив
- Зачем:
  - lessons.md вырос до 830 строк, и записи до рефакторинга 31 июля
    описывают другую редакцию скилла — прежнюю эффорт-карту, другой
    состав ролей, заготовку adversarial-reviewer, которой больше нет.
- Что:
  - записи с 2026-07-06 по «казусы координации» 2026-07-31 перенесены в
    references/lessons-archive.md без изменений; живой файл сократился с
    830 до 300 строк.
  - шапка lessons.md объясняет разрез и как двигать границу дальше;
    архив вне пути чтения прогона, ссылка на него только из lessons.md.
  - три указателя на переехавшие записи переведены на архив: казус
    форвардера в SKILL.md и codex-exec.md, sandbox-инцидент в
    codex-sandbox-apparmor.md.
- Проверка:
  - все markdown-ссылки скилла разрешаются в существующие файлы.
2026-08-03 22:08:08 +03:00
Dmitry Dementiev 9642910194 fix(skills): claude-subagent-playbook — правила запуска Кодекса по месту
- Зачем:
  - два отказа вызова из прогона #39 повторялись оттого, что правило
    лежало не там, где собирают команду: -s дописывали в resume по
    образцу exec, а < /dev/null закрывал вход у вызова, который сам
    получает промпт через stdin.
- Что:
  - в codex-exec рецепт resume снабжён строкой о том, что среда треда
    задана при создании, а перечень ручек хода уточнён по проверке на
    codex-cli 0.145.0.
  - к правилу «промпт через stdin» добавлено, что вход этого вызова
    должен оставаться открытым.
  - в SKILL.md этап 6 правило < /dev/null сужено условием «фоновой
    команде, которой нечего читать со входа».
  - в lessons исправлен неверный хвост записи #39 про смену песочницы
    ключом -c sandbox_mode.
- Проверка:
  - codex exec resume <любой-id> -s workspace-write → exit 2.
  - echo "say hi" | codex exec - < /dev/null → No prompt provided via stdin.
2026-08-03 21:48:29 +03:00
Dmitry Dementiev 36fc76ff90 feat(skills): claude-subagent-playbook — исполнитель не берёт ревью на веру
- Зачем:
  - после разворота ролей (реализация Опусом, ревью Кодексом) ревьюер
    продавливает исполнителя формальными решениями: за прогоны #39, #40 и
    #50 около 28 находок и ноль отклонений.
- Что:
  - в triage-header добавлен блок «ревью — свидетельство, а не приказ»:
    отклонение равноправно починке, маршрут ревьюера — предложение.
  - определение NEEDS_DECISION расширено случаем, когда выбор делает сама
    починка, независимо от объёма правки.
  - в recheck-header добавлен суд над лечением: перебор — тоже дефект, а
    NOT_CLOSED требует существующего закрывающего состояния и цены
    альтернативы.
  - в lessons закрыт долг четырёх прогонов и сведена очередь на механизм.
- Проверка:
  - следующий полный прогон плейбука: в триаже должны появиться
    отклонения или закрытия своим маршрутом с доводом.
2026-08-03 21:38:37 +03:00
Dmitry Dementiev c18472e360 docs(skills): claude-subagent-playbook — эмпирика #40 и #50
- Зачем:
  - две записи прогонов остались незакоммиченными; без них теряется фактура,
    ради которой журнал и ведётся, — и повторяющийся долг скилла нечем
    подтвердить.
- Что:
  - запись по #40: шапки соразмерности лечения сработали в третий раз;
    пересечение слепых линий — одно явление, описанное двумя способами.
  - запись по #50: сломанный прибор доезжает до коммита — ошибка измерения
    всплыла трижды на трёх уровнях, и ни разу её не поймал тот, кто мерил.
  - там же уточнение наблюдения владельца про дрейф Кодекса к букве и
    кандидат в механизм; долг с шапками отмечен четвёртым прогоном подряд.
- Проверка:
  - git show --stat; записи читаются как фактура для доработки скилла.
2026-08-02 23:02:32 +03:00
Dmitry DementievandClaude Opus 5 f758e1f802 docs(skills): claude-subagent-playbook — эмпирика #39: суд над лечением
Зачем: два прошлых прогона оставили долг — статус вешался на находку, а
лечение проезжало без суда. В прогоне #39 долг закрыт шапками триажа и
перепроверки, и это стоит помнить вместе с ценой: ручку пришлось собирать
руками в каталоге прогона.

Что: секция от 2026-08-02 про тикет #39 — как сработала ручка соразмерности
(трижды за прогон), почему «10 FIXED, 0 REJECTED» не доказательство, зачем
проверять единственный MAJOR своим зондом при тонком логе перепроверки, и два
отказа вызова Кодекса: закрытый stdin убивает промпт, а `codex exec resume`
не принимает `-s`.

Проверка: чтением; правка только в lessons.md, поведение скилла не менялось.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 15:52:29 +03:00
Dmitry Dementiev 7377ee94c5 docs(skills): claude-subagent-playbook — эмпирика #38: перепроверка и прибор
- Зачем:
  - прогон тикета #38 повторил конфигурацию 08-01 (оркестратор он же
    исполнитель, Кодекс третьей линией) и показал у той же дыры вторую
    сторону, а заодно класс сбоя, которого в файле не было.
- Что:
  - перепроверка тем же ревьюером не судит соразмерность лечения ни в
    одну сторону: после ALL_CLOSED на своё предписание — NOT_CLOSED с
    требованием недостижимого; приём — проверять существование
    закрывающего состояния и мерить цену альтернативы.
  - долг 08-01 назван неисправленным: статус вешается на находку, не на
    лечение; здесь лечение судилось только по требованию владельца.
  - новый класс: сломан не код, а измерительный прибор — устаревший .pyc
    в цикле мутаций; линии ревью такого не ловят.
- Проверка:
  - запись прочитана целиком, повторов предыдущих записей нет.
2026-08-02 13:29:46 +03:00
Dmitry DementievandClaude Opus 5 95c13211cb docs(skills): claude-subagent-playbook — эмпирика прогона: триаж и лечение
Прогон 2026-08-01 (clickstream v2, тикет #36) дал редкую конфигурацию:
оркестратор и есть исполнитель, плейбук позвали третьей линией поверх
готовой работы. Отсюда три факта для будущих доработок: триаж судит
находку, но не лечение; NEEDS_DECISION не сработал, потому что дешевизна
починки замаскировала, что это решение чужого слоя; перепроверка тем же
ревьюером перебор в лечении не ловит структурно. Записано фактами, правки
самого скилла не делались.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 23:30:08 +03:00
Dmitry DementievandClaude Opus 5 202cbdb0d7 docs(skills): brainstorm-with-docs — hot и cold review названы в самом скилле
Скиллом пользуются не только на машинах с глобальным словарём — он должен
быть самодостаточным. Шаг 7 называет перечитывание hot review с глоссой
оси (полный контекст автора: дёшево, но слепота общая), stop_condition
предлагает cold review свежей сессией как следующий шаг при высоких
ставках. Тёплое ревью не внесено: скилл им не пользуется.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 19:16:03 +03:00
Dmitry DementievandClaude Opus 5 5671967f4e feat(claude): глобальный словарь — ревью по температуре
Зачем: «перечитай свежим взглядом» стало двусмысленным с появлением
субагентов — то ли сам перечитай, то ли зови свежую сессию.

Что: claude/.claude/CLAUDE.md с осью «сколько авторского контекста несёт
ревьюер»: горячее (автор сам, глазами читателя), тёплое (агент с брифом),
холодное (свежая сессия без контекста). Линкуется install.sh в
~/.claude/CLAUDE.md тем же механизмом, что settings.local.json; файл внесён
в белый список .gitignore.

Проверка: симлинк создан на этой машине, содержимое читается.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 19:12:59 +03:00
Dmitry DementievandClaude Opus 5 9ce4c6f769 docs(skills): brainstorm-with-docs — перечитывание реагирует по уровню находки
Текстовые огрехи горячее ревью правит молча по месту; находку уровня
решений (противоречие, дыра в охвате) предъявляет владельцу, не исправляя
и не замалчивая. Довод владельца: текстовые находки видны и неопасны, а
противоречия при перечитывании не раз оказывались важными — плоский запрет
переоткрывать решения заставлял бы молчать или чинить мимо владельца.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 19:12:59 +03:00
Dmitry DementievandClaude Opus 5 a95dc7988e docs(skills): brainstorm-with-docs — шов self_review развязан двумя ярусами
Самопроверка уехала до записи и работает по плану артефакта (уровень
решений; может вернуть в интервью, пока файла нет) — сверено с апстримом
Мэтта: валидация до записи, запись линейна. После записи — дешёвое
перечитывание готового файла глазами читателя, правки по месту, решения
не переоткрываются. Критерий конца интервью оставлен мягким (решение
владельца, в Rejected), версионный хвост в шаблоне context.md вычищен.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 18:59:42 +03:00
Dmitry DementievandClaude Opus 5 d10ad6981c docs(skills): brainstorm-with-docs — правки по холодному ревью
README перестал объявлять скилл ручным: model-invocation — намеренное
текущее состояние (триггер — форма задачи, не область). Жёсткий гейт
получил исключение для глоссария (спорил с шагом 4) и стал единственным
владельцем запрета на реализацию; дубли правил схлопнуты к владельцам.
Отложенные находки (шов self_review, критерий конца интервью, версионные
пометки в шаблонах) — в Pending decisions ROADMAP.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 18:40:38 +03:00
Dmitry DementievandClaude Opus 5 e3021ce372 docs(skills): brainstorm-with-docs — дивергенция v2: веер, развилки, маршрутизация
Приземлён блок дивергенции из ROADMAP по итогам второго живого теста
(wayfinder-карта #26 стенда): шаг 5 разделён на веер и конвергенцию,
ширина веера — по весу решения, развилки решаются по месту в интервью.
Триггер «развилка» в description; описание и правила подрезаны по ревью
writing-great-skills. Свидетельства и доводы — в ROADMAP.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 18:30:32 +03:00
Dmitry DementievandClaude Fable 5 10d0003e10 docs(skills): плейбук — одёргивания дня прогонов в lessons: перечень мест ручной остановки координатора
Зачем.
Фидбек пользователя после дня работы старой редакции с Opus 5-координатором —
готовый список для следующего структурного захода, чтобы не потерялся.

Что.
Запись 2026-07-31 с четырьмя наблюдениями: повторное ревью отревьюенной
постановки и переоценка сложности (правила есть — не держат; кандидат:
перевернуть дефолт на opt-in), код Кодекса не для учеников (боевое
подтверждение оси вкуса), вызов скилла ради механики субагентов вне
конвейера (кандидат: отдельная лёгкая точка входа). Помечено открытым
вопросом следующего захода.

Проверка.
Правка журнала, прогонять нечего.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:18:30 +03:00
Dmitry DementievandClaude Fable 5 3e0498e242 docs(skills): плейбук — структурный рефакторинг: ось вкуса, брифы, два Опус-агента
Зачем.
Отдельный осознанный заход, закрывающий открытые вопросы 2026-07-26 и
2026-07-31: две ручки выбора (модель, эффорт) были про силу, вкус ими не
выражался; константы линий дрейфовали через перепечатку; правила
координации прогона #18 жили только в журнале; у Agent-тула нет ручки
effort — карта была нереализуема разовым вызовом.

Что.
- Третья ось выбора — вкус: references/model-matrix.md (матрица Тео с
  поправкой пользователя под gpt-5.6-sol/Opus 5); разрез по подзадачам
  на этапе 1, сначала вкусовая часть.
- «Родословная» разведена на семейство (классы находок) и свежесть
  (независимость); линия дефектов — по различию, уместности — по умению.
- Ступень эффорта выбирается выбором агента: определений столько,
  сколько пар (модель, ступень) — deep-reasoner (high), craftsman
  (medium, исполнение брифов: реализация/ревью/перепроверки; поглотил
  adversarial-reviewer), fast-worker; карта с обоснованиями — SSOT в
  claude-agents.md.
- Константы — файлами в prompts/: line-task/code/rev, self-review;
  line-taste — вкусовая линза с 12 запахами Фаулера из /code-review.
- Правила #18 — в механизм: инкрементальная запись индекса, глубина
  один и проверка среды в мандате, признак жизни / другой путь вердикта
  замене / среда своими глазами в «Сбоях», стенд одной линии, stdin фона.
- lessons дистиллирован (586→533), handoff захода — в handoffs/.

Проверка.
Слепое ревью Опусом по writing-great-skills: CHANGES_REQUIRED
(7 MAJOR, 17 MINOR, 3 NIT) — все закрыты или отклонены с доводом в
lessons; ссылки пакета проверены скриптом, битых нет. Боевой прогон
новой структуры — следующим заходом (чек-лист в handoff).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:03:23 +03:00
Dmitry DementievandClaude Opus 5 6070810c2d docs(skills): плейбук — под «родословной» ехали два механизма
Зачем.
Разговор о том, кому отдавать вкусовую линию ревью, упирался в ложный
выбор между независимостью и компетентностью. Причина — склейка: различие
семейств нужно для покрытия классов ошибок, свежая сессия для
независимости от рассуждений автора, а называлось это одним словом.

Что.
Заметка в открытый вопрос о рефакторинге: два основания назначения линий,
названная плата и указание решить при рефакторинге, переносить ли это в
этап 4 и эффорт-карту. В репозитории стенда решение уже принято.

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 15:37:40 +03:00
Dmitry DementievandClaude Opus 5 59e9c0787e docs(skills): плейбук — заметки к рефакторингу: ось вкуса и набор запахов
Зачем.
Прогон #18 показал, чего не хватает: обе наши ручки выбора (эффорт,
модель) про силу, вкус ими не выражается. Решения приняты, но структурные
правки скилла отложены — чтобы не потерялись, они записаны в открытый
вопрос, который читается при следующем заходе.

Что.
- Третья ось выбора: разрез по подзадачам на этапе планирования, вкусовое
  Опусу, руки Кодексу, ось ревью переворачивается. С требованием спросить
  у пользователя матрицу и примеры.
- Набор запахов Фаулера из /code-review Мэтта Покока — сильнее самодельных
  примеров в блоке Taste; оттуда же правило не сливать находки двух осей.
- Разбор журнала Codex-ревьюера: восстановление стенда ловушкой без
  проверки, самовольные subagent-ы вопреки правилу «глубина один».

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 15:21:10 +03:00
Dmitry DementievandClaude Opus 5 4f19cce325 docs(skills): плейбук — цифры и урок прогона #18 в lessons
Зачем.
Запись о прогоне была без раздела «Цифры», которого требует конвенция
файла, и без урока, ради которого прогон и запомнился.

Что.
- Цифры прогона #18: находки по линиям, приёмка на чистых томах.
- Урок: проверка, зелёная из терминала, может виснуть навсегда под
  фоновым запуском — приёмка оркестратора нашла то, чего не нашли обе
  линии ревью.

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 14:11:40 +03:00
Dmitry DementievandClaude Opus 5 6e67ccc1df docs(skills): плейбук — вкусовая линза ревьюера доведена до механизма
- Зачем:
  - решение 2026-07-23 «в линзу Клод-ревьюера — осмысленность кода» жило только в уроках и в памяти другого проекта, в заготовки промптов не попало: прогон #18 собрал старую линзу, и ревьюер не был обязан спрашивать, не дичь ли решение.
  - общий вывод прогона: решение, записанное только в уроки, следующим прогоном не исполняется — ехать может лишь механизм, который подшивается в промпт.
- Что:
  - prompt-templates.md: в заготовку line-task.md добавлен блок Taste — формально верное, но по сути неправильное считается находкой, три примера и правило оценки серьёзности по цене жизни с кодом; разрез по родословной переведён с цитаты фразы на именованный блок.
  - SKILL.md: описание линии «по задаче» больше не расходится с заготовкой — названа уместность решения и дана отсылка за точными словами.
  - lessons.md: две датированные записи (вкусовая линза; казусы координации прогона #18) и открытый вопрос о рефакторинге заготовок линий.
- Проверка:
  - слепое ревью правок Опусом по критериям /writing-great-skills: CHANGES_REQUIRED, 5 MAJOR — сокращение списка примеров, ведущее слово, разрез блоком, устаревшая копия в SKILL.md; все замечания по своим правкам закрыты, структурные вынесены в открытый вопрос по решению пользователя.
  - подтверждено ревью: расширение линзы не пустышка — прежний текст был целиком про соответствие постановке.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 13:36:33 +03:00
Dmitry DementievandClaude Fable 5 ef09a7832b docs(skills): плейбук — уроки боевого прогона тикета #12 по песочнице Codex
- Зачем:
  - боевой прогон 2026-07-30 (тикет #12 v2) закрыл открытый вопрос: расширенный доступ Codex не нужен, штатной связки достаточно.
- Что:
  - codex-exec.md: пункт про блок классификатора начинается с проверки песочницы; в рецепт исполнителя добавлено «шире не бери»; снят кавеат «боем не обкатано» — сеть и docker-сокет работают при штатной связке on-request + auto_review.
  - lessons.md: датированный урок 2026-07-30 с дополнением по итогам прогона.
- Проверка:
  - чтение обновлённых разделов; факты — из JSONL-логов прогона тикета #12 (docker manifest inspect и make up завершились completed под workspace-write).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 20:54:36 +03:00
ddadmin 97193eaa4b docs(rclone): добавлена настройка Яндекс Диска для Ubuntu
- Зачем:
  - нужна удобная работа с документами на большом Яндекс Диске из Linux.
- Что:
  - собраны выводы о поведении rclone mount на больших хранилищах.
  - добавлены команды установки, настройки, проверки и автозапуска в Ubuntu 26.04.
  - описаны ограничения кэша, внешних изменений и рекурсивного обхода.
- Проверка:
  - выполнена проверка `git diff --cached --check`.
2026-07-27 22:16:33 +03:00
Dmitry Dementiev 2d4af081b8 feat(proxy): Gitea добавлен в обход прокси
- Зачем:
  - домашний Gitea должен подключаться напрямую без ошибок TLS через прокси.
- Что:
  - dementev.space добавлен во все списки исключений прокси.
  - списки NO_PROXY выровнены и защищены тестом от расхождения.
- Проверка:
  - python3 tests/test_proxy_env_sync.py.
  - python3 tests/test_proxy_client.py.
  - bash tests/test_proxy_launchers.sh.
2026-07-27 20:53:44 +03:00
Dmitry DementievandClaude Opus 5 80db31aa57 fix(proxy): выровнены списки исключений во всех профилях
- Зачем:
  - копии списка в профилях разошлись: в PowerShell и VS Code не хватало
    ::1 и [::1], из-за чего один и тот же хост то шёл мимо прокси, то нет.
- Что:
  - profile.ps1 и server-env-setup приведены к выдаче proxy-client.
  - добавлен tests/test_proxy_env_sync.py — сверяет каждую копию с эталоном
    DEFAULT_NO_PROXY_EXTRA и списки обхода Windows между собой.
  - в файлах-копиях и README указан эталон и тест, который ловит расхождение.
- Проверка:
  - python3 tests/test_proxy_env_sync.py (2 OK, на подложенном расхождении падает).
  - python3 tests/test_proxy_client.py (54 OK), bash tests/test_proxy_launchers.sh (8 PASS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:33:36 +03:00
Dmitry DementievandClaude Opus 5 0b300d2e26 feat(proxy): свой Gitea git.dementev.space добавлен в обход прокси
- Зачем:
  - домашний Gitea стал рабочим репозиторием и трекером вместо
    заблокированного GitHub, а через прокси соединение с ним рвётся на TLS.
- Что:
  - в DEFAULT_NO_PROXY_EXTRA добавлены dementev.space и .dementev.space
    (две формы, так как программы читают список по-разному).
  - тот же домен внесён в копии списка: profile.ps1, запускалки
    claude/codex, .codex/.env и server-env-setup для VS Code.
- Проверка:
  - proxy-client env | grep -i no_proxy — домен виден в обеих переменных.
  - python3 tests/test_proxy_client.py (54 OK), bash tests/test_proxy_launchers.sh (8 PASS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:25:24 +03:00
ddadminandClaude Opus 5 357896faaa docs(skills): эффорт-карта субагентов пересчитана под Opus 5
- Зачем:
  - скилл писался под Opus 4.8; у Opus 5 усилия распределены иначе, high —
    верхняя рабочая ступень, xhigh дефолтить смысла нет.
- Что:
  - карта в SKILL.md сдвинута на ступень вниз (high — ревью постановок,
    medium — слепое ревью и узкие перепроверки, default — механика),
    нижняя граница ревью опущена с high до medium.
  - добавлены оговорки: неравномерность сдвига, deep-reasoner остаётся на
    high, механика едет на Sonnet и эффорт там не крутится.
  - в lessons.md записано решение 2026-07-26, помечена как пересмотренная
    запись 2026-07-21 и заведён открытый вопрос: чем координатор вообще
    выставляет effort (у Agent-тула такого параметра нет).
  - пункт про вспомогательных субагентов переписан активно: нет в репо —
    предложить создать по заготовке и работать ими.
- Проверка:
  - git diff HEAD~1 -- agents/.agents/skills/claude-subagent-playbook/;
    сверить, что xhigh в SKILL.md больше не упоминается.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 19:06:01 +03:00
ddadmin c6d7e7eeb0 feat(install): конфликтующие файлы бэкапятся перед stow для всех пакетов
- Зачем:
  - конфликт с уже существующим конфигом приходилось разбирать руками:
    stow печатал "All operations aborted" и откатывал все пакеты сразу.
- Что:
  - backup_conflicting_kitty_files заменена на общую
    backup_conflicting_stow_targets по списку AVAILABLE_PACKAGES.
  - обход повторяет логику stow: отсутствующая цель и каталоги-симлинки
    пропускаются вместе с поддеревом, поэтому свёрнутые пакеты
    (~/.codex, ~/.vscode-server) не обходятся и не бэкапятся.
  - в фикстуру тестов добавлен пакет wezterm, добавлены тесты на конфликт
    в HOME и на неприкосновенность содержимого свёрнутого пакета.
- Проверка:
  - bash tests/test_install.sh
2026-07-26 17:53:30 +03:00
ddadmin 6610adeac5 fix(install): чужой конфиг kitty больше не срывает stow целиком
- Зачем:
  - при существующем ~/.config/kitty/kitty.conf stow печатал
    "All operations aborted" и откатывал все пакеты, а install.sh падал
    по pipefail, не дойдя до настройки claude, opencode и .bashrc.
- Что:
  - добавлена backup_conflicting_kitty_files: неуправляемые файлы и чужие
    симлинки в ~/.config/kitty уносятся в .bak с временной меткой перед stow.
  - собственные симлинки пакета пропускаются, поэтому повторный запуск
    install.sh не плодит бэкапы.
  - добавлены тесты на существующий файл, чужой симлинк и повторный запуск.
  - из таблицы пакетов README убран zed: он не в PACKAGES с ab4c7c7.
- Проверка:
  - bash tests/test_install.sh
2026-07-26 17:43:18 +03:00
ddadmin 91592c5893 feat(kitty): добавлен stow-пакет с конфигом и темой kitty
- Зачем:
  - конфиг kitty не был под контролем версий, а свёрнутый stow-каталог
    приводил бы к попаданию рантайм-файлов kitty в репозиторий.
- Что:
  - добавлен пакет kitty с минимальным kitty.conf и current-theme.conf
    вместо 112 КБ sample-конфига от старой версии.
  - в install.sh kitty добавлен в PACKAGES, а ~/.config/kitty создаётся
    заранее настоящим каталогом, чтобы stow линковал по файлам.
  - тест folding переведён с невыпиленного zed на kitty, устаревшая
    проверка ~/.config/zed в тесте миграции заменена на assert_not_exists.
- Проверка:
  - bash tests/test_install.sh
2026-07-26 17:30:42 +03:00
ddadmin 962012204a Merge branch 'worktree-statusline'
- Зачем:
  - statusLine Claude Code ссылался на скрипт, который install.sh не создавал.
- Что:
  - новый statusline-command.sh (округление процентов, порог длины пути,
    работа в Git Bash без jq) и его установка в ~/.claude через install.sh.
- Проверка:
  - printf '%s' "$json" | bash claude/.claude/statusline-command.sh на тестовых JSON.
2026-07-26 17:14:50 +03:00
ddadmin 227fc93514 docs(readme): описана установка statusline-command.sh
- Зачем:
  - в таблице настроек Claude не было упоминания скрипта статусной строки,
    хотя install.sh теперь копирует его в ~/.claude.
- Что:
  - в строку про Claude добавлено «statusline-command.sh → копия из репозитория».
- Проверка:
  - grep -n statusline README.md.
2026-07-26 17:14:14 +03:00
ddadmin 571334d67b feat(claude): статусная строка переписана и устанавливается install.sh
- Зачем:
  - statusLine ссылался на ~/.claude/statusline-command.sh, которого install.sh
    никогда не создавал, а сам скрипт не округлял проценты и резал путь по числу
    сегментов вместо длины.
- Что:
  - скрипт переписан: округление процентов до целых, порог длины пути в
    переменной MAX_PATH_LEN (28), резервный разбор JSON без jq, USER/USERNAME и
    HOSTNAME вместо hostname -s, нормализация обратных слэшей — для Git Bash.
  - install.sh копирует statusline-command.sh в ~/.claude с правами 755.
- Проверка:
  - printf '%s' "$json" | bash claude/.claude/statusline-command.sh на JSON с
    дробными процентами, null в rate_limits и без блока rate_limits.
2026-07-26 17:12:56 +03:00
ddadmin ab4c7c7342 chore(stow): убран пакет zed из списка stow-пакетов
- Зачем:
  - конфигурация zed больше не управляется через stow и хранится локально в ~/.config/zed.
- Что:
  - убран zed из массива PACKAGES в install.sh.
- Проверка:
  - запустить install.sh и убедиться, что симлинк ~/.config/zed не создаётся.
2026-07-25 21:57:37 +03:00
Dmitry Dementiev ec66938ba3 feat(wezterm): добавлен общий конфиг для Windows и Linux
- Зачем:
  - требуется единообразное окружение терминала на обеих ОС.
- Что:
  - добавлен выбор локальной оболочки и меню запуска по платформе.
  - настроены JetBrains Mono и XWayland для корректной рамки окна в GNOME.
  - пакет WezTerm включён в установку через stow и описан в README.
- Проверка:
  - wezterm show-keys, bash -n install.sh и stow --simulate --restow wezterm.
2026-07-25 21:08:44 +03:00
Dmitry Dementiev 69507ce96c fix(proxy): исправлены маршрутизация Codex и запуск Claude
- Зачем:
  - Codex app-server обходил прокси, а Claude удерживал окно Windows Terminal.
- Что:
  - добавлен общий ~/.codex/.env и упрощён запуск Codex Desktop.
  - ярлык Claude переведён на скрытый запуск через wscript.exe.
  - документация приведена в соответствие с новой схемой.
- Проверка:
  - соединения ChatGPT.exe и codex.exe направлены через 127.0.0.1:12334.
  - проверены синтаксис PowerShell, состояние chezmoi и ярлык; Claude проверен вручную.
2026-07-25 13:01:26 +03:00
Dmitry Dementiev 0e283daad8 fix(claude): добавлена поддержка пакетного приложения
- Зачем:
  - Claude Proxy не запускался при установке Claude из Microsoft Store.
- Что:
  - сохранён прежний запуск обычного claude.exe.
  - добавлена активация пакетного приложения по AUMID с параметрами прокси.
  - генератор ярлыка получил поддержку значка из пакета Claude.
- Проверка:
  - обе ветки запуска завершились с кодом 0.
  - сетевой процесс Claude подключился к 127.0.0.1:12334.
2026-07-23 22:30:01 +03:00
Dmitry Dementiev 559c1caf75 fix(codex): исправлен запуск через системный идентификатор
- Зачем:
  - обновлённое приложение запрещает прямой запуск ChatGPT.exe из WindowsApps.
- Что:
  - запуск переведён на активацию пакета по AUMID.
  - добавлены параметры Chromium для подключения к hproxy.local.
  - описание ярлыка обновлено в README.
- Проверка:
  - установленный скрипт завершился с кодом 0.
  - сетевой процесс Codex подключился к 127.0.0.1:12334.
2026-07-23 22:19:55 +03:00
Dmitriy Dementiev 5286859533 feat(claude): добавлен запуск Desktop через прокси
- Зачем:
  - нужен отдельный запуск Claude Desktop через hproxy.local без системного прокси.
- Что:
  - добавлен PowerShell-скрипт с переменными прокси и параметрами Electron.
  - добавлено идемпотентное создание ярлыка Claude Proxy через chezmoi.
  - описано правило полного закрытия уже запущенного Claude.
- Проверка:
  - проверены PowerShell-синтаксис, аргументы запуска и WSLENV через подмену Start-Process.
  - двумя прогонами с подменой COM проверена идемпотентность создания ярлыка.
  - выполнены chezmoi managed и git diff --cached --check.
2026-07-23 16:59:45 +03:00
ddadmin 051801efbe docs(skills): добавлен урок о taste-слепоте триажа в claude-subagent-playbook
- Зачем:
  - зафиксировать наблюдение: codex на триаже закрывает находки контрактными тестами с цитатами прозы, что формально корректно, но создаёт хрупкий мусор.
- Что:
  - записано решение пользователя: добавлять осмысленность кода в линзу Claude-ревьюера, срезание бессмысленного кода поручать Опусу, перепроверку после триажа давать линзе, видящей дифф целиком.
  - отмечен попутный эффект: образец заражает — легаси-жанр «тест на фразу README» подлежит чистке отдельным issue.
- Проверка:
  - git log --oneline -1
2026-07-23 15:02:42 +03:00
ddadmin 9d825cfca3 fix(skills): отключена блокировка auto-invoke для brainstorm-with-docs
- Зачем:
  - навык должен автоматически вызываться по описанию, а не только вручную.
- Что:
  - удалена опция disable-model-invocation: true из frontmatter.
- Проверка:
  - git diff — изменения только в SKILL.md.
2026-07-23 12:23:09 +03:00
ddadmin 3923894c06 chore(skills): обновлён .gitignore для навыков
- Зачем:
  - привести игнор-список в соответствие с текущим набором навыков.
- Что:
  - добавлен игнор для find-skills/.
  - исправлены записи claude-team-review и adversarial-review (убраны лишние слеши).
- Проверка:
  - git status — изменён только .gitignore.
2026-07-23 12:22:21 +03:00
ddadminandClaude Fable 5 c4c37d37b0 docs(skills): указатель на кавеат effort в возможностях хоста
- Зачем:
  - раздел «Возможности хоста» обещает reasoning_effort в схеме
    spawn_agent, а кавеат о его неприменении жил двумя разделами ниже —
    координатор поверил бы в ручку, которой сейчас нет.
- Что:
  - в пункт «Управляемая стоимость» добавлена ссылка на кавеат в
    «Выборе уровня».
- Проверка:
  - перечитка roles.md свежим взглядом после сверки близнецов.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 10:55:13 +03:00
ddadminandClaude Fable 5 eb0d52ef57 docs(skills): взаимообогащение близнецов-плейбуков после сверки
- Зачем:
  - близнецы развивались порознь и разошлись: проверенные боем правила
    клодовского плейбука отсутствовали в кодексовом, и наоборот; промах
    скиллом 2026-07-22 показал цену дрейфа.
- Что:
  - в кодексовый: одно ревью на версию артефакта, саморевью исполнителя и
    сквозная проверка до внешних линий, «Партнёр в петле», цена тихой
    ошибки как критерий уровня (заменой, класс задачи — иллюстрация),
    проверка внешних фактов первоисточником, кавеат про неработающий
    reasoning_effort субагентов;
  - в клодовский: «Пределы параллельности» (обратная пара), карта
    прогресса поглощена в «Пользователь в петле», автовызов моделью
    (описание с триггерами вместо disable-model-invocation);
  - lessons обоих: датированные записи сверки, урок 07-13 сжат до
    указателя.
- Проверка:
  - перечитка диффа свежим взглядом; следующий прогон конвейера — по
    автовызванному claude-subagent-playbook.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 10:51:58 +03:00
ddadminandClaude Fable 5 8312ef071e fix(skills): уроки прогона 2026-07-22 перенесены в клодовский плейбук
- Зачем:
  - вчерашний патч 43a93cd лёг не в тот скилл: уроки клодовского
    координатора попали в codex-subagent-playbook — близнец для
    координатора на стороне Codex; там «канал codex exec» — бессмыслица,
    а правила канала давно живут в claude-subagent-playbook/codex-exec.md.
- Что:
  - codex-subagent-playbook: три файла возвращены к состоянию до 43a93cd;
    во фронтматтер добавлен disable-model-invocation и адресное описание
    против повторного промаха;
  - claude-subagent-playbook: запись прогона issue #5 в lessons.md (чужой
    скилл, плагин вместо CLI, два писателя, приёмочный сценарий);
    в SKILL.md — владение деревом после остановки прежнего владельца и
    проверка команд приёмки на живом объекте.
- Проверка:
  - git diff 43a93cd^ по трём файлам codex-плейбука — только фронтматтер;
    перечитка lessons.md на связность.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 10:43:14 +03:00
ddadminandClaude Fable 5 43a93cd3c3 docs(skills): codex-playbook — канал командной строки и уроки прогона
- Зачем:
  - боевой прогон 2026-07-22 (конвейер issue #5 в демо-стенде) прошёл
    через плагин-обёртку Codex и воспроизвёл её известные баги; ресёрч
    2026-07-07 давно рекомендовал прямой CLI, но в скилл не был поглощён.
- Что:
  - roles.md: третий режим «Канал командной строки» — codex exec фоном
    у координатора, resume треда, плагин только для интерактива;
  - SKILL.md: передача владения только после остановки прежнего
    владельца; проверка команд сценария на живом объекте до прогона;
  - lessons.md: два датированных наблюдения 2026-07-22, вопрос №9
    переориентирован на проверку CLI-канала боем.
- Проверка:
  - перечитка трёх файлов на связность и отсутствие дублей;
    следующий прогон конвейера — по CLI-каналу.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 00:06:57 +03:00
ddadmin db0c3aff09 chore(agents): перенесены правила .gitignore для внешних плагинов skills
- Зачем:
  - правила для внешних плагинов теперь хранятся локально, в самой директории skills.
- Что:
  - в корневом .gitignore правила claude-team-review/adversarial-review заменены на .skill-lock.json.
  - в agents/.agents/skills/.gitignore добавлены claude-team-review/ и adversarial-review/.
- Проверка:
  - git status не показывает untracked файлы skills-плагинов.
2026-07-22 04:10:08 -04:00
ddadmin 1ad634adff chore(zed): удалены прокси-настройки из конфига редактора
- Зачем:
  - прокси больше не используется, настройки устарели.
- Что:
  - закомментирован параметр proxy.
  - удалён блок agent_servers с прокси-переменными для claude-acp, codex-acp и gemini.
- Проверка:
  - Zed запускается без ошибок конфигурации.
2026-07-22 03:58:36 -04:00
ddadmin 028817c555 docs(repo): удалены устаревшие инструкции и задачи
- Зачем:
  - документация должна отражать только действующие правила и планы.
- Что:
  - из AGENTS.md удалены устаревшие разделы о Git и общих требованиях.
  - из TODO.md удален прежний список задач.
- Проверка:
  - git diff --cached --check.
2026-07-21 16:38:29 -04:00
ddadmin 32051ae3f0 docs(gitverse): добавлено исследование API задач
- Зачем:
  - нужно понять, подходит ли GitVerse для управления задачами проекта.
- Что:
  - описаны Public API, совместимость с GitHub и GitLab и доступные операции.
  - сохранены результаты живых проверок и отличие внутреннего API.
  - добавлены безопасные команды повторной проверки и решение для dotfiles.
- Проверка:
  - git diff --cached --check.
2026-07-21 16:38:02 -04:00
ddadmin ea5c7afd4c feat(proxy-client): добавлена самостоятельная установка
- Зачем:
  - пакет должен устанавливаться безопасно без полного dotfiles и обязательного Stow.
- Что:
  - в master влита feature-ветка с установщиком, тестами и цельной инструкцией.
  - история проектирования сохранена, а рабочая зона .scratch удалена перед слиянием.
- Проверка:
  - bash tests/test_proxy_client_install.sh.
  - bash tests/test_install.sh.
2026-07-21 22:48:02 +03:00