Skip to content

feat: Hookdeck MCP phase 1 - operational analysis#229

Draft
leggetter wants to merge 11 commits intomainfrom
claude/analyze-hookdeck-mcp-plan-Xe6WQ
Draft

feat: Hookdeck MCP phase 1 - operational analysis#229
leggetter wants to merge 11 commits intomainfrom
claude/analyze-hookdeck-mcp-plan-Xe6WQ

Conversation

@leggetter
Copy link
Collaborator

No description provided.

claude added 3 commits March 5, 2026 13:34
Comprehensive implementation plan mapping all 11 MCP tools to existing
CLI codebase with exact file paths, API client methods, request/response
types, and MCP input schemas. Identifies gaps (issues API client missing)
and surfaces 9 questions covering functionality unknowns, plan
ambiguities, and implementation risks.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
…d OpenAPI spec

- Expand Section 1.2.9 (Issues) with full OpenAPI-derived schema, API client
  code, CLI commands, and MCP tool design
- Rewrite Section 1.2.10 (Metrics) with 7→4 subcommand consolidation and
  CLI-layer routing logic
- Update Section 1.3 (File Structure) with all new/modified/removed files
- Replace resolved Q1-Q3 in Section 2 with updated open questions
- Add OpenAPI spec (2025-07-01) to plans/ for reference

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
Adds a checklist at the top of the plan document breaking Phase 1 into
5 parts: Issues CLI backfill, Metrics consolidation, MCP server skeleton,
MCP tool implementations, and integration testing. Each part lists every
file/task as a checkbox so progress can be tracked across commits.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
@leggetter leggetter marked this pull request as draft March 5, 2026 15:07
claude and others added 8 commits March 5, 2026 15:16
Add full Issues API client and CLI commands:
- pkg/hookdeck/issues.go: Issue types, enums, and 5 API client methods
  (ListIssues, GetIssue, UpdateIssue, DismissIssue, CountIssues)
- pkg/cmd/issue.go: Issue group command (issue/issues aliases)
- pkg/cmd/issue_list.go: List with filters (type, status, trigger, pagination)
- pkg/cmd/issue_get.go: Get single issue by ID
- pkg/cmd/issue_update.go: Update issue status (with validation)
- pkg/cmd/issue_dismiss.go: Dismiss issue (DELETE, with confirmation)
- pkg/cmd/issue_count.go: Count issues with filters
- Register via addIssueCmdTo() in gateway.go
- Mark Part 1 complete in plan progress tracker

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
Covers all 5 issue subcommands:
- Help: verifies all subcommands listed, plural alias works
- List: basic, type/status/limit/order-by filters, JSON output
- Count: basic, type filter, status filter
- Get/Update/Dismiss: argument validation (missing ID, missing status, invalid status)
- Workflow: list → get → update on a real issue (skips if none exist)

Follows the same patterns as metrics_test.go and event_test.go.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
- Single issue_test.go (was issue_0_test, issue_dismiss, issue_resolve)
- Skip 18 tests that use createConnectionWithFailingTransformationAndIssue
  (flaky due to backend timing); 7 stable tests run (help + validation)
- Helpers: createConnectionWithFailingTransformationAndIssue, dismissIssue, Issue type

Made-with: Cursor
Parts 1-3 now include acceptance test tasks, and Part 5 separates
CLI acceptance testing from MCP integration testing.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
Part 2 now explicitly covers verifying --measures/--dimensions on
requests, attempts, and transformations, plus comprehensive acceptance
test updates for the full consolidation from 7 to 4 subcommands.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
Fold queue-depth, pending, and events-by-issue into the events subcommand
with smart routing based on --measures and --dimensions flags:
- queue_depth/max_depth/max_age measures → QueryQueueDepth API
- pending measure with --granularity → QueryEventsPendingTimeseries API
- issue_id dimension or --issue-id → QueryEventsByIssue API
- All other combinations → QueryEventMetrics API (default)

Remove metrics_pending.go, metrics_queue_depth.go, metrics_events_by_issue.go.
Update acceptance tests to cover consolidated routing and verify
--measures/--dimensions on all 4 subcommands.

https://claude.ai/code/session_01Y2eJZgKG78nDyN6Uw2tWQx
…xpand acceptance tests

- Help: user-facing copy for metrics and events (no 'consolidate'); document
  --issue-id required for per-issue in Long and flag help
- Pending timeseries: send measures=count to API (routing keeps --measures pending)
- Events-by-issue: require --issue-id when routing; clear error and help text
- Tests: TestMetricsHelp asserts --start/--end; remove NotContains for old subcommands
- Tests: TestMetricsEventsPerIssueRequiresIssueID (client-side validation)
- Tests: requests/attempts/transformations — output JSON, granularity, one filter each;
  transformations missing start/end validation

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants