Isolate
01
A detached Git worktree holds the agent edits.
The task and Kane test are hashed before the run. Changing either one during implementation, repair, or Kane execution stops the run.
01
A detached Git worktree holds the agent edits.

Structured Kane events map each acceptance criterion. An unmapped criterion stays UNVERIFIED and cannot produce VERIFIED.
A confirmed product FAIL comes back to the agent, bounded.
03
Each attempt stores Kane events, logs, and a workspace snapshot.
04
A task needs an id, a title, and at least one acceptance criterion. Explicit criterion IDs map Kane observations back to the contract.
{
"id": "add-task",
"title": "Add a task",
"description": "A user can add a task from the main screen.",
"acceptanceCriteria": [
{ "id": "AC-001", "description": "The task form is visible" },
{ "id": "AC-002", "description": "The new task appears in the list" }
],
"verification": {
"testFile": "tests/add-task_test.md"
}
}| State | Meaning |
|---|---|
| VERIFIED | Kane completed the contract and the repository stayed stable. |
| FAILED | Kane confirmed a product failure, or verify mode finished without a pass. |
| ERROR | The verifier could not establish a product result. |
| Status | Meaning |
|---|---|
| PASS | Structured Kane output passed, and every declared criterion mapped to pass. |
| FAIL | Kane confirmed a product failure. |
| VERIFIER_ERROR | Kane itself could not complete a trustworthy result. |
| INCONCLUSIVE | The response was incomplete, contradictory, or unusable. |