feat(implementation): front-load CI-hygiene and early-push clauses in dispatch brief#849
Conversation
… dispatch brief Fresh dispatched workers repeatedly learned the same PR-contract constraints via red CI instead of the brief: issue-number back-references in code comments, unset exec bits on new shebang files, and pushing late enough that a mid-session death orphans unpushed work. Add three clauses to implement-dispatch's "Compose the brief" step, alongside the existing worktree-cwd clause, and mirror them in Gotchas: no issue-number back-references in code comments (comment-hygiene check), git update-index --chmod=+x before commit for new shebang files (exec-bit check), and commit/ push/open the PR early — before the CI-poll tail. Closes #819 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K1V3gkrfSf75isB8MiDy3o
|
Claude finished @kyle-sexton's task in 1m 16s —— View job PR Review
SummaryClean, well-scoped change. The three new clauses follow the established Findings1. Step 1 is now one very long paragraph (cosmetic) The entire brief-composition instruction is now a single ~1,500-character paragraph. A freshly dispatched orchestrator scanning Step 1 has to read a long run-on to extract the three new clauses. The existing worktree-cwd block is already long, but this pushes it further. Not blocking, and it matches the document's existing style — but if this paragraph continues to grow, consider a nested sub-list (like the integration-table in the same file) to keep each must-clause scannable. 2. "Before the CI-poll tail" — opaque timing marker
3. The entry closes with 4. Gotchas ordering — coherent The three new bullets land between the worktree-cwd gotcha and the scope-fence drift closing bullet. The grouping makes sense: the first four bullets are all "brief every worker to …" dispatch-time concerns, and scope-fence drift is a return-time concern. No issue. 5. Semver bump — appropriate
VerdictApprove. The changes are correct, consistent with the established pattern, and directly address the problem statement. The two phrasing observations above (paragraph length, "CI-poll tail") are suggestions for future polish, not blockers for this PR. |
|
Claude finished @kyle-sexton's task in 1m 0s —— View job Security Review
No security issues found. This PR adds plain-English instruction text to a skill file ( Analysis of each change:
Items checked and not found:
|
|
Post-green review classification (work lane):
No DEFER-FORBIDDEN class applies (doc/prompt-guidance-only change, no behavioral/security surface). No inline review threads to resolve (PR-level comments only). Flipping to ready, handing off to the babysit lane for ongoing watch. |
|
Claude finished @kyle-sexton's task in 1m 35s —— View job PR Review
SummaryClean, targeted change. Three new CI-hygiene clauses follow the Findings1. Brief vs. Gotchas — "CI-poll tail" phrasing asymmetry (cosmetic) The Gotcha rephrases the timing marker as "rather than deferring until its fix-and-verify loop is done" — which is self-contained and concrete. The Step 1 phrase "before the CI-poll tail" requires knowing what the CI-poll tail is. Non-blocking; the Gotcha already provides the clearer explanation. If Step 1 is ever touched again, mirroring the Gotcha's phrasing would improve first-read comprehension for a fresh worker. 2. Step 1 paragraph length — continued growth (cosmetic) The dispatch cadence Step 1 is now a single ~1,800-character sentence covering five mandatory-clause families. Each addition is correct and necessary; the document style is consistent. But if more clauses land here, a nested sub-list (matching the integration table below) would make each 3. No trailing period on Step 1 (matches existing document style — fine) The appended clause ends without a period, consistent with every other step in the "Dispatch cadence" list (items 2–5 all omit terminal periods). No action needed. 4. Prose in a changelog entry, not a code comment. The 5. Line count — confirmed under cap
6. CLAUDE.md / plugin-philosophy compliance — all clear
VerdictApprove. The three clauses are correct, actionable, and aligned with the established worktree-cwd pattern. The two cosmetic observations above are suggestions for future polish, not blockers. Both the security review and prior PR review reached the same conclusion. |
|
Claude finished @kyle-sexton's task in 1m 3s —— View job Security Review
No security issues found. Three changed files, all reviewed:
Items checked and not found:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e791c0baeb
ℹ️ 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".
…rom worker briefs Address two Codex review findings on the implement-dispatch brief clauses: `git update-index --chmod=+x` alone only updates the index and a later `git add` reverts it, so the brief now requires `chmod +x` on the worktree file first, matching the source-control commit skill's documented failure modes. The early-push clause told workers to open a PR before the orchestrator verifies their changes, conflicting with implement Step 5's review/PR flow under user control; workers now stop at commit+push, and PR creation is scoped to the orchestrator's post-verification flow.
|
Claude finished @kyle-sexton's task in 1m 37s —— View job PR Review
SummaryThe two Codex P2 fixes landed correctly in Findings1. exec-bit two-step — correctly fixed Both Step 1 and Gotchas now state 2. PR creation scoped out of worker briefs — correctly fixed Step 1 now ends with "PR creation stays out of the brief: it belongs to the orchestrator's post-verification flow ( 3. CHANGELOG describes final state — appropriate The 4. Line count — confirmed under cap
5. CLAUDE.md compliance — all clear
6. Step 1 paragraph length — cosmetic, noted for future Step 1 is now a single ~2,000-character sentence covering five mandatory-clause families. Each addition is correct. Prior reviews flagged this as a future refactor candidate (nested sub-list, matching the integration table). Not blocking — flagging for the record only. VerdictApprove. Both Codex P2 findings are correctly resolved at |
|
Claude finished @kyle-sexton's task in 1m 1s —— View job Security Review
No security issues found. Three files changed across two commits (
Items checked and not found:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 58aae3c96b
ℹ️ 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".
…ause The exec-bit clause told workers to `chmod +x` and `git update-index --chmod=+x` any new file whose first line is a shebang. Reading that first line follows a symlink, so a newly added symlink to a `#!` target would be caught — but git stages symlinks as mode 120000, `git update-index --chmod=+x` fails outright on one, and chmod could mutate a target outside the repo. Both the Step 1 clause and the Gotchas reminder now scope to new regular files (staged 100644/100755), matching the source-control commit skill's "Skip symlinks first" exec-bit handling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 22s —— View job PR Review
SummaryThree commits, three issues cleanly resolved. The symlink fix in Findings1. Symlink exemption — correctly implemented Step 1 now reads "any new regular file (staged 2. Exec-bit two-step and PR-scoping — carried through correctly The 3. CHANGELOG missing symlink refinement (minor) The 4. Step 1 paragraph length — cosmetic, still non-blocking The dispatch cadence Step 1 is now a single ~2,100-character sentence covering five mandatory-clause families. Each clause is correct and necessary. Prior reviews flagged this for future refactor (nested sub-list matching the integration table below). Still not blocking; noted for the next pass. 5. Line count — under cap 86 lines. The 500-line 6. CLAUDE.md compliance — all clear
VerdictApprove. All Codex P2 findings are correctly resolved across the three commits. The symlink exemption is technically sound, the exec-bit two-step is consistent between Step 1 and Gotchas, and PR creation is cleanly scoped to the orchestrator. Finding #3 (CHANGELOG gap) is the only item worth considering before merge — it's a one-line prose update, not a code change. |
|
Claude finished @kyle-sexton's task in 1m 22s —— View job Security Review
No security issues found. Three files changed across three commits (
Items checked and not found:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 94a15c9785
ℹ️ 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".
…econcile early-push with phase-boundary commit
Address two more Codex review findings on the implement-dispatch brief clauses:
`git update-index --chmod=+x` fails outright on a path not yet in the index
("cannot add to the index"), so the exec-bit clause now requires `git add
<path>` between `chmod +x` and the index override for a brand-new shebang
file. The early-push clause told workers to commit+push source before the
orchestrator's phase-boundary mark-then-commit exists, which Step 4 item 4
reads as forbidden (committing source, then marking DONE in a follow-up
commit); the brief and "Phase boundaries" section now state explicitly that
the worker's early commit is a source-only checkpoint and the phase-boundary
commit becomes plan-marks-only for a dispatched phase, a scoped exception to
inline mode's combined commit.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 780042072e
ℹ️ 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".
…lauses Base-branch drift: origin/main picked up unrelated commits (runner-policy sync, README plugin-listing updates, a shell:bash chore, and more) since this branch forked. Took origin/main's version verbatim for every file this branch doesn't touch (.github/standards/runner-policy/policy.json, README.md, and the rest of the auto-merged tree). The one real conflict was plugins/implementation/CHANGELOG.md: both branches independently bumped the implementation plugin to 0.7.6 for unrelated changes, a version collision. Per this org's collision protocol (serialize + bump past the live claim), bumped this branch's plugin.json to 0.7.7 and gave its CHANGELOG entry its own [0.7.7] section above main's already-landed [0.7.6] entry.
|
Claude finished @kyle-sexton's task in 3m 8s —— View job PR Review
SummaryThis review covers the current HEAD ( Outstanding Codex P2 findings (from
|
|
Claude finished @kyle-sexton's task in 1m 0s —— View job Security Review
No security issues found. Three files changed at HEAD (
Items checked and not found:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4bc827052f
ℹ️ 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".
…spatch-brief-clauses # Conflicts: # plugins/implementation/CHANGELOG.md
|
Post-rebase re-review classification (work lane): Rebased cleanly onto post-#860 main (0.7.6 → 0.7.7). Worker did solid iterative work here beyond a mechanical rebase — Codex's automated pass found real gaps in the new exec-bit clause (worktree/index split, symlink handling, stage-order vs. formatter re-staging) across 3 fix rounds, all resolved except 2 explicitly assessed as non-blocking:
No DEFER-FORBIDDEN class applies. No inline review threads outstanding — all addressed across the fix rounds already reflected in this history. Flipping to ready again, handing off to babysit. |
…f-clauses' into feat/819-implement-dispatch-brief-clauses
|
Claude finished @kyle-sexton's task in 1m 32s —— View job Security Review
No security issues found. Three files changed at HEAD (
Items checked and not found:
The two open Codex P2 findings from the automated pass ( |
|
Claude finished @kyle-sexton's task in 3m 3s —— View job PR Review
SummaryThis review covers HEAD ( Outstanding Codex P2 (from
|
| Finding (round) | Resolution | Status |
|---|---|---|
Worktree exec bit not set (e791c0b) |
chmod +x <path> before git update-index in both Step 1 and Gotchas |
✓ Fixed (58aae3c) |
PR creation in every worker brief (e791c0b) |
PR creation removed from worker briefs; scoped to orchestrator post-verification flow | ✓ Fixed (58aae3c) |
Symlink exemption missing (58aae3c) |
"never a 120000 symlink" guard added in both Step 1 and Gotchas |
✓ Fixed (94a15c9) |
Stage before chmod override (94a15c9) |
git add <path> step inserted between chmod and git update-index |
✓ Fixed (7800420) |
Early-push conflicts with atomic phase commit (94a15c9) |
Phase boundaries section documents two-commit exception; early commit scoped as source-only checkpoint | ✓ Fixed (7800420) |
2. Exec-bit formatter re-staging (previously assessed non-blocking)
Still assessed as non-blocking: on Linux CI hosts chmod +x persists the mode through a formatter run, and the exec-bit check would still catch the failure if it regressed — just one round later. No change from prior assessment.
3. CHANGELOG [0.7.7] — accurate
Describes the final shipped state accurately: three-step exec-bit ordering, symlink exemption, phase-boundary exception, PR-stays-out-of-brief. Prior observation about the missing "regular file" qualifier is resolved. Closes #819 in prose is correct.
4. Version bump 0.7.6 → 0.7.7 — correct
0.7.6 corresponds to the shell: bash declarations that merged via main. This PR correctly advances to 0.7.7 for the CI-hygiene clause additions.
5. Line count — under cap
85 lines. The 500-line skill-quality-gate cap is not a concern.
6. CLAUDE.md compliance — all clear
- Repo-agnostic: all clauses are generic guidance, no hardcoded paths ✓
- Plugin-form-safe: no
${CLAUDE_PLUGIN_ROOT}reach-outs ✓ - Versioned:
0.7.6 → 0.7.7patch bump for guidance-only addition ✓ - No new dependencies, permissions, MCP servers, or external network calls ✓
7. Step 1 paragraph length — cosmetic, noted for future
~2,500-character single sentence covering five mandatory-clause families. Every prior review round flagged this for a future sub-list refactor. Still not blocking.
Verdict
Approve. All prior Codex P2 findings are resolved. The one remaining open finding (source/marks split in dispatched commits) is assessed as PLAUSIBLE but non-blocking — it reflects a narrow failure path already documented in Phase boundaries, and topic-docs.md updating is appropriate follow-up work on main rather than a blocker for this PR. No security issues. No CLAUDE.md violations.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f160665671
ℹ️ 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".
|
This was generated by AI (decide lane — decision-brief pass; parked PR-thread decision surfaced via periodic scan). Decision brief — orchestrator-side worker-commit integration when a worker early-pushes Parking the one unbriefed live finding on thread #discussion_r3624479204 for an author call. This is the only finding on that thread not already covered by a prior disposition (issuecomment-5036980253 / discussion_r3624111040 rule the exec-bit and atomic-commit siblings — not re-briefed here). Problem. This PR's push-early clause has a dispatched worker commit and push its source early ( Today. The skill defines that the worker pushes early and that the phase-boundary commit drops to plan-marks-only, but never defines the orchestrator-side integration step between them. Cadence step 3 verifies the return against direct evidence ( Options (reversibility noted; all are doc-only edits to
Cross-links. #572 (autonomous orchestrator-dispatch lifecycle underspecified — branch/worktree provisioning, PR-creation ownership; this integration protocol is a concrete instance of that gap). #513 / #715 (role-separated worker mini-SDLC / complexity-dispatcher — the same orchestrator↔worker commit-handoff surface). Decision needed: which integration protocol the orchestrator owns. Comment-only park — no thread state changed. |
Summary
Fresh dispatched workers repeatedly learn the same PR-contract constraints via red CI instead of the brief, each costing an extra fix-and-CI round trip.
Fix
Added three clauses to
implement-dispatch's "Compose the brief" step (plugins/implementation/skills/implement-dispatch/SKILL.md), alongside the existing worktree-cwd clause, and mirrored them in Gotchas:comment-hygienecheck flags them;TODO(#issue)is the sanctioned exception).git update-index --chmod=+xbefore the commit that introduces it (theexec-bitcheck flags a tracked shebang file recorded non-executable).Bumped
plugins/implementation/.claude-plugin/plugin.jsonto0.7.6and added aCHANGELOG.mdentry, matching the0.7.4precedent for the same class of change (the worktree-cwd clause).Verification
wc -lconfirmsSKILL.mdstays well under the 500-lineskill-quality-gatecap (85 lines).comment-hygiene,exec-bit), not file-pathed, per the issue's durability requirement.plugins/implementation/before opening this one.Closes #819
Related
0.7.4/ loops/work: Bash tool cwd does not persist across calls despite tool docs — caused a worker's edits to land in the canonical checkout #566 worktree-cwd clause precedent in the same skill🤖 Generated with Claude Code