refund-agent-v2
require-payment-refund-a4f9c9ee violated
What failed
- Severity
- HIGH
- Zero tolerance
- no
- Violation type
- REQUIRED SPAN TOO MANY
- Summary
- payment.refund occurred 2 times; the contract permits at most 1.
- Expected
- at most 1
- Observed
- 2
Observed route
The route this run actually took. A step is marked as evidence only when the deterministic evaluator named its canonical index — nothing here searches for a step that merely looks similar.
| Evidence | Value | Role |
|---|---|---|
| canonical step | payment.refund | PROVES THIS VIOLATION |
| canonical node | 1 | PROVES THIS VIOLATION |
| canonical node | 6 | PROVES THIS VIOLATION |
| span | 3fc078a0f55780df | PROVES THIS VIOLATION |
| span | 712f5d779becce3f | PROVES THIS VIOLATION |
| Step | Service | Side effect | Evidence |
|---|---|---|---|
| refund.request | flightrules-demo-agent | none | — |
| payment.refund | flightrules-demo-agent | write | NAMED BY THE EVALUATOR |
| customer.notify | flightrules-demo-agent | external | — |
| customer.notify.handler | flightrules-notification-service | external | — |
| order.lookup | flightrules-demo-agent | read | — |
| order.lookup.handler | flightrules-order-service | read | — |
| payment.refund | flightrules-demo-agent | write | NAMED BY THE EVALUATOR |
| payment.refund.handler | flightrules-payment-service | write | — |
Approved route
The approved route family this run was judged against, as the contract's baseline recorded it.
| Step | Service | Kind | Tool | Side effect | Data domain | Attempt | Follows |
|---|---|---|---|---|---|---|---|
| refund.request | flightrules-demo-agent | Server | — | none | — | 1 | — |
| refund.calculate | flightrules-demo-agent | Client | calculate_refund | none | payments | 1 | refund.request |
| customer.notify | flightrules-demo-agent | Client | notify_customer | external | messaging | 1 | refund.request |
| customer.notify.handler | flightrules-notification-service | Server | — | external | messaging | 1 | customer.notify |
| fraud.check | flightrules-demo-agent | Client | check_fraud | read | risk | 1 | refund.request |
| fraud.check.handler | flightrules-fraud-service | Server | — | read | risk | 1 | fraud.check |
| order.lookup | flightrules-demo-agent | Client | lookup_order | read | orders | 1 | refund.request |
| order.lookup.handler | flightrules-order-service | Server | — | read | orders | 1 | order.lookup |
| policy.retrieve | flightrules-demo-agent | Client | retrieve_policy | read | policy | 1 | refund.request |
| policy.retrieve.handler | flightrules-policy-service | Server | — | read | policy | 1 | policy.retrieve |
| payment.refund | flightrules-demo-agent | Client | issue_refund | write | payments | 1 | refund.request |
| payment.refund.handler | flightrules-payment-service | Server | — | write | payments | 1 | payment.refund |
Trace evidence
- Trace
- f3b7a7d6f7b254169c169530df19b251
- Spans
- 3fc078a0f55780df, 712f5d779becce3f
- SigNoz
- no deep link was recorded
Correlated logs
Fetched from SigNoz on request, correlated strictly by this violation's trace identifier — never by a time window or a service name, either of which would attach another run's logs to this finding.
Downstream metrics
What this violation actually caused, and — just as importantly — what kind of claim each number is. FlightRules reports what it measured and what the evaluator observed. It does not estimate a financial loss, because the telemetry does not show one.
- Result
- OK
| Metric | Kind of claim | Meaning | Observations | Latest value |
|---|---|---|---|---|
| flight_rules.violations | MEASURED | Measured. FlightRules recorded this number itself. | 59 | 0 |
Release context
- Release
- refund-agent-v2
- Contract
- 019fa000-1484-718f-a748-2f040a8afab5 0.1.0
- Contract hash
- 2a714715d8f5b3ce28dd9e062f608d799cfb0aa2197a58ce48d8ca2a01a8d513
Rule definition
- Rule
- require-payment-refund-a4f9c9ee
- Rule type
- required span
- Violation key
- require-payment-refund-a4f9c9ee:REQUIRED_SPAN_TOO_MANY:36661d3f3cb05137
Evaluation record
- Run evaluation
- 019fa006-4925-71fc-8d84-d5f4d3679024
- Evaluator version
- 1.0.0
- Evaluated at
- 2026-07-26 20:03:14
- Recorded at
- 2026-07-26 20:03:14
Evidence summary
A deterministic, safe summary for an issue or a review. It carries identifiers, hashes and the evaluator's own expected-versus-observed statement, and no prompt, tool argument, tool result or customer field — because it is assembled from fields that carry none.
A violation is never dismissed. A new contract version, or an explicit fixture exclusion, is the only way to change this outcome, and both write an audit record.