PromptPack Specification
Title: PromptPack Specification
Type
object
Required
No
Additional properties
Not allowed
Description: Schema for packaging, testing, and running multi-prompt conversational systems with multimodal, workflow, agent, agent-loop, skills, and composition support. Agents may be backed by a workflow state (AgentDef.state) to expose stateful, looping behavior. Workflow states may use ‘composition’ orchestration to run a declarative step graph (RFC 0010). A pack may declare the model providers it needs to run via the optional ‘requires.providers’ block (RFC 0012). Packs may declare governance facts (metadata.governance) and per-tool action scope (Tool.action_scope) so consequence is recorded alongside capability.
Examples:
"$schema" : " https://promptpack.org/schema/v1/promptpack.schema.json " ,
"id" : " customer-support " ,
"name" : " Customer Support Pack " ,
"description" : " Complete customer support prompt pack with multiple task types " ,
"syntax" : " {{variable}} " ,
"description" : " General customer support assistant " ,
"system_template" : " You are a {{role}} assistant for {{company}}. " ,
"description" : " The role of the assistant " ,
"example" : " support agent "
"description" : " Look up order details by order ID " ,
"description" : " The order ID to look up "
"$schema" : " https://promptpack.org/schema/v1/promptpack.schema.json " ,
"name" : " Image Analysis Pack " ,
"description" : " Multimodal pack for analyzing images with vision models " ,
"syntax" : " {{variable}} " ,
"name" : " Image Analyzer " ,
"description" : " Analyzes images and provides detailed descriptions " ,
"system_template" : " You are an expert image analyst. Provide detailed, accurate descriptions of images. " ,
"default_detail" : " high " ,
"name" : " simple-image-analysis " ,
"description" : " Basic image analysis with a single photo " ,
"text" : " What's in this image? "
"file_path" : " examples/photo.jpg " ,
"mime_type" : " image/jpeg " ,
"caption" : " Sample photo for analysis "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- $schema
No
string
No
-
JSON Schema reference for validation and IDE support
+ id
No
string
No
-
Unique identifier for the pack. Used for referencing and caching. Should be lowercase with hyphens.
+ name
No
string
No
-
Human-readable name for the pack. Displayed in UIs and documentation.
+ version
No
string
No
-
Pack version following Semantic Versioning 2.0.0 (MAJOR.MINOR.PATCH). Can optionally include ‘v’ prefix. Use MAJOR for breaking changes, MINOR for new features, PATCH for bug fixes. This version tracks the pack as a whole, while individual prompts can have independent versions.
- description
No
string
No
-
Detailed description of the pack’s purpose, use cases, and contents. Supports markdown formatting.
+ template_engine
No
object
No
-
Template engine configuration shared across all prompts in the pack. Defines how variables are substituted and fragments are resolved.
+ prompts
No
object
No
-
Map of task_type to prompt configuration. Each key is a task type (e.g., ‘support’, ‘sales’) and each value is a complete prompt definition. A pack must contain at least one prompt.
- fragments
No
object
No
-
Shared template fragments that can be referenced by any prompt in the pack. Fragments are reusable text blocks resolved at compile time. Keys are fragment names, values are fragment content.
- tools
No
object
No
-
Tool definitions that can be referenced by prompts. Tools enable the LLM to call external functions. Keys are tool names, values are tool specifications following the JSON Schema for function calling.
- metadata
No
object
No
-
Optional pack-level metadata for categorization, discovery, and operational planning.
- compilation
No
object
No
-
Information about when and how this pack was compiled. Generated automatically by the packc compiler.
- evals
No
array
No
-
Pack-level eval definitions that apply across all prompts. Useful for cross-cutting quality concerns like brand consistency or safety checks. Prompt-level evals with the same id override pack-level evals.
- workflow
No
object
No
In #/$defs/WorkflowConfig
Workflow configuration defining a state machine over the pack’s prompts. Each state references a prompt key and declares event-driven transitions.
- agents
No
object
No
In #/$defs/AgentsConfig
Agent configuration mapping prompts to A2A-compatible agent definitions. Enables multi-agent orchestration via the Agent-to-Agent protocol.
- skills
No
array
No
-
Skill sources for progressive-disclosure knowledge loading. Each entry is either a string (path or package reference), a SkillPathSource object, or an InlineSkill object.
- compositions
No
object
No
-
Map of composition name to composition definition (RFC 0010). Each composition declares a named step graph that a runtime may invoke as a structured-input/structured-output unit. Compositions are reached only through workflow states whose orchestration is ‘composition’. Optional; packs without it are unaffected.
- requires
No
object
No
-
External resources the pack needs to run (RFC 0012). Optional; when present, validated strictly. Reserved for future requirement categories (e.g. tools, skills).
1. Property PromptPack Specification > $schema
Type
string
Required
No
Default
"https://promptpack.org/schema/v1/promptpack.schema.json"
Description: JSON Schema reference for validation and IDE support
Example:
" https://promptpack.org/schema/v1/promptpack.schema.json "
2. Property PromptPack Specification > id
Description: Unique identifier for the pack. Used for referencing and caching. Should be lowercase with hyphens.
Examples:
Restrictions
Min length
1
Max length
100
Must match regular expression
^[a-z][a-z0-9-]*$ Test
3. Property PromptPack Specification > name
Description: Human-readable name for the pack. Displayed in UIs and documentation.
Examples:
Restrictions
Min length
1
Max length
200
4. Property PromptPack Specification > version
Description: Pack version following Semantic Versioning 2.0.0 (MAJOR.MINOR.PATCH). Can optionally include ‘v’ prefix. Use MAJOR for breaking changes, MINOR for new features, PATCH for bug fixes. This version tracks the pack as a whole, while individual prompts can have independent versions.
Examples:
Restrictions
Must match regular expression
^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ Test
5. Property PromptPack Specification > description
Description: Detailed description of the pack’s purpose, use cases, and contents. Supports markdown formatting.
Example:
" Complete customer support prompt pack with multiple task types for handling support, sales, and technical inquiries "
Restrictions
Max length
5000
6. Property PromptPack Specification > template_engine
Type
object
Required
Yes
Additional properties
Not allowed
Description: Template engine configuration shared across all prompts in the pack. Defines how variables are substituted and fragments are resolved.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ version
No
string
No
-
Template engine version. Use ‘v1’ for the current stable version.
+ syntax
No
string
No
-
Variable substitution syntax pattern. Defines how variables appear in templates.
- features
No
array of enum (of string)
No
-
Optional list of supported template features beyond basic substitution.
6.1. Property PromptPack Specification > template_engine > version
Description: Template engine version. Use ‘v1’ for the current stable version.
Examples:
6.2. Property PromptPack Specification > template_engine > syntax
Description: Variable substitution syntax pattern. Defines how variables appear in templates.
Examples:
6.3. Property PromptPack Specification > template_engine > features
Type
array of enum (of string)
Required
No
Description: Optional list of supported template features beyond basic substitution.
Example:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
6.3.1. PromptPack Specification > template_engine > features > features items
Type
enum (of string)
Required
No
Must be one of:
“basic_substitution”
“fragments”
“conditionals”
“loops”
“filters”
7. Property PromptPack Specification > prompts
Description: Map of task_type to prompt configuration. Each key is a task type (e.g., ‘support’, ‘sales’) and each value is a complete prompt definition. A pack must contain at least one prompt.
Example:
"system_template" : " You are a helpful assistant. "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/Prompt
A single prompt configuration within a pack. Each prompt represents a specific task type (e.g., ‘support’, ‘sales’) with its own template, variables, tools, and validation rules. Prompts within a pack can evolve independently with their own version numbers.
7.1. Property PromptPack Specification > prompts > Prompt
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Prompt
Description: A single prompt configuration within a pack. Each prompt represents a specific task type (e.g., ‘support’, ‘sales’) with its own template, variables, tools, and validation rules. Prompts within a pack can evolve independently with their own version numbers.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ id
No
string
No
-
Unique identifier for this prompt, typically matching the task_type key
+ name
No
string
No
-
Human-readable name for this prompt
- description
No
string
No
-
Detailed description of this prompt’s purpose and behavior
+ version
No
string
No
-
Prompt version following Semantic Versioning 2.0.0. Independent from pack version, allowing individual prompts to evolve separately.
+ system_template
No
string
No
-
The system prompt template. Use template syntax (e.g., {{variable}}) for variable substitution. This is the core instruction that guides the LLM’s behavior.
- variables
No
array
No
-
Variable definitions for this prompt. Variables are placeholders in the template that are replaced with actual values at runtime.
- tools
No
array of string
No
-
List of tool names that this prompt is allowed to use. Tools must be defined in the pack-level ‘tools’ object.
- tool_policy
No
object
No
In #/$defs/ToolPolicy
Policy governing how tools can be used by this prompt
- pipeline
No
object
No
In #/$defs/PipelineConfig
Pipeline configuration defining processing stages and middleware
- parameters
No
object
No
In #/$defs/Parameters
LLM generation parameters like temperature and max_tokens
- validators
No
array
No
-
Validation rules (guardrails) applied to LLM responses
- evals
No
array
No
-
Eval definitions scoped to this prompt. These evals assess the quality of responses generated by this specific prompt. Prompt-level evals with the same id override pack-level evals.
- tested_models
No
array
No
-
Model testing results documenting which models have been tested with this prompt and their performance
- model_overrides
No
object
No
-
Model-specific template modifications. Keys are model names (e.g., ‘claude-3-opus’, ‘gpt-4’), values are override configurations.
- media
No
object
No
In #/$defs/MediaConfig
Multimodal content configuration for this prompt. Defines supported media types and validation rules.
7.1.1. Property PromptPack Specification > prompts > additionalProperties > id
Description: Unique identifier for this prompt, typically matching the task_type key
Examples:
Restrictions
Must match regular expression
^[a-z][a-z0-9_-]*$ Test
7.1.2. Property PromptPack Specification > prompts > additionalProperties > name
Description: Human-readable name for this prompt
Examples:
Restrictions
Min length
1
7.1.3. Property PromptPack Specification > prompts > additionalProperties > description
Description: Detailed description of this prompt’s purpose and behavior
Example:
" General customer support assistant for handling inquiries "
7.1.4. Property PromptPack Specification > prompts > additionalProperties > version
Description: Prompt version following Semantic Versioning 2.0.0. Independent from pack version, allowing individual prompts to evolve separately.
Examples:
Restrictions
Must match regular expression
^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ Test
7.1.5. Property PromptPack Specification > prompts > additionalProperties > system_template
Description: The system prompt template. Use template syntax (e.g., {{variable}}) for variable substitution. This is the core instruction that guides the LLM’s behavior.
Examples:
" You are a {{role}} assistant for {{company}}. \\ n \\ nProvide helpful, professional support. "
" You are an expert in {{domain}}. Help users with {{task_description}}. "
Restrictions
Min length
1
7.1.6. Property PromptPack Specification > prompts > additionalProperties > variables
Description: Variable definitions for this prompt. Variables are placeholders in the template that are replaced with actual values at runtime.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Variable
A template variable definition with type information and validation rules. Variables are replaced with actual values when the prompt is rendered.
7.1.6.1. PromptPack Specification > prompts > additionalProperties > variables > Variable
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Variable
Description: A template variable definition with type information and validation rules. Variables are replaced with actual values when the prompt is rendered.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ name
No
string
No
-
Variable name used in templates (e.g., {{name}})
+ type
No
string
No
-
Data type of the variable
+ required
No
boolean
No
-
Whether this variable must be provided. Required variables without values will cause an error.
- default
No
object
No
-
Default value used when variable is not provided. Cannot be set if required is true.
- description
No
string
No
-
Human-readable description of the variable’s purpose
- example
No
object
No
-
Example value showing expected format and content
- validation
No
object
No
-
Validation rules applied to the variable value at runtime
- binding
No
object
No
-
Declares how this variable is automatically populated from runtime context.
7.1.6.1.1. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > name
Description: Variable name used in templates (e.g., {{name}})
Examples:
Restrictions
Must match regular expression
^[a-zA-Z_][a-zA-Z0-9_]*$ Test
7.1.6.1.2. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > type
Description: Data type of the variable
Examples:
7.1.6.1.3. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > required
Type
boolean
Required
Yes
Description: Whether this variable must be provided. Required variables without values will cause an error.
7.1.6.1.4. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > default
Type
object
Required
No
Additional properties
Any type allowed
Description: Default value used when variable is not provided. Cannot be set if required is true.
Examples:
7.1.6.1.5. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > description
Description: Human-readable description of the variable’s purpose
Examples:
" The role of the assistant "
7.1.6.1.6. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > example
Type
object
Required
No
Additional properties
Any type allowed
Description: Example value showing expected format and content
Examples:
7.1.6.1.7. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation
Type
object
Required
No
Additional properties
Not allowed
Description: Validation rules applied to the variable value at runtime
Property
Pattern
Type
Deprecated
Definition
Title/Description
- pattern
No
string
No
-
Regular expression pattern (for string types)
- min_length
No
integer
No
-
Minimum string length (for string types)
- max_length
No
integer
No
-
Maximum string length (for string types)
- minimum
No
number
No
-
Minimum numeric value (for number types)
- maximum
No
number
No
-
Maximum numeric value (for number types)
- enum
No
array
No
-
List of allowed values
7.1.6.1.7.1. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > pattern
Description: Regular expression pattern (for string types)
Examples:
" ^[a-z0-9._%+-]+@[a-z0-9.-]+ \\\\ .[a-z]{2,}$ "
7.1.6.1.7.2. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > min_length
Description: Minimum string length (for string types)
Examples:
7.1.6.1.7.3. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > max_length
Description: Maximum string length (for string types)
Examples:
7.1.6.1.7.4. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > minimum
Description: Minimum numeric value (for number types)
Examples:
7.1.6.1.7.5. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > maximum
Description: Maximum numeric value (for number types)
Examples:
7.1.6.1.7.6. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > enum
Description: List of allowed values
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
enum items
-
7.1.6.1.7.6.1. PromptPack Specification > prompts > additionalProperties > variables > variables items > validation > enum > enum items
Type
object
Required
No
Additional properties
Any type allowed
7.1.6.1.8. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > binding
Type
object
Required
No
Additional properties
Not allowed
Description: Declares how this variable is automatically populated from runtime context.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- kind
No
string
No
-
The binding source kind.
- field
No
string
No
-
The field name within the binding source to extract.
- auto_populate
No
boolean
No
-
Whether this variable is automatically populated at runtime without caller input.
- filter
No
string
No
-
Optional filter expression applied to the bound value.
7.1.6.1.8.1. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > binding > kind
Description: The binding source kind.
Examples:
7.1.6.1.8.2. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > binding > field
Description: The field name within the binding source to extract.
Examples:
7.1.6.1.8.3. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > binding > auto_populate
Type
boolean
Required
No
Default
false
Description: Whether this variable is automatically populated at runtime without caller input.
7.1.6.1.8.4. Property PromptPack Specification > prompts > additionalProperties > variables > variables items > binding > filter
Description: Optional filter expression applied to the bound value.
Examples:
Type
array of string
Required
No
Description: List of tool names that this prompt is allowed to use. Tools must be defined in the pack-level ‘tools’ object.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
tools items
-
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ToolPolicy
Description: Policy governing how tools can be used by this prompt
Property
Pattern
Type
Deprecated
Definition
Title/Description
- tool_choice
No
enum (of string)
No
-
‘auto’ lets the LLM decide when to use tools, ‘required’ forces tool use, ‘none’ disables tools
- max_rounds
No
integer
No
-
Maximum number of LLM → tool → LLM cycles allowed per turn
- max_tool_calls_per_turn
No
integer
No
-
Maximum number of tool calls allowed in a single turn
- blocklist
No
array of string
No
-
List of tool names that are not allowed for this prompt (overrides tools list)
Type
enum (of string)
Required
No
Default
"auto"
Description: ‘auto’ lets the LLM decide when to use tools, ‘required’ forces tool use, ‘none’ disables tools
Examples:
Must be one of:
Type
integer
Required
No
Default
5
Description: Maximum number of LLM → tool → LLM cycles allowed per turn
Examples:
Type
integer
Required
No
Default
10
Description: Maximum number of tool calls allowed in a single turn
Examples:
Type
array of string
Required
No
Description: List of tool names that are not allowed for this prompt (overrides tools list)
Example:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
7.1.9. Property PromptPack Specification > prompts > additionalProperties > pipeline
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/PipelineConfig
Description: Pipeline configuration defining processing stages and middleware
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ stages
No
array of string
No
-
Ordered list of pipeline stages. Common stages: ‘template’, ‘provider’, ‘validator’
- middleware
No
array
No
-
Middleware components with their configurations. Applied in order during pipeline execution.
7.1.9.1. Property PromptPack Specification > prompts > additionalProperties > pipeline > stages
Type
array of string
Required
Yes
Description: Ordered list of pipeline stages. Common stages: ‘template’, ‘provider’, ‘validator’
Example:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
7.1.9.1.1. PromptPack Specification > prompts > additionalProperties > pipeline > stages > stages items
7.1.9.2. Property PromptPack Specification > prompts > additionalProperties > pipeline > middleware
Description: Middleware components with their configurations. Applied in order during pipeline execution.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
MiddlewareConfig
Configuration for a single middleware component in the pipeline
7.1.9.2.1. PromptPack Specification > prompts > additionalProperties > pipeline > middleware > MiddlewareConfig
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/MiddlewareConfig
Description: Configuration for a single middleware component in the pipeline
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ type
No
string
No
-
Middleware type identifier
- config
No
object
No
-
Type-specific configuration for the middleware
7.1.9.2.1.1. Property PromptPack Specification > prompts > additionalProperties > pipeline > middleware > middleware items > type
Description: Middleware type identifier
Examples:
7.1.9.2.1.2. Property PromptPack Specification > prompts > additionalProperties > pipeline > middleware > middleware items > config
Type
object
Required
No
Additional properties
Any type allowed
Description: Type-specific configuration for the middleware
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
7.1.10. Property PromptPack Specification > prompts > additionalProperties > parameters
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Parameters
Description: LLM generation parameters like temperature and max_tokens
Property
Pattern
Type
Deprecated
Definition
Title/Description
- temperature
No
number
No
-
Sampling temperature (0-2). Higher values make output more random, lower values more deterministic.
- max_tokens
No
integer
No
-
Maximum number of tokens to generate in the response
- top_p
No
number
No
-
Nucleus sampling parameter (0-1). Alternative to temperature for controlling randomness.
- top_k
No
integer or null
No
-
Top-k sampling parameter. Limits to top K tokens. Null means no limit.
- frequency_penalty
No
number
No
-
Penalty for token frequency (-2 to 2). Positive values reduce repetition.
- presence_penalty
No
number
No
-
Penalty for token presence (-2 to 2). Positive values encourage new topics.
7.1.10.1. Property PromptPack Specification > prompts > additionalProperties > parameters > temperature
Description: Sampling temperature (0-2). Higher values make output more random, lower values more deterministic.
Examples:
Restrictions
Minimum
≥ 0
Maximum
≤ 2
7.1.10.2. Property PromptPack Specification > prompts > additionalProperties > parameters > max_tokens
Description: Maximum number of tokens to generate in the response
Examples:
7.1.10.3. Property PromptPack Specification > prompts > additionalProperties > parameters > top_p
Description: Nucleus sampling parameter (0-1). Alternative to temperature for controlling randomness.
Examples:
Restrictions
Minimum
≥ 0
Maximum
≤ 1
7.1.10.4. Property PromptPack Specification > prompts > additionalProperties > parameters > top_k
Type
integer or null
Required
No
Description: Top-k sampling parameter. Limits to top K tokens. Null means no limit.
Examples:
7.1.10.5. Property PromptPack Specification > prompts > additionalProperties > parameters > frequency_penalty
Description: Penalty for token frequency (-2 to 2). Positive values reduce repetition.
Examples:
Restrictions
Minimum
≥ -2
Maximum
≤ 2
7.1.10.6. Property PromptPack Specification > prompts > additionalProperties > parameters > presence_penalty
Description: Penalty for token presence (-2 to 2). Positive values encourage new topics.
Examples:
Restrictions
Minimum
≥ -2
Maximum
≤ 2
7.1.11. Property PromptPack Specification > prompts > additionalProperties > validators
Description: Validation rules (guardrails) applied to LLM responses
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Validator
A validation rule (guardrail) applied to LLM responses. Validators can check content, length, format, and other constraints to ensure response quality and safety.
7.1.11.1. PromptPack Specification > prompts > additionalProperties > validators > Validator
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Validator
Description: A validation rule (guardrail) applied to LLM responses. Validators can check content, length, format, and other constraints to ensure response quality and safety.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ type
No
string
No
-
The validator type that determines how validation is performed. Not an enum — runtimes define and register their own validator types.
- enabled
No
boolean
No
-
Whether this validator is active. Allows temporarily disabling validators without removing them.
- message
No
string
No
-
User-facing message returned when the validator blocks content.
- fail_on_violation
No
boolean
No
-
If true, validation failures cause an error. If false, violations are logged but allowed.
- params
No
object
No
-
Validator-specific parameters
7.1.11.1.1. Property PromptPack Specification > prompts > additionalProperties > validators > validators items > type
Description: The validator type that determines how validation is performed. Not an enum — runtimes define and register their own validator types.
Examples:
Restrictions
Min length
1
7.1.11.1.2. Property PromptPack Specification > prompts > additionalProperties > validators > validators items > enabled
Type
boolean
Required
No
Default
true
Description: Whether this validator is active. Allows temporarily disabling validators without removing them.
7.1.11.1.3. Property PromptPack Specification > prompts > additionalProperties > validators > validators items > message
Description: User-facing message returned when the validator blocks content.
Examples:
" Response contains banned words "
" Response exceeds maximum length "
7.1.11.1.4. Property PromptPack Specification > prompts > additionalProperties > validators > validators items > fail_on_violation
Type
boolean
Required
No
Default
false
Description: If true, validation failures cause an error. If false, violations are logged but allowed.
7.1.11.1.5. Property PromptPack Specification > prompts > additionalProperties > validators > validators items > params
Type
object
Required
No
Additional properties
Any type allowed
Description: Validator-specific parameters
Examples:
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
7.1.12. Property PromptPack Specification > prompts > additionalProperties > evals
Description: Eval definitions scoped to this prompt. These evals assess the quality of responses generated by this specific prompt. Prompt-level evals with the same id override pack-level evals.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Eval
An eval definition that declares how to assess LLM output quality. Evals run asynchronously and produce scores or metrics, unlike validators which run inline and block.
7.1.12.1. PromptPack Specification > prompts > additionalProperties > evals > Eval
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Eval
Description: An eval definition that declares how to assess LLM output quality. Evals run asynchronously and produce scores or metrics, unlike validators which run inline and block.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ id
No
string
No
-
Unique identifier for this eval within its scope (prompt-level or pack-level).
- description
No
string
No
-
Human-readable description of what this eval measures and why it matters.
+ type
No
string
No
-
The assertion type that determines how this eval is executed. Not an enum — runtimes define and register their own types.
+ trigger
No
string
No
-
When this eval should be triggered.
- sample_percentage
No
number
No
-
Percentage of turns or sessions to sample when trigger is sample_turns or sample_sessions. Ignored for other trigger types.
- enabled
No
boolean
No
-
Whether this eval is active. Allows temporarily disabling evals without removing them.
- params
No
object
No
-
Type-specific configuration for the eval. Structure depends on the eval type — runtimes interpret these based on the type field.
- metric
No
object
No
In #/$defs/MetricDef
Prometheus-style metric declaration describing the output shape of this eval. Runtimes use this to expose results to monitoring systems.
- threshold
No
object
No
-
Pass/fail threshold for the eval score.
- message
No
string
No
-
Human-readable message describing the eval result or failure reason.
- when
No
object
No
-
Conditional expression that determines whether this eval runs for a given turn or session.
- groups
No
array of string
No
-
Eval group tags for organizing and filtering evals.
7.1.12.1.1. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > id
Description: Unique identifier for this eval within its scope (prompt-level or pack-level).
Examples:
Restrictions
Min length
1
7.1.12.1.2. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > description
Description: Human-readable description of what this eval measures and why it matters.
7.1.12.1.3. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > type
Description: The assertion type that determines how this eval is executed. Not an enum — runtimes define and register their own types.
Examples:
Restrictions
Min length
1
7.1.12.1.4. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > trigger
Description: When this eval should be triggered.
Examples:
" on_conversation_complete "
7.1.12.1.5. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > sample_percentage
Type
number
Required
No
Default
5
Description: Percentage of turns or sessions to sample when trigger is sample_turns or sample_sessions. Ignored for other trigger types.
Examples:
Restrictions
Minimum
≥ 0
Maximum
≤ 100
7.1.12.1.6. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > enabled
Type
boolean
Required
No
Default
true
Description: Whether this eval is active. Allows temporarily disabling evals without removing them.
7.1.12.1.7. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > params
Type
object
Required
No
Additional properties
Any type allowed
Description: Type-specific configuration for the eval. Structure depends on the eval type — runtimes interpret these based on the type field.
Examples:
"judge_prompt" : " Rate the response tone on a scale of 1-5 for professionalism. " ,
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
7.1.12.1.8. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/MetricDef
Description: Prometheus-style metric declaration describing the output shape of this eval. Runtimes use this to expose results to monitoring systems.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ name
No
string
No
-
Metric name. Should follow Prometheus naming conventions (snake_case, namespace prefix recommended).
+ type
No
enum (of string)
No
-
Prometheus metric type that describes the value semantics.
- range
No
object
No
-
Optional value bounds. Useful for gauge metrics with known ranges.
- - additionalProperties
No
object
No
-
-
7.1.12.1.8.1. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric > name
Description: Metric name. Should follow Prometheus naming conventions (snake_case, namespace prefix recommended).
Examples:
" promptpack_brand_consistency "
Restrictions
Must match regular expression
^[a-zA-Z_:][a-zA-Z0-9_:]*$ Test
7.1.12.1.8.2. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric > type
Type
enum (of string)
Required
Yes
Description: Prometheus metric type that describes the value semantics.
Must be one of:
“gauge”
“counter”
“histogram”
“boolean”
7.1.12.1.8.3. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric > range
Type
object
Required
No
Additional properties
Any type allowed
Description: Optional value bounds. Useful for gauge metrics with known ranges.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- min
No
number
No
-
Minimum expected value
- max
No
number
No
-
Maximum expected value
7.1.12.1.8.3.1. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric > range > min
Description: Minimum expected value
7.1.12.1.8.3.2. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > metric > range > max
Description: Maximum expected value
7.1.12.1.9. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > threshold
Type
object
Required
No
Additional properties
Not allowed
Description: Pass/fail threshold for the eval score.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- operator
No
string
No
-
Comparison operator for the threshold.
- value
No
number
No
-
The threshold value to compare against.
7.1.12.1.9.1. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > threshold > operator
Description: Comparison operator for the threshold.
Examples:
7.1.12.1.9.2. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > threshold > value
Description: The threshold value to compare against.
Examples:
7.1.12.1.10. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > message
Description: Human-readable message describing the eval result or failure reason.
Examples:
" Tone score below threshold "
" Response failed brand consistency check "
7.1.12.1.11. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > when
Type
object
Required
No
Additional properties
Any type allowed
Description: Conditional expression that determines whether this eval runs for a given turn or session.
Examples:
"has_variable" : " customer_tier "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
7.1.12.1.12. Property PromptPack Specification > prompts > additionalProperties > evals > evals items > groups
Type
array of string
Required
No
Description: Eval group tags for organizing and filtering evals.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
7.1.12.1.12.1. PromptPack Specification > prompts > additionalProperties > evals > evals items > groups > groups items
7.1.13. Property PromptPack Specification > prompts > additionalProperties > tested_models
Description: Model testing results documenting which models have been tested with this prompt and their performance
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
TestedModel
Testing results for a specific model. Documents which models have been tested with this prompt and their performance metrics.
7.1.13.1. PromptPack Specification > prompts > additionalProperties > tested_models > TestedModel
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/TestedModel
Description: Testing results for a specific model. Documents which models have been tested with this prompt and their performance metrics.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ provider
No
string
No
-
LLM provider name
+ model
No
string
No
-
Specific model identifier
+ date
No
string
No
-
Date when the model was tested (YYYY-MM-DD)
- success_rate
No
number
No
-
Success rate (0-1) from test runs
- avg_tokens
No
number
No
-
Average number of tokens used per response
- avg_cost
No
number
No
-
Average cost per execution in USD
- avg_latency_ms
No
number
No
-
Average response latency in milliseconds
- notes
No
string
No
-
Additional notes about model performance or observations
7.1.13.1.1. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > provider
Description: LLM provider name
Examples:
7.1.13.1.2. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > model
Description: Specific model identifier
Examples:
7.1.13.1.3. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > date
Type
string
Required
Yes
Format
date
Description: Date when the model was tested (YYYY-MM-DD)
Examples:
7.1.13.1.4. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > success_rate
Description: Success rate (0-1) from test runs
Examples:
Restrictions
Minimum
≥ 0
Maximum
≤ 1
7.1.13.1.5. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > avg_tokens
Description: Average number of tokens used per response
Examples:
7.1.13.1.6. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > avg_cost
Description: Average cost per execution in USD
Examples:
7.1.13.1.7. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > avg_latency_ms
Description: Average response latency in milliseconds
Examples:
7.1.13.1.8. Property PromptPack Specification > prompts > additionalProperties > tested_models > tested_models items > notes
Description: Additional notes about model performance or observations
7.1.14. Property PromptPack Specification > prompts > additionalProperties > model_overrides
Description: Model-specific template modifications. Keys are model names (e.g., ‘claude-3-opus’, ‘gpt-4’), values are override configurations.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/ModelOverride
Model-specific template modifications. Allows customizing prompts for specific models without changing the base template.
7.1.14.1. Property PromptPack Specification > prompts > additionalProperties > model_overrides > ModelOverride
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ModelOverride
Description: Model-specific template modifications. Allows customizing prompts for specific models without changing the base template.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- system_template_prefix
No
string
No
-
Text prepended to the system template for this model
- system_template_suffix
No
string
No
-
Text appended to the system template for this model
- system_template
No
string
No
-
Complete replacement system template for this model (overrides the base template entirely)
- parameters
No
object
No
Same as parameters
Model-specific parameter overrides
7.1.14.1.1. Property PromptPack Specification > prompts > additionalProperties > model_overrides > additionalProperties > system_template_prefix
Description: Text prepended to the system template for this model
Examples:
7.1.14.1.2. Property PromptPack Specification > prompts > additionalProperties > model_overrides > additionalProperties > system_template_suffix
Description: Text appended to the system template for this model
Examples:
" \\ n \\ nBe concise and direct. "
7.1.14.1.3. Property PromptPack Specification > prompts > additionalProperties > model_overrides > additionalProperties > system_template
Description: Complete replacement system template for this model (overrides the base template entirely)
7.1.14.1.4. Property PromptPack Specification > prompts > additionalProperties > model_overrides > additionalProperties > parameters
Type
object
Required
No
Additional properties
Not allowed
Same definition as
parameters
Description: Model-specific parameter overrides
Description: Multimodal content configuration for this prompt. Defines supported media types and validation rules.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ enabled
No
boolean
No
-
Whether multimodal content is enabled for this prompt
- supported_types
No
array of string
No
-
List of supported media types for this prompt. Common types include: image, audio, video, document, model3d, archive. Custom types are allowed - each type should have a corresponding configuration object (e.g., ‘foo’ type requires a ‘foo’ field with GenericMediaTypeConfig or a specific schema).
- image
No
object
No
In #/$defs/ImageConfig
Image-specific configuration and constraints
- audio
No
object
No
In #/$defs/AudioConfig
Audio-specific configuration and constraints
- video
No
object
No
In #/$defs/VideoConfig
Video-specific configuration and constraints
- document
No
object
No
In #/$defs/DocumentConfig
Document-specific configuration and constraints (PDFs, CAD files, spreadsheets, etc.)
- examples
No
array
No
-
Example multimodal messages showing how to use media with this prompt
- - additionalProperties
No
Combination
No
-
-
Type
boolean
Required
Yes
Description: Whether multimodal content is enabled for this prompt
Type
array of string
Required
No
Description: List of supported media types for this prompt. Common types include: image, audio, video, document, model3d, archive. Custom types are allowed - each type should have a corresponding configuration object (e.g., ‘foo’ type requires a ‘foo’ field with GenericMediaTypeConfig or a specific schema).
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Restrictions
Must match regular expression
^[a-z0-9_]+$ Test
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ImageConfig
Description: Image-specific configuration and constraints
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_size_mb
No
integer
No
-
Maximum file size in megabytes
- allowed_formats
No
array of string
No
-
List of allowed image formats
- default_detail
No
string
No
-
Default detail level for image processing. ‘low’ uses fewer tokens, ‘high’ provides more detail, ‘auto’ lets the model decide.
- require_caption
No
boolean
No
-
Whether image captions are required
- max_images_per_msg
No
integer
No
-
Maximum number of images allowed per message
Description: Maximum file size in megabytes
Examples:
Type
array of string
Required
No
Description: List of allowed image formats
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
string
Required
No
Default
"auto"
Description: Default detail level for image processing. ‘low’ uses fewer tokens, ‘high’ provides more detail, ‘auto’ lets the model decide.
Examples:
Type
boolean
Required
No
Default
false
Description: Whether image captions are required
Description: Maximum number of images allowed per message
Examples:
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/AudioConfig
Description: Audio-specific configuration and constraints
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_size_mb
No
integer
No
-
Maximum file size in megabytes
- allowed_formats
No
array of string
No
-
List of allowed audio formats
- max_duration_sec
No
integer
No
-
Maximum audio duration in seconds
- require_metadata
No
boolean
No
-
Whether audio metadata (title, description) is required
Description: Maximum file size in megabytes
Examples:
Type
array of string
Required
No
Description: List of allowed audio formats
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Description: Maximum audio duration in seconds
Examples:
Type
boolean
Required
No
Default
false
Description: Whether audio metadata (title, description) is required
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/VideoConfig
Description: Video-specific configuration and constraints
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_size_mb
No
integer
No
-
Maximum file size in megabytes
- allowed_formats
No
array of string
No
-
List of allowed video formats
- max_duration_sec
No
integer
No
-
Maximum video duration in seconds
- require_metadata
No
boolean
No
-
Whether video metadata (title, description) is required
Description: Maximum file size in megabytes
Examples:
Type
array of string
Required
No
Description: List of allowed video formats
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Description: Maximum video duration in seconds
Examples:
Type
boolean
Required
No
Default
false
Description: Whether video metadata (title, description) is required
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/DocumentConfig
Description: Document-specific configuration and constraints (PDFs, CAD files, spreadsheets, etc.)
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_size_mb
No
integer
No
-
Maximum file size in megabytes
- allowed_formats
No
array of string
No
-
List of allowed document formats
- max_pages
No
integer
No
-
Maximum number of pages/sheets for paginated documents
- require_metadata
No
boolean
No
-
Whether document metadata (title, author, description) is required
- extraction_mode
No
enum (of string)
No
-
How to extract content from documents. ‘text’ extracts text only, ‘structured’ preserves formatting, ‘raw’ keeps original binary format.
Description: Maximum file size in megabytes
Examples:
Type
array of string
Required
No
Description: List of allowed document formats
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
7.1.15.6.3. Property PromptPack Specification > prompts > additionalProperties > media > document > max_pages
Description: Maximum number of pages/sheets for paginated documents
Examples:
Type
boolean
Required
No
Default
false
Description: Whether document metadata (title, author, description) is required
Type
enum (of string)
Required
No
Default
"text"
Description: How to extract content from documents. ‘text’ extracts text only, ‘structured’ preserves formatting, ‘raw’ keeps original binary format.
Examples:
Must be one of:
“text”
“structured”
“raw”
Description: Example multimodal messages showing how to use media with this prompt
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
MultimodalExample
Example multimodal message demonstrating how to use media content with a prompt
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/MultimodalExample
Description: Example multimodal message demonstrating how to use media content with a prompt
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ name
No
string
No
-
Name identifying this example
- description
No
string
No
-
Description of what this example demonstrates
+ role
No
enum (of string)
No
-
Message role (typically ‘user’ or ‘assistant’)
+ parts
No
array
No
-
Message content parts (text and/or media)
Description: Name identifying this example
Examples:
Description: Description of what this example demonstrates
Type
enum (of string)
Required
Yes
Description: Message role (typically ‘user’ or ‘assistant’)
Example:
Must be one of:
“user”
“assistant”
“system”
Description: Message content parts (text and/or media)
Array restrictions
Min items
1
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
ContentPart
A single content part within a multimodal message. Can be text or media.
7.1.15.7.1.4.1. PromptPack Specification > prompts > additionalProperties > media > examples > examples items > parts > ContentPart
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ContentPart
Description: A single content part within a multimodal message. Can be text or media.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ type
No
string
No
-
Type of content part. Common types include: text, image, audio, video, document. Custom types are allowed for extensibility.
- text
No
string
No
-
Text content (required when type is ‘text’)
- media
No
object
No
In #/$defs/MediaReference
Media reference (required when type is ‘image’, ‘audio’, or ‘video’)
Description: Type of content part. Common types include: text, image, audio, video, document. Custom types are allowed for extensibility.
Examples:
Restrictions
Must match regular expression
^[a-z0-9_]+$ Test
7.1.15.7.1.4.1.2. Property PromptPack Specification > prompts > additionalProperties > media > examples > examples items > parts > parts items > text
Description: Text content (required when type is ‘text’)
Examples:
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/MediaReference
Description: Media reference (required when type is ‘image’, ‘audio’, or ‘video’)
Property
Pattern
Type
Deprecated
Definition
Title/Description
- file_path
No
string
No
-
Path to media file (relative to pack or absolute). Validated at compile time.
- url
No
string
No
-
URL to media file. Must be publicly accessible or require authentication.
- base64
No
string
No
-
Base64-encoded media data. Use for small files or when embedding is preferred.
+ mime_type
No
string
No
-
MIME type of the media file
- detail
No
enum (of string)
No
-
Detail level for image processing (images only). Overrides default_detail from ImageConfig.
- caption
No
string
No
-
Caption or description for the media
Description: Path to media file (relative to pack or absolute). Validated at compile time.
Examples:
Type
string
Required
No
Format
uri
Description: URL to media file. Must be publicly accessible or require authentication.
Examples:
" https://example.com/image.jpg "
" https://cdn.example.com/video.mp4 "
Description: Base64-encoded media data. Use for small files or when embedding is preferred.
Example:
" iVBORw0KGgoAAAANSUhEUgAAAAUA... "
Description: MIME type of the media file
Examples:
Type
enum (of string)
Required
No
Description: Detail level for image processing (images only). Overrides default_detail from ImageConfig.
Example:
Must be one of:
Description: Caption or description for the media
Examples:
" Customer's voice recording "
Type
combining
Required
No
Additional properties
Any type allowed
Type
object
Required
No
Additional properties
Not allowed
Same definition as
image
Description: Configuration and validation rules for image content
Type
object
Required
No
Additional properties
Not allowed
Same definition as
audio
Description: Configuration and validation rules for audio content
Type
object
Required
No
Additional properties
Not allowed
Same definition as
video
Description: Configuration and validation rules for video content
Type
object
Required
No
Additional properties
Not allowed
Same definition as
document
Description: Configuration and validation rules for document content (PDFs, CAD files, spreadsheets, etc.)
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/GenericMediaTypeConfig
Description: Generic configuration for custom media types. Use this for types not covered by specific configs (ImageConfig, AudioConfig, etc.). Provides common validation properties that apply to most media types.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_size_mb
No
integer
No
-
Maximum file size in megabytes
- allowed_formats
No
array of string
No
-
List of allowed file formats/extensions
- require_metadata
No
boolean
No
-
Whether metadata is required for this media type
- validation_params
No
object
No
-
Custom validation parameters specific to this media type. Structure depends on the type.
- - additionalProperties
No
object
No
-
-
Description: Maximum file size in megabytes
Examples:
Type
array of string
Required
No
Description: List of allowed file formats/extensions
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
boolean
Required
No
Default
false
Description: Whether metadata is required for this media type
Type
object
Required
No
Additional properties
Any type allowed
Description: Custom validation parameters specific to this media type. Structure depends on the type.
Examples:
"require_textures" : false
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
8. Property PromptPack Specification > fragments
Description: Shared template fragments that can be referenced by any prompt in the pack. Fragments are reusable text blocks resolved at compile time. Keys are fragment names, values are fragment content.
Example:
"customer_context" : " Customer: {{customer_name}} \\ nIssue: {{issue}} " ,
"greeting" : " Hello! How can I help you today? "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
string
No
-
-
8.1. Property PromptPack Specification > fragments > additionalProperties
Description: Tool definitions that can be referenced by prompts. Tools enable the LLM to call external functions. Keys are tool names, values are tool specifications following the JSON Schema for function calling.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/Tool
A tool definition following OpenAI’s function calling format. Tools enable the LLM to call external functions to retrieve data or perform actions.
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Tool
Description: A tool definition following OpenAI’s function calling format. Tools enable the LLM to call external functions to retrieve data or perform actions.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ name
No
string
No
-
Tool name used for referencing and calling
+ description
No
string
No
-
Clear description of what the tool does. The LLM uses this to decide when to call the tool.
- parameters
No
object
No
-
JSON Schema defining the tool’s parameters. Follows JSON Schema specification.
- action_scope
No
object
No
In #/$defs/ActionScope
What this tool can affect (RFC 0013). Describes consequence; does not gate anything.
- extensions
No
object
No
-
Opaque annotations about this tool. Never interpreted by this specification. Keys SHOULD be namespaced.
Description: Tool name used for referencing and calling
Examples:
Restrictions
Must match regular expression
^[a-zA-Z_][a-zA-Z0-9_]*$ Test
Description: Clear description of what the tool does. The LLM uses this to decide when to call the tool.
Examples:
" Look up order details by order ID "
" Create a support ticket with title, description, and priority "
Restrictions
Min length
1
Type
object
Required
No
Additional properties
Any type allowed
Description: JSON Schema defining the tool’s parameters. Follows JSON Schema specification.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ type
No
enum (of string)
No
-
Must be ‘object’ for tool parameters
+ properties
No
object
No
-
Parameter definitions
- required
No
array of string
No
-
List of required parameter names
Type
enum (of string)
Required
Yes
Description: Must be ‘object’ for tool parameters
Must be one of:
Description: Parameter definitions
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
Type
object
Required
No
Additional properties
Any type allowed
Type
array of string
Required
No
Description: List of required parameter names
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ActionScope
Description: What this tool can affect (RFC 0013). Describes consequence; does not gate anything.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- effect
No
enum (of string)
No
-
‘read’: retrieves, changes nothing. ‘write’: changes state the operator controls. ‘external’: causes an effect outside the operator’s systems (implies write).
- reversibility
No
enum (of string)
No
-
‘reversible’: the prior state can be restored. ‘compensable’: it cannot, but a defined compensating action limits the harm. ‘irreversible’: nothing restores the state and nothing compensates. Declare against the world, not the API.
- data_classes
No
array of string
No
-
Classes of data the tool touches, as vocabulary terms or free strings.
- extensions
No
object
No
-
Opaque annotations about this tool’s consequence — a blast radius, a severity score, anything that qualifies what it affects. Never interpreted by this specification. Keys SHOULD be namespaced.
Type
enum (of string)
Required
No
Description: ‘read’: retrieves, changes nothing. ‘write’: changes state the operator controls. ‘external’: causes an effect outside the operator’s systems (implies write).
Must be one of:
“read”
“write”
“external”
Type
enum (of string)
Required
No
Description: ‘reversible’: the prior state can be restored. ‘compensable’: it cannot, but a defined compensating action limits the harm. ‘irreversible’: nothing restores the state and nothing compensates. Declare against the world, not the API.
Must be one of:
“reversible”
“compensable”
“irreversible”
Type
array of string
Required
No
Description: Classes of data the tool touches, as vocabulary terms or free strings.
Example:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
object
Required
No
Additional properties
Any type allowed
Description: Opaque annotations about this tool’s consequence — a blast radius, a severity score, anything that qualifies what it affects. Never interpreted by this specification. Keys SHOULD be namespaced.
Example:
"acme.example/blast-radius" : " fleet "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
Type
object
Required
No
Additional properties
Any type allowed
Description: Opaque annotations about this tool. Never interpreted by this specification. Keys SHOULD be namespaced.
Example:
"acme.example/approver-group" : " platform-security-oncall "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
Type
object
Required
No
Additional properties
Any type allowed
Description: Optional pack-level metadata for categorization, discovery, and operational planning.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- domain
No
string
No
-
Domain or category for this pack
- language
No
string
No
-
Primary language code (ISO 639-1)
- tags
No
array of string
No
-
Tags for categorization and discovery
- cost_estimate
No
object
No
-
Cost estimation for using this pack
- governance
No
object
No
In #/$defs/Governance
Governance facts about the agent this pack defines (RFC 0013).
- - additionalProperties
No
object
No
-
-
10.1. Property PromptPack Specification > metadata > domain
Description: Domain or category for this pack
Examples:
Description: Primary language code (ISO 639-1)
Examples:
Restrictions
Must match regular expression
^[a-z]{2}$ Test
Type
array of string
Required
No
Description: Tags for categorization and discovery
Example:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
tags items
-
Type
object
Required
No
Additional properties
Any type allowed
Description: Cost estimation for using this pack
Property
Pattern
Type
Deprecated
Definition
Title/Description
- min_cost_usd
No
number
No
-
Minimum cost per execution in USD
- max_cost_usd
No
number
No
-
Maximum cost per execution in USD
- avg_cost_usd
No
number
No
-
Average cost per execution in USD
Description: Minimum cost per execution in USD
Description: Maximum cost per execution in USD
Description: Average cost per execution in USD
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Governance
Description: Governance facts about the agent this pack defines (RFC 0013).
Property
Pattern
Type
Deprecated
Definition
Title/Description
- vocabularies
No
object
No
-
Prefix to IRI map for CURIE values used in this block. The dpv, eu-aiact and ai prefixes are well-known defaults and need not be declared.
- intended_purpose
No
string
No
-
What the agent is built to do, stated by its author. Free text.
- foreseeable_misuse
No
array of string
No
-
Uses the author considers out of bounds and reasonably foreseeable.
- autonomy_level
No
enum (of string)
No
-
How far the agent acts without a human in the loop, as designed and tested. ‘suggests’: produces output, a human performs any action. ‘acts_with_approval’: acts, but each consequential action is approved first. ‘acts_with_oversight’: acts on its own, a human monitors and can intervene or reverse. ‘acts_autonomously’: acts without a human in the loop.
- accountable_owner
No
string
No
-
The role, team or function answerable for this agent. Prefer a durable identifier over a named individual.
- operator_role
No
string
No
-
The declaring organisation’s role for this agent, as a vocabulary term or free string.
- risk_classification
No
string
No
-
The risk classification assigned to this agent, as a vocabulary term or free string. A namespaced term carries both the framework and the value, so no separate framework field is needed; a second classification under another framework belongs in extensions.
- intended_deployment_contexts
No
array of string
No
-
Sectors or settings the agent is built for, as vocabulary terms or free strings. Distinct from metadata.domain, which is a discovery tag.
- capabilities
No
array of string
No
-
Capabilities the agent exercises, as vocabulary terms or free strings. Some capabilities carry obligations regardless of sector, so this is not covered by intended_deployment_contexts.
- approved_environments
No
array of string
No
-
Environments this pack has been cleared to run in. Open strings, because environment names are organisation-specific. Absence means undeclared, not cleared everywhere and not cleared nowhere.
- requires_ai_disclosure
No
boolean
No
-
Whether the agent must disclose that it is an AI to the people interacting with it. The runtime decides which of its interfaces this applies to.
- extensions
No
object
No
-
Opaque annotations for external tooling. Never interpreted by this specification. Keys SHOULD be namespaced.
Description: Prefix to IRI map for CURIE values used in this block. The dpv, eu-aiact and ai prefixes are well-known defaults and need not be declared.
Example:
"acme" : " https://acme.example/vocab# "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
string
No
-
-
Type
string
Required
No
Format
uri
Description: What the agent is built to do, stated by its author. Free text.
Example:
" Answers cardholder questions about settled transactions and raises disputes on the cardholder's explicit instruction. "
Type
array of string
Required
No
Description: Uses the author considers out of bounds and reasonably foreseeable.
Example:
" Credit, pricing or eligibility decisioning " ,
" Adjudicating a dispute without a human reviewer "
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
enum (of string)
Required
No
Description: How far the agent acts without a human in the loop, as designed and tested. ‘suggests’: produces output, a human performs any action. ‘acts_with_approval’: acts, but each consequential action is approved first. ‘acts_with_oversight’: acts on its own, a human monitors and can intervene or reverse. ‘acts_autonomously’: acts without a human in the loop.
Must be one of:
“suggests”
“acts_with_approval”
“acts_with_oversight”
“acts_autonomously”
Description: The role, team or function answerable for this agent. Prefer a durable identifier over a named individual.
Examples:
" Head of Customer Operations "
Description: The declaring organisation’s role for this agent, as a vocabulary term or free string.
Examples:
Description: The risk classification assigned to this agent, as a vocabulary term or free string. A namespaced term carries both the framework and the value, so no separate framework field is needed; a second classification under another framework belongs in extensions.
Example:
10.5.8. Property PromptPack Specification > metadata > governance > intended_deployment_contexts
Type
array of string
Required
No
Description: Sectors or settings the agent is built for, as vocabulary terms or free strings. Distinct from metadata.domain, which is a discovery tag.
Example:
" eu-aiact:CriticalInfrastructure "
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
10.5.8.1. PromptPack Specification > metadata > governance > intended_deployment_contexts > intended_deployment_contexts items
Type
array of string
Required
No
Description: Capabilities the agent exercises, as vocabulary terms or free strings. Some capabilities carry obligations regardless of sector, so this is not covered by intended_deployment_contexts.
Examples:
" eu-aiact:EmotionRecognition "
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Type
array of string
Required
No
Description: Environments this pack has been cleared to run in. Open strings, because environment names are organisation-specific. Absence means undeclared, not cleared everywhere and not cleared nowhere.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Description: Whether the agent must disclose that it is an AI to the people interacting with it. The runtime decides which of its interfaces this applies to.
Type
object
Required
No
Additional properties
Any type allowed
Description: Opaque annotations for external tooling. Never interpreted by this specification. Keys SHOULD be namespaced.
Example:
"acme.example/control-set" : " SOC2-CC7 "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
11. Property PromptPack Specification > compilation
Type
object
Required
No
Additional properties
Any type allowed
Description: Information about when and how this pack was compiled. Generated automatically by the packc compiler.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ compiled_with
No
string
No
-
Version of the packc compiler used to create this pack
+ created_at
No
string
No
-
ISO 8601 timestamp when the pack was compiled
+ schema
No
string
No
-
Pack format schema version used
- source
No
string
No
-
Optional source configuration file path
11.1. Property PromptPack Specification > compilation > compiled_with
Description: Version of the packc compiler used to create this pack
Examples:
11.2. Property PromptPack Specification > compilation > created_at
Type
string
Required
Yes
Format
date-time
Description: ISO 8601 timestamp when the pack was compiled
Example:
11.3. Property PromptPack Specification > compilation > schema
Description: Pack format schema version used
Examples:
11.4. Property PromptPack Specification > compilation > source
Description: Optional source configuration file path
Examples:
12. Property PromptPack Specification > evals
Description: Pack-level eval definitions that apply across all prompts. Useful for cross-cutting quality concerns like brand consistency or safety checks. Prompt-level evals with the same id override pack-level evals.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Eval
An eval definition that declares how to assess LLM output quality. Evals run asynchronously and produce scores or metrics, unlike validators which run inline and block.
12.1. PromptPack Specification > evals > Eval
Description: An eval definition that declares how to assess LLM output quality. Evals run asynchronously and produce scores or metrics, unlike validators which run inline and block.
13. Property PromptPack Specification > workflow
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/WorkflowConfig
Description: Workflow configuration defining a state machine over the pack’s prompts. Each state references a prompt key and declares event-driven transitions.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ version
No
integer
No
-
Workflow schema version. Use 1 for the current stable format.
+ entry
No
string
No
-
Name of the initial state. Must match a key in the states object.
+ states
No
object
No
-
Map of state name to state definition. Each state references a prompt and declares transitions.
- engine
No
object
No
-
Optional runtime engine configuration for workflow execution. Hosts standardized fields like ‘budget’ for resource limits, alongside runtime-specific hints (timeout, concurrency, etc.).
13.1. Property PromptPack Specification > workflow > version
Type
integer
Required
Yes
Description: Workflow schema version. Use 1 for the current stable format.
Example:
13.2. Property PromptPack Specification > workflow > entry
Description: Name of the initial state. Must match a key in the states object.
Examples:
13.3. Property PromptPack Specification > workflow > states
Description: Map of state name to state definition. Each state references a prompt and declares transitions.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/WorkflowState
A single state in the workflow state machine. The orchestration mode determines how the state’s work is driven: ‘internal’/‘external’/‘hybrid’ reference a prompt task and declare event-driven transitions; ‘composition’ (RFC 0010) runs a declarative step graph in place of a prompt. May be marked as terminal to indicate workflow completion, or guarded with max_visits to bound loop iterations.
13.3.1. Property PromptPack Specification > workflow > states > WorkflowState
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/WorkflowState
Description: A single state in the workflow state machine. The orchestration mode determines how the state’s work is driven: ‘internal’/‘external’/‘hybrid’ reference a prompt task and declare event-driven transitions; ‘composition’ (RFC 0010) runs a declarative step graph in place of a prompt. May be marked as terminal to indicate workflow completion, or guarded with max_visits to bound loop iterations.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- prompt_task
No
string
No
-
Reference to a prompt key defined in the pack’s prompts object. Required for orchestration modes ‘internal’, ‘external’, ‘hybrid’ (or when orchestration is omitted, default ‘internal’); not used in ‘composition’ mode.
- description
No
string
No
-
Human-readable description of this state’s purpose.
- on_event
No
object
No
-
Map of event name to target state name. When the named event fires, the workflow transitions to the target state.
- persistence
No
string
No
-
Whether conversation context is kept (persistent) or reset (transient) on entry.
- orchestration
No
enum (of string)
No
-
How the state is orchestrated. ‘internal’ = agent controls transitions (default). ‘external’ = system controls transitions. ‘hybrid’ = both. ‘composition’ = the referenced composition fully handles the state’s orchestration (work + transitions): the composition runs end-to-end, and on completion its output may map to on_event transitions or terminate the state. The composition mode is exclusive; it is not mixed with internal/external/hybrid on the same state.
- composition
No
string
No
-
Reference to a composition key defined in the pack’s compositions object (RFC 0010). Required when orchestration is ‘composition’; absent otherwise.
- skills
No
string
No
-
Skill filter for this workflow state. A path to a skill directory/file that scopes which skills are available in this state, or the literal ‘none’ to disable skills.
- terminal
No
boolean
No
-
If true, this state is a terminal state. The workflow completes after this state’s prompt executes. Terminal states should not declare on_event transitions.
- max_visits
No
integer
No
-
Maximum number of times this state can be entered during a single workflow execution. When the limit is reached, the workflow transitions to the state named in on_max_visits. If on_max_visits is not set, the workflow terminates.
- on_max_visits
No
string
No
-
Target state to transition to when max_visits is reached. Must reference a key in the states object. If omitted and max_visits is reached, the workflow terminates with a budget-exhausted status.
- artifacts
No
object
No
-
Named artifact slots for lightweight, structured metadata that flows across state visits. Artifacts should be pointers (commit SHAs, URIs), compact representations (schemas, summaries, diffs), or small structured results — not bulk data. Artifact values are available to the prompt as template variables under the ‘artifacts’ namespace (e.g., {{artifacts.commit_sha}}).
13.3.1.1. If (orchestration = “composition”)
Type
object
Required
No
Additional properties
Any type allowed
13.3.1.1.1. The following properties are required
13.3.1.2. Else (i.e. orchestration != “composition”)
Type
object
Required
No
Additional properties
Any type allowed
13.3.1.2.1. The following properties are required
13.3.1.3. Property PromptPack Specification > workflow > states > additionalProperties > prompt_task
Description: Reference to a prompt key defined in the pack’s prompts object. Required for orchestration modes ‘internal’, ‘external’, ‘hybrid’ (or when orchestration is omitted, default ‘internal’); not used in ‘composition’ mode.
Examples:
13.3.1.4. Property PromptPack Specification > workflow > states > additionalProperties > description
Description: Human-readable description of this state’s purpose.
13.3.1.5. Property PromptPack Specification > workflow > states > additionalProperties > on_event
Description: Map of event name to target state name. When the named event fires, the workflow transitions to the target state.
Example:
"escalate" : " human_handoff " ,
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
string
No
-
-
13.3.1.5.1. Property PromptPack Specification > workflow > states > additionalProperties > on_event > additionalProperties
13.3.1.6. Property PromptPack Specification > workflow > states > additionalProperties > persistence
Description: Whether conversation context is kept (persistent) or reset (transient) on entry.
Examples:
13.3.1.7. Property PromptPack Specification > workflow > states > additionalProperties > orchestration
Type
enum (of string)
Required
No
Default
"internal"
Description: How the state is orchestrated. ‘internal’ = agent controls transitions (default). ‘external’ = system controls transitions. ‘hybrid’ = both. ‘composition’ = the referenced composition fully handles the state’s orchestration (work + transitions): the composition runs end-to-end, and on completion its output may map to on_event transitions or terminate the state. The composition mode is exclusive; it is not mixed with internal/external/hybrid on the same state.
Must be one of:
“internal”
“external”
“hybrid”
“composition”
13.3.1.8. Property PromptPack Specification > workflow > states > additionalProperties > composition
Description: Reference to a composition key defined in the pack’s compositions object (RFC 0010). Required when orchestration is ‘composition’; absent otherwise.
Examples:
13.3.1.9. Property PromptPack Specification > workflow > states > additionalProperties > skills
Description: Skill filter for this workflow state. A path to a skill directory/file that scopes which skills are available in this state, or the literal ‘none’ to disable skills.
Examples:
13.3.1.10. Property PromptPack Specification > workflow > states > additionalProperties > terminal
Type
boolean
Required
No
Default
false
Description: If true, this state is a terminal state. The workflow completes after this state’s prompt executes. Terminal states should not declare on_event transitions.
Example:
13.3.1.11. Property PromptPack Specification > workflow > states > additionalProperties > max_visits
Description: Maximum number of times this state can be entered during a single workflow execution. When the limit is reached, the workflow transitions to the state named in on_max_visits. If on_max_visits is not set, the workflow terminates.
Examples:
13.3.1.12. Property PromptPack Specification > workflow > states > additionalProperties > on_max_visits
Description: Target state to transition to when max_visits is reached. Must reference a key in the states object. If omitted and max_visits is reached, the workflow terminates with a budget-exhausted status.
Examples:
13.3.1.13. Property PromptPack Specification > workflow > states > additionalProperties > artifacts
Description: Named artifact slots for lightweight, structured metadata that flows across state visits. Artifacts should be pointers (commit SHAs, URIs), compact representations (schemas, summaries, diffs), or small structured results — not bulk data. Artifact values are available to the prompt as template variables under the ‘artifacts’ namespace (e.g., {{artifacts.commit_sha}}).
Example:
"description" : " Git commit of the latest generated code "
"type" : " application/json " ,
"description" : " Structured test runner summary "
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/ArtifactDef
Declares a named artifact slot for carrying lightweight, structured metadata across workflow state visits. Artifacts are typically pointers (commit SHAs, file paths, URIs), compact representations (schemas, summaries, diffs), or small structured results — not bulk data. Values are captured at each state transition, forming an observable trace that enables time-travel debugging and workflow audit. They persist across loop iterations and are accessible to prompts as template variables.
13.3.1.13.1. Property PromptPack Specification > workflow > states > additionalProperties > artifacts > ArtifactDef
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/ArtifactDef
Description: Declares a named artifact slot for carrying lightweight, structured metadata across workflow state visits. Artifacts are typically pointers (commit SHAs, file paths, URIs), compact representations (schemas, summaries, diffs), or small structured results — not bulk data. Values are captured at each state transition, forming an observable trace that enables time-travel debugging and workflow audit. They persist across loop iterations and are accessible to prompts as template variables.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ type
No
string
No
-
MIME type indicating the artifact’s content type. Used by runtimes to determine serialization and presentation.
- description
No
string
No
-
Human-readable description of what this artifact contains and how it’s used.
- mode
No
enum (of string)
No
-
How the artifact is updated across visits. ‘replace’ overwrites the previous value on each visit. ‘append’ accumulates content across visits (e.g., a log). Defaults to ‘replace’.
13.3.1.13.1.1. Property PromptPack Specification > workflow > states > additionalProperties > artifacts > additionalProperties > type
Description: MIME type indicating the artifact’s content type. Used by runtimes to determine serialization and presentation.
Examples:
13.3.1.13.1.2. Property PromptPack Specification > workflow > states > additionalProperties > artifacts > additionalProperties > description
Description: Human-readable description of what this artifact contains and how it’s used.
13.3.1.13.1.3. Property PromptPack Specification > workflow > states > additionalProperties > artifacts > additionalProperties > mode
Type
enum (of string)
Required
No
Default
"replace"
Description: How the artifact is updated across visits. ‘replace’ overwrites the previous value on each visit. ‘append’ accumulates content across visits (e.g., a log). Defaults to ‘replace’.
Examples:
Must be one of:
13.4. Property PromptPack Specification > workflow > engine
Type
object
Required
No
Additional properties
Any type allowed
Description: Optional runtime engine configuration for workflow execution. Hosts standardized fields like ‘budget’ for resource limits, alongside runtime-specific hints (timeout, concurrency, etc.).
Property
Pattern
Type
Deprecated
Definition
Title/Description
- budget
No
object
No
In #/$defs/WorkflowBudget
Resource budget for workflow execution. Provides safety limits to prevent unbounded loops.
- - additionalProperties
No
object
No
-
-
13.4.1. Property PromptPack Specification > workflow > engine > budget
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/WorkflowBudget
Description: Resource budget for workflow execution. Provides safety limits to prevent unbounded loops.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_total_visits
No
integer
No
-
Maximum total state visits across all states in the workflow. This is a global safety net independent of per-state max_visits.
- max_tool_calls
No
integer
No
-
Maximum total tool calls across all states in the workflow.
- max_wall_time_sec
No
integer
No
-
Maximum wall-clock time in seconds for the entire workflow execution.
13.4.1.1. Property PromptPack Specification > workflow > engine > budget > max_total_visits
Description: Maximum total state visits across all states in the workflow. This is a global safety net independent of per-state max_visits.
Examples:
Description: Maximum total tool calls across all states in the workflow.
Examples:
13.4.1.3. Property PromptPack Specification > workflow > engine > budget > max_wall_time_sec
Description: Maximum wall-clock time in seconds for the entire workflow execution.
Examples:
14. Property PromptPack Specification > agents
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/AgentsConfig
Description: Agent configuration mapping prompts to A2A-compatible agent definitions. Enables multi-agent orchestration via the Agent-to-Agent protocol.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ entry
No
string
No
-
Prompt key of the entry agent — the default agent that receives incoming requests.
+ members
No
object
No
-
Map of prompt key to agent definition. Each key must match a prompt defined in the pack’s prompts object.
14.1. Property PromptPack Specification > agents > entry
Description: Prompt key of the entry agent — the default agent that receives incoming requests.
Examples:
14.2. Property PromptPack Specification > agents > members
Description: Map of prompt key to agent definition. Each key must match a prompt defined in the pack’s prompts object.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/AgentDef
Agent definition for a single prompt, providing A2A Agent Card metadata. Overrides or extends the prompt’s own metadata for agent discovery.
14.2.1. Property PromptPack Specification > agents > members > AgentDef
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/AgentDef
Description: Agent definition for a single prompt, providing A2A Agent Card metadata. Overrides or extends the prompt’s own metadata for agent discovery.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- description
No
string
No
-
Agent description published in the A2A Agent Card. Overrides the prompt’s description if set.
- tags
No
array of string
No
-
Discovery tags for the agent, used by A2A registries and routers.
- input_modes
No
array of string
No
-
MIME types the agent accepts as input. Defaults to [“text/plain”] if omitted.
- output_modes
No
array of string
No
-
MIME types the agent can produce as output. Defaults to [“text/plain”] if omitted.
- state
No
string
No
-
Reference to a state key in the pack’s workflow.states. When set, invoking this agent runs the pack workflow starting at the named state (following its transitions and loops) instead of executing the member-key prompt once. Requires a top-level workflow. If omitted, the agent is a single-prompt agent.
- governance
No
object
No
Same as governance
Governance facts for this agent, overriding metadata.governance by per-field replacement: a field present here replaces the pack value for that field, a field absent inherits. Arrays and extensions replace whole (RFC 0013).
14.2.1.1. Property PromptPack Specification > agents > members > additionalProperties > description
Description: Agent description published in the A2A Agent Card. Overrides the prompt’s description if set.
Type
array of string
Required
No
Description: Discovery tags for the agent, used by A2A registries and routers.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
tags items
-
Type
array of string
Required
No
Default
["text/plain"]
Description: MIME types the agent accepts as input. Defaults to [“text/plain”] if omitted.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
14.2.1.4. Property PromptPack Specification > agents > members > additionalProperties > output_modes
Type
array of string
Required
No
Default
["text/plain"]
Description: MIME types the agent can produce as output. Defaults to [“text/plain”] if omitted.
Examples:
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
14.2.1.4.1. PromptPack Specification > agents > members > additionalProperties > output_modes > output_modes items
14.2.1.5. Property PromptPack Specification > agents > members > additionalProperties > state
Description: Reference to a state key in the pack’s workflow.states. When set, invoking this agent runs the pack workflow starting at the named state (following its transitions and loops) instead of executing the member-key prompt once. Requires a top-level workflow. If omitted, the agent is a single-prompt agent.
Examples:
14.2.1.6. Property PromptPack Specification > agents > members > additionalProperties > governance
Type
object
Required
No
Additional properties
Not allowed
Same definition as
governance
Description: Governance facts for this agent, overriding metadata.governance by per-field replacement: a field present here replaces the pack value for that field, a field absent inherits. Arrays and extensions replace whole (RFC 0013).
15. Property PromptPack Specification > skills
Description: Skill sources for progressive-disclosure knowledge loading. Each entry is either a string (path or package reference), a SkillPathSource object, or an InlineSkill object.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
SkillSource
A skill source for progressive-disclosure knowledge loading. Can be a simple string path, a path object with preload config, or an inline skill definition.
15.1. PromptPack Specification > skills > SkillSource
Type
combining
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/SkillSource
Description: A skill source for progressive-disclosure knowledge loading. Can be a simple string path, a path object with preload config, or an inline skill definition.
15.1.1. Property PromptPack Specification > skills > skills items > oneOf > item 0
Description: Path to a skill directory/file or a package reference (e.g., ‘./skills’, ‘@acme/billing-skills’).
15.1.2. Property PromptPack Specification > skills > skills items > oneOf > SkillPathSource
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/SkillPathSource
Description: A skill source with a path and optional preload configuration.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ path
No
string
No
-
Path to a skill directory, file, or package reference.
- preload
No
boolean
No
-
If true, load this skill source eagerly at pack initialization rather than on demand.
15.1.2.1. Property PromptPack Specification > skills > skills items > oneOf > item 1 > path
Description: Path to a skill directory, file, or package reference.
Examples:
15.1.2.2. Property PromptPack Specification > skills > skills items > oneOf > item 1 > preload
Type
boolean
Required
No
Default
false
Description: If true, load this skill source eagerly at pack initialization rather than on demand.
Examples:
15.1.3. Property PromptPack Specification > skills > skills items > oneOf > InlineSkill
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/InlineSkill
Description: A skill defined inline within the pack. Useful for small, pack-specific skills that don’t warrant a separate file.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ name
No
string
No
-
Human-readable name for this skill.
+ description
No
string
No
-
Brief description of what this skill provides.
+ instructions
No
string
No
-
The skill’s instructions or knowledge content. Loaded into the agent’s context when the skill is activated.
15.1.3.1. Property PromptPack Specification > skills > skills items > oneOf > item 2 > name
Description: Human-readable name for this skill.
Examples:
Restrictions
Min length
1
15.1.3.2. Property PromptPack Specification > skills > skills items > oneOf > item 2 > description
Description: Brief description of what this skill provides.
Example:
" Steps for escalating unresolved customer issues "
Restrictions
Min length
1
15.1.3.3. Property PromptPack Specification > skills > skills items > oneOf > item 2 > instructions
Description: The skill’s instructions or knowledge content. Loaded into the agent’s context when the skill is activated.
Example:
" When a customer issue cannot be resolved within 3 exchanges: \n 1. Acknowledge the complexity \n 2. Collect case details \n 3. Create an escalation ticket "
Restrictions
Min length
1
16. Property PromptPack Specification > compositions
Description: Map of composition name to composition definition (RFC 0010). Each composition declares a named step graph that a runtime may invoke as a structured-input/structured-output unit. Compositions are reached only through workflow states whose orchestration is ‘composition’. Optional; packs without it are unaffected.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
In #/$defs/Composition
A named step graph defining a procedural composition over the pack’s prompts, tools, and evals (RFC 0010). Reached through a workflow state whose orchestration is ‘composition’.
16.1. Property PromptPack Specification > compositions > Composition
Type
object
Required
No
Additional properties
Not allowed
Defined in
#/$defs/Composition
Description: A named step graph defining a procedural composition over the pack’s prompts, tools, and evals (RFC 0010). Reached through a workflow state whose orchestration is ‘composition’.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ version
No
const
No
-
Composition format version. Currently 1.
- description
No
string
No
-
Human-readable description of what this composition does.
- input_schema
No
string
No
-
Reference to a JSON Schema declaring the structured input shape. Path or fragment reference.
- output_schema
No
string
No
-
Reference to a JSON Schema declaring the structured output shape.
- output
No
string
No
-
Step ID whose output is the composition’s output. If omitted, runtimes should treat the last step’s output as the composition output.
+ steps
No
array
No
-
Ordered array of step definitions. Order is logical; control flow is determined by the steps themselves (sequential by default; branches and parallels alter flow).
- engine
No
object
No
-
Runtime-specific configuration (e.g. budgets, telemetry, scheduling hints). Opaque escape hatch with no schema enforcement.
16.1.1. Property PromptPack Specification > compositions > additionalProperties > version
Description: Composition format version. Currently 1.
Specific value: 1
16.1.2. Property PromptPack Specification > compositions > additionalProperties > description
Description: Human-readable description of what this composition does.
Description: Reference to a JSON Schema declaring the structured input shape. Path or fragment reference.
16.1.4. Property PromptPack Specification > compositions > additionalProperties > output_schema
Description: Reference to a JSON Schema declaring the structured output shape.
16.1.5. Property PromptPack Specification > compositions > additionalProperties > output
Description: Step ID whose output is the composition’s output. If omitted, runtimes should treat the last step’s output as the composition output.
16.1.6. Property PromptPack Specification > compositions > additionalProperties > steps
Description: Ordered array of step definitions. Order is logical; control flow is determined by the steps themselves (sequential by default; branches and parallels alter flow).
Array restrictions
Min items
1
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Step
A single step in a composition’s step graph. The ‘kind’ discriminator selects the step shape (RFC 0010).
16.1.6.1. PromptPack Specification > compositions > additionalProperties > steps > Step
Type
combining
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/Step
Description: A single step in a composition’s step graph. The ‘kind’ discriminator selects the step shape (RFC 0010).
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ id
No
string
No
-
Stable identifier for this step. Must be unique within the composition. Used for output references, eval attachment, and trace records.
+ kind
No
string
No
-
Step kind. v1 conventional values: ‘prompt’, ‘agent’, ‘tool’, ‘branch’, ‘parallel’. Free-form string with documented conventional values; runtimes may support additional vendor-namespaced kinds (e.g. ‘omnia.judge’).
- description
No
string
No
-
-
- depends_on
No
array of string
No
-
Optional explicit predecessor step IDs. If omitted, the step sequentially follows the prior step in steps[]. Required when steps run after a branch or parallel and need to declare a join point.
- modifiers
No
object
No
In #/$defs/StepModifiers
Optional declarative modifiers (retry, eval attachment). Modifier semantics are runtime-defined.
16.1.6.1.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > PromptStep
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/PromptStep
Description: Step kind ‘prompt’: a one-shot LLM invocation against a declared prompt task with an optional output schema. No tool calls.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ kind
No
const
No
-
-
+ prompt_task
No
string
No
-
Reference to a prompt key defined in the pack’s prompts object.
- input
No
object
No
In #/$defs/StepInput
Optional input binding. Variables resolved against the composition’s input and prior steps’ outputs.
- output_schema
No
string
No
-
Reference to a JSON Schema for the expected output shape. Runtimes parse the LLM response against this schema.
16.1.6.1.1.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 0 > kind
Specific value: "prompt"
16.1.6.1.1.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 0 > prompt_task
Description: Reference to a prompt key defined in the pack’s prompts object.
Type
combining
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/StepInput
Description: Optional input binding. Variables resolved against the composition’s input and prior steps’ outputs.
Description: Reference of the form ‘${path.to.value}’.
Type
object
Required
No
Additional properties
Any type allowed
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
16.1.6.1.1.4. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 0 > output_schema
Description: Reference to a JSON Schema for the expected output shape. Runtimes parse the LLM response against this schema.
16.1.6.1.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > AgentStep
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/AgentStep
Description: Step kind ‘agent’: a bounded LLM-tool loop. Internal to a single composition; distinct from RFC 0007 agents.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ kind
No
const
No
-
-
+ prompt_task
No
string
No
-
-
- input
No
object
No
Same as input
Input binding for a step (RFC 0010). May be a reference of the form ‘${path.to.value}’ against the composition input (‘${input.X}’) or a prior step output (‘${stepId.output.X}’), or an object combining literals and references.
- tools
No
array of string
No
-
Subset of the pack’s tools available to this agent step. Acts as a per-step scoped tool registry.
+ termination
No
object
No
In #/$defs/TerminationPredicate
REQUIRED. The condition under which the bounded loop exits. Without an explicit termination predicate, an agent step is invalid.
- output_schema
No
string
No
-
-
16.1.6.1.2.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > kind
Specific value: "agent"
16.1.6.1.2.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > prompt_task
Type
combining
Required
No
Additional properties
Any type allowed
Same definition as
input
Description: Input binding for a step (RFC 0010). May be a reference of the form ‘${path.to.value}’ against the composition input (‘${input.X}’) or a prior step output (‘${stepId.output.X}’), or an object combining literals and references.
Type
array of string
Required
No
Description: Subset of the pack’s tools available to this agent step. Acts as a per-step scoped tool registry.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
tools items
-
16.1.6.1.2.5. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > termination
Type
combining
Required
Yes
Additional properties
Any type allowed
Defined in
#/$defs/TerminationPredicate
Description: REQUIRED. The condition under which the bounded loop exits. Without an explicit termination predicate, an agent step is invalid.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_steps
No
integer
No
-
-
- tool_called
No
string
No
-
Tool name; agent terminates when the LLM successfully invokes this tool.
16.1.6.1.2.5.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > termination > anyOf > item 0
Type
object
Required
No
Additional properties
Any type allowed
16.1.6.1.2.5.1.1. The following properties are required
16.1.6.1.2.5.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > termination > anyOf > item 1
Type
object
Required
No
Additional properties
Any type allowed
16.1.6.1.2.5.2.1. The following properties are required
16.1.6.1.2.5.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > termination > max_steps
Description: Tool name; agent terminates when the LLM successfully invokes this tool.
16.1.6.1.2.6. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 1 > output_schema
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ToolStep
Description: Step kind ‘tool’: a deterministic tool invocation called directly by the runtime, not via an LLM tool-call decision.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ kind
No
const
No
-
-
+ tool
No
string
No
-
Reference to a tool key defined in the pack’s tools object.
- args
No
object
No
-
Argument bindings. Variables resolved against the composition’s input and prior steps’ outputs.
16.1.6.1.3.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 2 > kind
Specific value: "tool"
Description: Reference to a tool key defined in the pack’s tools object.
16.1.6.1.3.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 2 > args
Type
object
Required
No
Additional properties
Any type allowed
Description: Argument bindings. Variables resolved against the composition’s input and prior steps’ outputs.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
16.1.6.1.4. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > BranchStep
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/BranchStep
Description: Step kind ‘branch’: a conditional that picks a successor step based on a constrained predicate.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ kind
No
const
No
-
-
+ predicate
No
object
No
In #/$defs/Predicate
A constrained, declarative branch predicate (RFC 0010). Not an expression language.
+ then
No
string
No
-
Step ID to execute when the predicate evaluates true.
- else
No
string
No
-
Step ID to execute when the predicate evaluates false.
16.1.6.1.4.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > kind
Specific value: "branch"
16.1.6.1.4.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate
Type
combining
Required
Yes
Additional properties
Any type allowed
Defined in
#/$defs/Predicate
Description: A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > ComparePredicate
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ComparePredicate
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ path
No
string
No
-
Reference to a value via dot-notation against the composition’s input and step outputs. Example: ‘${classify.output.intent}’.
+ op
No
enum (of string)
No
-
-
+ value
No
object
No
-
Literal comparison value (string, number, boolean, or array for in/not_in).
16.1.6.1.4.2.1.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 0 > path
Description: Reference to a value via dot-notation against the composition’s input and step outputs. Example: ‘${classify.output.intent}’.
16.1.6.1.4.2.1.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 0 > op
Type
enum (of string)
Required
Yes
Must be one of:
“equals”
“not_equals”
“in”
“not_in”
“less_than”
“less_than_or_equals”
“greater_than”
“greater_than_or_equals”
16.1.6.1.4.2.1.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 0 > value
Type
object
Required
Yes
Additional properties
Any type allowed
Description: Literal comparison value (string, number, boolean, or array for in/not_in).
16.1.6.1.4.2.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > ExistsPredicate
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ExistsPredicate
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ path
No
string
No
-
-
+ exists
No
boolean
No
-
-
16.1.6.1.4.2.2.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 1 > path
16.1.6.1.4.2.2.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 1 > exists
Type
boolean
Required
Yes
16.1.6.1.4.2.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > AllOfPredicate
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/AllOfPredicate
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ all_of
No
array
No
-
-
16.1.6.1.4.2.3.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 2 > all_of
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Predicate
A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.3.1.1. PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 2 > all_of > Predicate
Type
combining
Required
No
Additional properties
Any type allowed
Same definition as
predicate
Description: A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.4. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > AnyOfPredicate
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/AnyOfPredicate
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ any_of
No
array
No
-
-
16.1.6.1.4.2.4.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 3 > any_of
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Predicate
A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.4.1.1. PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 3 > any_of > Predicate
Type
combining
Required
No
Additional properties
Any type allowed
Same definition as
predicate
Description: A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.5. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > NotPredicate
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/NotPredicate
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ not
No
object
No
Same as predicate
A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.2.5.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > predicate > oneOf > item 4 > not
Type
combining
Required
Yes
Additional properties
Any type allowed
Same definition as
predicate
Description: A constrained, declarative branch predicate (RFC 0010). Not an expression language.
16.1.6.1.4.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > then
Description: Step ID to execute when the predicate evaluates true.
16.1.6.1.4.4. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 3 > else
Description: Step ID to execute when the predicate evaluates false.
16.1.6.1.5. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > ParallelStep
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ParallelStep
Description: Step kind ‘parallel’: a static fan-out block whose branches execute concurrently and are merged by a declared reducer.
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ kind
No
const
No
-
-
+ branches
No
array
No
-
-
+ reduce
No
object
No
In #/$defs/Reducer
Names how a parallel block’s branch outputs are merged into a single value (RFC 0010).
16.1.6.1.5.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > kind
Specific value: "parallel"
16.1.6.1.5.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > branches
Array restrictions
Min items
2
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
Step
A single step in a composition’s step graph. The ‘kind’ discriminator selects the step shape (RFC 0010).
16.1.6.1.5.2.1. PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > branches > Step
Description: A single step in a composition’s step graph. The ‘kind’ discriminator selects the step shape (RFC 0010).
16.1.6.1.5.3. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > reduce
Type
object
Required
Yes
Additional properties
Any type allowed
Defined in
#/$defs/Reducer
Description: Names how a parallel block’s branch outputs are merged into a single value (RFC 0010).
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ strategy
No
string
No
-
v1 conventional values: ‘append’ (extend lists), ‘replace’ (last write wins), ‘barrier’ (collect all outputs into a named map). Free-form string; additional reducers reserved for future RFCs.
+ into
No
string
No
-
Field name under which the merged result is placed on the parallel step’s output. Subsequent steps reference it as ${<parallelStepId>.output.<into>}.
16.1.6.1.5.3.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > reduce > strategy
Description: v1 conventional values: ‘append’ (extend lists), ‘replace’ (last write wins), ‘barrier’ (collect all outputs into a named map). Free-form string; additional reducers reserved for future RFCs.
16.1.6.1.5.3.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > oneOf > item 4 > reduce > into
Description: Field name under which the merged result is placed on the parallel step’s output. Subsequent steps reference it as ${<parallelStepId>.output.<into>}.
16.1.6.1.6. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > id
Description: Stable identifier for this step. Must be unique within the composition. Used for output references, eval attachment, and trace records.
Restrictions
Must match regular expression
^[a-zA-Z_][a-zA-Z0-9_]*$ Test
16.1.6.1.7. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > kind
Description: Step kind. v1 conventional values: ‘prompt’, ‘agent’, ‘tool’, ‘branch’, ‘parallel’. Free-form string with documented conventional values; runtimes may support additional vendor-namespaced kinds (e.g. ‘omnia.judge’).
16.1.6.1.8. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > description
16.1.6.1.9. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > depends_on
Type
array of string
Required
No
Description: Optional explicit predecessor step IDs. If omitted, the step sequentially follows the prior step in steps[]. Required when steps run after a branch or parallel and need to declare a join point.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
16.1.6.1.9.1. PromptPack Specification > compositions > additionalProperties > steps > steps items > depends_on > depends_on items
16.1.6.1.10. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > modifiers
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/StepModifiers
Description: Optional declarative modifiers (retry, eval attachment). Modifier semantics are runtime-defined.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- retry
No
object
No
-
-
- eval
No
array of string
No
-
References to eval keys defined in the pack’s evals object (RFC 0006). Runtimes may execute these inline or post-Send.
16.1.6.1.10.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > modifiers > retry
Type
object
Required
No
Additional properties
Any type allowed
Property
Pattern
Type
Deprecated
Definition
Title/Description
- max_attempts
No
integer
No
-
-
16.1.6.1.10.1.1. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > modifiers > retry > max_attempts
16.1.6.1.10.2. Property PromptPack Specification > compositions > additionalProperties > steps > steps items > modifiers > eval
Type
array of string
Required
No
Description: References to eval keys defined in the pack’s evals object (RFC 0006). Runtimes may execute these inline or post-Send.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
eval items
-
16.1.6.1.10.2.1. PromptPack Specification > compositions > additionalProperties > steps > steps items > modifiers > eval > eval items
16.1.7. Property PromptPack Specification > compositions > additionalProperties > engine
Type
object
Required
No
Additional properties
Any type allowed
Description: Runtime-specific configuration (e.g. budgets, telemetry, scheduling hints). Opaque escape hatch with no schema enforcement.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- - additionalProperties
No
object
No
-
-
17. Property PromptPack Specification > requires
Type
object
Required
No
Additional properties
Not allowed
Description: External resources the pack needs to run (RFC 0012). Optional; when present, validated strictly. Reserved for future requirement categories (e.g. tools, skills).
Property
Pattern
Type
Deprecated
Definition
Title/Description
- providers
No
array
No
-
Logical model-provider requirements. Each entry is a string shorthand (an ‘llm’ requirement with that key) or a ProviderRequirement object.
17.1. Property PromptPack Specification > requires > providers
Description: Logical model-provider requirements. Each entry is a string shorthand (an ‘llm’ requirement with that key) or a ProviderRequirement object.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
Each item of this array must be
Description
ProviderRequirement
A logical model-provider requirement (RFC 0012). A bare string is shorthand for an ‘llm’ requirement with that key.
17.1.1. PromptPack Specification > requires > providers > ProviderRequirement
Type
combining
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ProviderRequirement
Description: A logical model-provider requirement (RFC 0012). A bare string is shorthand for an ‘llm’ requirement with that key.
17.1.1.1. Property PromptPack Specification > requires > providers > providers items > oneOf > item 0
Description: Shorthand: the requirement key. Expands to a required ‘llm’ requirement with that key (role ‘llm’, required true).
17.1.1.2. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1
Type
object
Required
No
Additional properties
Not allowed
Property
Pattern
Type
Deprecated
Definition
Title/Description
+ key
No
string
No
-
Logical name the runtime resolves this provider by (e.g. ‘default’, ‘embeddings’, ‘judge’). ‘default’ is reserved for the primary LLM.
+ role
No
string
No
-
The kind of model required. Open set; runtimes MAY extend (validators must not reject unknown roles). Suggested values (PromptKit roles): ‘llm’, ‘embedding’, ‘tts’, ‘stt’, ‘image’, ‘inference’.
- required
No
boolean
No
-
Whether the pack cannot run without this provider. Optional requirements degrade features rather than blocking startup.
- description
No
string
No
-
Human-readable explanation of the provider’s purpose and the capabilities it should have.
- capabilities
No
object
No
In #/$defs/ProviderCapabilities
Structured, advisory capabilities the satisfying provider should have (RFC 0012). The well-known fields below are validated when present, but the object is OPEN: provider- or role-specific capabilities (a ‘role: inference’ provider may expose anything) may be added as extra keys with any shape. Custom keys SHOULD be namespaced (e.g. ‘x-’ prefix) to avoid clashing with fields the spec may define later. All listed fields are optional.
17.1.1.2.1. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > key
Description: Logical name the runtime resolves this provider by (e.g. ‘default’, ‘embeddings’, ‘judge’). ‘default’ is reserved for the primary LLM.
Restrictions
Must match regular expression
^[a-zA-Z0-9_-]+$ Test
17.1.1.2.2. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > role
Description: The kind of model required. Open set; runtimes MAY extend (validators must not reject unknown roles). Suggested values (PromptKit roles): ‘llm’, ‘embedding’, ‘tts’, ‘stt’, ‘image’, ‘inference’.
Examples:
17.1.1.2.3. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > required
Type
boolean
Required
No
Default
true
Description: Whether the pack cannot run without this provider. Optional requirements degrade features rather than blocking startup.
17.1.1.2.4. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > description
Description: Human-readable explanation of the provider’s purpose and the capabilities it should have.
17.1.1.2.5. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities
Type
object
Required
No
Additional properties
Any type allowed
Defined in
#/$defs/ProviderCapabilities
Description: Structured, advisory capabilities the satisfying provider should have (RFC 0012). The well-known fields below are validated when present, but the object is OPEN: provider- or role-specific capabilities (a ‘role: inference’ provider may expose anything) may be added as extra keys with any shape. Custom keys SHOULD be namespaced (e.g. ‘x-’ prefix) to avoid clashing with fields the spec may define later. All listed fields are optional.
Property
Pattern
Type
Deprecated
Definition
Title/Description
- modalities
No
array of string
No
-
Media types the provider must handle. Reuses the media-type vocabulary (MediaConfig.supported_types, RFC 0004). Common: ‘text’, ‘image’, ‘audio’, ‘video’, ‘document’.
- min_context_tokens
No
integer
No
-
Minimum context window, in tokens, the provider must support.
- tool_use
No
boolean
No
-
Whether the provider must support tool/function calling.
- structured_output
No
boolean
No
-
Whether the provider must support structured/JSON output.
- embedding_dimensions
No
integer
No
-
Required embedding vector dimensionality (for role ‘embedding’).
- - additionalProperties
No
object
No
-
-
17.1.1.2.5.1. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities > modalities
Type
array of string
Required
No
Description: Media types the provider must handle. Reuses the media-type vocabulary (MediaConfig.supported_types, RFC 0004). Common: ‘text’, ‘image’, ‘audio’, ‘video’, ‘document’.
Array restrictions
Min items
N/A
Max items
N/A
Items unicity
False
Additional items
False
Tuple validation
See below
17.1.1.2.5.1.1. PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities > modalities > modalities items
Restrictions
Must match regular expression
^[a-z0-9_]+$ Test
17.1.1.2.5.2. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities > min_context_tokens
Description: Minimum context window, in tokens, the provider must support.
Description: Whether the provider must support tool/function calling.
17.1.1.2.5.4. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities > structured_output
Description: Whether the provider must support structured/JSON output.
17.1.1.2.5.5. Property PromptPack Specification > requires > providers > providers items > oneOf > item 1 > capabilities > embedding_dimensions
Description: Required embedding vector dimensionality (for role ‘embedding’).
Generated using json-schema-for-humans on 2026-08-31 at 09:33:20 +0000