aws-samples / aws-samples/sample-autonomous-cloud-coding-agents
feat(adapters): mirror Slack-Jira orchestration lifecycle and harden conversational intake
- Dominant language
- TypeScript
- Stars
- 143
- Forks
- 46
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 20
Description
## Parent and dependency
Part of #832. Blocked by #834.
## Summary
Complete the user-facing lifecycle by mirroring task and orchestration progress across Slack and Jira, adding reactions, clarification reminders, abandonment, production hardening, documentation, and end-to-end coverage.
## Implementation
- Extend fan-out routing so Jira-primary tasks carrying Slack intake metadata also notify their Slack thread.
- Preserve Jira as the durable issue and orchestration surface while Slack presents a concise conversational view.
- Render and deduplicate:
- issue created and linked;
- clarification requested;
- implementation started;
- orchestration progress;
- PR created;
- completed, failed, cancelled, or timed out;
- queued follow-up and follow-up completion.
- Apply Slack reaction transitions:
- 👀 received;
- ❓ awaiting input;
- ⏳ implementing;
- ✅ completed;
- ❌ failed or abandoned.
- Keep Jira comments, workflow transitions, orchestration panels, and PR links consistent with Slack.
- Avoid posting one noisy Slack message per child; maintain or update a concise parent status panel.
- Add a scheduled intake reconciler:
- remind once after 24 hours awaiting input;
- abandon after seven days without a new mention;
- use channel timing overrides when configured;
- conditionally claim reminders and closure to prevent duplicates.
- On abandonment:
- post to Slack and Jira;
- apply ❌ in Slack;
- use the configured Jira transition when available;
- otherwise add an abandonment comment and label;
- retain enough state for audit while preventing execution.
- An abandoned thread starts a new intake rather than silently reusing terminal state.
- Add operational logs and metrics for evaluator failures, Jira mutation failures, intake latency, clarification, abandonment, decomposition, and dual-surface dispatch failures.
- Update Slack and Jira setup guides, architecture/design documentation, permissions, troubleshooting, and generated Starlight mirrors.
- Add end-to-end coverage for the complete intake-to-PR workflow.
## Acceptance criteria
- [ ] Slack and Jira show consistent progress and final results.
- [ ] Reaction transitions are deterministic and retry-safe.
- [ ] Parent and child execution is summarized clearly without notification flooding.
- [ ] Terminal events and PR links are delivered exactly once per surface.
- [ ] A clarification reminder is sent after 24 hours by default.
- [ ] An unanswered intake is abandoned after seven days by default.
- [ ] Jira transition failures degrade to a comment and abandonment label.
- [ ] Queued follow-up status is visible in Slack and Jira.
- [ ] Existing Slack-only and Jira-only notification paths remain compatible.
- [ ] Relevant unit, construct, fan-out, scheduler, and end-to-end tests pass.
- [ ] `mise run build`, `mise run security`, and documentation synchronization pass.
## Out of scope
- Email or additional chat-system mirrors.
- Passive monitoring of Slack conversations.
- Jira Server or Data Center.
- Cross-repository parent orchestration.
Contributor guide
Research direction
This issue is part of #832 and blocked by #834, so resolve those dependencies first. Start by tracing the existing fan-out, Slack/Jira notification paths, and scheduled intake reconciler described here, then run the relevant unit, construct, fan-out, scheduler, and end-to-end tests. Done means the listed Slack and Jira lifecycle, retry, abandonment, compatibility, build, security, and documentation checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, documentation, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100