Проверено кодом и запуском: настройки харнесса, скрипты проекта, HTML-виды, ссылки, гейты оплаты. Ниже — что нашли, что уже исправлено и что ждёт решения Антона.
shutil.rmtree на уровне модуля — любой запуск (даже --help или простой импорт) удалял существующий бэкап backups/2026-10-02_eod. Теперь: без --run только план, существующие снимки не удаляются, всё под __main__. Проверено: --help и план не меняют папку backups/ (снимков было 22 — стало 22).gen_speech.py (раньше один запуск без флагов сразу шёл в платный TTS — теперь без --run печатает план) и reshoot_grass_plate_v5.py (раньше правил карточку и стрелял — теперь показывает, что сделает).bytedance/seedream-5-pro-text-to-image не существует — правильный seedream/5-pro-text-to-image (проверено по каталогу Polza). Страница «Модели и цены» пересобрана._thumbs/_orphan_2026-10-07/ (не удалены). Сам аудит поправлен: папку с перенесённым мусором он больше не считает мусором..dsh/skills не существовало). Созданы два: aimovies-pipeline (короткий свод канона и команд — вместо 73 КБ AGENTS.md, который харнесс обрезает) и aimovies-paid-generation (порядок платной генерации, список опасных скриптов, цены).tools/README.md — все скрипты с описанием и пометкой, есть ли гейт --run (автосборка из докстрок).Аудит проекта — несостыковки, мусор, дубли
АУДИТ ПРОЕКТА — 10.10.2026 20:40
НАЙДЕНО:
• тяжёлые файлы >20 МБ: 1
Locations\2.9.1_COLONY_TOP_v6.png (20 МБ)
• чек-лист: сделано 51, не сделано 29
• одинаковые файлы: 1
2.1.1_MARS_DAY_EXT_v10_lit_roadred.jpg = 2.1.1_MARS_DAY_EXT_v10_roadred_soft.jpg
всего пунктов: 3Виды, ссылки, превью, регрессия уроков
834 · битых 0 === 2/14 эскизы (check_refs) OK НЕТ ФАЙЛА 0 OK ОТМЕНЕНО 0 OK СТАРАЯ 0 OK БЕЗ ПУТИ 0 OK ПРОМТ ВЫРЕЗАН 0 OK ФАЙЛ ≠ ПРИНЯТАЯ 0 === 3/14 промты (check_prompts) !! замечаний: 4 2.14.3 Трава без корней (макро) ⚠ снято, ждёт приёмк · дубль в теле ×2: «shallow depth of field» · дубль в теле ×2: «deep shadows» · дубль в теле ×2: «dust in the air» · дубль в теле ×2: «deep shadows» === 4/14 локальные клипы (check_clips_whole) OK клипов 40 · ✅ все 40 клипов целые: 39 полной длины, 1 коротких намеренно === 5/14 промты очереди (queue_prompt_gaps) OK у всех задач очереди свой промт движения === 6/14 потерянные имена в службах (check_undefined_names) OK службы не ссылаются на неопределённые имена === 7/14 привязка клипов к адресам (check_clip_addr_match) OK у каждого адреса свой клип, подмены номерами нет === 8/14 файлы в «Приложить» (check_attach_files) OK все ссылки в «Приложить» указывают на существующие файлы === 9/14 виды и их сборщики (check_orphan_views) OK все виды, у которых есть сборщик, пересобираются === 10/14 сборка текста службами (check_service_build) OK все службы собирают текст без ошибок === 11/14 форма файла секретов (check_credentials_shape) OK ключи только version / records / refs — интерфейс ругаться не будет OK тест: проверка ловит лишний ключ === 12/14 статус карточки и файл на диске (check_card_status) OK метка каждой карточки совпадает с фактом: файла нет — ждёт, файл есть — снято === 13/14 единообразие героя и предмета (check_identity) OK все кадры сущностей рисуются по своим эталонам === 14/14 род речи агента (check_voice_gender) OK о себе — только в женском роде (Веста: сделала, проверила, нашла) ИТОГ: есть замечания — смотри выше
Опасные скрипты (кто может уйти в оплату без --run)
=== скрипты, связанные с деньгами: 41
с гейтом --run: 25 · БЕЗ гейта: 16
=== БЕЗ гейта --run (опасно: могут уйти в оплату от одного запуска)
файл --help __main__
_gen_round.py НЕТ НЕТ
build_root_index.py НЕТ есть
check_balance.py есть есть
compare_models.py есть есть
gen_agent.py есть есть
gen_video.py есть есть
llm_price_compare.py есть есть
make_voice_variants.py есть есть
part1_run.py есть есть
part_run.py есть есть
pc_monitor.py есть есть
scan_generators.py есть есть
scan_generators_full.py есть есть
voice.py есть есть
voice_pitch.py есть есть
voice_polza.py НЕТ естьПолный отчёт: _АУДИТ_АГЕНТОВ.md (50 КБ). Ниже — самое важное.
Сортировка — по серьёзности. 🔴 блокер · 🟠 важно · 🟡 мелочь.
| # | Проблема | Где | Серьёзность | Что делать |
|---|---|---|---|---|
| 1 | snapshot.py не имеет if __name__ == "__main__" и на строке 16 делает shutil.rmtree(DST). Любой запуск (в том числе python tools/snapshot.py --help и даже import snapshot) удаляет существующий бэкап backups/2026-10-02_eod/ и заменяет его текущим состоянием | tools/snapshot.py:9-17 | 🔴 | Обернуть в main() + __main__, добавить --help, убрать rmtree (или требовать --force + --stamp) |
| 2 | AGENTS.md не помещается в лимит харнесса. Файл 73 271 байт, а agent-instructions обрезает на maxBytes: 65536. Срезается хвост — а это как раз канон: «двойной свет», «тройная проверка после каждой сборки», кеш генераций, VPN, ловушки Windows, безопасность ключей | AGENTS.md (73 271 б) vs dsh-base/cordis.patch.yml:289-292 | 🔴 | Разделить: AGENTS.md — короткий (≤50 КБ) «прочти первым», остальное — в 10_Studio_Pipeline.md и скилы (см. § 6) |
| 3 | check_all.py НЕ проходит прямо сейчас (код возврата 1). 8 битых ссылок в films/07_Chorus_of_Oblivion/05_Refs/01_GEN_PACK_P1.html (6 уникальных целей: 2.1.1_BRIDGE_cold_v1, 3.1.1_BUOY_cold_v1, 1.1.20_ORLOV_costume_v1 ×3, 1.2.20_DAI_costume_v1 и др.), 9 «СТАРЫХ» ссылок в 01_GEN_PACK_P1.md:1212+, 4 замечания к промту карточки 2.14.3. При этом AGENTS.md утверждает «Все 23 вида пересобраны, check_all.py проходит» | проверено запуском; AGENTS.md (начало файла) | 🔴 | Пересобрать страницу фильма 07 или заменить битые ссылки пометками в косых кавычках; починить канон AGENTS.md |
| 4 | Платные генераторы без гейта --run: part_run.py (лимит по умолчанию 1800 ₽), part1_run.py (500 ₽), gen_speech.py, make_voice_variants.py, reshoot_grass_plate_v5.py, _gen_round.py, voice_polza.py. У соседних скриптов гейт есть (part_batch.py, part1_video.py, shoot_part4.py, video_batch.py, gen.py, gen_queue.py) — правило применяется непоследовательно | tools/part_run.py:45-78, part1_run.py:30-63, gen_speech.py:70-83, make_voice_variants.py:51-79, reshoot_grass_plate_v5.py:48-71, _gen_round.py:98, voice_polza.py:65-79 | 🔴 | Добавить во все семь --run по образцу part_batch.py; без флага печатать смету и выходить |
| 5 | AGENTS.md документирует несуществующую команду. Строка 142: python tools/gen_agent.py --film NN [--only … --approve]. У gen_agent.py (argparse) есть только --once, --watch, --only, --parallel. Проверено: команда падает с error: unrecognized arguments: --film 01 --approve, код 2 | AGENTS.md:142 vs tools/gen_agent.py:201-207 | 🟠 | Либо поправить строку в AGENTS.md, либо добавить --film/--approve в gen_agent.py |
| 6 | Числа скриптов в документах устарели в 3 раза. Фактически в tools/ — 242 .py. Документы говорят «72» (00_ПЕРЕДАЧА.md:111, AGENTS.md, CHANGELOG.md) и «итого 78» (00_ПЕРЕДАЧА.md:114, AGENTS.md) | 00_ПЕРЕДАЧА.md:111,114, AGENTS.md | 🟠 | Обновить числа; лучше — вообще не писать число, а давать команду подсчёта |
| 7 | Число уроков в LESSONS.md не совпадает с заявленным, и нумерация поехала. В таблице 30 строк, максимальный номер — 26 (есть 0, 0б, 0в, 4б). Блоки идут в порядке 0…12 → 20…26 → 19 → 13…18, причём 13–18 и 19 оказались после раздела «Что обязан проверять проверяльщик». AGENTS.md говорит «сейчас 24 урока» | tools/LESSONS.md, AGENTS.md:123 | 🟠 | Перенумеровать по порядку и перенести таблицы 13–19 до врезки; поправить число в AGENTS.md |
| 8 | eod.py --help создаёт архив. main() не знает --help: без --list сразу вызывает make(mode, dest). Правило проекта — архив делать только по слову Антона | tools/eod.py:186-193 | 🟠 | Добавить --help (как в 157 других скриптах) |
| 9 | check_all.py --help не показывает справку, а запускает весь прогон (проверено: 43 страницы, 3 836 ссылок, код возврата 1). Так же ведут себя check_refs.py, check_prompts.py, check_before.py, build_pack_html.py (пересобирает виды), archive_unused.py (печатает широкий план чистки) | tools/check_all.py:36, build_pack_html.py:1615, archive_unused.py:91 | 🟠 | Дописать проверку --help в первую очередь main() |
| 10 | Ключ к несуществующей модели на странице цен. tools/build_models_prices.py:109 печатает <code>bytedance/seedream-5-pro-text-to-image</code>, в каталоге Polza id другой — seedream/5-pro-text-to-image. Ошибка уже стоит в собранной странице research/_MODELS_PRICES.html:233 | tools/build_models_prices.py:109, research/_MODELS_PRICES.html:233 | 🟠 | Заменить id и пересобрать страницу |
| 11 | review_server.py не запускается: import cgi → ModuleNotFoundError (модуль удалён из Python 3.13; здесь 3.14.8). В хвосте AGENTS.md это уже отмечено, но скрипт остался в tools/ | tools/review_server.py, проверено запуском | 🟡 | Убрать скрипт в _archives/ или переписать на email.parser/multipart |
| 12 | Страницы тяжелее собственного лимита проекта. voice/00_ГОЛОСОВЫЕ.html — 20,78 МБ, films/07_Chorus_of_Oblivion/00_INDEX.html — 13,92 МБ. Правило: «если страница станет тяжелее ~3 МБ — уменьшать качество вшивания» | voice/00_ГОЛОСОВЫЕ.html, films/07_Chorus_of_Oblivion/00_INDEX.html; правило — в AGENTS.md | 🟠 | Понизить качество/ширину вшивания в media_embed.py для этих двух страниц |
| 13 | Ссылка на несуществующий файл настроек. 10_Studio_Pipeline.md:318 ссылается на ~/.dsh/settings.yaml.imported. В C:\Users\Tony\.dsh\ такого файла нет вообще (есть только profiles/desktop/cordis.patch.yml) | 10_Studio_Pipeline.md:318 | 🟡 | Убрать абзац или переписать под cordis.patch.yml |
| 14 | Устаревшее утверждение в передаче. 00_ПЕРЕДАЧА.md:144: «Костюмов Орлова и Дэй нет ни в одной версии». Фактически существуют films/07_Chorus_of_Oblivion/05_Refs/Characters/1.1.20_ORLOV_costume_v1.png и 1.2.20_DAI_costume_v1.png | 00_ПЕРЕДАЧА.md:144 vs файлы на диске | 🟡 | Обновить пункт 3 списка решений |
| 15 | 4 скрипта печатают русский текст без import _enc. Проверено на практике: python tools/_fix_help.py --help выдаёт битую кодировку (??? ?????: --help в консоли cp1251) | _fix_help.py, _fix_enc.py, _font.py, _debug_vertical.py | 🟡 | Добавить import _enc (правило проекта) либо удалить одноразовые _fix_* |
| 16 | Одноразовые скрипты-правщики остались в tools/ и могут быть запущены повторно. _fix_enc.py переписывает все .py, _fix_help.py вставляет строки в main(), _debug_vertical.py (35 строк) выполняется прямо при импорте, snapshot.py — см. № 1 | tools/_fix_enc.py, _fix_help.py, _debug_vertical.py | 🟡 | Перенести в _archives/oneoff/ |
| 17 | 100 из 242 скриптов не упомянуты ни в одном руководящем документе (AGENTS.md, 00_ПЕРЕДАЧА.md, 10_Studio_Pipeline.md, studio/00_README.md, tools/LESSONS.md, CHANGELOG.md, Movies.md, _actions/*). Примеры: build_hardware_html.py, build_models_prices.py, make_capcut_pack.py, remove_capcut_projects.py, probe_comfyui.py, make_triple_check_input.py | проверено сплошным сопоставлением имён | 🟠 | Реестр инструментов: таблица скрипт → роль → вход/выход → платно/бесплатно |
| 18 | _watch/status.json хранит nav_bad: 35, тогда как check_all.py печатает «без панели: 0». Метрики расходятся | _watch/status.json, tools/watch_html.py:106 | 🟡 | Разобраться, что считает nav_bad, и привести к одному источнику |
C:\Users\Tony\.dsh\.credentials.yaml 538 б (ключ POLZA_API_KEY — в refs)
C:\Users\Tony\.dsh\.anonymous-user-id 37 б
C:\Users\Tony\.dsh\profiles\desktop\cordis.yml 223 б
C:\Users\Tony\.dsh\profiles\desktop\cordis.patch.yml 56 969 б ← единственный файл с настройками
C:\Users\Tony\.dsh\profiles\desktop\package.json 211 б
C:\Users\Tony\.dsh\profiles\desktop\pnpm-workspace.yaml 61 б
C:\Users\Tony\.dsh\llm-deepseek\files-v3.json 96 795 б (кеш каталога файлов, не настройки)C:\Users\Tony\.dsh\ — все файлы конфигурации. Найдено ровно пять (плюс sessions/, cache/, storages/, которые к настройкам агентов не относятся):
Папок skills/, agents/, settings.yaml в ~/.dsh нет (искала обходом всего дерева). Папки .dsh/.agents в E:\AImovies нет тоже.
Пользовательских агентов — 0. В cordis.patch.yml ровно 5 строк (проверено: 5 совпадений ^- id:):
| id | что задаёт |
|---|---|
agent-default-model | provider: deepseek-account, model: deepseek-flash, reasoningEffort: high |
ui-settings-account | профиль интерфейса (purpose/process/completion) |
ui-chat | вид транскрипта |
ui-settings | включены настройки |
llm-pi-ai | провайдер polza: baseURL: https://polza.ai/api/v1, apiKeyEnv: POLZA_API_KEY, 419 моделей (строки 29–1551) |
Пресет агента — один, встроенный: preset-standard (@deepseek-ai/dsh-web-app/presets/standard.patch.yml), реестр пресетов настроен на него: dsh-web-app/cordis.patch.yml:561-565 → default: standard. Своих пресетов в профиле не сохранено (проверено: ни одной строки preset-* в cordis.patch.yml), хотя редактор пресетов в сборке есть (@deepseek-ai/dsh-client-ui-agent-preset).
You are a coding agent powered by the {{model}} model., плюс инструкции рабочей папки (agent-instructions, maxBytes: 65536), pwsh/fs/jobs/skill/todo/web/present, планирование, компакция.subagent (провайдер spawn, продолжаемый, modelSelectionSettings: true), subagent_fork (провайдер fork, продолжаемый), workflow (провайдер spawn). Выключены: tool-ralph, subagent_codex, subagent_claude_code.Error: subagent depth 2 exceeds maxDepth 1; в документации подтверждено: «maxDepth … Host setting (1)» (dsh-tool-subagent/README.md:53). Значит «три независимых взгляда» и любой аудит веером запускаются только из верхней сессии; вложенный веер невозможен.| Проблема | Факт | Серьёзность |
|---|---|---|
| Дублей агентов нет | пользовательских агентов 0, дублировать нечего | — |
| Агентов без описания нет | описаний нет, потому что нет и агентов | — |
| Агентов с ролями нет вообще | все 7 проектных ролей (§ 5) выполняются одной и той же сессией с полным набором инструментов, включая право на платную генерацию | 🟠 |
| Агент с несуществующими моделями — не найден | все 419 id из llm-pi-ai есть в _watch/models.json; дублей id в конфиге — 0 | — |
| Устаревших ссылок в конфиге DSH не найдено | конфиг — только модели и UI; ссылок на файлы нет | — |
| Вложенный веер недоступен | maxDepth = 1 | 🟠 |
AGENTS.md обрезается | см. § 1 № 2 | 🔴 |
C:\Users\Tony\.dsh\skills — не найдено (папки нет).E:\AImovies\.dsh\skills и E:\AImovies\.agents\skills — не найдено (папок нет; .git в проекте тоже нет, поэтому корнем проекта считается текущая папка).~\.agents — не найдено.app.asar) — найдено 8 файлов SKILL.md.Правила поиска (по dsh-skill-filesystem/README.md:46-56) — корни по приоритету: <projectRoot>/.dsh/skills (100) → <projectRoot>/.agents/skills (200) → <dshHome>/skills (400) → <~/.agents>/skills (500). Ищется ровно один уровень: <root>/<имя>/SKILL.md или <root>/<имя>.md; name — kebab-case; description обязателен.
| Скил | Путь в поставке | Frontmatter | Ссылки на файлы | Примеры |
|---|---|---|---|---|
diagnose-windows-sandbox-acl | @deepseek-ai/dsh-sandbox-windows-acl/assets/diagnose-windows-sandbox-acl/SKILL.md | name + description ✅ | 0 | да |
office-docx | @deepseek-ai/dsh-skill-office/assets/office-docx/SKILL.md | ✅ | ../scripts/check_office.py — файл есть | да |
office-pptx | …/assets/office-pptx/SKILL.md | ✅ | то же | да |
office-xlsx | …/assets/office-xlsx/SKILL.md | ✅ | то же | да |
agent-experience | @deepseek-ai/dsh-agent-preset/skills/agent-experience/SKILL.md | ✅ | 0 | нет (1 787 знаков, без блоков кода) |
cordis-composition-reference | …/skills/cordis-composition-reference/SKILL.md | ✅ | references/packages.md — есть | нет |
cordis-plugin-development | …/skills/cordis-plugin-development/SKILL.md | ✅ | 12 ссылок — все найдены | нет блоков кода (только ссылки на ресурсы) |
editing-cordis-compositions | …/skills/editing-cordis-compositions/SKILL.md | ✅ | 0 | да |
В каталоге этой сессии — 4 скила: diagnose-windows-sandbox-acl, office-docx, office-pptx, office-xlsx. 4 скила пакета dsh-agent-preset в каталог не попадают — они лежат в поставке, но в этой сборке агенту не предлагаются.
| Проблема | Факт | Серьёзность |
|---|---|---|
| В проекте AImovies нет ни одного скила | ни E:\AImovies\.dsh\skills, ни .agents\skills, ни ~/.dsh/skills, ни SKILL.md — искала везде. При этом у проекта 242 скрипта и 73 КБ правил, которые не помещаются в инструкции | 🔴 |
| 4 скила поставки не предлагаются | agent-experience, cordis-composition-reference, cordis-plugin-development, editing-cordis-compositions есть на диске, в каталоге сессии их нет | 🟡 |
| 3 скила без примеров использования | agent-experience, cordis-composition-reference, cordis-plugin-development — нет блоков кода/команд | 🟡 |
| Битых ссылок внутри скилов — не найдено | у office-* путь <skill-directory>/../scripts/check_office.py разрешается верно (assets/scripts/check_office.py, 13 217 б) | — |
| Скилов без frontmatter — не найдено | у всех 8 есть name и description | — |
| Дублирующихся скилов — не найдено | назначения не пересекаются | — |
| Скилы DSH не про кино | все 8 — про харнесс и Office; ни один не знает про кадры, канон, CapCut, Polza, FreeVideo | 🟠 |
00_ПЕРЕДАЧА.md, а в AGENTS.md оставить правила (сделаю по твоему слову).films/07_Chorus_of_Oblivion/05_Refs/01_GEN_PACK_P1.html: её сборщика в проекте нет, внутри 8 битых ссылок. Пересобирать (нужен новый сборщик для 07) или исключить из навигации?voice/00_ГОЛОСОВЫЕ.html ≈20 МБ и films/07.../00_INDEX.html ≈14 МБ — понижать качество вшивания?subagent.maxDepth = 1): «три независимых взгляда» и любой веер можно запускать только из верхней сессии. Поднимать до 2?cgi). Он и так не используется — удалить из проекта или оставить как историю?costs.json (3 361,60 ₽, пополнений 0), но платные скрипты кроме семейства part_run туда не пишут. Делать единый журнал?tools/Собрано автоматически 10.10.2026 19:46 из докстрок скриптов: 562 штук, 9 групп. Пересобрать: python tools/build_tools_registry.py --apply.
Столбец «--run» означает, что скрипт сам проверяет флаг подтверждения. Если у платного скрипта стоит «—», запускать его без понимания последствий нельзя.
Полный реестр всех скриптов с описаниями — tools/README.md (99 КБ). Пересобрать: python tools/build_tools_registry.py --apply.