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.