Outcome
Let a user turn one sentence in any OpenAgents chat into a scoped forge issue and subscribe to its delivery outcome.
Current behavior
The forge has a public tracker, and #2 plans notifications, but chat cannot record an unmet request as a canonical issue. Requests can remain trapped in conversation history or be copied by hand without their authority and privacy context.
Source: docs/episode-triage.md, episodes 211, 251, and the claim station.
Contract
- Expose one chat tool and matching authenticated API operation.
- Accept the user's problem statement and derive a draft with problem, scope, acceptance criteria, and success metrics.
- Require repository selection and write authority before filing.
- Show a preview before a public external effect unless policy grants a revocable standing permission.
- Preserve source conversation and message identifiers in a private receipt, not in public issue prose.
- Deduplicate likely repeats and let the user link or update an existing issue.
- Subscribe the requester to state changes and shipment evidence through #2.
- Never turn a private conversation into a public issue by default.
Acceptance criteria
- A user can file a valid issue from one chat turn without leaving the conversation.
- The issue becomes the canonical work record and appears through the normal API and project views.
- Public issue text contains no private prompt, trace, credential, or repository metadata.
- A retry returns the same filed issue.
- When verified delivery closes the issue, the requester receives the configured notification and evidence link.
Verification
Test preview, consent, repository authority, deduplication, idempotency, private-source redaction, notification subscription, and browser/API parity. Run mix precommit.
Dependencies
Depends on #2, #9, #35, and the accepted-outcome contract in project 3.
Outcome
Let a user turn one sentence in any OpenAgents chat into a scoped forge issue and subscribe to its delivery outcome.
Current behavior
The forge has a public tracker, and #2 plans notifications, but chat cannot record an unmet request as a canonical issue. Requests can remain trapped in conversation history or be copied by hand without their authority and privacy context.
Source:
docs/episode-triage.md, episodes 211, 251, and the claim station.Contract
Acceptance criteria
Verification
Test preview, consent, repository authority, deduplication, idempotency, private-source redaction, notification subscription, and browser/API parity. Run
mix precommit.Dependencies
Depends on #2, #9, #35, and the accepted-outcome contract in project 3.