aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

feat(orchestration): execute Slack-authored Jira epics and dependent sub-issues

Aperta
#834 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
adapters enhancement orchestration P1
Lingua principale
TypeScript
Stelle
143
Fork
46
Merge medio
3g 10h
PR unite (30g)
24

Descrizione

## Parent and dependency

Part of #832. Blocked by #833.

## Summary

Turn a ready Slack-to-Jira intake into executable work. Support either a single Jira issue or an automatically inferred epic/parent with dependent sub-issues, while preserving the original Slack requester as the platform task owner.

## Implementation

- Extend the evaluator result with an optional validated work graph:
- parent specification;
- child summaries and descriptions;
- allowlisted issue types;
- dependency edges;
- acceptance criteria per child.
- Allow bgagent to choose single-issue or decomposed execution without human confirmation.
- Reject cycles, invalid references, unmapped projects, unsupported issue types, and cross-repository graphs.
- Extend the Forge proxy with narrowly allowlisted operations for:
- child issue creation;
- parent/sub-issue relationships;
- dependency issue links;
- execution-label updates.
- Materialize the Jira graph only after intake reaches `READY`.
- Extract reusable Jira orchestration seeding from the webhook processor.
- Seed orchestration directly with the Slack requester's platform user ID; do not attribute execution to the Forge app account.
- Reuse the existing orchestration table, dependency release, concurrency controls, stacked branches, reconciliation, and Jira progress behavior.
- Propagate a Slack intake identifier and thread metadata through orchestration parent, child, and task records.
- Transition the intake through `READY`, `RUNNING`, and terminal states using conditional writes.
- React with ⏳ when implementation begins.
- If a new mention arrives while work is running:
- ingest and update Jira immediately;
- persist the request as a queued follow-up;
- dispatch it through `coding/pr-iteration-v1` after the active run terminates.
- Prevent duplicate readiness evaluations, webhooks, or retries from launching duplicate tasks or child graphs.

## Acceptance criteria

- [ ] A ready single-issue intake starts one coding task automatically.
- [ ] A ready large request can create and execute a Jira parent with sub-issues.
- [ ] Dependencies form a validated DAG and control child release order.
- [ ] Independent children may run subject to existing concurrency limits.
- [ ] All executable children resolve to the parent repository.
- [ ] The original Slack requester owns all resulting platform tasks.
- [ ] Forge app attribution does not require a Jira-to-platform user mapping.
- [ ] Existing Jira label-triggered orchestration continues to work.
- [ ] Repeated events cannot duplicate children, orchestration rows, or coding tasks.
- [ ] Requirements arriving during execution are queued rather than injected into the live agent.
- [ ] Queued requirements run as a PR iteration after the active task settles.
- [ ] Orchestration, webhook, store, reconciliation, and integration tests pass.

## Out of scope

- General multi-repository orchestration.
- Human confirmation of the proposed decomposition.
- Live prompt mutation or cancellation of a running task.
- Final dual-surface rendering and scheduled abandonment.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dal webhook processor, dalla orchestration table esistente e dai percorsi di dependency release e reconciliation, quindi esamina il Forge proxy e l’entry point coding/pr-iteration-v1. Usa i test di orchestration, webhook, store, reconciliation e integration per tracciare il comportamento attuale. Il lavoro è completo quando gli intake READY eseguono issue singole o grafi Jira validati senza duplicati, preservano la proprietà del richiedente e accodano i follow-up dopo le esecuzioni attive.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
backend-api-design, devtools, distributed-systems
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
32/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.