Plugin System Phase 3: Tracker Slot (#9) - #28
Merged
Conversation
Abstract GitHub gh-CLI behind a TrackerDriver interface mirroring runtime (phase 1) and workspace (phase 2). Thin primitive ops only (no cross-provider enrichment). Hybrid CLI: one-shot actions go through cockpit tracker; poll-github.sh stays raw as the canonical GitHub polling script. Normalized cross-tracker vocabulary in reactions.json deferred — tracked as #27 until a 2nd tracker provider ships.
11-task plan for plugin system phase 3 — tracker abstraction. TDD flow for GitHubDriver + TrackerRegistry + in-memory test driver. Migrates execute-reaction.sh (auto-merge + auto-fix-ci paths) to cockpit tracker. poll-github.sh stays raw per spec §Non-Goals. Plan corrects design-spec error: feedback.ts does NOT use gh issue create (it opens a browser URL); stays untouched in phase 3.
- CLI merge-pr --method now errors on invalid value (was silently normalizing to 'squash'). Matches ReactionRule.merge_method typing. - Registry.forProject throws actionable error pointing to reactions.json when owner/repo missing, instead of opaque 'scope.owner required' from GitHubDriver constructor. - Added test for the new missing-repo error path. Reviewer-flagged Important items #1 and #3.
This was referenced Apr 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 3 of issue #9 (Plugin/Extension System). Abstracts GitHub issue/PR operations behind a `TrackerDriver` interface mirroring phase 1 runtime (PR #20) and phase 2 workspace (PR #26). GitHub is the sole provider; Linear/Jira/GitLab are explicit follow-ups. Per design, polling stays provider-specific (`poll-github.sh` unchanged); only one-shot ops go through the driver.
Spec: `docs/specs/2026-04-21-plugin-system-tracker-design.md`
Plan: `docs/specs/2026-04-21-plugin-system-tracker-plan.md`
What changed
New:
Migrated:
Config (backward compatible):
Docs:
Contract highlights
Intentionally NOT migrated (per spec §Non-Goals)
Test plan
Pre-PR code review
Internal review (superpowers:code-reviewer) approved with 2 Important items, both addressed in commit `7f3c069`:
Other findings (shell-injection surface on `escape()`, runId regex fragility, probeAll bogus scope) tracked for phase-4+ polish; noted in PR comments.
Follow-ups already filed