Overview
confirm_ready is Enagrams’ test gate. Before you declare your change-set complete, it computes the affected test set from the symbol graph — tests that transitively depend on the symbols you touched — and asks you to run them. On pass the gate writes a sync_log receipt that the auto-sync watcher uses to fan the commit out to other machines.
Two phases:
- First call, no
test_results — gate returns the affected test files + test names. Run them locally.
- Second call with
test_results[] — gate evaluates. On pass it records a sync_log receipt and (if completes_task_id was provided) marks the task done and cascade-unblocks its dependents. On fail it returns structured failures[] including flake status.
Parameters
| Parameter | Type | Required | Description |
|---|
workstream_slug | string | No* | Recommended so the gate can write sync_log |
session_id | string | No | Your agent_sessions.id |
machine_id | string | No | Stable machine id for flake tracking |
touched_files | string[] | No | Files you changed |
touched_symbols | string[] | No | symbol_graph_nodes.id values you changed |
commit_sha | string | No | Commit the tests were run against |
completes_task_id | string | No | If set, closes the task and unblocks dependents on pass |
test_results | object[] | No | Omit on first call; on second call each entry is {test_file,test_name,status,duration_ms?,error_message?,traceback?} |
workstream_slug is not strictly required but without it the gate cannot write a sync_log receipt, so the auto-sync watcher won’t fan the commit out to other machines.
Example — Phase 1 (discover affected tests)
{
"tool": "confirm_ready",
"arguments": {
"workstream_slug": "stripe-subscription-upgrades",
"session_id": "sess_abc",
"touched_files": ["src/billing/stripe.ts", "src/billing/proration.ts"]
}
}
Response:
{
"phase": "discover",
"affected_tests": [
{ "test_file": "tests/billing.test.ts", "test_names": ["proration covers mid-cycle upgrades"] }
]
}
Example — Phase 2 (submit results)
{
"tool": "confirm_ready",
"arguments": {
"workstream_slug": "stripe-subscription-upgrades",
"session_id": "sess_abc",
"machine_id": "mbp-aaron",
"commit_sha": "9f3c1a2",
"completes_task_id": "task_xyz",
"test_results": [
{
"test_file": "tests/billing.test.ts",
"test_name": "proration covers mid-cycle upgrades",
"status": "pass",
"duration_ms": 412
}
]
}
}
Response on pass includes sync_log_id — pass it to sync_commit to link the gate receipt to the git commit.
See test gate for the full model including flake handling.