Artifacts
Every nax run writes a durable local record under .nax/. The artifact tree is the handoff surface between workflow steps, the dashboard, follow-up prompts, and later debugging sessions.
For multi-model workflows, artifacts are the evidence trail. They let you inspect the workflow config, prompts, per-model responses, cross-review notes, consensus summaries, generated patches, and token or cost metadata when available.
Artifact layout
- state.json
- workflow.json
- events.jsonl
- blob-refs.jsonl
latest symlinks are created when the filesystem supports them. The most common handoff file is:
.nax/workflows/latest/artifacts/summary.mdLocal state and git ignore
The first time nax writes durable artifacts in a project, it also makes sure local artifacts are ignored by Git. If the project .gitignore does not already contain a .nax rule, nax adds:
.nax/This check is intentionally one-time. After the first check, nax records it in .nax/state.json:
{
"schemaVersion": 1,
"generatedBy": {
"name": "netlify-agent-executor",
"version": "<installed-version>"
},
"version": 1,
"gitignore": {
"checkedAt": "<timestamp>",
"status": "created",
"path": "/path/to/project/.gitignore"
}
}On later runs, nax sees gitignore.checkedAt and does not touch .gitignore again. If you remove .nax/ from .gitignore, nax will respect that choice and will not re-add it unless you delete .nax/state.json or remove the gitignore entry from that file.
nax treats existing .nax, .nax/, /.nax/, .nax/**, and /.nax/** entries as already configured.
Artifact metadata
New JSON artifacts include both a schema version and the package version that generated them:
{
"schemaVersion": 1,
"generatedBy": {
"name": "netlify-agent-executor",
"version": "<installed-version>"
}
}Older artifacts may not have generatedBy. Dashboard and tooling should treat that field as optional and use schemaVersion as the primary compatibility signal.
Handoff paths
nax handoff
nax handoff -c
nax handoff --session <id> --copy
nax handoff --workflow <id> --flow review
nax handoff --runner <id> --agent codexThe dashboard exposes the same idea through Run details and Send to next agent.
Do not delete .nax before handing off results. It is the durable local record for workflow summaries, runner summaries, session summaries, event streams, and prompt blob mirrors.
Prompt blob artifacts
When prompts are too large for the safe submission budget, nax mirrors offloaded payloads locally under .nax/workflows/<run-id>/blobs/ and tracks remote refs in .nax/blob-refs.jsonl.
Clean stale refs with:
nax admin clean blobs
nax admin clean blobs --forceCommon mistakes
- Treating
.naxas disposable cache before the run has been handed off. - Looking only at terminal output after a failed synthesis. The saved summaries and prompt blobs often contain the full fan-in context.
- Assuming prompt blob cleanup deletes local debug mirrors. Remote blobs are cleaned up, but local copies stay available for inspection.
See also
- Transports for how runs are submitted.
- Run workflows for the commands that produce workflow artifacts.
- Council pattern for the review, cross-check, and synthesis loop these artifacts preserve.
- Troubleshooting for recovery commands.