Build a useful investigation brief
Prepare known terminal combinations
Create sanitized batches for all-success, one failure, one skip, one cancellation, and an item with no result. Record the intended batch decision for each. Keep the item identities stable so a count can be reconciled with the ledger rather than guessed from logs.
Trace aggregation inputs and outputs
Capture the item states entering aggregation, the computed counts, stored batch status, and the data read by the downstream gate. Check whether retries replace failures, whether skips count as success, and whether missing rows are treated as finished.
Change one aggregation rule
Test one explicit terminal policy against the same outcome matrix while leaving the consumer unchanged. Compare displayed status and downstream eligibility. If the gate remains unsafe after correct aggregation, narrow the brief to its own completion predicate.
What to carry forward
Deliver a matrix-backed brief naming each outcome, aggregation predicate, stored status, and downstream gate result. Show the first divergence and one controlled comparison. The proposed work is bounded only when missing results, skipped work, and retry history have an explicit treatment.
Technical background: Celery documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow