AI Agents SDE Task Viewer
      • Context
      • Plan
      • Prd
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-558
  5. plan
  6. plan.md
plan.md(3.5 KB)· Apr 23, 2026· 2 min read
  • Summary
  • Files
  • Steps
  • Verification
  • Risks
  • Assumptions
  • Open Questions

Plan — BJ-18: E2E tier 2d-jira#

Summary#

Add a Jira E2E module to AgentSDE/agent-core-e2e on branch rc/atlassian-integration that drives the full jira:issue_created → comment → transition → jira:issue_updated cycle against the mock Jira server (from #556) using the webhook client (from #555), and asserts postComment and transitionIssue were called in order.

Files#

Path (in agent-core-e2e)ActionPurpose
test/jira/jira.intake-comment-transition.e2e-spec.tscreateScenario spec: webhook → agent run → mock assertions
test/jira/fixtures/issue-created.jsoncreatejira:issue_created webhook payload fixture
test/jira/fixtures/issue-updated.jsoncreatejira:issue_updated webhook payload fixture (user response)
package.jsonmodifyAdd test:module:jira and legacy alias test:tier2d-jira
TEST_MODULES.mdmodifyRegister jira module row + mark as @integration
test/README.mdmodifyAdd JIRA-01 entry under Tier 2 feature coverage

Steps#

  1. Register jira module: add test:module:jira npm script and test:tier2d-jira alias in package.json; add module row and agent-core path mapping (src/jira-adapter/**, src/atlassian/jira.service.ts) to TEST_MODULES.md.
  2. Author fixtures in test/jira/fixtures/ matching the JiraAdapter webhook schema delivered by #555/#556.
  3. Implement scenario spec using test/helpers/webhook-client.ts to POST Jira webhooks to AGENT_CORE_URL, and the mock-server assertion API from #556 to read recorded calls.
  4. Assert: mock received postComment(issueKey, body) then transitionIssue(issueKey, transitionId) in that sequence; task state reaches a completed phase after the issue_updated event.
  5. Tag the describe block @integration @jira and set timeout to 12 min (match intake.happy-path); ensure scenario is skipped with a clear message if mock-server base URL env is unset.
  6. Run npm run test:module:jira against the testing instance (port 8777) and confirm green.

Verification#

  • npm run test:module:jira passes against http://localhost:8777 with mock server running.
  • Mock assertions confirm postComment + transitionIssue call order; failure messages identify which call was missed.
  • No regression: npm run test:module:intake and npm run test:smoke still green.

Risks#

  • Dependencies not yet landed: #550, #551, #555, #556 are all OPEN. This scenario depends on the mock server (#556) and webhook client/fixtures (#555); implementation is blocked until they merge to rc/atlassian-integration.
  • Repo mismatch: issue is filed in agent-core but code lands in agent-core-e2e. Worktree at /home/agent/repos/agent-core is wrong target; delivery must operate on agent-core-e2e at branch rc/atlassian-integration (branch not yet present in the e2e repo remote).

Assumptions#

  • The repo's module-based convention (test/<module>/<module>.<scenario>.e2e-spec.ts) supersedes the issue's legacy test/tiers/2d-jira/ path; a test:tier2d-jira script alias preserves the naming used by EPIC #539.
  • Mock server from #556 exposes an assertion API (recorded-calls endpoint) callable from the spec; if it only logs, the spec will poll the log endpoint.
  • Single basic flow is sufficient for BJ-18; additional variants are tracked separately.

Open Questions#

  • Does rc/atlassian-integration exist in agent-core-e2e, or should the first dependency PR create it? Plan assumes prior wave PRs create it.
ContextPrd