Discard a suggestion when the ticket changed while classification ran
A customer adds a security-relevant reply while an older billing suggestion is in flight. The old suggestion must not become actionable against the new message revision.
- Focused work estimate
- 3h 30m + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Optimistic concurrency · Transactions · Auditability · Workflow integrity
Estimated field mix
- Backend40%
- Database engineering30%
- Applied AI30%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional software vendor receives billing, account-access, bug, and security reports. A prototype silently moves tickets based on vague model confidence. Replace it with bounded suggestions, deterministic safety rules, and an auditable review flow.
Setup prerequisites
- Create a synthetic support-ticket corpus with no real customer messages.
- Implement a deterministic local classifier double with success, malformed-output, and timeout modes.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- TRIAGE-101 · Define queue labels with examples and an unknown outcome
- TRIAGE-102 · Normalize inbound messages without discarding the original record
- TRIAGE-103 · Route declared security incidents to review before calling a classifier
- TRIAGE-104 · Accept only bounded suggestions from the classifier
- TRIAGE-105 · Show a suggested queue as an explicit agent action
Acceptance criteria
- A suggestion binds ticket ID, message revision, taxonomy version, and provider configuration.
- Persisting or accepting a stale suggestion fails with an explicit revision conflict.
- Concurrent acceptance by two agents creates at most one assignment transition and preserves both attempted-action outcomes.
Implementation constraints
- Enforce revision checks in the service/repository transaction, not only the UI.
- Keep assignment audit records append-only.
Verification to include
- Pause classification, append a reply, then release the provider and confirm the suggestion is stale.
- Race two acceptance requests and assert one transition with an explicit conflict for the loser.
Deliverables
- Revision-safe suggestion lifecycle and race tests
Rollout and recovery
Enable acceptance only after revision checks are active; stale suggestions are regenerated or sent to manual review.
Value of the work
For the engineer: Practice constrained classification, human correction workflows, model versioning, and evaluation under ambiguous inputs.
For the team: Review whether automation saves triage effort while preserving queue ownership and safe escalation.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.