Skip to content
Elenchos

Every attempt leaves a record.

Runs live under .elenchos/runs. The public evidence page is a sanitized FAIL to repair to PASS loop. Private Kane session bundles stay local.

Where evidence lives

.elenchos/runs/<run-id>/
.elenchos/
└── runs/
    └── <run-id>/
        ├── run.json
        ├── attempts/
           ├── 01/
              ├── application.stdout.log
              ├── application.stderr.log
              ├── kane.stdout.ndjson
              └── kane.stderr.log
           └── ...
        └── workspace-evidence/

Elenchos records state transitions, attempt metadata, Kane structured events, mapped criteria, screenshot or dashboard references when Kane reports them, and a workspace patch after a detached worktree run.

Closed-loop proof

Verified locally on August 20, 2026 with Kane CLI 0.8.4 and AGY 1.1.16 using Gemini.

Attempt 1

FAIL

Kane confirmed the add action accepted the name but did not place the task in the list or update the count. AC-001, AC-002, and AC-003 mapped to FAIL.

Repair 1

Gemini

Elenchos sent that structured product-failure evidence to AGY using Gemini. The agent changed only demo/target-app.mjs in the detached worktree.

Attempt 2

PASS

Kane reran the unchanged _test.md contract. All three criteria mapped to PASS. The detached worktree was cleaned after evidence capture.

Public hashes
Run status: VERIFIED
Attempts: 2
Changed file: demo/target-app.mjs
Baseline commit: eaa25ba6d727a45aa09194e4f13fdb9f7986af8c
Kane contract SHA-256: 3e6a018b105155ee470451b74e17ae74080f14dbcdfb8d6da4140835c84ab739
Verified diff SHA-256: 61fb47f7ccd6b50bc8b5157a501e957341f95e5ec5dfa2f50b3617477aeaf184

What is public, what is not

  • EVIDENCE.md in the repository is a sanitized summary with stable hashes.
  • `.elenchos` and `.testmuai` stay out of Git and out of the npm package.
  • Human summaries omit raw evidence paths.
  • MCP status responses are redacted in the same way.

Included demo

The repository ships a small Proofboard-style app. From a clean checkout:

Terminal
npm install
npm run build
npm test
npx elenchos init --force --start "node demo/target-app.mjs" --url http://127.0.0.1:3000 --agent agy
npx elenchos run demo/tasks/add-task.json