{
"issueNumber": 550,
"branchName": "rc/atlassian-integration",
"generatedAt": "2026-04-23T17:13:00Z",
"stories": [
{
"id": "S1",
"title": "Platform-switched env pass-through in ClaudeInvocationService",
"priority": 1,
"dependsOn": [],
"acceptanceCriteria": [
"ClaudeInvocationService injects PlatformAuthProvider[] via PLATFORM_AUTH_PROVIDERS and selects by .platform === env.PLATFORM",
"Unknown platform throws a descriptive Error at invocation time",
"github path emits identical queue payload env shape as before (regression test passes)",
"bitbucket selection emits BITBUCKET_TOKEN, BITBUCKET_BOT_USERNAME, BITBUCKET_WORKSPACE, BITBUCKET_REPO plus PLATFORM=bitbucket",
"jira selection emits JIRA_TOKEN, JIRA_BOT_USERNAME, JIRA_SITE_URL, JIRA_CLOUD_ID, JIRA_PROJECT_KEY plus PLATFORM=jira",
"authProvider.getToken() is invoked on every invoke() call (not cached at construction)",
"phase-router buildEnv() sets env.PLATFORM = task.platform ?? 'github'",
"npm run test, npm run lint, npm run build all green"
],
"passes": false,
"completedAt": null
}
]
}