Skip to content

Port Map

Hexagonal boundaries. Each *Port Protocol with its concrete adapter(s) and fake (per ADR-0047). Ports without a fake are flagged ⚠️ — fakes are required for scenario testing.

graph LR
    IssueFetcherPort --> IssueFetcher
    IssueFetcherPort -.-> FakeIssueFetcher
    IssueStorePort --> CachingIssueStore
    IssueStorePort --> IssueStore
    IssueStorePort -.-> FakeIssueStore
    PRPort --> PRManager
    PRPort -.-> FakePR
    ReviewInsightStorePort --> ReviewInsightStore
    RouteBackCounterPort --> RouteBackStateMixin
    WorkspacePort --> WorkspaceManager
    WorkspacePort -.-> FakeWorkspace

Details

AgentPort

  • Module: src.ports
  • Methods: _build_command, _execute, _verify_result
  • Adapters: —
  • Fake: ⚠️ no fake (every Port needs a fake per ADR-0047)

IssueFetcherPort

  • Module: src.ports
  • Methods: fetch_issue_by_number, fetch_issues_by_labels
  • Adapters:
  • IssueFetcher (src.issue_fetcher)
  • Fake: FakeIssueFetcher (mockworld.fakes.fake_issue_fetcher)

IssueStorePort

  • Module: src.ports
  • Methods: enqueue_transition, enrich_with_comments, get_implementable, get_plannable, get_reviewable, get_triageable, is_active, mark_active, mark_complete, mark_merged, release_in_flight
  • Adapters:
  • CachingIssueStore (src.caching_issue_store)
  • IssueStore (src.issue_store)
  • Fake: FakeIssueStore (mockworld.fakes.fake_issue_store)

ObservabilityPort

  • Module: src.ports
  • Methods: breadcrumb, capture_exception, flush
  • Adapters: —
  • Fake: ⚠️ no fake (every Port needs a fake per ADR-0047)

PRPort

  • Module: src.ports
  • Methods: add_labels, add_pr_labels, branch_has_diff_from_main, close_issue, close_task, create_issue, create_pr, create_promotion_pr, create_rc_branch, create_task, delete_branch, expected_pr_title, fetch_ci_failure_logs, fetch_code_scanning_alerts, find_existing_issue, find_open_pr_for_branch, find_open_promotion_pr, get_dependabot_alerts, get_issue_state, get_issue_updated_at, get_latest_ci_status, get_pr_approvers, get_pr_diff, get_pr_diff_names, get_pr_head_sha, get_pr_mergeable, list_closed_issues_by_label, list_hitl_items, list_issue_comments, list_issues_by_label, list_prs_by_label, list_rc_branches, merge_pr, merge_promotion_pr, post_comment, post_pr_comment, pull_main, push_branch, remove_label, remove_pr_label, submit_review, swap_pipeline_labels, transition, update_issue_body, update_pr_title, upload_screenshot, wait_for_ci
  • Adapters:
  • PRManager (src.pr_manager)
  • Fake: FakePR (mockworld.fakes.fake_github)

ReviewInsightStorePort

  • Module: src.ports
  • Methods: append_review, get_proposed_categories, load_proposal_metadata, load_recent, mark_category_proposed, record_proposal, update_proposal_verified
  • Adapters:
  • ReviewInsightStore (src.review_insights)
  • Fake: ⚠️ no fake (every Port needs a fake per ADR-0047)

RouteBackCounterPort

  • Module: src.route_back
  • Methods: decrement_route_back_count, get_route_back_count, increment_route_back_count
  • Adapters:
  • RouteBackStateMixin (src.state._route_back)
  • Fake: ⚠️ no fake (every Port needs a fake per ADR-0047)

WorkspacePort

  • Module: src.ports
  • Methods: abort_merge, create, destroy, destroy_all, get_conflicting_files, merge_main, post_work_cleanup, reset_to_main, start_merge_main
  • Adapters:
  • WorkspaceManager (src.workspace)
  • Fake: FakeWorkspace (mockworld.fakes.fake_workspace)

Regenerated from commit 692dc64 on 2026-05-03 04:47 UTC. Source last changed at 692dc64. Status: 🟢 fresh.