배경
mcp/issue-tracker/ 의 GitHub adapter 에 milestone 관련 op 가 누락. 현재 ABC + adapter + MCP tool 의 메타 entity 가 status / type / field 셋만 있고 milestone 은 빠져 있음.
GitHub 의 milestone 은 Project V2 의 field option 이 아닌 repo-level entity (REST /repos/{owner}/{repo}/milestones 또는 GraphQL Milestone). status / type 의 Project field option 패턴과 책임이 달라 별 ops 가 필요.
작업 항목
컨벤션
mcp/CLAUDE.md §0 의 thin bridge 원칙 — GitHub milestone 의 사실을 그대로 노출 (id + title + state). 호출자 (LLM) 가 직접 결정 / create 호출.
관련
- mcp/issue-tracker/adapters/base.py — 4 ops 분리 (ISP) 패턴
- mcp/issue-tracker/adapters/github/status.py — Project field option 패턴 참조 (단 milestone 은 다른 구조)
배경
mcp/issue-tracker/의 GitHub adapter 에 milestone 관련 op 가 누락. 현재 ABC + adapter + MCP tool 의 메타 entity 가 status / type / field 셋만 있고 milestone 은 빠져 있음.GitHub 의 milestone 은 Project V2 의 field option 이 아닌 repo-level entity (REST
/repos/{owner}/{repo}/milestones또는 GraphQLMilestone). status / type 의 Project field option 패턴과 책임이 달라 별 ops 가 필요.작업 항목
shared/issue_tracker/schemas/refs.py에MilestoneRef추가 (id / number / title / state / due_on)mcp/issue-tracker/adapters/base.py에MilestoneOpsABC —list/create/update/close/deleteIssueTracker컴포지트에milestonespropertymcp/issue-tracker/adapters/github/milestone.py— REST 또는 GraphQL 구현체mcp/issue-tracker/adapters/github/adapter.py에 wiringmcp/issue-tracker/tools/milestone.py— MCP 도구 노출 (milestone.list/milestone.create/milestone.update/milestone.close/milestone.delete)dev_team_shared.issue_tracker.IssueTrackerClient에milestonessub-clientshared/issue_tracker/schemas/issue.py의IssueCreate/IssueUpdate에milestone_id필드 (issue ↔ milestone 연결)컨벤션
mcp/CLAUDE.md §0 의 thin bridge 원칙 — GitHub milestone 의 사실을 그대로 노출 (id + title + state). 호출자 (LLM) 가 직접 결정 / create 호출.
관련