x07-agent-playbook
x07-agent-playbook
This skill sets the baseline workflow and constraints for autonomous agents writing X07 programs. It assumes end-users only have the released toolchain binaries, not the toolchain source repo.
Tooling
See references/tooling.md.
Execution should go through x07 run (single front door). The standalone OS runner binary (x07-os-runner) remains available for expert usage, but is not part of the default agent loop.
If the task needs OS worlds or native deps (curl/openssl, etc), run x07 doctor early and follow its suggestions.
Canonical docs:
- https://x07lang.org/docs/toolchain/repair-loop/
- https://x07lang.org/docs/toolchain/running-programs/
- https://x07lang.org/docs/language/stream-pipes/
- https://x07lang.org/docs/language/types-memory/ (branded bytes)
- https://x07lang.org/docs/language/concurrency-multiprocessing/
- https://x07lang.org/docs/worlds/record-replay/
- https://x07lang.org/docs/language/budget-scopes/
- https://x07lang.org/docs/toolchain/arch-check/
- https://x07lang.org/docs/toolchain/schema-derive/
- https://x07lang.org/docs/toolchain/state-machines/
- https://x07lang.org/docs/toolchain/pbt/
- https://x07lang.org/docs/toolchain/review-trust/
Single canonical agent loop (edit → run → test)
-
Create or edit x07AST JSON (
*.x07.json). -
Run in the correct capability world (canonical:
x07 run):- default run (uses
x07.jsondefault_profile):x07 run - policy-enforced run:
x07 policy init --template <cli|http-client|web-service|fs-tool|sqlite-app|postgres-client|worker|worker-parallel>(starting point; review and extend), thenx07 run --profile sandbox(optionally add--allow-host .../--deny-host ...to materialize derived policies)
x07 runruns the canonical auto-repair loop by default (format → lint → quickfix, repeatable). Use:--repair=offto disable auto-repair (debugging)--repair=memoryto stage repairs under.x07/repair/_staged/without editing source files--repair=write(default) to write repairs back to source files--repair-max-iters Nto bound iterations (default: 3)
For CLI-style programs that expect
argv_v1, pass process args after--andx07 runwill encode them into input bytes:x07 run -- tool --help
- default run (uses
-
If the project uses dependencies, update the lockfile:
x07 pkg lock --project x07.jsonx07 pkg lock --project x07.json --check(CI gate)
If the index can be consulted,
--checkalso fails on yanked dependencies and active advisories unless explicitly allowed (--allow-yanked/--allow-advisories). If any dependency declares required helper packages viameta.requires_packages,x07 pkg lockmay also updatex07.jsonto add those transitive deps. If a transitive dependency must be forced to a safe version, useproject.patchinx07.json(requiresx07.project@0.3.0). -
Run non-mutating whole-project validation before packaging:
x07 check --project x07.json
-
If you need a distributable native executable (end-user CLI binary, no toolchain required at runtime), bundle it:
x07 bundle --profile os --out dist/appx07 bundle --profile sandbox --out dist/app(policy enforced)
-
For formal verification or certificate-oriented review flows, use the public trust surface directly:
x07 verify --prove --entry <sym>x07 trust profile check --project x07.json --profile <profile.json> --entry <sym>x07 trust capsule check --project x07.json --index arch/capsules/index.x07capsule.jsonwhen capsules are in scopex07 pkg attest-closure --project x07.json --out arch/trust/dependency_closure.attest.jsonfor networked certification profilesx07 trust certify --project x07.json --profile <profile.json> --entry <sym> --out-dir target/cert
Read the certificate artifacts (
summary.html,certificate.json, prove/coverage reports) instead of treating trust as a hidden internal process. -
If you need explicit diagnostics or tighter control than the default auto-repair loop:
x07 fmt/x07 lint/x07 fix/x07 ast apply-patch
Keep each iteration small and checkable; if a repair loop does not converge quickly, stop and re-evaluate the approach.
Note: paths above assume a project scaffold (x07 init). In a publishable package repo (x07 init --package), format/lint the
module files under modules/ and run tests via x07 test --manifest tests/tests.json.
Correctness + review artifacts (canonical)
-
Property-based testing:
x07 test --pbt --manifest tests/tests.json(PBT only)x07 test --all --manifest tests/tests.json(unit + PBT)x07 fix --from-pbt <repro.json> --write(counterexample → deterministic regression test)
-
Semantic diff + trust report (for human review / CI artifacts):
x07 review diff --from . --to . --html-out target/review/diff.html --json-out target/review/diff.jsonx07 trust report --project x07.json --out target/trust/trust.json --html-out target/trust/trust.html- SBOM artifact (default CycloneDX):
target/trust/trust.sbom.cdx.json - Dependency capability gate: add
--fail-on deps-capabilityand providex07.deps.capability-policy.json
-
Function contracts + certification artifacts:
- add
requires/ensures/invariantclauses on adefn - add
decreases[]when certifying pure self-recursivedefn - run
x07 verify --prove --entry <sym>for proof and coverage artifacts - run
x07 trust profile checkbeforex07 trust certify - for networked profiles, bind the reviewed dependency set with
x07 pkg attest-closure
- add
Recommended project layout (single canonical shape)
For app projects (x07 init):
x07.json: project manifest (x07.project@0.3.0; do not author new manifests onx07.project@0.2.0)x07.lock.json: project lockfile (orlockfileconfigured inx07.json)src/main.x07.json: entrysrc/: module roots.x07/deps/<name>/<version>/: fetched dependencies (when usingx07 pkg lock)tests/tests.json: test manifest (generated byx07 initin new projects)
For publishable package repos (x07 init --package):
x07-package.json: package manifest (publish contract forx07 pkg publish)x07.json: minimal project manifest for local testsmodules/: module roots (publishable modules layout)tests/tests.json: test manifest
For certification-oriented projects, start from the matching scaffold:
x07 init --template verified-core-purex07 init --template trusted-sandbox-programx07 init --template trusted-network-servicex07 init --template certified-capsulex07 init --template certified-network-capsule
Choosing packages (canonical)
Prefer the capability map (one default choice per capability):
Common non-web building blocks for agents:
text.core→ext-text(trim/split/join/find/lines)text.unicode→ext-unicode-rs(normalize/casefold/segment)math.bigint→ext-bigint-rsmath.decimal→ext-decimal-rsdata.cbor→ext-cbor-rsdata.msgpack→ext-msgpack-rschecksum.fast→ext-checksum-rsdiff.patch→ext-diff-rscompress.zstd→ext-compress-rsfs.globwalk→ext-path-glob-rs(run-os*)
Add deps with x07 pkg add NAME@VERSION --sync (choose NAME@VERSION from the capability map).
If you don’t know which package provides an import, use x07 pkg provides <module-id>.
Agent-first design rails
See references/design-rails.md.
For a built-in language/stdlib reference (toolchain-only), use x07 guide.
By-example docs (recommended)
- Sandbox policy workflow: https://x07lang.org/docs/worlds/sandbox-policy-walkthrough/
- Publishing packages: https://x07lang.org/docs/packages/publishing-by-example/
- Porting via x07import: https://x07lang.org/docs/x07import/porting-by-example/
- Testing harness: https://x07lang.org/docs/toolchain/testing-by-example/