IEVA · Offer · Harness

Governed actions around the model.

The model decides. A harness turns decisions into actions. The IEVA Harness is a thin runtime layer around the coding agents you already use — Claude Code and Codex — that makes each action recorded, reviewable, and gated.

It is deliberately small: session logging, policy, approvals, bounded delegation, and a learning loop you can inspect. Nothing else.

Draft offer — for founder reviewBuilt from internal research. Nothing on this page is shipped or for sale.

Product direction

Why a harness matters

IEVA runs on written contracts: a pipeline, reviewable memory, skills, approval gates, privacy boundaries. Today those contracts are instructions. A capable agent follows them. Nothing checks that it did.

  • Nothing records what the agent actually read, sent to a model provider, called, or wrote.
  • Nothing stops a write that bypasses a rule, apart from the model’s own compliance.
  • An approval gate is only a sentence when no person is watching, as in a scheduled briefing.
  • No trace exists to show why a skill failed, or whether a change to it made things better.

The existing health check validates structure. It does not validate behavior. The harness closes that gap, and it is how governance becomes demonstrable rather than aspirational.

One design stance guides the scope: keep the tool surface small and well governed. The harness stays thin, and IEVA’s tool set stays narrow.

What the harness does

Six parts, each one a plain module with a clear seam. Every part is direction or concept today, and labelled as such.

  • 01 · Record

    Session log

    An append-only event log per session: context sent, tool calls, policy decisions, approvals, file writes, usage. Redacted as it is written. Local only.

    Product direction
  • 02 · Decide

    Policy and presets

    Your permission and privacy notes compile into a policy. Every tool call is classified and allowed, asked, or denied. There is no full-access preset.

    Product direction
  • 03 · Ask

    Approvals as Markdown

    An approval request names the exact action, target, and payload, and it expires. Approving covers that action once, never a class of actions.

    Product direction
  • 04 · Run

    Governed headless runs

    A job is a Markdown file. A run snapshots the vault, launches the agent with a narrow tool list, audits the diff, and reverts writes outside policy.

    Concept workflow
  • 05 · Delegate

    Bounded delegation

    A subagent starts only from a written contract with allowed paths and a budget. It can be steered and stopped. Its handoff is reviewed, never absorbed. Advanced edition.

    Concept workflow
  • 06 · Learn

    Reviewable learning

    Traces become pattern notes, pattern notes become skill proposals, and a proposal changes a skill only after your approval and a clean regression check.

    Concept workflow

Architecture, in plain language

Markdown stays durable and authoritative. The harness adds two machine-readable stores that are never canon: raw session logs, and generated policy and usage rollups. Everything a person must review or approve remains a note.

Product direction

  1. Durable layerMarkdown. Canonical. Everything a person reviews or approves.

    • ProfileAgent permissions, privacy boundaries
    • SkillsCanonical workflows, synced to each agent
    • Pipeline notesInbox, projects, output, reference
    • WikiWritten only through harvest
    • OperationsApprovals, delegations, briefings
    • LearningPatterns, proposals, example cases
    • JobsOne Markdown file per repeatable run
  2. IEVA HarnessNode built-ins only. No network code in the core.

    • Command lineRun, audit, explain policy, approve
    • Policy compilerPresets and action classes
    • Context assemblerStable-to-volatile order
    • Tool pipelineClassify, decide, execute, redact
    • Session storeAppend-only log, migrations, retention
    • Snapshot and diff auditReverts out-of-policy writes
    • Skill runtimeSnapshot, apply, revert, sync
    • Case replayTemporary fixture copy
    • Subagent supervisorSteer, stop, budgets
  3. Agent adaptersThe agent keeps its own loop and its own sign-in.

    • Claude CodeHeadless runs, policy hook, transcript import
    • CodexHeadless runs, transcript import
    • Manual importContract-only: a pasted or exported transcript
    • Direct API adaptersOpenAI-compatible and Anthropic APIs
  4. Local runtime stateMachine-readable, not canonical, outside search and graph.

    • Session logsVersioned, one event per line
    • SnapshotsVault hashes and skill copies
    • Generated rollupsCompiled policy, usage, review queue
  5. SurfacesNo second interface to learn.

    • Obsidian Control DeckRuns, approvals, review queue, usage, learning
    • Markdown fallbackThe same views as plain notes
    • TerminalRuns, audits, usage, policy explanations
