{
"meta": {
"agent": "planner",
"task_id": "540",
"title": "BJ-0: Add 'jira' to platform unions + audit 'github' hardcodes",
"created_at": "2026-04-23T17:15:00Z"
},
"inputs": [
{
"name": "issue",
"type": "link",
"ref": "AgentSDE/agent-core#540",
"notes": "Wave 0 serial blocker for Atlassian integration epic #539"
},
{
"name": "dispatch-event.dto.ts",
"type": "file",
"ref": "src/webhook/dto/dispatch-event.dto.ts",
"notes": "Defines DispatchEventParams and DispatchEvent with platform union 'github'|'bitbucket'|'gitlab'"
},
{
"name": "tenant-config.interface.ts",
"type": "file",
"ref": "src/tenant/tenant-config.interface.ts",
"notes": "TenantConfig.platform union 'github'|'gitlab'|'bitbucket'"
},
{
"name": "audit-grep",
"type": "log",
"ref": "ripgrep 'platform\\s*===?\\s*[\"']github[\"']' src/",
"notes": "Zero matches across dispatch/, phase-router/, tenant/, invoke/"
}
],
"outputs": [
{
"name": "plan",
"type": "plan",
"format": "md",
"content": "plan.md"
}
],
"files": [
{
"path": "src/webhook/dto/dispatch-event.dto.ts",
"action": "modify",
"reason": "Add 'jira' to platform union (lines 19 and 37)"
},
{
"path": "src/tenant/tenant-config.interface.ts",
"action": "modify",
"reason": "Add 'jira' to TenantConfig.platform union (line 9)"
}
],
"steps": [
{
"id": "S1",
"summary": "Add 'jira' to platform unions in dispatch-event.dto.ts and tenant-config.interface.ts, verify tsc + tests, capture grep report for PR body",
"acceptance": [
"'jira' appears in both union types",
"npx tsc --noEmit passes with zero errors",
"npm run test passes with no changes to existing tests",
"Grep report included in PR body confirming no platform === 'github' equality checks in src/dispatch/, src/phase-router/, src/tenant/, src/invoke/"
],
"depends_on": []
}
],
"risks": [
{
"risk": "Target branch is rc/atlassian-integration but worktree is on rc/multi-tenant",
"mitigation": "Delivery agent must rebase or re-target the PR onto rc/atlassian-integration before merge"
}
],
"assumptions": [
"Pre-existing 'github' literals in tenant-config.service.ts:20 and tenant.module.ts:10 are configuration values (not equality branches) and are out of audit scope",
"The issue references src/phase/ but the actual module in the repo is src/phase-router/ — audit applies to the latter"
],
"open_questions": []
}