Skip to content

Repository files navigation

⌖ ISE — Ideal State Engine

ISE carries an AI agent's work from current state → ideal state through verifiable iteration — supplying the two faculties a model still can't self-impose, and nothing it can.

mission license status wires core

What & Why · Philosophy · Three Organs · The ISA Contract · Measurement · Quickstart · Layout


What & Why

AI agents get more capable every month — but two gaps don't close with scale:

  1. They don't remember. Each session starts cold. What worked last week, the dead-ends already hit, the standard that got tightened — gone by the next window.
  2. They narrativize "done." Ask a model whether the task is complete and it will argue yes, persuasively — usually without a test that could have proven it wrong. Generation gets more convincing with scale; ground-truth does not.

ISE supplies exactly those two missing faculties — durable memory and disciplined falsification — plus a third that compounds them, assimilation (take a working part from anywhere and wire it in). It deliberately supplies nothing a model can already do for itself.

ISE is a guest, not a host. Claude Code is the engine — loop, tools, subagents, context, permissions. ISE is the thin discipline layer riding on it: a protocol + validators, not a runtime. Every mechanism maps to a native lever (hooks, skills, MCP), and every part is built to fall away as a smarter model renders it unnecessary — the framework is designed to lose weight, not accrete it.

Philosophy

A statement of "done" is real only if you can name the single probe that would prove it false.

If you can't name the test, you don't have a criterion — you have a wish. Models are fluent at the wish. So ISE makes "done" falsifiable: every criterion carries one binary probe, and work stays not-done until a disprove-it attempt fails. A verifier beats a plausible claim.

Falsification becomes more valuable as models improve, not less. Scale closes the gap between a convincing draw and a real one — so the check, not the drawing, is where the truth still lives.

The convergent archetype is Ansel Adams' Zone System: previsualize the ideal, define the zones (criteria), execute, verify against the previsualization. Borrowed ideas enter as conjectures and earn "fact" only by surviving a probe — and for an assimilated tool, the probe is reading its source, not its README.

Three Organs

The whole core is three organs, each wired to a native Claude Code lever.

Organ Mechanism What it does
1 · Memory append-only ledger (~/.ise/ledger.jsonl) + momento recall Every closure records outcome + what-was-learned as cross-session, cross-project memory. The anti-cold-start layer: the DOS memory-management playbook (overlays → load-just-in-time, paging → retrieval) applied to the context window.
2 · Falsification the ISA contract + a probe-runner hook "Done" is a document whose every criterion names its refuting probe. A PreToolUse gate refuses to save an ISA with fake/missing probes — the discipline is enforced, not asserted.
3 · Assimilation /recon-mine → the /assimilate loop Mine any source (repo, thread, tool) for a load-bearing part, verify it exists in the code, repurpose it for our flow, wrap it as an organ, record the closure. Low-friction extension is the product.

The contract: ISA

Every unit of work is stamped with an ISA (Ideal State Artifact) — one living document that is at once the statement of done, the test harness, the build driver, and the record. See core/isa/ISA.template.md.

Credit: the Ideal State Artifact concept is adapted from Daniel Miessler's LifeOS. ISE's contribution is the falsification-first recast — every criterion carries a single refuting probe, work stays not-done until a disprove-it attempt fails, and closure emits a ledger row.

The laws (v0.1):

  1. Ends, not methods. Encode the goal + invariant standards, never the principal's habits. Encode process → capped at you; encode goals → free to surpass you.
  2. One binary probe per criterion, or it isn't a criterion. If you can't name the probe, split it. Enforced by a probe-runner that refuses the unverifiable.
  3. Beyond "done": feasibility + consequence. Every ISA also carries feasibility probes (can this be reeled in, at what cost?) and blast-radius probes (if achieved, what's the impact?).
  4. ≥1 Anti-criterion. The failure-twin includes "succeeds and causes damage," not just "compliant but useless."
  5. Authored adversarially, not solo. Collide candidate ISAs and attack the output with an Anti-ISA auditor — because "done" is often emergent.
  6. Closure emits a ledger row. The terminal outcome + the conjecture/refuted-by/learned changelog become memory for the next task.

Measurement

ISE is v0.1 foundation — a walking skeleton, hardened by a two-pass adversarial review (codex + gemini, swapped lanes) and grounded in the real Claude Code lever surface.

What is verified: the mechanisms fire. The ISA validator blocks fake probes (exit 2), the pre-action gate stops irreversible ops, and the ledger appends/aggregates under a concurrency model — each a plain stdin→exit-code program you can test (see the adapter verify block).

What is a hypothesis: that the discipline nets better outcomes than an unaided agent. The ledger is the measurement organ — effectiveness priors move only on real outcomes, harness-failures stay neutral — so the number is accumulated and audited, not asserted. Treat every comparative claim as unproven until a ledger cohort backs it.

Quickstart

ISE is a guest — you wire it into Claude Code (requires node on PATH).

git clone https://github.com/campbellcharlie/ISE.git ~/src/ISE
cd ~/src/ISE
node install.mjs            # wires hooks + skills + agent-discipline rules into ~/.claude (idempotent)
                            # preview first with:  node install.mjs --dry-run
# then restart Claude Code — hooks fire automatically, CLAUDE.md orients each session

install.mjs merges the adapter hooks into ~/.claude/settings.json (resolving this clone's absolute path so they fire in every session), appends two agent-discipline rules to ~/.claude/CLAUDE.md, and symlinks the skills — all idempotent, with .ise.bak backups. It honors CLAUDE_CONFIG_DIR for a non-default config.

Manual alternative (what install.mjs automates): merge adapters/claude/settings.json's hooks block into your .claude/settings.json and symlink the skills — see adapters/claude/README.md for the full wiring, a verify block, and escape hatches (ISE_GATE_OFF=1 disables the pre-action gate + exfil guard for a session).

State home: the ledger, recon records, and research artifacts live in ~/.ise (override with $ISE_HOME), never inside this source repo.

Layout

ISE/
  README.md                     ← this file            LICENSE ← MIT
  CLAUDE.md                     ← agent orientation (auto-loaded each session)
  ise.isa.md                    ← ISE's own ISA (it dogfoods its contract)
  core/
    isa/ISA.template.md         ← the contract (fillable)
    ledger/ledger.mjs           ← append/aggregate lib (defaults to ~/.ise)
    ledger/schema.md            ← row schema + closure taxonomy + concurrency
    protocol/protocol.md        ← core-is-a-protocol spec (JSON in / JSON out)
    module-contract.md          ← what a module must provide
  adapters/claude/              ← wires ISE into Claude Code (guest, not host)
    hooks/{ise-session-start,ise-validate-isa,ise-preaction-gate}.mjs
    skills/{isa,recon-mine,anti-isa}/
  docs/{assimilate.md,lever-map.md}   ← the assimilate loop · mechanism→lever map
  modules/                      ← pentest / dev / research plug in as modules

License

MIT © 2026 Charlie Campbell

About

ISE (Ideal State Engine) — a thin discipline layer that carries an AI agent's work from current state → ideal state: durable memory, disciplined falsification, assimilation. A guest on Claude Code, not a runtime; built to shed weight as models improve.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages