ADR 0026: stage-based dispatch for agent workflow decoupling - #474
Conversation
Site previewPreview: https://f86c3a71-site.fullsend-ai.workers.dev Commit: |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65d1659 to
d2b7e9f
Compare
There was a problem hiding this comment.
Review: #474
Head SHA: d2b7e9f
Timestamp: 2026-04-28T00:00:00Z
Outcome: comment-only
Summary
This ADR is well-structured, accurately references the relevant prior decisions (ADRs 0008, 0009, 0018, 0020), and correctly documents the dispatch architecture from PR #390. The scope is appropriate — documentation only. Two minor style observations worth noting but neither blocks approval.
Findings
Medium
None
Low
-
[style/conventions]
docs/ADRs/0026-repository-dispatch-for-agent-workflow-decoupling.md— Missing the freeze comment block from the ADR template. The template includes<!-- Once this ADR is Accepted, its content is frozen. ... -->after the Status section. Most ADRs in the repo include this comment. Consider adding it for consistency.
Remediation: Add the freeze comment block after the## Status/Proposedline, matching the template in0000-adr-template.md. -
[style/conventions]
docs/ADRs/0026-repository-dispatch-for-agent-workflow-decoupling.md:32— Minor punctuation: the sentence ending "every enrolled repo's shim must be updated and redeployed" is missing a period before the issue link parenthetical.
Remediation: Add a period after "redeployed" (before the parenthetical link).
Info
- [intent-alignment] PR #390 (the referenced implementation) is still open/unmerged. This is fine for a "Proposed" ADR but worth noting — the ADR and implementation should land in coordination.
Footer
Outcome: comment-only
This review applies to SHA d2b7e9f944b2a24493235fbabf79b134d2a91f67. Any push to the PR head clears this review and requires a new evaluation.
Implementation Divergence in PR #390This ADR describes using What ADR 0026 Describes:# dispatch-agent.yml emits repository_dispatch
- uses: peter-evans/repository-dispatch@v2
with:
event-type: fullsend-triage
# Agent workflows subscribe
on:
repository_dispatch:
types: [fullsend-triage]What PR #390 Implements:# dispatch.yml scans for stage markers
workflow_stage=$(grep -E '^# fullsend-stage:' "$workflow" ...)
# dispatch.yml triggers via workflow_dispatch
gh workflow run "$workflow_name" \
-f event_type="$EVENT_TYPE" \
-f source_repo="$SOURCE_REPO"
# Agent workflows use workflow_dispatch
on:
workflow_dispatch:
inputs:
event_type: ...The implementation uses:
Should the ADR be updated to match the implementation, or should the implementation be changed to use See comparison details in PR #390 comment. |
ggallen
left a comment
There was a problem hiding this comment.
Review: ADR against PR #390 implementation
Approval conditional on fixing the title mismatch noted below.
PR #390 has been merged (2026-04-30). The ADR content accurately describes the implementation, but the title is incorrect.
Required change before merge
Title mismatch: The ADR filename and frontmatter title say "repository_dispatch for agent workflow decoupling" but the actual implementation uses workflow_dispatch, not repository_dispatch.
Evidence:
dispatch.ymluseson: workflow_dispatch:(line 5)- Option C (the chosen option) explicitly uses
workflow_dispatchandgh workflow run - Option B uses
repository_dispatchbut was rejected
Fix needed: Update the filename and title to reflect workflow_dispatch, e.g.:
- Filename:
0026-stage-based-dispatch-for-agent-workflow-decoupling.md - Title: "Stage-based dispatch for agent workflow decoupling" or similar
Content accuracy
The ADR content is correct:
- ✅ Correctly describes Option C (stage-marker scanning with
gh workflow run) - ✅ Correctly documents the
# fullsend-stage:marker convention - ✅ Correctly notes that
workflow_dispatchis the sole trigger model - ✅ Correctly describes the shim calling with a
stageparameter - ✅ Accurately describes trade-offs vs Option B (
repository_dispatch)
Additional note
ADR number 0026 may conflict with another pending ADR on branch fullsend-on-gitlab. If that merges first, this will need renumbering (the renumber-adr skill can help).
Minor style issues (optional)
The review bot noted two low-severity items that are optional:
- Missing freeze comment block after Status section
- Missing period after "redeployed" on line 32
Approval is conditional: Once the title/filename is updated to reflect workflow_dispatch (not repository_dispatch), this ADR will be ready to merge.
Rename file and title from "repository_dispatch" to "stage-based dispatch" to match the actual implementation (Option C uses workflow_dispatch with stage-marker scanning, not repository_dispatch). Mark status as Accepted now that PR fullsend-ai#390 has merged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3f8812f to
6c28ea0
Compare
|
@ggallen Addressed your review:
Skipped the freeze comment block per our convention for this repo. ADR number conflict with |
Review: #474Head SHA: 6c28ea0 SummaryThis PR adds ADR 0026 documenting the dispatch architecture implemented in PR #390. The ADR is well-structured, presents three options with clear trade-offs, and the decision rationale for Option C (stage-marker scanning) is well-argued. There are no correctness, security, or injection concerns — this is a documentation-only change. Two medium findings are noted: the PR title references FindingsMedium
Info
FooterOutcome: comment-only |
Summary
repository_dispatchas an indirection layer between shim workflows and agent workflows, decoupling enrolled repos from the agent inventoryworkflow_dispatch(status quo) vs dispatcher withrepository_dispatchRelates to #335, PR #390
Test plan
make lintpasses🤖 Generated with Claude Code