{
"issueNumber": 350,
"branchName": "rc/multi-tenant",
"generatedAt": "2026-04-08T22:10:00Z",
"stories": [
{
"id": "S1",
"title": "Verify and gap-fill PlatformProvider interface with closePR, deleteBranch, postComment methods",
"priority": 1,
"dependsOn": [],
"acceptanceCriteria": [
"PlatformProvider interface defines closePR(owner, repo, prNumber)",
"PlatformProvider interface defines deleteBranch(owner, repo, branch)",
"PlatformProvider interface defines postComment(repo, issueNumber, body)",
"GitHubPlatformProvider implements all three methods"
],
"passes": false,
"completedAt": null
},
{
"id": "S2",
"title": "Update directive.module.ts and directive.service.ts to use PlatformProvider",
"priority": 2,
"dependsOn": [
"S1"
],
"acceptanceCriteria": [
"directive.module.ts imports PlatformModule, not GitHubModule",
"directive.service.ts injects PLATFORM_PROVIDER, not GitHubService",
"All closePR/deleteBranch calls use this.platform.*",
"postRawComment replaced with this.platform.postComment",
"No GitHubService or GitHubModule imports in any directive file"
],
"passes": false,
"completedAt": null
},
{
"id": "S3",
"title": "Update directive.service.spec.ts to mock PlatformProvider instead of GitHubService",
"priority": 3,
"dependsOn": [
"S2"
],
"acceptanceCriteria": [
"Test module provides PLATFORM_PROVIDER token with mock, not GitHubService",
"Mock includes closePR, deleteBranch, and postComment methods",
"All global.fetch comment assertions replaced with platformProvider.postComment assertions",
"All existing tests pass",
"tsc --noEmit passes",
"npm run lint passes"
],
"passes": false,
"completedAt": null
}
]
}