Phase 2 landed each AI feature's core logic with tests. What remains is the wiring that connects them to GitHub events — deliberately grouped here because these all touch the same two files (bin/cli.ts and generateUnifiedWorkflow in src/setup.ts) and doing them separately means editing the same trigger block six times.
Command handlers (#1376)
buddy-bot handle-comment --payload <event.json>CLI entry point- Handlers routing to existing machinery:
review→reviewDiff,rebase→ the rebase path,merge→mergeEligiblePullRequests,fix-ci→attemptFix,remember→addLearning,plan→ the plan touch - 👀 on receipt, ✅/❌ on completion (
POST /issues/comments/{id}/reactions) - Collaborator permission lookup (
GET /repos/{o}/{r}/collaborators/{user}/permission) feedingCommandActor.canWrite
Automatic review (#1375)
pull_request: [opened, ready_for_review, synchronize]trigger, gated onai.review.autoReview- Honour
drafts,ignoreTitleKeywords,ignoreUsernames - Skip when
needsReview(state, headSha)is false
fix-ci (#1381)
workflow_run: [completed]trigger filtered to failures on buddy-bot PRs- Provider method to fetch job logs from the Actions API (the classifier already takes log text)
- Green-base check feeding
failsOnBase - Dependency-PR playbook: feed the PR manifest and release notes into the agent task
Issue enrichment (#1383)
issues: [opened]trigger- Quick-links comment with action checkboxes
- Wire
renderPackageContextto the scanner's dependency list
Finishing touches (#1380)
- Stacked-PR mechanics on the provider (branch off the PR branch, PR targeting its head)
- Verification gate deciding commit vs degrade-to-suggestions
- Consume
parseTouchSelectionsfrom the review comment's checkboxes
Gates (#1382)
- AI checks: linked-issue assessment, custom natural-language assertions
- Post-merge actions: changelog append, comment linked issues, dashboard refresh
pull_request: [opened, synchronize, edited]andpull_request: [closed]triggers
Everything above is additive against shapes that already exist and are tested; none of it requires revisiting a design decision.