Skip to content

Diagnostics Guide

Suggested types:

pub enum Severity {
    Error,
    Warning,
    Information,
}

pub enum DiagnosticStage {
    Parse,
    CanonicalObjectModel,
    Validation,
    CompatibilityAnalysis,
    Planning,
    CapabilityEvaluation,
    OrchestratorBinding,
    ExecutionAnalysis, // reserved
}

pub struct Diagnostic {
    pub id: String,
    pub severity: Severity,
    pub stage: DiagnosticStage,
    pub category: String,
    pub message: String,
    pub object_ref: Option<String>,
    pub remediation: Option<String>,
    pub source_location: Option<String>,
    pub related_diagnostics: Vec<String>,
    pub metadata: Option<BTreeMap<String, String>>,
}

ValidationReport aggregates diagnostics. DiagnosticReport adds processingResult, optional artifactId, and implementation metadata.

Use validate_diagnostic for structural self-checks (DPCS-DIAG-001004).

Categories (0.9.0)

Constant Wire value
DOCUMENT document
CANONICAL_OBJECT_MODEL canonicalObjectModel
STRUCTURAL structural
GRAPH graph
REFERENCE reference
DATA_FLOW dataFlow
CONTROL_FLOW controlFlow
EXECUTION_REQUIREMENTS executionRequirements
SCHEDULING scheduling
QUALITY_GATES qualityGates
FAILURE_SEMANTICS failureSemantics
LINEAGE lineage
PLANNING planning
CAPABILITY capability
BINDING binding
COMPATIBILITY compatibility
VERSIONING versioning
REGISTRY registry
CONFORMANCE conformance
SECURITY security
GOVERNANCE governance
EXTENSION extension
SYNTAX syntax

Planning failures use DiagnosticStage::Planning (for example DPCS-PLN-001). Capability match failures use DiagnosticStage::CapabilityEvaluation (DPCS-CAP-001006). Binding failures use DiagnosticStage::OrchestratorBinding:

ID Meaning
DPCS-BIND-001 Capability gate failed before translation
DPCS-BIND-002 Unknown binding target
DPCS-BIND-003 Translation incomplete / empty artifacts
DPCS-BIND-004 Artifact write failure or unsafe relative path

Compatibility analysis uses DiagnosticStage::CompatibilityAnalysis (DPCS-COMPAT-*). Unknown preserved extensions emit Information (DPCS-EXT-010).

Reference resolution (0.13): unresolved nested DPCS locations emit DPCS-REF-007 / DPCS-REF-008. Companion ODCS/DTCS locations may be external and are not required to exist locally.

Catalog

A machine-readable inventory of emitted diagnostic identifiers is generated from source under diagnostics.catalog.json (regenerate with make diagnostics-catalog).

Diagnostics describe observations only. They must not change pipeline semantics.