Skip to main content
Dependable software for humans and agents
X07X07

Build software that agents can modify and humans can trust. X07 gives both sides the same contracts.

X07 gives agents canonical APIs, structured diagnostics, and deterministic repair loops, while giving teams one coherent story for CLIs, services, MCP servers, WASM, packages, and release review.

Why X07 is opinionated

Less guesswork in the language. Less guesswork in the repair loop.

The first example is about API ambiguity. The second is about what happens when the first attempt is wrong and you need a repair loop a human reviewer can follow.

Reversing bytes should be boring

Python exposes several valid-looking ways to read stdin and manipulate bytes. X07 exposes one canonical bytes helper.

PythonSeveral plausible wrong turns
# Wrong turn 1 — text instead of bytes
import sys
data = sys.stdin.read()

# Wrong turn 2 — .reverse() does not exist on str
result = data.reverse()
# → AttributeError: 'str' has no attribute 'reverse'

# Wrong turn 3 — reversed(data) is an iterator
data = sys.stdin.buffer.read()
sys.stdout.buffer.write(reversed(data))
# → TypeError: a bytes-like object is required, not 'reversed'
X07One canonical bytes operation
{
  "schema_version": "x07.x07ast@0.4.0", // Canonical x07AST schema.
  "kind": "entry",
  "module_id": "main",
  "imports": ["std.bytes"],             // Import the bytes module.
  "decls": [],
  "solve": ["std.bytes.reverse", "input"] // Call the one reverse helper.
}

The X07 side is the shipped 03_reverse example. The point is not that Python cannot reverse bytes, but that X07 leaves the agent with far less API guesswork.

When the first attempt is wrong, the repair surface matters

Python gives the agent a human traceback. X07 gives it stable JSON diagnostics and deterministic repair commands.

PythonHuman traceback
Traceback (most recent call last):
  File "reverse.py", line 6, in <module>
    sys.stdout.buffer.write(reversed(data))
TypeError: a bytes-like object is required, not 'reversed'
X07Machine-readable repair loop
x07 lint --input src/main.x07.json
# -> emits x07diag JSON with:
#    stable code
#    x07AST pointer
#    optional quickfix as JSON Patch

x07 fix --input src/main.x07.json --write
# -> applies the quickfix deterministically

The X07 docs define diagnostics as machine-readable, error codes as stable, and quickfixes as deterministic JSON Patch operations.

Humans and agents read the same contracts

Docs, schemas, CLI reports, and package metadata line up, so the same contract survives from code review to CI to release operations.

Canonical APIs cut down repair noise

X07 tries to make each capability look like one obvious shape, which keeps generated code and repair patches more uniform and reviewable.

Deterministic loops are easier to trust

Lint, fix, test, run, MCP, packaging, and verification surfaces speak stable JSON and versioned schemas instead of ad hoc terminal output.