Agents

Keep approval attached to the reviewed inspection

P7 became P9 after the review

Botie’s drafted inspection can change while a technician reviews it. Build a gate that keeps the decision attached to the exact proposal and current authority.

BOTIE

The old approval is unexpired and its reviewer is still permitted, but the asset and revision changed. What should the service do?
The inputs we are comparing

Current proposal fields

The unchanged job is still approved

{
  "requestId": "R17",
  "asset": "P7",
  "operation": "inspect",
  "revision": "1"
}

The proposal changed after review

{
  "requestId": "R17",
  "asset": "P9",
  "operation": "inspect",
  "revision": "2"
}

Authoritative approval fixture

Same in both cases

{
  "requestId": "R17",
  "asset": "P7",
  "operation": "inspect",
  "revision": "1",
  "approved": true
}

Current server time

Same in both cases

20

Approval expiry time

Same in both cases

40

Reviewer currently permitted?

Same in both cases

true
Result for the unchanged job is still approved
authorised for this action
Choose an explanation to test
The reviewer’s authority changed while Botie waited

This check uses the pieces from “Bind the review to the proposed inspection”.

BOTIE

The action exactly matches its unexpired approval, but the reviewer is no longer permitted to approve inspections. Predict the route before trying this fresh shift.
Current proposal fields
{
  "requestId": "R21",
  "asset": "P4",
  "operation": "inspect",
  "revision": "2"
}
Authoritative approval fixture
{
  "requestId": "R21",
  "asset": "P4",
  "operation": "inspect",
  "revision": "2",
  "approved": true
}
Current server time
70
Approval expiry time
90
Reviewer currently permitted?
false

Use a number, text, or an array matching the requested result. For a matrix, put each row in brackets. Saving your prediction runs your current construction on these inputs and checks the earlier examples too.

Build a construction in the workspace above first. This case will test those pieces.

Which additional fields would need approval if creating a job also selected a site, schedule and assignee?

Every consequential argument belongs to the approved snapshot. Check that snapshot atomically at the effect boundary.

The records are trusted fixtures. Production approval must be authenticated, stored securely, checked atomically against the effect and paired with idempotent job creation.

Work through the Python challenges →
Continue the courseConnect Botie to Tools with MCP →
← Resume Botie’s Work with LangGraph