{
  "version": 1,
  "defaultDocId": "00-start-here",
  "groups": [
    {
      "id": "start",
      "label": "Start Here",
      "count": 3
    },
    {
      "id": "design",
      "label": "Design Model",
      "count": 3
    },
    {
      "id": "reference",
      "label": "IR Reference",
      "count": 6
    },
    {
      "id": "usage",
      "label": "Using AIR",
      "count": 4
    },
    {
      "id": "examples",
      "label": "Examples",
      "count": 2
    },
    {
      "id": "site",
      "label": "Docs Site",
      "count": 1
    }
  ],
  "docs": [
    {
      "id": "00-start-here",
      "number": 0,
      "filename": "00-start-here.md",
      "title": "Start Here",
      "status": "Published",
      "scope": "Explains what AIR is, who should use it, and the fastest path through the manual.",
      "summary": "AIR is an intermediate representation for agent systems. It gives agent code, prompt assembly, prompt meaning, tools, memory, state, and protocol metadata a common inspectable form.",
      "group": "start",
      "groupLabel": "Start Here",
      "wordCount": 424,
      "apiPath": "/api/docs/00-start-here.json",
      "headings": [
        {
          "level": 2,
          "title": "Recommended Reading Order",
          "id": "recommended-reading-order"
        },
        {
          "level": 2,
          "title": "The Core Flow",
          "id": "the-core-flow"
        },
        {
          "level": 2,
          "title": "What You Get",
          "id": "what-you-get"
        }
      ]
    },
    {
      "id": "01-install-and-build",
      "number": 1,
      "filename": "01-install-and-build.md",
      "title": "Install And Build",
      "status": "Published",
      "scope": "Shows how to build AIR locally and run the command-line tools from the workspace.",
      "summary": "AIR is a Rust workspace. The command-line tools live in the `air-driver` crate.",
      "group": "start",
      "groupLabel": "Start Here",
      "wordCount": 286,
      "apiPath": "/api/docs/01-install-and-build.json",
      "headings": [
        {
          "level": 2,
          "title": "Prerequisites",
          "id": "prerequisites"
        },
        {
          "level": 2,
          "title": "Main Tools",
          "id": "main-tools"
        },
        {
          "level": 2,
          "title": "Optional LLM Configuration",
          "id": "optional-llm-configuration"
        },
        {
          "level": 2,
          "title": "Build The Website Docs",
          "id": "build-the-website-docs"
        }
      ]
    },
    {
      "id": "02-quickstart",
      "number": 2,
      "filename": "02-quickstart.md",
      "title": "Quickstart",
      "status": "Published",
      "scope": "Walks through compiling an input into AIR, formatting it, and checking it.",
      "summary": "This quickstart uses the workspace binaries directly through `cargo run`.",
      "group": "start",
      "groupLabel": "Start Here",
      "wordCount": 330,
      "apiPath": "/api/docs/02-quickstart.json",
      "headings": [
        {
          "level": 2,
          "title": "1. Compile A Prompt",
          "id": "1-compile-a-prompt"
        },
        {
          "level": 2,
          "title": "2. Compile An Agent Project",
          "id": "2-compile-an-agent-project"
        },
        {
          "level": 2,
          "title": "3. Format The Module",
          "id": "3-format-the-module"
        },
        {
          "level": 2,
          "title": "4. Run Checks",
          "id": "4-run-checks"
        },
        {
          "level": 2,
          "title": "5. Inspect Optimized Output",
          "id": "5-inspect-optimized-output"
        }
      ]
    },
    {
      "id": "03-design-principles",
      "number": 3,
      "filename": "03-design-principles.md",
      "title": "Design Principles",
      "status": "Published",
      "scope": "Explains the design rules behind AIR without assuming knowledge of the implementation.",
      "summary": "AIR follows a small set of design principles. They are what make the IR useful for real agent systems rather than just another prompt dump.",
      "group": "design",
      "groupLabel": "Design Model",
      "wordCount": 341,
      "apiPath": "/api/docs/03-design-principles.json",
      "headings": [
        {
          "level": 2,
          "title": "Inspectable Workflow",
          "id": "inspectable-workflow"
        },
        {
          "level": 2,
          "title": "Inspectable Prompt Workflow",
          "id": "inspectable-prompt-workflow"
        },
        {
          "level": 2,
          "title": "One Autoformalization Layer",
          "id": "one-autoformalization-layer"
        },
        {
          "level": 2,
          "title": "Separate Evidence Planes",
          "id": "separate-evidence-planes"
        },
        {
          "level": 2,
          "title": "Closed Operation Algebra",
          "id": "closed-operation-algebra"
        },
        {
          "level": 2,
          "title": "Provenance First",
          "id": "provenance-first"
        }
      ]
    },
    {
      "id": "04-pipeline",
      "number": 4,
      "filename": "04-pipeline.md",
      "title": "Pipeline",
      "status": "Published",
      "scope": "Describes how AIR is produced from source code, prompts, and manifests.",
      "summary": "AIR is produced by a staged pipeline. The stages are separate so workflow extraction, prompt assembly, prompt meaning, and analysis do not blur together.",
      "group": "design",
      "groupLabel": "Design Model",
      "wordCount": 284,
      "apiPath": "/api/docs/04-pipeline.json",
      "headings": [
        {
          "level": 2,
          "title": "Stage 1: Frontend Extraction",
          "id": "stage-1-frontend-extraction"
        },
        {
          "level": 2,
          "title": "Stage 2: Prompt Autoformalization",
          "id": "stage-2-prompt-autoformalization"
        },
        {
          "level": 2,
          "title": "Stage 3: Merge",
          "id": "stage-3-merge"
        },
        {
          "level": 2,
          "title": "Stage 4: Verify And Analyze",
          "id": "stage-4-verify-and-analyze"
        },
        {
          "level": 2,
          "title": "Output",
          "id": "output"
        }
      ]
    },
    {
      "id": "05-workflow-and-prompt-model",
      "number": 5,
      "filename": "05-workflow-and-prompt-model.md",
      "title": "Workflow And Prompt Model",
      "status": "Published",
      "scope": "Defines the conceptual model AIR uses to represent agent systems.",
      "summary": "AIR treats an agent program as two connected workflows.",
      "group": "design",
      "groupLabel": "Design Model",
      "wordCount": 288,
      "apiPath": "/api/docs/05-workflow-and-prompt-model.json",
      "headings": [
        {
          "level": 2,
          "title": "Agent Workflow",
          "id": "agent-workflow"
        },
        {
          "level": 2,
          "title": "Prompt Workflow",
          "id": "prompt-workflow"
        },
        {
          "level": 2,
          "title": "Formalized Prompt Meaning",
          "id": "formalized-prompt-meaning"
        },
        {
          "level": 2,
          "title": "Why AIR Needs All Three",
          "id": "why-air-needs-all-three"
        }
      ]
    },
    {
      "id": "06-module-structure",
      "number": 6,
      "filename": "06-module-structure.md",
      "title": "Module Structure",
      "status": "Published",
      "scope": "Documents the top-level AIR module fields and how to inspect them.",
      "summary": "An AIR module is the unit passed to the verifier, formatter, and analysis pipeline.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 339,
      "apiPath": "/api/docs/06-module-structure.json",
      "headings": [
        {
          "level": 2,
          "title": "Module Fields",
          "id": "module-fields"
        },
        {
          "level": 2,
          "title": "Reading A Module",
          "id": "reading-a-module"
        },
        {
          "level": 2,
          "title": "Textual Shape",
          "id": "textual-shape"
        }
      ]
    },
    {
      "id": "07-declarations",
      "number": 7,
      "filename": "07-declarations.md",
      "title": "Declarations",
      "status": "Published",
      "scope": "Documents the main declaration records used by AIR modules.",
      "summary": "Declarations name reusable surfaces. They are top-level facts that operations can reference.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 353,
      "apiPath": "/api/docs/07-declarations.json",
      "headings": [
        {
          "level": 2,
          "title": "`air.text`",
          "id": "air-text"
        },
        {
          "level": 2,
          "title": "`air.tool`",
          "id": "air-tool"
        },
        {
          "level": 2,
          "title": "State And Stores",
          "id": "state-and-stores"
        },
        {
          "level": 2,
          "title": "Capabilities",
          "id": "capabilities"
        },
        {
          "level": 2,
          "title": "Legislation",
          "id": "legislation"
        }
      ]
    },
    {
      "id": "08-agents-regions-blocks",
      "number": 8,
      "filename": "08-agents-regions-blocks.md",
      "title": "Agents, Regions, And Blocks",
      "status": "Published",
      "scope": "Explains the executable and instructed structure inside AIR agents.",
      "summary": "Agents are workflow participants. Regions and blocks describe their control flow.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 329,
      "apiPath": "/api/docs/08-agents-regions-blocks.json",
      "headings": [
        {
          "level": 2,
          "title": "Agent Functions",
          "id": "agent-functions"
        },
        {
          "level": 2,
          "title": "Region Fields",
          "id": "region-fields"
        },
        {
          "level": 2,
          "title": "Fidelity",
          "id": "fidelity"
        },
        {
          "level": 2,
          "title": "Region Kinds",
          "id": "region-kinds"
        },
        {
          "level": 2,
          "title": "Blocks",
          "id": "blocks"
        }
      ]
    },
    {
      "id": "09-operations-and-values",
      "number": 9,
      "filename": "09-operations-and-values.md",
      "title": "Operations And Values",
      "status": "Published",
      "scope": "Documents AIR's closed operation algebra and value model.",
      "summary": "AIR operations are grouped under six verbs plus `Opaque`.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 276,
      "apiPath": "/api/docs/09-operations-and-values.json",
      "headings": [
        {
          "level": 2,
          "title": "Values",
          "id": "values"
        },
        {
          "level": 2,
          "title": "Acquire",
          "id": "acquire"
        },
        {
          "level": 2,
          "title": "Compose",
          "id": "compose"
        },
        {
          "level": 2,
          "title": "Consult",
          "id": "consult"
        },
        {
          "level": 2,
          "title": "Dispatch",
          "id": "dispatch"
        },
        {
          "level": 2,
          "title": "Act",
          "id": "act"
        },
        {
          "level": 2,
          "title": "Mediate",
          "id": "mediate"
        },
        {
          "level": 2,
          "title": "Opaque",
          "id": "opaque"
        }
      ]
    },
    {
      "id": "10-prompt-structures",
      "number": 10,
      "filename": "10-prompt-structures.md",
      "title": "Prompt Structures",
      "status": "Published",
      "scope": "Documents prompt declarations, templates, slots, sections, roles, and semantic roles.",
      "summary": "AIR represents prompt assembly as IR. It should be possible to see what prompt text exists, how it is assembled, and which runtime values fill it.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 356,
      "apiPath": "/api/docs/10-prompt-structures.json",
      "headings": [
        {
          "level": 2,
          "title": "Text Roles",
          "id": "text-roles"
        },
        {
          "level": 2,
          "title": "PromptTemplate Fields",
          "id": "prompttemplate-fields"
        },
        {
          "level": 2,
          "title": "TemplateSlot Fields",
          "id": "templateslot-fields"
        },
        {
          "level": 2,
          "title": "Semantic Roles",
          "id": "semantic-roles"
        },
        {
          "level": 2,
          "title": "PromptBundle",
          "id": "promptbundle"
        }
      ]
    },
    {
      "id": "11-labels-capabilities-policies",
      "number": 11,
      "filename": "11-labels-capabilities-policies.md",
      "title": "Labels, Capabilities, And Policies",
      "status": "Published",
      "scope": "Explains the analysis metadata AIR uses for security and policy checks.",
      "summary": "AIR uses labels, capabilities, and legislation to make security and policy analysis explicit.",
      "group": "reference",
      "groupLabel": "IR Reference",
      "wordCount": 304,
      "apiPath": "/api/docs/11-labels-capabilities-policies.json",
      "headings": [
        {
          "level": 2,
          "title": "Labels",
          "id": "labels"
        },
        {
          "level": 2,
          "title": "Capabilities",
          "id": "capabilities"
        },
        {
          "level": 2,
          "title": "Legislation",
          "id": "legislation"
        },
        {
          "level": 2,
          "title": "Mediation",
          "id": "mediation"
        }
      ]
    },
    {
      "id": "12-frontends",
      "number": 12,
      "filename": "12-frontends.md",
      "title": "Frontends",
      "status": "Published",
      "scope": "Shows how to compile different source systems into AIR.",
      "summary": "Frontends translate source surfaces into AIR. They are responsible for workflow extraction, prompt assembly extraction, and prompt bundle construction.",
      "group": "usage",
      "groupLabel": "Using AIR",
      "wordCount": 408,
      "apiPath": "/api/docs/12-frontends.json",
      "headings": [
        {
          "level": 2,
          "title": "Supported Frontend Modes",
          "id": "supported-frontend-modes"
        },
        {
          "level": 2,
          "title": "Known Frameworks",
          "id": "known-frameworks"
        },
        {
          "level": 2,
          "title": "Generic Scanner",
          "id": "generic-scanner"
        },
        {
          "level": 2,
          "title": "Prompt Handling Rule",
          "id": "prompt-handling-rule"
        }
      ]
    },
    {
      "id": "13-autoformalization",
      "number": 13,
      "filename": "13-autoformalization.md",
      "title": "Autoformalization",
      "status": "Published",
      "scope": "Explains how AIR turns prompt evidence into checkable prompt meaning.",
      "summary": "Autoformalization converts natural-language prompt evidence into structured AIR facts.",
      "group": "usage",
      "groupLabel": "Using AIR",
      "wordCount": 537,
      "apiPath": "/api/docs/13-autoformalization.json",
      "headings": [
        {
          "level": 2,
          "title": "Input: PromptBundle",
          "id": "input-promptbundle"
        },
        {
          "level": 2,
          "title": "Output: Formalized Prompt AIR",
          "id": "output-formalized-prompt-air"
        },
        {
          "level": 2,
          "title": "Deterministic And Oracle Modes",
          "id": "deterministic-and-oracle-modes"
        },
        {
          "level": 2,
          "title": "Merge",
          "id": "merge"
        }
      ]
    },
    {
      "id": "14-cli-reference",
      "number": 14,
      "filename": "14-cli-reference.md",
      "title": "CLI Reference",
      "status": "Published",
      "scope": "Documents the AIR command-line tools and common options.",
      "summary": "Run commands through Cargo during development:",
      "group": "usage",
      "groupLabel": "Using AIR",
      "wordCount": 2706,
      "apiPath": "/api/docs/14-cli-reference.json",
      "headings": [
        {
          "level": 2,
          "title": "`airc`",
          "id": "airc"
        },
        {
          "level": 2,
          "title": "`air-check`",
          "id": "air-check"
        },
        {
          "level": 2,
          "title": "`air-fmt`",
          "id": "air-fmt"
        },
        {
          "level": 2,
          "title": "`airql`",
          "id": "airql"
        },
        {
          "level": 2,
          "title": "`air-opt`",
          "id": "air-opt"
        },
        {
          "level": 2,
          "title": "`air-lift`",
          "id": "air-lift"
        }
      ]
    },
    {
      "id": "15-diagnostics-and-debugging",
      "number": 15,
      "filename": "15-diagnostics-and-debugging.md",
      "title": "Diagnostics And Debugging",
      "status": "Published",
      "scope": "Helps users read AIR diagnostics and debug generated modules.",
      "summary": "Diagnostics can come from frontends, the textual parser, the verifier, autoformalization, or analysis passes. AIRQL also emits diagnostic-shaped findings from query detectors.",
      "group": "usage",
      "groupLabel": "Using AIR",
      "wordCount": 1183,
      "apiPath": "/api/docs/15-diagnostics-and-debugging.json",
      "headings": [
        {
          "level": 2,
          "title": "Diagnostic Fields",
          "id": "diagnostic-fields"
        },
        {
          "level": 2,
          "title": "Common Workflow",
          "id": "common-workflow"
        },
        {
          "level": 2,
          "title": "Interpreting Opaque",
          "id": "interpreting-opaque"
        },
        {
          "level": 2,
          "title": "Reducing Noise",
          "id": "reducing-noise"
        },
        {
          "level": 2,
          "title": "Good Bug Reports",
          "id": "good-bug-reports"
        }
      ]
    },
    {
      "id": "16-docs-api-and-ui",
      "number": 16,
      "filename": "16-docs-api-and-ui.md",
      "title": "Docs API And UI",
      "status": "Published",
      "scope": "Explains how the website serves the AIR manual and why the docs UI is separate from the home page.",
      "summary": "The website serves the AIR manual through a generated static JSON API. The home page does not bundle the full documentation corpus.",
      "group": "site",
      "groupLabel": "Docs Site",
      "wordCount": 253,
      "apiPath": "/api/docs/16-docs-api-and-ui.json",
      "headings": [
        {
          "level": 2,
          "title": "Source",
          "id": "source"
        },
        {
          "level": 2,
          "title": "Generated API",
          "id": "generated-api"
        },
        {
          "level": 2,
          "title": "Display Page",
          "id": "display-page"
        },
        {
          "level": 2,
          "title": "Local Commands",
          "id": "local-commands"
        },
        {
          "level": 2,
          "title": "Library Choice",
          "id": "library-choice"
        }
      ]
    },
    {
      "id": "17-frontend-examples",
      "number": 17,
      "filename": "17-frontend-examples.md",
      "title": "Frontend Examples",
      "status": "Published",
      "scope": "Provides copy-paste inputs for every AIR frontend and the stable AIR facts each output should contain.",
      "summary": "Each frontend emits workflow AIR first, then sends recovered prompt material through the shared autoformalization layer. The compiler writes the complete AIR module to stdout:",
      "group": "examples",
      "groupLabel": "Examples",
      "wordCount": 1976,
      "apiPath": "/api/docs/17-frontend-examples.json",
      "headings": [
        {
          "level": 2,
          "title": "LangGraph",
          "id": "langgraph"
        },
        {
          "level": 2,
          "title": "CrewAI",
          "id": "crewai"
        },
        {
          "level": 2,
          "title": "PydanticAI",
          "id": "pydanticai"
        },
        {
          "level": 2,
          "title": "Pi Extension",
          "id": "pi-extension"
        },
        {
          "level": 2,
          "title": "MCP",
          "id": "mcp"
        },
        {
          "level": 2,
          "title": "A2A",
          "id": "a2a"
        },
        {
          "level": 2,
          "title": "ACP",
          "id": "acp"
        },
        {
          "level": 2,
          "title": "Generic Unknown Framework",
          "id": "generic-unknown-framework"
        }
      ]
    },
    {
      "id": "18-diagnostic-examples",
      "number": 18,
      "filename": "18-diagnostic-examples.md",
      "title": "Diagnostic Examples",
      "status": "Published",
      "scope": "Shows real diagnostic chains from source surface to AIR fact to checker output.",
      "summary": "Diagnostics are useful when they name the AIR fact that caused the result. Read them as a three-step chain: source construct, generated AIR fact, then checker message.",
      "group": "examples",
      "groupLabel": "Examples",
      "wordCount": 588,
      "apiPath": "/api/docs/18-diagnostic-examples.json",
      "headings": [
        {
          "level": 2,
          "title": "Capability Missing: `C2001`",
          "id": "capability-missing-c2001"
        },
        {
          "level": 2,
          "title": "Tool Argument Too Sensitive: `V1010`",
          "id": "tool-argument-too-sensitive-v1010"
        },
        {
          "level": 2,
          "title": "Dynamic Tool Supply Chain: `S8302`",
          "id": "dynamic-tool-supply-chain-s8302"
        },
        {
          "level": 2,
          "title": "Broken Prompt Assembly: `AF4111`",
          "id": "broken-prompt-assembly-af4111"
        },
        {
          "level": 2,
          "title": "Prompt Role Mismatch: `P1005`",
          "id": "prompt-role-mismatch-p1005"
        }
      ]
    }
  ]
}
