refactor(skills): codex-exec переразобран, имена вердиктов по этапам
- Зачем:
- рецепт Кодекса читают в момент сборки команды; пересказы, хеджи и
копии уроков внутри него дают место для импровизации — прогон
2026-07-30 взял `danger-full-access` «на всякий случай» при верном
рецепте.
- вердикты звались по семейству (`review-codex.md`), а Codex ревьюирует
и постановку, и код в одном `$D` — упавший этап 4 оставлял файл этапа
2, и триаж молча чинил по чужому вердикту.
- Что:
- codex-exec.md: удалены копия урока про эффорт (экономика xray, казус
`.dgst`), причинная механика bwrap, повтор про companion и битая
ссылка «в уроках ниже»; три пересказа эскалации сведены в один;
ветка ревьюера стала полноценным рецептом; правила одной ветки
переехали в свои ветки.
- codex-exec.md: сторож зависшего треда — признак жизни это рост
stdout.jsonl, а не статус (урок 2026-07-07 в рецепт не доезжал).
- prompt-templates.md: имена вердиктов и параметров несут этап —
`review-<task|code>-<codex|claude>.md`, `review-<этап>-params.md`.
- model-matrix.md: критерий «цена тихой ошибки этапа» стал единым
источником, claude-agents.md и codex-exec.md на него ссылаются.
- lessons-archive.md: датированное уточнение — ключи `resume` сверены
на 0.145.0, `-m`/`-o`/`--json` доступны вопреки записи 2026-07-21.
- Проверка:
- сверка 51 клаузы по инвентарю (scratchpad), 24 ключевые — grep'ом;
все markdown-ссылки скилла резолвятся.
- сторож прогнан на симуляции трёх исходов: штатное завершение,
зависание на середине, смерть без отчёта.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f650451c5f
commit
abc00a06be
5 files changed
+171
-126
No files matched your search
@@ -45,17 +45,18 @@
|
||||
|
||||
```bash
|
||||
cat "$D/task-body.md" "$P/runtime-language.md" > "$D/task-prompt.md"
|
||||
cat "$D/review-params.md" "$P/line-task.md" "$P/line-taste.md" \
|
||||
cat "$D/review-task-params.md" "$P/line-task.md" "$P/line-taste.md" \
|
||||
"$P/review-boilerplate.md" "$P/runtime-language.md" \
|
||||
> "$D/review-prompt-task.md"
|
||||
cat "$D/review-params.md" "$P/line-code.md" \
|
||||
cat "$D/review-code-params.md" "$P/line-code.md" \
|
||||
"$P/review-boilerplate.md" "$P/runtime-language.md" \
|
||||
> "$D/review-prompt-code.md"
|
||||
# одиночный ревьюер: line-rev.md (+ line-taste.md) -> review-prompt.md
|
||||
# line-taste.md едет с линией уместности — переставь, если её ведёт
|
||||
# другая линия (назначение линий — этап 4 SKILL.md)
|
||||
cat "$P/triage-header.md" "$D/review-codex.md" "$D/review-claude.md" \
|
||||
"$D/notes.md" "$P/runtime-language.md" > "$D/fix-prompt.md"
|
||||
cat "$P/triage-header.md" "$D/review-code-codex.md" \
|
||||
"$D/review-code-claude.md" "$D/notes.md" "$P/runtime-language.md" \
|
||||
> "$D/fix-prompt.md"
|
||||
# notes.md опционален — нет, так не включай
|
||||
cat "$P/recheck-header.md" "$D/recheck-params.md" \
|
||||
"$P/runtime-language.md" > "$D/recheck-prompt.md"
|
||||
@@ -116,21 +117,27 @@ cat "$P/self-review.md" | codex exec resume <thread-id> ...
|
||||
|
||||
## 2. Ревью: общий блок + файл линии
|
||||
|
||||
Общий параметрический блок (`review-params.md`) один на обе линии и не
|
||||
знает, кто его читает; линзу и префикс ID задаёт файл линии, поэтому
|
||||
собранных промптов — по одному на линию, с разными путями. Куда класть
|
||||
вердикт, задаёт обёртка вызова, и пути вердиктов у ревьюеров тоже разные
|
||||
(иначе коллизия). Codex получает свой собранный файл через stdin (вердикт
|
||||
Общий параметрический блок (`review-<этап>-params.md`) один на обе линии
|
||||
этапа и не знает, кто его читает; линзу и префикс ID задаёт файл линии,
|
||||
поэтому собранных промптов — по одному на линию, с разными путями. Куда
|
||||
класть вердикт, задаёт обёртка вызова, и пути вердиктов у ревьюеров тоже
|
||||
разные (иначе коллизия). **Имя несёт и этап** (`task`/`code`), не только
|
||||
семейство: `$D` у задачи один на весь прогон, и с общим именем ревью кода
|
||||
легло бы поверх ревью постановки — а упавшая линия этапа 4 оставила бы
|
||||
файл этапа 2 на месте, и триаж молча ушёл бы чинить по чужому вердикту.
|
||||
Разные имена делают такой отказ громким: сборка `fix-prompt.md` падает на
|
||||
`cat`. Codex получает свой собранный файл через stdin (вердикт
|
||||
= его `-o`-отчёт); Клод-субагенту в prompt — короткая английская обёртка:
|
||||
|
||||
```text
|
||||
Read {{path to this line's review prompt}} and execute it. Working directory:
|
||||
{{repo root}}. Write the findings index to
|
||||
{{$D/review-claude.md}} — it is outside the repo, so the mandate allows
|
||||
it (via Write or a Bash heredoc, whichever you have). Append each finding
|
||||
to that file as you go — incremental writing keeps a partial index alive
|
||||
if the session dies. Keep the index strict: ONE line per finding and per
|
||||
confirmation, as the boilerplate demands — no multi-line entries. Final
|
||||
{{$D/review-<task|code>-claude.md}} — it is outside the repo, so the
|
||||
mandate allows it (via Write or a Bash heredoc, whichever you have).
|
||||
Append each finding to that file as you go — incremental writing keeps a
|
||||
partial index alive if the session dies. Keep the index strict: ONE line
|
||||
per finding and per confirmation, as the boilerplate demands — no
|
||||
multi-line entries. Final
|
||||
message: ONLY the VERDICT line, severity counters and the file path.
|
||||
```
|
||||
|
||||
|
||||
Reference in new issue
Block a user