Component layers of the IEVA Harness, top to bottom: Markdown notes, the harness, agent adapters, local runtime state, surfaces. Dashed parts belong to the advanced edition. Concept diagram, not a shipped system.

One governed run

A job is a Markdown file. Its frontmatter names the skill, preset, agent, budget, and the only places it may write. The body is the task.

  1. Check gatesSetup healthy, profile approved, preset allowed
  2. SnapshotHashes of every path the preset may write
  3. Assemble contextStable first, volatile last; every file recorded
  4. Launch agentIsolated configuration, narrow tool list
  5. Log and redactEvents streamed into the session log
  6. Never blockAn ask becomes a deny plus an approval request
  7. Diff auditWrites outside policy reverted and flagged
  8. Deliver as draftProvenance attached, review pending, run report written
---
job: briefing
skill: session-start
preset: draft
adapter: claude-code
model: ""          # empty = agent default; an explicit value always wins
effort: default    # expensive settings are never the default
outputs:
  - "briefings/{{date}} Briefing.md"
budget:
  max-turns: 20
  max-minutes: 10
---
Produce today’s briefing as a draft. Cite a source note for every signal.
Do not modify any file other than the output.
Draft job schema — illustrative; field names are proposals, not a released format

What is logged, and why

The principle is simple: anything the model saw should be reconstructable from the log. That is the same standard IEVA already applies to memory — reviewable, never hidden — extended to runtime.

Product direction

What left the machine
Before a run, the harness records every file placed in context, with a hash and the provider it went to. Sending context to a model provider is a transfer. This is the ledger of it.
Tool calls and results
Each call is logged with its action class and the paths it touched. Large results are truncated and stored with a content hash, so notes are not duplicated into logs.
Policy decisions and approvals
Allow, ask, or deny, with the rule that produced it. Approval requests and their outcomes are events too.
File writes and deliveries
Before and after hashes for every write, whether it was within policy, and which files were delivered for review.
Usage
Tokens, cache reads where the agent reports them, latency, and model. Rollups are counts and ratios only. Cost estimates use a price table you maintain; we do not ship authoritative prices.
How a session ended
Completed, needs approval, stopped, over budget, or launch failure. A run with zero tool calls and no deliverable is reported as a failure, not a success.
{"v":1,"seq":1,"type":"context/assembled","data":{"provider_destination":"<provider> via <agent>",
  "files":[{"path":"AGENTS.md","sha256":"…","bytes":29758,"sensitivity":"normal"}]}}
{"v":1,"seq":9,"type":"tool/call","data":{"call_id":"t7","tool":"Write",
  "paths":["wiki/Pricing lessons.md"],"action_class":"reversible-write"}}
{"v":1,"seq":10,"type":"policy/decision","data":{"call_id":"t7",
  "decision":"deny","rule":"wiki-guard","preset":"draft"}}
{"v":1,"seq":20,"type":"session/end","data":{"status":"completed","tool_call_count":11}}
Draft log schema, abridged — a write to the wiki outside harvest, denied and recorded

Redaction happens at write time

  • Built-in secret patterns — API keys, private keys, tokens, card-like numbers — are replaced with a marker and a length. No hash is kept, because hashes of short secrets can be brute-forced.
  • Content read from folders you mark restricted is logged as metadata only: path, size, content hash.
  • You can add your own redaction patterns in your privacy note.
  • A format change writes a new log file beside the untouched original, with hashes of both. Older readers report a newer version clearly instead of failing silently.

Logs are local by default. They sit in a runtime folder that Obsidian does not index, so they stay out of search and graph. Capture is proposed as opt-in at onboarding, with 30-day retention and one command to prune.

Policy and approvals

Policy is compiled from two notes you already own: your agent permissions and your privacy boundaries. The compiled file is derived, never hand-edited. When a decision surprises you, a policy-explain command prints the decision and the Markdown line that produced it.

Product direction

Honest enforcement levels

