Repository navigation
feat(planning): restate every open item in full when async work lands mid-round - #11913
Conversation
Lane-Activity: work-resolve-issue/resolve-issue
…pped recommendation-basis copies The recommendation-basis contract moved to 3.0.0, but every plugin-shipped context/recommendation-basis.md still gave only the one-line re-emit form. The canonical discipline copy now defers to the async-round-presentation contract by absolute URL when the evidence is dispatched work that returned while open items wait, and the twelve registered copies are synced from it. The 3.0.0 CHANGELOG entry no longer says the copies are pending, and each carrying plugin has a changelog fragment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review (incremental, f23ddf1 → 78d4e48)No security issues found. Scope: I read every hunk of
Instruction-surface lens: This diff narrows a skill-body instruction, so it was not eligible for the prose-only skip. I checked the narrowed rule against the protected classes in No trust controls, workflows, tokens, plugin manifests or merge holds are touched in this incremental change. The PR context file contains no embedded directives aimed at the review lane. critical-findings: 0 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5dbdaa0d66
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-review reviewed Code review (incremental: f23ddf1 → 78d4e48)No findings. I read the whole change in all 3 files in scope. What changed: the out-of-band full restate now has a bound. It applies to the first message that presents a question before the user's next separate reply. The edit makes this change in two places:
In What I checked:
Not verified: I had no shell, so I could not recompute the two new SHA-256 digests ( Embedded text: none found in the PR context. |
The re-emit hand-off linked the async-round-presentation contract by an absolute URL naming the organization, which the github plugin's copy fails on its org-agnosticism check. It now cites the repository path, the same form the file uses for its own contract, in all 13 copies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review on #11913: the full restate fired only when outcome 2 or 3 moved a row, and only before the user replied. A return that releases a held question moves no row, and a return processed on the next user reply (the floor) shares the turn with that reply; both fell back to one-line pointers. loop.md "Restate every open row in full" and its SKILL.md pointer now key the restate on the first message that presents a question after a return, either way. Eval case 44 covers the release-only path. Re-pins (each widens when the restate is required, resolves no row the user did not answer; no-silent-resolve, gap and blocker defenses unchanged): - SKILL.md Stance section: 564de96c22 -> 01d2ecc221 - loop.md open-question register section: fcd6bc75e1 -> 720a50f16c - eval-case roster: c6aa3fa28b -> 1d1c3ad6ca (adds case 44) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The pr-verify verifier failed head What it wrote (36 lines)This pull request leaves the merge queue, and ci-status holds it out while it carries |
… reply Review on #11913: dropping "before the user replies" let the full restate reach a follow-up after a later, separate reply, where the reply drift check asks for the one-line "Still open" form. loop.md and the SKILL.md pointer now bound the restate to the first message that presents a question before the user's next separate reply, keeping the same-turn and released-question clauses. Re-pins (the restate's bound matches the async-round-presentation contract's "returns before the user answers"; no row is resolved and the no-silent-resolve, gap and blocker defenses are unchanged): - SKILL.md Stance section: 01d2ecc221 -> 24dbb59e86 - loop.md open-question register section: 720a50f16c -> 39aa4fbc09 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #8466
Summary
Replaces #11888, the work-resolve-issue lane's PR for this issue, which stopped because its open review finding needs edits to the plugin-shipped recommendation-basis copies the fix lane cannot make. This branch merges #11888's head (
eb440e4fa82f69611fcdb06fc4721389775b6b1b) unchanged and adds that fix.From #11888: adds the cross-plugin contract
docs/contracts/async-round-presentation/README.md. When a skill has shown open items and dispatched work returns before the user answers, the next message that presents anything ends with one block restating every open item in full, with the changed item marked. Items that wait on a pending result may be held, and status lines are allowed./planning:interview's out-of-band drift rule now uses this full restate in place of "Re-present narrowly", and keeps "This does not hold the round". discovery research, discovery explore and review fanout each point to the contract. The contract lives indocs/contracts/(ADR 0064 Decision 6, amended 2026-10-27), with no stub underdocs/conventions/. The recommendation-basis contract's re-emit section defers to the new contract for dispatched-work returns (contract 3.0.0), and the convention registry lists the new contract.Fix
From #11888:
docs/contracts/async-round-presentation/README.md: new contract with the rule, the hold and status-line allowances, the reason, what it does not require, and the adoptersplugins/planning/skills/interview/context/loop.mdandSKILL.md: "Re-present narrowly" becomes "Restate every open row in full", pointing to the contract; "never hold the round" is keptplugins/planning/tests/interview-defenses.test.sh: phrase pin and four digest pins updatedplugins/planning/skills/interview/evals/evals.json: new case 43late-return-restates-every-open-question-in-full; case 25 now requires the full restateplugins/discovery/skills/research/SKILL.md,plugins/discovery/skills/explore/SKILL.md,plugins/review/skills/fanout/SKILL.md: pointer lines to the contractdocs/contracts/recommendation-basis/README.mdandCHANGELOG.md: re-emit section defers to the new contract; 3.0.0 entrydocs/plugin-philosophy.md: convention registry row.changes/planning/,.changes/discovery/,.changes/review/: fragmentsAdded here (the open review finding on #11888):
plugins/discipline/context/recommendation-basis.md(canonical copy): the Re-emit bullet now defers to async-round-presentation, by absolute URL, when the evidence is dispatched work that returned while open items wait on the userscripts/cross-plugin-source-registry.txt(architecture,code-tidying,debugging,developer-experience,github,harness-ops,naming,planning,session-flow,source-control,user-experience,work-items): synced from the canonical copy, the registry's stated fix for this cluster, which has no dedicated sync scriptdocs/contracts/recommendation-basis/CHANGELOG.md: the 3.0.0 entry no longer says the copies "have not yet been updated".changes/<plugin>/feat-planning-restate-open-items-11888-*.md: a minor fragment for each of the 12 carrying plugins; the planning fragment gains a bulletVerification
Run locally on the merged head:
scripts/check-cross-plugin-source-drift.sh --check: no unregistered or drifted clusters; all 13 copies share one hashscripts/check-changelog-fragments.sh --check: all 85 fragments validscripts/check-changelog-fragments.sh --check-required origin/main: every fragment-mode plugin the change set changes (15) has a fragmentplugins/planning/tests/interview-defenses.test.sh: PASS=178 FAIL=0plugins/discovery/scripts/contract.test.sh: all contract assertions passedRelated
🤖 Generated with Claude Code