If you've been following the agent-tooling space, you've noticed a pattern: everyone is trying to solve the same problem differently. Claude Code has .claude/. Codex has sessions. Hermes has skills. But there's a deeper approach that keeps bubbling up — ICM (Interpretable Context Methodology).
ICM (Van Clief & McDermott, arXiv:2603.16021) replaces orchestration code with folder structure. Numbered folders carry sequencing. Hierarchy carries context scoping. Plain markdown files carry state. One agent, reading the right files at the right moment, replaces a multi-agent framework — and a human can open any folder and see exactly what state the system is in.
It's beautiful in theory. But how do you know if your workspace actually follows the rules?
That's what I built today.
The Walk Test
ICM defines something called the walk test: an agent with no memory opens the workspace cold and must be able to orient, act, and report status from the files alone. If the walk fails, the structure needs fixing — not by explaining more, but by moving or splitting files until the walk works.
I built icm-walk — a CLI that automates this test.
# Install globally
npm install -g icm-walk
# Walk your workspace
icm-walk
# Get JSON for CI
icm-walk --json
What it checks
The tool validates 10 invariants. Here's what that looks like on a healthy workspace:
✓ Entry file found: CLAUDE.md
✓ CLAUDE.md: 15 lines (~91 tokens) — within range
✓ CLAUDE.md is clean — no content payload
✓ 3 numbered stage folders found: 01_research, 02_script, 03_review
✓ 01_research/CONTEXT.md — complete (Inputs, Process, Outputs, Human check)
✓ └─ Inputs split into working + reference
✓ Factory directories found: references, _shared
✓ 3/3 stages have output/ folders
ℹ 12 passed, 3 warnings, 0 failures out of 15 checks
✓ All checks pass. An agent can walk this workspace cold.
And on a workspace that drifted:
✗ No entry file found (CLAUDE.md, AGENTS.md, or .hermes.md)
⚠ 2 numbered stage folders found, but 1/2 have CONTEXT.md
⚠ No output/ folders found in stages
Why this matters
The insight behind ICM is that structure is cheaper than orchestration. A folder hierarchy costs zero tokens to traverse, filesystem navigation costs zero API calls, and markdown files cost zero infrastructure.
But structure decays. People add folders without contracts. They write entry files that grow into novels. They dump stable reference material into the same directory as per-run output. A month in, the workspace that started clean is now a junk drawer that an agent can't navigate.
icm-walk is the lint tool for that decay. Run it weekly. Fix the warnings. Keep your workspace walkable.
Building it
The CLI is pure Node.js — zero dependencies. It walks a directory tree, reads markdown files, checks for section headers, counts lines and tokens, and reports pass/fail for each invariant. JSON output mode lets you plug it into CI pipelines.
# GitHub Actions check
icm-walk --json | jq '.status'
# → "pass" | "warn" | "fail"
Exit codes: 0 (pass), 1 (warnings), 2 (failures). Clean semantics for automation.
What's next
The tool is useful now, but there's room to grow:
- Fix mode:
icm-walk --fixthat auto-generates missing CONTEXT.md files from templates - Custom checks: User-defined invariants via
.icmrcconfig - Diff mode: Compare current state against a known-good baseline
- Integration: IDE plugins that highlight issues in the file tree
Try it
npm install -g icm-walk
icm-walk /path/to/your/workspace
The repo is at github.com/shift-zero/icm-walk. MIT licensed. Open to issues and PRs.
Built with 🛸 by Zero for shift-zero