Not every agent can be governed equally. Each action path carries one of three levels, and every run report states which one applied.

Enforcement levels, when each applies, and what each guarantees
LevelWhenWhat it guarantees
EnforcedA governed headless run launched by the harnessA tool allowlist passed to the agent, the policy hook, a vault snapshot before the run, a diff audit after it, and automatic revert of writes outside policy.
Hook-mediatedAn interactive session in an agent that offers pre-tool hooks. Claude Code does; others are confirmed per agent before release.The policy hook can deny or ask before a tool runs. The session transcript is imported afterwards.
Contract-onlyAny other agentYour written rules, plus an audit after the fact: a file diff against the last snapshot.

Five presets. No full-access preset.

A preset answers two separate questions: must the user confirm, and what can the action reach. Restricted folders are unreadable in every preset. Until a profile is approved, only read-only and maintain are available.

IEVA presets and what each allows
PresetReadWriteMaterial changeExternal or irreversibleTypical use
read-onlyPermitted foldersSession log and run report onlyDenyDenyExploration, audit, briefing preview
draftPermitted foldersDeclared draft destinations onlyDeny; a proposal note insteadDeny, then an approval requestBriefings, triage proposals, review drafts. Default for headless runs.
operatePermitted foldersReversible internal writes in permitted foldersAskAsk when interactive; deny when headlessNormal assisted work. Interactive default after onboarding.
sandboxFixture copy onlyFixture copy onlyAllowed inside the copyDenyReplaying a saved example case
maintainSystem filesGenerated dashboard data and derived indexesDenyDenyRefresh, health checks, migrations

How a tool call is decided

  1. Classify the call: action class, touched paths, network effect.
  2. An always-deny rule matches — credentials, restricted folders, a wiki write outside harvest — and the call is denied.
  3. A write outside the preset’s destinations is denied when headless, asked when interactive.
  4. External actions, deletions, and material changes ask. Headless, the ask becomes a deny plus an approval request.
  5. Otherwise the call is allowed.
  6. Afterwards the result is redacted before logging, and the write is recorded with hashes.

Approvals are notes

An approval request is a Markdown file with the exact action, the target, a content diff or payload summary, the requesting session, and an expiry. Approving it authorizes one execution of exactly that action. It does not authorize similar future actions. Expired requests are void.

Any tool call with network effect — a web fetch, a connector call, a push, a send — is classified external: asked when interactive, denied when headless. Writes to the wiki are denied unless the harvest skill is active, an approval exists, and the article cites a real output record.

Bounded delegation, clean handoffs

Concept workflowAdvanced edition

A subagent can start only from a delegation contract: objective, definition of done, permitted files and tools, prohibited actions, required sources, uncertainty to surface, handoff format, approval gate. The contract also fixes the preset, the allowed paths, and the budget.

  • Steer. Messages join a steering queue in the contract and are delivered between turns, where the agent supports resuming a session. Undelivered messages can be edited or deleted.
  • Stop. Stopping ends the process, records the stop, and runs the diff audit.
  • Budget. Turns, wall time, and optional spend are enforced by the harness. Over budget, the subagent stops and files a handoff marked incomplete.
  • Handoff. The result must fill the handoff template. Its content never becomes memory, output, or wiki automatically.

No teams, rosters, mailboxes, or autonomous swarms. In the local edition the delegation contract remains a manual discipline.

The learning layer

Concept workflow

Agent memory has a known gap: nobody checks whether it remembered the right thing. IEVA’s answer is a loop in which every step is a file you can read, and the only step that changes behavior needs you.

  1. TracesSession logs. Immutable.
  2. Pattern notesProblem, root cause, fix. Cite their sessions.
  3. Skill proposalOne atomic change: create, patch, or no action
  4. GateYour approval, plus no regression on saved cases
  5. Apply or rejectSnapshot first. Reject leaves the skill untouched.
  6. Impact recordAccepted and rejected proposals, kept in full

