Blueprint Schema Reference¶
Canonical Blueprint semantics are defined in ACGP-3: Blueprints, Traces & Evaluation.
Validation boundary JSON Schema validates structural shape. Runtime and SDK validation enforce semantic rules such as metric-weight totals, threshold consistency, and other cross-field invariants required for conformance.
Canonical Top-Level Shape¶
artifact_type: acgp.blueprint
schema_version: "2.0.0"
id: finance/refunds@2.0
version: "2.0.0"
title: "Refund policy"
description: "Refund policy for customer support operations"
base:
ref: finance/base@2.0
applicability:
governance_tiers: [GT-2, GT-3]
tools: ["issue_refund"]
tripwires: []
checks: []
intervention_policy:
thresholds:
ok: 0.25
nudge: 0.40
escalate: 0.55
# Risk > escalate → block (implicit; halt is tripwire-only)
evidence_policy:
require_citations: true
trust_policy:
enabled: true
accumulation:
ok: 0.0
flag: 0.1
nudge: 0.5
escalate: 1.0
block: 2.0
halt: 5.0
decay:
decay_fraction: 0.05
period_hours: 24
min_debt: 0.0
thresholds:
elevated_monitoring: 1.0
restricted_mode: 3.0
re_tiering_review: 5.0
extensions:
required: []
optional: []
annotations:
owner: support-governance
fixtures: []
Top-Level Fields¶
| Field | Type | Required | Description | Source |
|---|---|---|---|---|
artifact_type |
string | Yes | Source-artifact discriminator. Value: acgp.blueprint |
ACGP-3 / schema |
schema_version |
string | Yes | Schema version for the canonical source artifact | ACGP-3 / schema |
id |
string | Yes | Unique blueprint identifier | ACGP-3 / schema |
version |
string | Yes | Semantic version for blueprint artifact | ACGP-3 / schema |
title |
string | Yes | Human-readable policy title | ACGP-3 / schema |
description |
string | Yes | Purpose summary | ACGP-3 / schema |
base |
object | No | Parent source blueprint reference and optional digest pin | ACGP-3 / schema |
applicability |
object | No | Activation constraints by context | ACGP-3 / schema |
tripwires |
array | No | Safety constraints evaluated before checks | ACGP-3 / schema |
checks |
array | Yes | Canonical runtime checks using kind: rule | metric |
ACGP-3 / schema |
intervention_policy |
object | Yes | Threshold mapping from evaluation result to intervention | ACGP-3 / schema |
evidence_policy |
object | No | Grounding/citation requirements | ACGP-3 / schema |
trust_policy |
object | No | Accumulation, decay, and threshold config for trust tracking | ACGP-3 / schema |
extensions |
object | No | Required/optional extension descriptors | ACGP-3 / schema |
annotations |
object | No | Non-normative annotations | ACGP-3 / schema |
fixtures |
array | No | Embedded policy fixtures for expected outcomes | ACGP-3 / schema |
Key Nested Blocks¶
base¶
| Field | Type | Required | Notes |
|---|---|---|---|
ref |
string | Yes | Parent source blueprint reference |
digest |
string | No | Optional content pin for deterministic inheritance |
applicability¶
| Field | Type | Required | Notes |
|---|---|---|---|
governance_tiers |
array[string] | No | Governance Tier values where the blueprint applies |
tools |
array[string] | No | Tool/action filters |
domains |
array[string] | No | Domain constraints |
out_of_scope_behavior |
enum | No | allow, block, or escalate |
tripwires[]¶
| Field | Type | Required | Notes |
|---|---|---|---|
id |
string | Yes | Unique tripwire id |
when |
object | No | Hook/tool match criteria |
condition |
string | Yes | Expression evaluated at runtime |
on_fail.decision |
enum | Yes | block / halt / etc. per policy semantics |
on_fail.reason |
string | Yes | Human-readable rationale |
Tripwire semantics are normative in ACGP-4.
checks[]¶
| Field | Type | Required | Notes |
|---|---|---|---|
id |
string | Yes | Check identifier |
kind |
enum | Yes | rule or metric |
when |
object | No | Evaluation hook |
condition |
string | Rule only | Deterministic rule expression |
on_fail |
object | Rule only | Direct fail mapping for rule checks |
flag |
boolean | Rule only | Orthogonal flag marker for rule checks |
metric.name |
string | Metric only | Metric identifier |
metric.weight |
number | Metric only | Weight contribution to aggregate evaluation |
metric.evaluator.kind |
enum | Metric only | rule-based, cognitive-evaluator, source-match, pattern-match, hybrid |
metric.evaluator.args |
object | Metric only | Evaluator-specific arguments |
Mixed check shapes are invalid. A check with kind: rule cannot also declare metric, and a check with kind: metric cannot declare rule-only fields.
intervention_policy¶
All threshold values are in risk-score space (0.0 = perfect, 1.0 = worst).
| Field | Type | Required | Notes |
|---|---|---|---|
thresholds.ok |
number | Yes | Max risk for ok |
thresholds.nudge |
number | Yes | Max risk for nudge |
thresholds.escalate |
number | Yes | Max risk for escalate |
Only three threshold keys exist. Risk above escalate maps to the block intervention
implicitly. halt is tripwire-driven and MUST NOT be emitted by threshold mapping alone.
evidence_policy¶
| Field | Type | Required | Notes |
|---|---|---|---|
require_citations |
bool | No | Require source references |
certified_only |
bool | No | Restrict to certified sources |
min_sources |
integer | No | Minimum number of sources |
trust_policy¶
| Field | Type | Required | Notes |
|---|---|---|---|
enabled |
bool | Yes | Enable/disable trust tracking |
accumulation |
object | Yes | Per-intervention debt amounts (ok, flag, nudge, escalate, block, halt) |
decay.decay_fraction |
number | Yes | Fraction of debt removed per decay period (e.g., 0.05 = 5% removed). |
decay.period_hours |
number | Yes | Hours per decay cycle |
decay.min_debt |
number | Yes | Floor value after decay |
thresholds.elevated_monitoring |
number | Yes | Debt level triggering elevated monitoring |
thresholds.restricted_mode |
number | Yes | Debt level triggering restricted mode |
thresholds.re_tiering_review |
number | Yes | Debt level triggering Governance Tier review |
fixtures[]¶
| Field | Type | Required | Notes |
|---|---|---|---|
id |
string | Yes | Fixture identifier |
input |
object | Yes | Embedded trace/action fragment or test input |
expected.primary_decision |
enum | No | Expected primary decision (ok, nudge, escalate, block, halt; flag is orthogonal and not valid here) |
expected.flags |
array[string] | No | Expected flags |
expected.tripwire_ids |
array[string] | No | Expected tripwires |
expected.evidence_outcome |
string | No | Expected evidence result |
Merge Semantics (base Resolution)¶
When base is present, effective policy is computed by resolving the parent source blueprint and compiling a resolved blueprint artifact.
| Field | Merge Rule |
|---|---|
id, version, title, description |
Always child-defined |
base |
Used only for resolution lineage; not copied as a mutable scalar override |
annotations |
Child replaces parent entirely |
applicability |
Explicit child override rules; no implicit merge |
tripwires |
Append; if child reuses a parent tripwire.id, child overrides that id |
checks |
Append; if child reuses a parent check.id, child overrides that id |
intervention_policy.thresholds |
Child overrides parent per key |
evidence_policy |
Child overrides parent per key |
trust_policy |
Child overrides parent per key |
extensions.required |
Append; if child reuses a parent extension id, child overrides that id |
extensions.optional |
Append; if child reuses a parent extension id, child overrides that id |
This merge table is normative and matches ACGP-3 base-resolution semantics.
Minimal Canonical Example¶
id: support/basic@1.0
artifact_type: acgp.blueprint
schema_version: "2.0.0"
version: "2.0.0"
title: "Basic support safeguards"
description: "Basic support safeguards"
tripwires:
- id: no_pii_leak
when:
hook: output
condition: "contains_pii(output.text)"
on_fail:
decision: block
reason: "PII leakage detected"
checks:
- id: reasoning_quality
kind: metric
when:
hook: output
metric:
name: reasoning_quality
weight: 0.25
evaluator:
kind: rule-based
args:
mode: all
rules:
- id: reasoning_present
field: reasoning
operator: exists
intervention_policy:
thresholds:
ok: 0.25
nudge: 0.40
escalate: 0.55
# Risk > escalate → block (implicit; halt is tripwire-only)
Explicit Removals¶
Blueprint removes these fields from blueprint core:
namectqperformance_budgetfallback_behaviormetadata- raw
inherits
Runtime-budget concerns now belong to Runtime Governance Contracts rather than blueprint core.
ACGP-3 Normative Spec Tripwire Semantics Error Codes API Reference