CLI Specification¶
Binary name:
Commands:
dpcs validate <path> [--json] [--format text|json|markdown|html] [--out <path>] [--strict] [--profile <conformance-profile>]
dpcs inspect <path> [--json] [--format text|json|markdown|html] [--out <path>] [--tui]
dpcs diagnostics <path> [--json] [--format text|json|markdown|html] [--out <path>]
dpcs graph <path> [--json] [--format text|json|markdown|html|mermaid|dot] [--out <path>]
dpcs capabilities <profile> --plan <contract> [--json] [--format text|json|markdown|html] [--out <path>]
dpcs bind <contract> --profile <profile> --target <airflow|dagster|prefect|temporal|kubernetes>
dpcs compatibility <baseline> <candidate> [--json] [--format text|json|markdown|html] [--out <path>]
dpcs tui <path>
dpcs registry validate <path>
dpcs registry serve --root <dir> [--bind host:port] [--token <secret>]
dpcs registry pull --url <base> [--token <secret>] [--cache-dir <dir>]
dpcs registry lookup --url <base> <id> [--version <ver>] [--token <secret>] [--cache-dir <dir>]
dpcs registry publish --url <base> <artifact> [--content <file>] [--token <secret>] [--cache-dir <dir>]
dpcs registry deprecate --url <base> <id> [--version <ver>] [--token <secret>] [--cache-dir <dir>]
dpcs registry retire --url <base> <id> [--version <ver>] [--token <secret>] [--cache-dir <dir>]
dpcs registry cache --dir <dir> [--clear]
dpcs package validate|show|pack|unpack ...
dpcs schema json|openapi ...
dpcs conformance validate <path>
dpcs version [--json]
Output modes:
dpcs validate pipeline.yaml
dpcs validate pipeline.yaml --json
dpcs validate pipeline.yaml --format markdown --out report.md
dpcs validate pipeline.yaml --strict
dpcs inspect pipeline.yaml --format html --out inspect.html
dpcs graph pipeline.yaml --format mermaid --out graph.mmd
dpcs graph pipeline.yaml --format dot
dpcs capabilities orchestrator.capabilities.yaml --plan pipeline.yaml
dpcs capabilities orchestrator.capabilities.yaml --plan pipeline.yaml --json
dpcs bind pipeline.yaml --profile orchestrator.capabilities.yaml --target airflow
dpcs bind pipeline.yaml --profile orchestrator.capabilities.yaml --target airflow --out ./out --json
dpcs compatibility baseline.yaml candidate.yaml --json
dpcs inspect pipeline.yaml --tui
dpcs tui pipeline.yaml
dpcs registry validate registry.yaml --json
dpcs conformance validate conformance.profile.yaml --json
dpcs version --json
Exit codes:
0valid / capability match ok / bind ok / compatible / registry or conformance ok1validation, capability, binding, compatibility, registry, or conformance errors (including HTTP 4xx from the registry API)2parse or IO failure (including registry transport errors, response decode failures, and HTTP 5xx)
Notes:
validate,diagnostics,capabilities, andbindresolve nested DPCS Contract References relative to the input document directory (ResolveOptions::from_document_path). Companion ODCS/DTCS files may be absent.validateanddiagnosticsuse the exit codes above.--formatselects the report renderer (text,json,markdown,html;graphalso acceptsmermaidanddot). When omitted, output is text.--jsonis a permanent alias for--format json.--out <path>writes the report to a file; when omitted, reports go to stdout.- Severity lines in text mode use ANSI color when stdout is a TTY (honors
NO_COLOR). validate --profileapplies a validated conformance profile (requireSecurity,requireGovernance, forbidden extension namespaces) viaapply_profile_to_contract.validate --json/--format jsonanddiagnostics --json/--format jsonemit aDiagnosticReport(processing result, artifact id, implementation metadata, and diagnostics). Markdown/HTML use the plain validation diagnostic list.capabilitiesparses the contract, runsplan(), thenevaluateagainst the profile. Exit0on match,1on plan refusal or capability errors,2on parse/I/O.capabilities --json/--format jsonemits aCapabilityReporton both success and match failure (failure includes diagnostics andmissingMandatory).bindparses the contract and profile, plans (with document-relative resolve), capability-gates, then translates to scaffold artifacts plusdpcs_semantics.json. Writes under--out(default./dpcs-bind-<target>/). Exit0on success,1on plan/capability/binding errors (including unknown--target),2on parse/I/O or write failure.bind --jsonemits aBindingBundleon success (and still writes files when--outis used or defaulted).--targetacceptsairflow,dagster,prefect,temporal,kubernetes, and aliask8s.temporalandkubernetestargets are experimental.compatibilitycompares two Pipeline Contracts. Exit0when the category is compatible (fully / backward / forward / conditional),1when incompatible,2on parse/I/O.--json/--format jsonemitsCompatibilityReport.registry validatevalidates an in-process registry document (DPCS-REG-*).registry serve|pull|lookup|publish|deprecate|retire|cacheuse the reference HTTP API (ADR-0005). Client commands accept--cache-dirfor a disk-backedRegistryCache. Deprecate/retire accept optional--version(server uses latest listed row when omitted). Publish of an existingid@versionwith different content is rejected (HTTP 409 /DPCS-REG-016); identical content is idempotent. Status changes use deprecate/retire, not republish.packageoperates on.dpcspkglayouts (DPCS-PKG-*).schemaemits JSON Schema / OpenAPI underschemas/.conformance validatevalidates a conformance profile and checks claimed levels against this toolkit.version --jsonemits toolkit version,dpcsSpecVersion, and the toolkitConformanceClaim.- Invalid YAML/JSON documents emit Parse-stage diagnostics (
DPCS-PARSE-*) and exit2. With--json, the diagnostic report is printed to stdout forvalidate,diagnostics,inspect,graph,capabilities,bind,compatibility,registry, andconformancefailures. inspectandgraphalways exit0after a successful parse and do not fail on validation errors.inspectreportsvalid, execution-model counts, andplanningRefused/stepOrderwhen a plan is available.inspect --tuiandtuiopen an interactive inspector (Overview / Steps / Edges / Diagnostics / Plan). Requires a TTY and thetuifeature (included indpcs-cli/--features full). Exit2when not a TTY or parse fails.graphprints topology always; plannedstepOrderis omitted when planning is refused, and both text/JSON reportplanningRefused. Graph formatsmermaid/dot/htmlexport visualization source.- JSON serialization failures for reports exit with code
2.