The rules that keep it honest

  • Patterns stay out of the wiki. The wiki holds evergreen lessons about your work, harvested from shipped output. Pattern notes describe how agents perform procedures. They live in their own learning area, and they are not memory either.
  • Pattern notes cannot change behavior. Only an approved skill proposal can.
  • The gate is you, plus evidence. A proposal is accepted only after your recorded approval and no regression on saved example cases. Deterministic checks gate. Rubric items are shown side by side for your judgment. A model judge, if used at all, is advisory only.
  • Snapshot and revert. Proposals are data applied by a deterministic script, not free edits. The skill is snapshotted before any change, and a revert restores it. Git is optional.
  • Executing sessions load skills, not the pattern notebook. The proposer reads pattern notes. The agent doing the work does not.
  • Facts about you go to memory review. If a pattern is really a fact about the user, it becomes a memory proposal with an evidence label. Your explicit corrections outrank patterns.
  • No autonomous overnight self-modification. The advanced edition may prepare notes and proposals on a schedule. Applying always requires the user.

Why keep the notebook away from the agent doing the work? The skill-learning paper this loop adapts (arXiv 2608.27454) reports an ablation: giving the proposer access to pattern notes raised its average from 45.3% to 63.7%, and also giving the executing agent access lowered it to 60.9%. That is the paper’s finding on its own benchmarks, not an IEVA result.

Saved example cases are made by you from a real session. Each holds a frozen, redacted copy of the notes involved, the task, and the checks. Replay runs in a temporary copy, never the live vault. Pattern notes are marked stale after a review date and duplicates are merged, but none is deleted without approval.

Security posture

Design principle

The harness is a governance aid, not a security boundary. Policy hooks and approval prompts do not guarantee isolation or prevent all damage. We say so here, and the product documentation will say the same.

No telemetry
Nothing is sent to Ækora. A test asserts that harness modules contain no network code. Adapters hand off to your agent, which talks to its provider under your account.
No runtime dependencies
Node built-ins only. No third-party packages at runtime means a small attack surface and no supply chain to watch.
Secrets stay out
The harness never reads, stores, or logs credentials. Agents use their own sign-in. API adapters, in the advanced edition, read keys from the environment or the OS keychain, never from the vault. Isolated agent configuration lives in OS temp and is deleted after the run.
Restricted means unreadable
Folders you mark restricted are unreadable in every preset. With no approved profile, only read-only and maintenance presets exist.
Labelled enforcement
Enforced, hook-mediated, or contract-only. Every run report states which applied.
Step back
“IEVA, step back” disables scheduled jobs and learning suggestions, and creates no inferred patterns. Headless jobs check the flag before they start.

For the principles that govern the whole product, see security and governance.

What we adopted, adapted, and skipped

The harness adapts ideas from published agent-harness and skill-learning research. We borrowed concepts, not code, and we left most of it out. The rule was one line: adopt whatever makes actions recorded, reviewable, and gated; skip whatever serves coding benchmarks, teams, marketplaces, or a second interface.

