{
"meta": {
"agent": "planner",
"task_id": "345",
"title": "MT-1: Create PlatformProvider interface + GitHubPlatformProvider",
"created_at": "2026-04-08T22:10:00Z"
},
"inputs": [
{
"name": "issue-345",
"type": "context",
"ref": "https://github.com/AgentSDE/agent-core/issues/345",
"notes": "Wave 1 foundation for multi-tenant initiative"
},
{
"name": "github-service",
"type": "file",
"ref": "src/github/github.service.ts",
"notes": "Source of truth for public API — 17 methods across 6 groups"
},
{
"name": "github-module",
"type": "file",
"ref": "src/github/github.module.ts",
"notes": "Existing module to import in PlatformModule"
}
],
"outputs": [
{
"name": "plan",
"type": "plan",
"format": "md",
"content": "plan.md"
}
],
"files": [
{
"path": "src/platform/platform-provider.interface.ts",
"action": "create",
"reason": "PlatformProvider interface + PLATFORM_PROVIDER symbol"
},
{
"path": "src/platform/github/github-platform.provider.ts",
"action": "create",
"reason": "GitHubPlatformProvider delegation wrapper"
},
{
"path": "src/platform/platform.module.ts",
"action": "create",
"reason": "NestJS module wiring"
},
{
"path": "src/platform/github/github-platform.provider.spec.ts",
"action": "create",
"reason": "Unit tests for delegation"
}
],
"steps": [
{
"id": "S1",
"summary": "Create PlatformProvider interface and PLATFORM_PROVIDER token mirroring GitHubService public API",
"acceptance": [
"src/platform/platform-provider.interface.ts exists",
"Interface has all 17 public method signatures from GitHubService",
"setProjectItemStatus is marked optional (?)",
"PLATFORM_PROVIDER symbol is exported",
"readonly platform: string property exists"
],
"depends_on": []
},
{
"id": "S2",
"summary": "Create GitHubPlatformProvider, PlatformModule, and unit tests",
"acceptance": [
"GitHubPlatformProvider implements PlatformProvider and delegates all calls to GitHubService",
"PlatformModule imports GitHubModule, provides and exports PLATFORM_PROVIDER",
"Unit tests verify delegation for all 17 methods",
"tsc --noEmit passes",
"npm run lint passes with zero warnings",
"No existing files modified"
],
"depends_on": [
"S1"
]
}
],
"risks": [
{
"risk": "GitHubService API drift on rc/multi-tenant before merge",
"mitigation": "Verify signatures against HEAD at implementation time"
}
],
"assumptions": [
"GitHubService public API is stable on rc/multi-tenant for the duration of this task",
"No existing consumers need to be migrated in this issue"
],
"open_questions": []
}