Merge pull request 'docs: compact Controller Handoff as default format (#108)' (#115) from docs/issue-108-compact-controller-handoff into master

This commit was merged in pull request #115.
This commit is contained in:
2026-07-02 18:48:34 -05:00
4 changed files with 67 additions and 21 deletions
+20 -11
View File
@@ -364,28 +364,37 @@ touching anything.
files, detected secret, or any production/deploy behavior — **stop, report the files, detected secret, or any production/deploy behavior — **stop, report the
blocker, and take no mutating action.** Fail closed; never work around a gate. blocker, and take no mutating action.** Fail closed; never work around a gate.
## Controller Handoff Summary (required, every task) ## Controller Handoff (required, every task)
Every task — implementation, review, merge, triage, documentation, Every task — implementation, review, merge, triage, documentation,
discussion-only, or blocked planning — **must end with a discussion-only, or blocked planning — **must end with a
`Controller Handoff Summary`** so a controller LLM can pick up the state `Controller Handoff`** so a controller LLM can pick up the state
without rereading the conversation. The canonical format and rules live in the without rereading the conversation. The canonical formats and rules live in
portable skill: the portable skill:
[`../skills/llm-project-workflow/SKILL.md`](../skills/llm-project-workflow/SKILL.md) §K. [`../skills/llm-project-workflow/SKILL.md`](../skills/llm-project-workflow/SKILL.md) §K.
Sections (in order): Work performed · Current state (repo, branch/master **Compact format is the default** — nine lines (`Task / Repo/state /
commit, issue #s, PR #s, complete/blocked/ready-for-review/discussion-only) · Issues/PRs / Changed / Validation / Blockers / Review / Next / Safety`),
Files changed · Validation · Issues encountered · Review needed? (one of the written for controller-LLM readability, not a full human status report. The
five fixed answers) · Next recommended action · Safety confirmations `Safety:` line is never omitted (usually
(no self-review; no self-merge; no release/tag changes unless requested; no `no self-review; no self-merge; no tags; no secrets; no prod`). PR bodies
secrets; no production access unless authorized). still carry the full review detail — the handoff never replaces PR
documentation.
**The long form** (Work performed · Current state · Files changed ·
Validation · Issues encountered · Review needed? · Next recommended action ·
Safety confirmations) **is reserved for high-risk or complex tasks**: a
merge/tag/release happened, validation failed, permissions/profile gates
blocked work, secrets or production access were involved, an owner decision
is complicated, the task spanned multiple repos or cross-issue state, or the
owner explicitly asks for it.
Hard rules: never omit it; never bury blockers earlier only; an opened PR Hard rules: never omit it; never bury blockers earlier only; an opened PR
means "Review needed — PR is open"; a blocked merge names the exact gate; means "Review needed — PR is open"; a blocked merge names the exact gate;
discussion-only comments need owner/design feedback, not code review; any discussion-only comments need owner/design feedback, not code review; any
touched release state names the exact tag/commit and why. Design debates touched release state names the exact tag/commit and why. Design debates
belong in **discussion/RFC issues** (e.g. #100 `profiles.json v2`) — comment belong in **discussion/RFC issues** (e.g. #100 `profiles.json v2`) — comment
on the issue, create no branches/PRs, and end the comment with this summary. on the issue, create no branches/PRs, and end the comment with this handoff.
## Fail-closed behavior ## Fail-closed behavior
+43 -6
View File
@@ -48,7 +48,7 @@ Additional issue-first rules:
the existing one. Design debates belong on the issue, where other LLMs the existing one. Design debates belong on the issue, where other LLMs
comment directly. Discussion-only tasks must **not** create branches or PRs; comment directly. Discussion-only tasks must **not** create branches or PRs;
their comments should include recommendations, risks, open questions, and a their comments should include recommendations, risks, open questions, and a
Controller Handoff Summary (§K). Controller Handoff (§K; compact format unless high-risk).
- **If the repo/tracker home for the work is unclear, stop and ask for an - **If the repo/tracker home for the work is unclear, stop and ask for an
owner decision.** Do not create a new repository or a new tracker unless owner decision.** Do not create a new repository or a new tracker unless
explicitly approved by the owner. explicitly approved by the owner.
@@ -248,16 +248,42 @@ Ready-to-copy templates live in [`templates/`](templates/):
- [`worktree-cleanup.md`](templates/worktree-cleanup.md) — clean up after merge. - [`worktree-cleanup.md`](templates/worktree-cleanup.md) — clean up after merge.
- [`release-tag.md`](templates/release-tag.md) — create a release tag. - [`release-tag.md`](templates/release-tag.md) — create a release tag.
## K. Controller Handoff Summary (required, every task) ## K. Controller Handoff (required, every task)
Every LLM task **must end with a `Controller Handoff Summary`** — whether the Every LLM task **must end with a `Controller Handoff`** — whether the
task was implementation, review, merge, issue triage, documentation, task was implementation, review, merge, issue triage, documentation,
discussion-only, or blocked planning. It lets a controller LLM understand the discussion-only, or blocked planning. It lets a controller LLM understand the
current state immediately, without rereading the conversation. current state immediately, without rereading the conversation.
Rules: **The compact format is the default.** It is written for controller-LLM
readability, not as a full human status report. PR bodies still carry the
full review detail — the handoff never replaces PR documentation.
- Never omit the summary. Compact format (default):
```md
## Controller Handoff
- Task:
- Repo/state:
- Issues/PRs:
- Changed:
- Validation:
- Blockers:
- Review:
- Next:
- Safety:
```
The `Safety:` line is never omitted; it is usually:
```text
no self-review; no self-merge; no tags; no secrets; no prod
```
Rules (both formats):
- Never omit the handoff, and never omit the safety confirmations.
- Never bury blockers in earlier text only — they must appear here. - Never bury blockers in earlier text only — they must appear here.
- If you opened a PR, state clearly that review is needed. - If you opened a PR, state clearly that review is needed.
- If you reviewed but could not merge, name the exact gate that blocked it. - If you reviewed but could not merge, name the exact gate that blocked it.
@@ -269,7 +295,18 @@ Rules:
bypass classifiers, profile gates, missing permissions, or live-consent bypass classifiers, profile gates, missing permissions, or live-consent
requirements**; give the owner concrete options. requirements**; give the owner concrete options.
Required format: **Use the long format below instead of the compact one only when the task was
high-risk or complex** — i.e. when any of these happened:
- a merge, tag, or release
- failed validation
- permissions/profile gates blocked work
- secrets or production access were involved
- a complicated owner decision
- multiple repos or cross-issue state
- the owner explicitly asks for the full format
Long format (high-risk/complex tasks only):
```md ```md
## Controller Handoff Summary ## Controller Handoff Summary
@@ -38,6 +38,6 @@ Steps:
- Eligibility: passed/failed - Eligibility: passed/failed
Handoff: reviewer identity, PR author, scope verdict, checks + results, decision — Handoff: reviewer identity, PR author, scope verdict, checks + results, decision —
formatted as the Controller Handoff Summary (SKILL.md §K); if you could not formatted per SKILL.md §K (compact by default; long form if a merge happened
merge, name the exact gate that blocked it. or a gate blocked you); if you could not merge, name the exact gate.
``` ```
@@ -42,6 +42,6 @@ Steps:
8. Stop before review/merge — you are the author. 8. Stop before review/merge — you are the author.
Handoff: issue #, branch, worktree path, files changed, checks + results, PR URL — Handoff: issue #, branch, worktree path, files changed, checks + results, PR URL —
formatted as the Controller Handoff Summary (SKILL.md §K); end with formatted as the compact Controller Handoff (SKILL.md §K; long form only on
"Review needed — PR is open". the high-risk triggers); Review line: "Review needed — PR is open".
``` ```