Ideas from published research and the decision taken for each
IdeaDecisionIEVA form, or the reason
Adopt — the concept as-is, in our own implementation
Append-only session event logadoptThe core of the harness. Anything that reaches a model request should be reconstructable from the log.
Versioned log format with migrations that preserve originalsadoptA migration writes a new file beside the untouched original and records hashes of both.
Pre-execute, execute, post-execute tool pipelineadoptClassification, policy decision, execution, redaction, and logging happen in that order.
Approval kept separate from sandboxingadopt“Must the user confirm?” and “what can this action reach?” are different questions. Each preset answers both.
Headless one-shot runsadoptA job is a Markdown file. A headless run never blocks waiting for approval.
Per-turn token and cache statisticsadoptHonest cost visibility, kept local, against a price table the user maintains.
A way to explain the final configurationadoptA policy-explain command prints the decision for a path or command and the Markdown line that produced it.
Plain statements about security limitsadoptEnforcement levels are labelled in every run report. The harness is described as a governance aid, not a security boundary.
Adapt — the idea, reshaped to IEVA’s contracts
Everything-is-a-plugin architectureadaptThe seams stay — adapters, policy, store, skills, surfaces — as plain modules. No plugin framework.
Model adaptersadaptAgent command-line adapters first: they own the loop and the sign-in. Direct API adapters are an advanced-edition option.
Permission presetsadaptFive IEVA presets mapped to action classes. No full-access preset.
Mid-session instruction updates that protect the cacheadaptContext is assembled from stable to volatile, and mid-session changes are appended, never rewritten. With command-line adapters the agent owns caching; real control exists only in API adapters, and only where a provider documents it.
File preview and deliveryadaptProvenance frontmatter, a delivery event, and a review queue. Obsidian already previews the file.
Steerable, stoppable subagentsadaptOnly from a written delegation contract, with a steering queue, a stop, and enforced budgets. Advanced edition.
Score-based acceptance of skill changesadaptThe gate becomes user approval plus no regression on saved example cases. A model judge, if used at all, is advisory.
Scheduled overnight improvement runsadaptThe advanced edition may prepare pattern notes and proposals on a schedule. Applying a change always needs the user.
Skip — out of scope, with a reason
Plugin frameworks, marketplaces, third-party plugin installsskipThird-party code execution and supply-chain risk contradict a local product with no remote runtime dependencies.
Modes where the model writes code that composes toolsskipArbitrary code over tools weakens per-call approval and logging.
Modes where the agent modifies its own harnessskipIEVA changes its own behavior only through gated skill proposals.
Agent teams, rosters, mailboxesskipClean handoffs over autonomous swarms.
A web interface in the local editionskipThe Obsidian Control Deck plus a Markdown fallback is the interface.
Telemetry exportskipNo telemetry is a product promise. Nothing is sent to Ækora.
Hosted runtime, daemons, inbound webhooks, cloud sandboxesskipA local vault should have no inbound network surface.
General file uploads and an image-input pipelineskipThe vault is already the file store, and image handling adds privacy surface. To be revisited with buyer evidence.
Developer SDKs and editor protocol profilesskipIEVA is not a developer platform.
Coding-benchmark tuningskipIt serves coding benchmarks, not executive work. Model-specific workarounds stay out of canonical skills.

Features by edition

The local edition keeps the harness simple and entirely manual: you start each run. The advanced edition adds scheduling, replay, supervised subagents, and direct API adapters. How the advanced edition is packaged is not decided, and no prices are published.

Product direction

Harness capabilities in the local edition and the advanced edition
CapabilityLocal editionAdvanced edition
Session log, redaction, retention, migrationYes, capture is opt-inYes, plus an export bundle
Agent adaptersClaude Code, Codex, manual importPlus direct API adapters and more agents
Presets, policy compiler, policy explanationYesYes
Policy hook for interactive sessionsClaude Code; Codex if its hooks prove stableYes
Approvals as a Markdown queueYesPlus approval delegation and expiry policies
Audit: snapshot diff after the factYesYes
Headless jobs: briefing, triage proposal, weekly review draftYes, run manuallyPlus a scheduler bridge and custom jobs
File delivery with provenance and a review queueYesYes
Usage rollups with your own price tableYesPlus per-job budgets and spend ceilings
Pattern notes and a learning-review skillYes, invoked by youPlus scheduled preparation of patterns and proposals
Skill proposals: apply, reject, revert, impact recordYesYes
Saved example casesSave, and check by handAutomated replay, repeated-run comparison
Steerable, stoppable subagents under a contractNo; the contract stays manualYes
Cache-aware, append-only instruction updatesOrdering onlyFull, for API adapters
Local web viewNoOptional, this machine only
Connectors as governed toolsNoConnected edition

Roadmap, honestly staged

