AEP File Structure / Spec
JSON format, required fields, optional fields, and example.
JSON structure
An AEP is a JSON object that encodes reusable execution context for agents.
Required fields
intent(string): desired outcomeworkflow(string[]): ordered execution stepssuccess_checks(string[]): observable completion checks
Optional fields
constraints(string[]): hard limitspreferences(string[]): style/process defaultsfailure_traps(string[]): known pitfallscontext(object | string[]): task/project assumptionsversion(string): spec or pack version tag
Validation guidance
workflowshould be actionable and ordered.success_checksshould be testable (not subjective).constraintsshould avoid internal conflict.- Keep pack size practical for quick loading and review.
Example AEP
{
"version": "1.0-exp",
"intent": "Implement docs updates without route regressions.",
"constraints": [
"Do not break existing URLs",
"Keep changes scoped to docs app"
],
"preferences": [
"Use concise, actionable writing",
"Prefer small, reviewable edits"
],
"workflow": [
"Inspect current docs structure",
"Apply focused content updates",
"Run type and route checks",
"Report what changed"
],
"failure_traps": [
"Leaving stale links in sidebar",
"Adding ambiguous success criteria"
],
"success_checks": [
"Typecheck passes",
"Key docs routes return HTTP 200"
]
}Naming and storage conventions
Common patterns:
project.aep.jsontask.<name>.aep.jsonuser.aep.json
Recommended directories:
.codex/aep/.claude/aep/.cursor/aep/
Last updated on