Skip to content

docs: add WAIT status for external events without a human gate - #138

Merged
dapi merged 1 commit into
mainfrom
docs/wait-status-for-external-events
Sep 6, 2026
Merged

docs: add WAIT status for external events without a human gate#138
dapi merged 1 commit into
mainfrom
docs/wait-status-for-external-events

Conversation

@dapi

@dapi dapi commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Closes #93.

Проблема

Незавершённый обязательный CI (queued, pending, in_progress) переводил run в HUMAN_GATE, хотя решения человека для его завершения не требуется. Оркестратор останавливался и ждал человека там, где достаточно было опросить проверку повторно.

Показательно, что governance-слой это уже знает: flows/autonomy-boundaries.md прямо перечисляет «CI ещё выполняется или внешний check находится в ожидаемом состоянии WAIT» среди того, что не является Human Gate. Но output contract промпта знал только два состояния, и выразить это правило было нечем.

Что изменено

prompts/PROMPT-005-route-and-deliver-issue.md:

  • Три взаимоисключающих состояния вместо двух: WAIT, HUMAN_GATE, DONE.
  • WAIT — нетерминальная пауза на внешнем событии без действия человека. Он приостанавливает run, не закрывая его; при терминальном результате внешнего события run возвращается в ACTIVE и продолжает с того же exact next action.
  • Run Ledger получает pending_external_event с URL и временем проверки — рядом с blockers и approvals, которые он уже хранит.
  • Граница с HUMAN_GATE названа явно: незавершённый check — внешнее событие, а не запрос решения. HUMAN_GATE уместен, только когда терминальный результат требует человека — например, красный CI, для исправления которого нужен недостающий approval.
  • Ожидание CI исключено из stop conditions.
  • STATUS: WAIT разрешён в финальной строке отчёта, с требованием указать событие, URL и время следующей проверки.
  • Добавлен dry-run случай для pending CI.

Источник

Состояние перенесено из orchestration prompt Merchantly (коммит 29c2f2f, PR #4901), как и просил issue.

Про доступ к каталогу промптов

prompts/** объявлен human-only в AGENTS.md: агент не трогает его как workflow-зависимость, если владелец не попросил напрямую создать или изменить prompt-артефакт. Эта правка сделана по прямой просьбе владельца репозитория.

Проверки

lint шаблона, lint --repo-root ., doctor --profile template, валидатор priming-манифестов, git diff --check — всё зелёное.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RtxeRwhVf1y8zvxUtk6xrS

Незавершённый обязательный CI переводил run в HUMAN_GATE, хотя решения человека
для его завершения не требуется. Оркестратор останавливался и ждал, тогда как
достаточно было опросить проверку повторно.

`autonomy-boundaries.md` уже говорит, что ожидание CI не является Human Gate,
но output contract промпта знал только два состояния, и governance-правило было
нечем выразить.

- completion contract расширен до трёх взаимоисключающих состояний:
  `WAIT`, `HUMAN_GATE`, `DONE`;
- `WAIT` определён как нетерминальная пауза на внешнем событии без действия
  человека; при терминальном результате run возвращается в `ACTIVE` и
  продолжает с того же exact next action;
- Run Ledger получает `pending_external_event` с URL и временем проверки;
- ожидание CI явно исключено из stop conditions;
- `STATUS: WAIT` разрешён в финальной строке отчёта;
- добавлен dry-run случай для pending CI.

Каталог `prompts/**` — human-only по AGENTS.md; правка сделана по прямой просьбе
владельца репозитория.

Closes #93

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RtxeRwhVf1y8zvxUtk6xrS
@dapi
dapi merged commit 8e7f3fd into main Sep 6, 2026
1 check passed
@dapi
dapi deleted the docs/wait-status-for-external-events branch September 6, 2026 12:37
dapi added a commit that referenced this pull request Sep 6, 2026
…bsystem

* origin/main:
  docs: make the review mechanism an explicit, verifiable choice (#139)
  docs: add WAIT status for external events without a human gate (#138)
  docs: bound review convergence across delivery flows (#137)
  chore: pin memory-bank-cli v2.3.0 in CI (#136)
  refactor: make project-local memory bank a projection of the payload (#134)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Добавить статус WAIT для внешних событий без Human Gate

1 participant