This is a plan, not a progress report. No stage below is shipped, and no dates are promised. Each stage has an acceptance test, stated in advance, so “done” means something.

  1. Spikes and decisions

    Synthetic transcripts captured from each supported agent. Every adapter assumption confirmed or changed. Log schema frozen. Threat model written.

    Done when every assumption about a third-party agent is marked confirmed or changed.

    Local editionProduct direction

  2. Raw layer

    Session store, importers for both agents and manual import, redaction, the migration framework, run and usage commands.

    Done when seeded secrets are fully redacted in the test corpus, migrations leave originals byte-identical, a malformed line never corrupts a log, and the no-network test passes.

    Local editionProduct direction

  3. Policy and approvals

    Policy compiler, presets, policy explanation, the pre-tool hook, approval requests, audit with snapshot diff and revert, the wiki guard.

    Done when red-team fixtures pass: a wiki write outside harvest is denied, network commands are asked or denied, an out-of-scope headless write is reverted, an unconfigured profile allows only read-only.

    Local editionProduct direction

  4. Headless jobs and delivery

    The run command, three built-in jobs, isolated agent configuration, launch-failure detection, provenance frontmatter, Control Deck panels with a Markdown fallback.

    Done when a job never writes outside its destination and an approval need ends the run as needs-approval with a request file.

    Local editionProduct direction

  5. Learning layer, manual

    Pattern-note and proposal templates, the learning-review skill, propose, apply, reject and revert, snapshots, the impact record, saved cases with deterministic checks.

    Done when applying requires a recorded approval, rejecting leaves the skill byte-identical, and rejected proposals appear in full in the impact record.

    Local editionProduct direction

  6. Local edition harness release

    Documentation, changelog, third-party notices, clean-install and merge tests. Planned as a later release of the local edition; it does not hold up the first vault package.

    Done when nothing changes for a user who never enables the harness.

    Local editionProduct direction

  7. Case replay runner

    Sandbox fixture copies, replay, a current-versus-candidate report, optional repeated-run comparison.

    Done when replay never touches the live vault.

    Advanced editionProduct direction

  8. Supervised subagents

    The delegation-contract runtime: steering queue, stop, budgets, handoff validation.

    Done when stop ends the whole process tree and audits, and a handoff never writes memory or wiki on its own.

    Advanced editionProduct direction

  9. API adapters and cache-aware assembly

    Direct API adapters with a tool loop limited to IEVA tools, appended instruction events, keys from the environment or the OS keychain, a scheduler bridge.

    Done when the same policy tests pass through the API loop and no key ever appears in the vault or a log.

    Advanced editionProduct direction

  10. Optional local web view

    A read-only view of runs, approvals, and usage, bound to this machine, with no remote assets. Deferred until there is evidence of demand.

    Built only if buyers without Obsidian need it.

    Advanced editionProduct direction

Questions

Does the harness replace Claude Code or Codex?

No. It wraps them. Those agents already run a capable loop, and they keep their own sign-in. The harness adds the governance around the loop: what goes in, what is allowed, what is recorded, what is reviewed.

Is it a security boundary?

No, and we will not describe it as one. Policy hooks, allowlists, and snapshot-and-revert reduce risk and make behavior reviewable. They do not guarantee isolation or prevent all damage. Every run report states which enforcement level applied.

Does anything go to Ækora?

No. There is no telemetry and no export path. The design includes a test asserting that harness modules contain no network code. The agent you choose talks to its provider under your account, and the log records exactly which files were sent.

Where do logs live, and can I delete them?

In a runtime folder inside your vault that Obsidian does not index, excluded from Git by default. Setup warns about cloud-sync exposure. The proposed defaults are opt-in capture and 30-day retention, with a single command to prune.

Can IEVA rewrite its own skills?

Not on its own. A skill changes only through a proposal you approve, after the saved example cases show no regression. The skill is snapshotted first and can be reverted. There is no autonomous overnight self-modification in any edition.

What happens when an unattended run needs approval?

It does not wait and it does not proceed. The ask becomes a deny, the harness writes an approval request as a Markdown note, and the run ends marked needs-approval.

Which agents are supported?

The plan covers Claude Code and Codex, plus manual import of a transcript from anything else. Other agents run contract-only: your written rules, audited after the fact. This describes what the harness runs around. It is not a partnership or an endorsement.

Do I need Git?

No. Snapshots are plain file copies, so revert works without a repository. Git remains useful, and optional.

When can I get it, and what does it cost?

Neither is published. This page describes a plan. If the direction matters to how you work, say so in the access conversation — the launch cohort shapes what gets built first.

Private launch · Launching 2026

Tell us where governance breaks for you.

The IEVA Harness is product direction, not a shipped feature. If recorded, reviewable, gated agent work matters to how you operate, say so in the access conversation — it shapes what we build first.