feat: Hookdeck MCP phase 1 - operational analysis#229
Draft
feat: Hookdeck MCP phase 1 - operational analysis#229
Conversation
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
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
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.
No description provided.