When the build fails, axint writes a Fix Packet — a single structured file your coding agent reads to repair the failure, rerun, and ship.
the definition
A Fix Packet is the repair contract between your coding agent, axint, and Xcode.
Six fields. One JSON file. The smallest possible artifact that lets the agent decide whether to ship, repair, or run more tests — and act on it without copy-paste, chat, or human translation.
The full Fix Packet shape, exactly as axint writes it to .axint/fix/latest.json on every run. Schema versioned alongside the compiler. Use it to validate, generate types, or build your own consumers.
.axint/fix/latest.json
schema v1
{
"verdict": "fix_required",
"confidence": {
"score": 0.91,
"level": "high"
},
"duration_ms": 142000,
"findings": [
{
"code": "AX764",
"severity": "warning",
"file": "Sources/Composer/HomeComposer.swift",
"line": 142,
"message": "TextField overlay missing .allowsHitTesting(false)",
"why": "Decorative overlays steal hit-testing from the field.",
"fix": "Add .allowsHitTesting(false) to the overlay modifier."
}
],
"ai_repair_prompt": "Open HomeComposer.swift line 142. Add .allowsHitTesting(false) to the .overlay() modifier. Rerun: axint run --only-testing testComposerAcceptsInput",
"xcode_checklist": [
"open HomeComposer.swift in Xcode",
"navigate to line 142",
"add .allowsHitTesting(false) to the .overlay() modifier",
"rerun axint run --only-testing testComposerAcceptsInput"
],
"next_command": "axint xcode check",
"artifacts": {
"swift": ".axint/run/latest.swift",
"build_log": ".axint/run/logs/build-2026-05-02T14-32.log",
"xcresult": ".axint/run/xcresults/HomeComposerUITests.xcresult"
}
}
■anatomy
Six fields.One contract.
Each field has one job. None of them duplicate each other. Together they form the smallest agent-readable repair contract that closes the loop without human translation.
01 · verdict
ready_to_ship · fix_required · evidence_required
One word the agent reads to decide.
The smallest possible signal — ship, repair, or run more tests. Not a build log, not a vibe, not a list of warnings. One enum value the agent compares against and routes on.
"verdict": "fix_required"
02 · confidence
0.0 → 1.0 · low · medium · high
How certain the verdict is.
Numeric and qualitative. high means runtime evidence has confirmed the verdict. low means the static check is firm but the runtime piece is still pending — the agent should run more tests before shipping.
"confidence": { "score": 0.91, "level": "high" }
03 · findings
ranked array of named issues
Each issue, named precisely.
AX code, severity, file path, line number, message, why it matters, suggested fix. The findings are ranked — the agent works the first one and reruns. No flailing through lists of warnings looking for the real problem.
Pre-formatted prompt the next agent run can act on without copy-paste. Already names the file, the line, the change to make, and the command to run after. Hosts can pipe this directly into the agent's next turn.
"ai_repair_prompt": "Open HomeComposer.swift line 142.\nAdd .allowsHitTesting(false) to the .overlay() modifier.\nRerun: axint run --only-testing testComposerAcceptsInput"
05 · xcode_checklist
human-readable steps
If a person wants to fix it themselves.
Same change as the AI prompt, but written for a human in Xcode. Open this file, go to this line, change this thing, rerun this command. Useful for code review, pair programming, or learning what the validator caught.
"xcode_checklist": [
"open HomeComposer.swift",
"navigate to line 142",
"add .allowsHitTesting(false)",
"rerun axint run"
]
06 · artifacts
.axint/* paths the agent can read
The full evidence trail.
Build log, .xcresult bundle, generated Swift, source the compiler emitted, run console output. Everything machine-readable, every path absolute, every artifact actually on disk.
The verdict field can only be one of three values. Each one routes to a specific next action. No fuzzy “mostly passing” states, no warnings the agent can ignore.
enum value
ready_to_ship
agent action
Agent can proceed.
Static checks clean, focused tests passed, runtime evidence captured. The only verdict that lets the loop close.
enum value
fix_required
agent action
Agent should patch and verify.
axint found ranked findings with file, line, and reason. The repair prompt is pre-formatted for the agent's next run.
enum value
evidence_required
agent action
Agent needs more context before repair.
Compiler is happy. Validator is happy. But the focused test never ran, or the build artifact is stale. No false confidence.
■logs vs packets
Logs are for humans.Packets are for agents.
log
A log tells you what failed.
Build output, stack traces, warnings, deprecation notices. A human reads it, decodes it, copies the relevant line into chat. The agent guesses. The build fails again. Repeat.
audience
human
format
unstructured text
interpretation
manual
loop
copy-paste
next move
undefined
fix packet
A Fix Packet tells the agent what to do next.
Verdict, confidence, named findings, AI-ready repair prompt, Xcode checklist, evidence trail. Agent reads, applies the change at the named line, reruns. No human translator in the middle.
audience
agent
format
structured JSON contract
interpretation
automatic
loop
agent-readable, no translation
next move
explicit next command
■the loop in motion
From failureto ship.
A real failure mode, end-to-end. AX764 — TextField overlay missing .allowsHitTesting(false). The field renders. It just won't accept typing. Caught before the user ever sees it.
the handoff
01
xcode failure
build error · line 142
02
fix packet
verdict · prompt · checklist
03
agent repair
applies edit · reruns
04
verify
ready_to_ship
01 · agent
Agent generates a feature.
Coding agent writes a TextField with a decorative overlay. Code compiles in isolation. Agent calls axint compile to emit Swift.
↳HomeComposer.swift · 142 lines · ready for build
02 · axint
axint validates. Diagnostic fires.
Validator catches AX764 — the .overlay() is missing .allowsHitTesting(false). The text field will render but won't accept typing. Cloud writes the Fix Packet.
↳.axint/cloud/report.json · verdict: fix_required
03 · agent
Agent reads the packet.
Agent reads .axint/fix/latest.json, finds the AI repair prompt, applies the edit at line 142, saves the file. Total round-trip: about two seconds. No copy-paste, no chat back-and-forth.
↳HomeComposer.swift · line 142 · .allowsHitTesting(false) added
04 · agent
Agent reruns the loop.
Agent calls axint run --only-testing testComposerAcceptsInput. Cloud revalidates, runs the focused UI test, confirms the field accepts input. New verdict: ready_to_ship.
The whole loop ran in seconds. No copy-paste, no chat back-and-forth, no human translation between the build error and the agent. The Fix Packet closed the gap.
■how to access it
Four ways in.Same contract.
The packet is the same artifact whether you read it as a file, get it from the CLI, receive it through MCP, or validate it against the schema. One contract, multiple entry points.
01 · file path
On disk, every run.
.axint/fix/latest.json. The current run's packet, always overwritten. Older packets archived under .axint/fix/history/. Stable path your agent can hardcode.
$cat .axint/fix/latest.json
02 · cli
axint command, structured output.
Run axint run or axint cloud check. The packet is written automatically. Pass --json for machine-readable output, or --markdown for the human-skimmable version.
$axint cloud check ./MyApp --json
03 · mcp tool
36 MCP tools speak the contract.
Hosts call axint.cloud.check or axint.run through MCP and receive the packet as the structured response. Claude Code, Cursor, Xcode, and 7 other agentic IDEs read it directly.
$tool: axint.cloud.check
result → fix packet
04 · json schema
Versioned, public, in the repo.
The Fix Packet schema is published in the open-source compiler repo. Versioned alongside axint releases. Use it to validate output, generate types, or build your own consumers.
$schemas/fix-packet/v1.json
■try it
Generate a packet.Hand it to your agent.
Run a free Cloud Check on any Apple-native code. The Fix Packet writes itself, the agent reads it, and the loop closes.
Open the JSON schema if you want to verify the contract shape. Open the docs if you want to wire it into your own agent. Either way, the packet is the smallest agent-readable artifact that closes the repair loop.