Recipaie Schema

The recipaie schema defines the structure for deployment recipes - templates that describe how to install and configure software.

Schema URL:

https://recipaie.com/schemas/recipaie.schema.json

Required Fields

FieldTypeDescription

name

stringName of the service or application

version

stringSemantic version of the recipaie (e.g., "1.0.0")

steps

arrayOrdered list of deployment steps

step_count

integerTotal number of steps (must match steps array length)

Optional Fields

FieldTypeDescription

description

stringBrief description of what this recipe deploys

prerequisites

arrayTools or conditions required before starting

Step Structure

Each step in the steps array must contain:

FieldRequiredDescription

order

YesStep number (1-based)

what

YesWhat action to perform

why

YesWhy this step is needed (builds context)

when

YesWhen or under what condition to perform this step

skip_if

NoCondition to skip this step

how

YesHow to perform the action (command or instruction)

verify

YesHow to verify the step succeeded

comments

NoAdditional context or notes
Full Schema JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://recipaie.publifye.pro/recipaie.schema.json",
  "title": "Recipaie",
  "description": "Recipe for AI - a simple deployment guide schema for AI assistants",
  "type": "object",
  "required": ["name", "version", "steps", "step_count"],
  "properties": {
    "$schema": {
      "type": "string",
      "description": "Reference to the recipaie schema"
    },
    "name": {
      "type": "string",
      "description": "Name of the service or application"
    },
    "flavor": {
      "type": "string",
      "description": "Variant identifier (e.g., 'dev', 'deploy'). Empty or omitted for the main recipaie. Must match filename suffix: recipaie-{flavor}.json"
    },
    "version": {
      "type": "string",
      "description": "Semantic version of the recipaie (e.g., '1.0.0')"
    },
    "description": {
      "type": "string",
      "description": "Brief description of what this recipe deploys"
    },
    "prerequisites": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Tools or conditions that must exist before starting (e.g., docker, pubmcp)"
    },
    "steps": {
      "type": "array",
      "description": "Ordered list of deployment steps",
      "items": {
        "type": "object",
        "required": ["order", "what", "why", "when", "how", "verify"],
        "properties": {
          "order": {
            "type": "integer",
            "minimum": 1,
            "description": "Step number (1-based)"
          },
          "what": {
            "type": "string",
            "description": "What action to perform"
          },
          "why": {
            "type": "string",
            "description": "Why this step is needed (builds context)"
          },
          "when": {
            "type": "string",
            "description": "When or under what condition to perform this step"
          },
          "skip_if": {
            "type": "string",
            "description": "Condition to skip this step (optional)"
          },
          "how": {
            "type": "string",
            "description": "How to perform the action (command or instruction)"
          },
          "verify": {
            "type": "string",
            "description": "How to verify the step succeeded"
          },
          "comments": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Additional context or notes (optional)"
          }
        },
        "additionalProperties": false
      }
    },
    "step_count": {
      "type": "integer",
      "minimum": 1,
      "description": "Total number of steps (must match steps array length)"
    }
  },
  "additionalProperties": false
}

Prodaie Schema

The prodaie schema extends recipaie to track execution results per installation location. It's the "product" of running a recipaie.

Schema URL:

https://recipaie.com/schemas/prodaie.schema.json

Structure

A prodaie contains:

  • name

    - Must match the original recipaie
  • locations - Array of installation locations, each with their own execution results

Location Structure

Each location contains:

FieldDescription

path

File path or directory where this instance is installed

description

Purpose of this specific installation

status

Execution status: complete, partial, or failed

steps

Steps with results for this installation

step_count

Total number of steps

Step Results

In addition to the recipaie step fields, prodaie steps include these required fields:

FieldTypeDescription

success

boolean

true if step succeeded or was intentionally skipped, false if failed

details

stringExplanation of what happened during execution

The boolean success field makes it easy to programmatically check step outcomes, while details provides the human-readable explanation.

Full Schema JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://recipaie.publifye.pro/prodaie.schema.json",
  "title": "Prodaie",
  "description": "Product of AI - a recipaie with execution results per installation location",
  "type": "object",
  "required": ["name", "locations"],
  "properties": {
    "$schema": {
      "type": "string",
      "description": "Reference to the prodaie schema"
    },
    "name": {
      "type": "string",
      "description": "Name of the service or application"
    },
    "flavor": {
      "type": "string",
      "description": "Variant identifier matching the recipaie that was executed. Must match filename suffix: prodaie-{flavor}.json"
    },
    "description": {
      "type": "string",
      "description": "Brief description of what this recipe deploys"
    },
    "prerequisites": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Tools or conditions that must exist before starting"
    },
    "locations": {
      "type": "array",
      "description": "Installation locations with their individual execution results",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["path", "status", "steps", "step_count"],
        "properties": {
          "path": {
            "type": "string",
            "description": "File path or directory where this instance is installed"
          },
          "description": {
            "type": "string",
            "description": "Purpose of this specific installation"
          },
          "status": {
            "type": "string",
            "enum": ["complete", "partial", "failed"],
            "description": "Execution status for this installation"
          },
          "steps": {
            "type": "array",
            "description": "Ordered list of deployment steps with results for this installation",
            "items": {
              "type": "object",
              "required": ["order", "what", "why", "when", "how", "verify", "success", "details"],
              "properties": {
                "order": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Step number (1-based)"
                },
                "what": {
                  "type": "string",
                  "description": "What action to perform"
                },
                "why": {
                  "type": "string",
                  "description": "Why this step is needed (builds context)"
                },
                "when": {
                  "type": "string",
                  "description": "When or under what condition to perform this step"
                },
                "skip_if": {
                  "type": "string",
                  "description": "Condition to skip this step (optional)"
                },
                "how": {
                  "type": "string",
                  "description": "How to perform the action (command or instruction)"
                },
                "verify": {
                  "type": "string",
                  "description": "How to verify the step succeeded"
                },
                "success": {
                  "type": "boolean",
                  "description": "Whether the step succeeded (true) or failed (false). Steps that were intentionally skipped are also true."
                },
                "details": {
                  "type": "string",
                  "description": "Explanation of what happened during execution"
                },
                "comments": {
                  "type": "array",
                  "items": { "type": "string" },
                  "description": "Additional context or notes (optional)"
                }
              },
              "additionalProperties": false
            }
          },
          "step_count": {
            "type": "integer",
            "minimum": 1,
            "description": "Total number of steps (must match steps array length)"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}