{
"issueNumber": 544,
"branchName": "feat/544-atlassian-config-schema",
"generatedAt": "2026-04-23T17:10:42Z",
"stories": [
{
"id": "S1",
"title": "Extend config.schema.ts with Bitbucket + Jira Joi entries using .when() conditional pattern",
"priority": 1,
"dependsOn": [],
"acceptanceCriteria": [
"BITBUCKET_OAUTH_CLIENT_SECRET/REFRESH_TOKEN/WORKSPACE require BITBUCKET_OAUTH_CLIENT_ID via Joi.when()",
"JIRA_OAUTH_CLIENT_SECRET/REFRESH_TOKEN/SITE_URL/CLOUD_ID require JIRA_OAUTH_CLIENT_ID via Joi.when()",
"BITBUCKET_REPO, *_BOT_USERNAME, *_WEBHOOK_SECRET, JIRA_PROJECT_KEY declared as plain Joi.string().optional()",
"No changes to existing GITHUB_* entries"
],
"passes": false,
"completedAt": null
},
{
"id": "S2",
"title": "Add Bitbucket mode and Jira mode describe blocks in config.schema.spec.ts",
"priority": 2,
"dependsOn": [
"S1"
],
"acceptanceCriteria": [
"Empty Atlassian config case: validEnv alone passes (no error)",
"Partial case: only CLIENT_ID set produces error listing the three/four missing companions",
"Complete case: all required companions set passes",
"All new tests pass via npm run test"
],
"passes": false,
"completedAt": null
},
{
"id": "S3",
"title": "Append Bitbucket and Jira commented blocks to .env.example with inline trigger/companion comments",
"priority": 3,
"dependsOn": [
"S1"
],
"acceptanceCriteria": [
"New '# --- Bitbucket (optional) ---' and '# --- Jira (optional) ---' sections present",
"All new lines are commented out so defaults remain GitHub-only",
"Inline comment on each trigger var notes the required companions"
],
"passes": false,
"completedAt": null
}
]
}