Reader guide
Choose the Automation Document Role when the artifact's main job is to define workflow behavior: ordered steps, prompts, scripts, and execution-related validation.
- Use this when
- Your artifact is primarily a workflow or execution package and needs step ordering, cross-file validation, prompt and script handling, or automation-specific publication rules.
- What it controls
- Catalog and workflow structure, step semantics, prompt and script support artifacts, semantic validation, publication derivation, and automation-specific reuse boundaries.
- What it does not do
- It does not replace the shared Artifact Specification, and it does not define pure data records or rendered report behavior as the primary job of the artifact.
- Read next
- If you mainly need validated facts, move to Data. If you mainly need rendered output, move to Report. For shared public-authoring rules, read the Artifact Specification.
This Automation Document Role classifies automation-oriented Artifact Definitions into that role and sets the authoring, semantic validation, diagnostics, publication, and reuse rules those Artifact Definitions must satisfy alongside the shared Artifact Specification.
Overview
The v1.0.0 Automation Document Role is the canonical public contract for automation-oriented Artifact Definitions. Use it when the artifact should drive workflow behavior instead of only storing facts or rendering a report.
The core model remains:
- a catalog contains workflows,
- a workflow is an ordered sequence of steps,
- a step is defined by prompt instructions and optional script behavior.
This release governs role meaning, cross-file validation expectations, publication derivation, and reuse boundaries for automation-oriented Artifact Definitions. The shared Artifact Specification remains the cross-cutting standard for how those Artifact Definitions are authored and attributed.
Normative Artifacts
Supporting Artifacts
Example Artifacts
Related document roles
Canonical standard text
The section below is the full normative publication rendered directly from the canonical repository source. Use it for exact wording, implementation details, and citation.
Version 1.0.0
1. Abstract
This document defines the Automation Document Role v1.0.0 as the governing Document Role for the Workflow domain. Artifact Definitions classified into this domain MUST conform to both this Document Role and the shared Artifact Specification.
The v1 automation model remains intentionally small:
- a catalog owns one or more workflows,
- a workflow defines one ordered sequence of steps,
- a step is defined by canonical prompt instructions and an optional supporting script asset.
This release is a hardening patch over v1.0.0. It corrects support-artifact schema handling, sharpens conformance language, makes the feed derivation rules more deterministic, aligns diagnostics with RFC 6901 JSON Pointer semantics, and expands the conformance fixture set so every public rule identifier is exercised by at least one published fixture.
2. Status, Scope, and Publication Framing
This document is a stable public normative publication for the v1 automation contract published at https://www.cuddler.dev/standards/document-role/automation/.
This versioned Document Role is intentionally self-contained. It includes the full normative contract for release 1.0.0, and no linked schema, manifest, example, or support file is required in order to understand the required behavior defined here.
The primary normative contribution is the core automation contract made of:
catalog.manifest.jsonworkflow.manifest.jsonprompt.json
The rest of the release is organized as supporting material around that core:
- Publication profile:
feed.json - Adjunct package profiles:
plugin.manifest.json,skill.manifest.json,exec.workflow.json - Conformance and support artifacts: diagnostics schema, registries, tests manifest, implementation-report template, and example bundle manifest
This Document Role defines:
- the core automation model,
- the domain-level rules for JSON Artifact Definitions used in this domain, alongside the shared Artifact Specification that governs Artifact Definition authoring globally,
- the authoring rules for valid automation data files,
- the semantic validation rules that run after per-file schema validation,
- deterministic diagnostics and conformance expectations,
- publication derivation rules for
feed.json, - governance, migration, reuse, security, and privacy expectations for the public standard.
This Document Role does not standardize:
- a workflow runtime,
- plugin transport protocols,
- desktop UX,
- agent-memory or state-persistence internals,
- permission prompts or approval UIs,
- package signature infrastructure,
- telemetry formats,
- structured step I/O contracts.
3. Conformance and Requirement Language
3.1 BCP 14 Language
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14 (RFC 2119 and RFC 8174) when, and only when, they appear in all capitals.
3.2 Formal conformance classes
This specification defines the following formal conformance classes:
- Artifact Definition authoring implementation: produces or maintains the published JSON Artifact Definitions and support-artifact schemas defined by this release.
- Validator: resolves schemas, validates source artifacts, runs semantic validation, and emits deterministic diagnostics.
- Publisher: derives publication artifacts such as
feed.jsonfrom valid source artifacts.
These are the only formal conformance classes for v1.0.0.
3.3 Informative implementation profiles
This release also publishes informative profiles that are useful but are not themselves formal conformance classes:
- AI executor read-only v1 profile: consumes the public contract, locates the relevant artifacts, and understands the catalog -> workflow -> step model without claiming standardized execution semantics.
- Adjunct-aware profile: additionally understands one or more optional adjunct surfaces such as
plugin.manifest.json,skill.manifest.json, orexec.workflow.json.
Those profiles are published for tooling guidance and fixture discovery. They are not substitutes for the formal conformance classes above.
3.4 Conforming automation Artifact Definition
A conforming Cuddler automation Artifact Definition MUST:
- use JSON Schema Draft 2020-12,
- match the authoring profile defined by this Document Role,
- include meaningful
descriptiontext for every instance-visible property, either directly or through a reused definition, - constrain identifiers, versions, and paths consistently with this document,
- remain aligned with the core automation model in Section 7,
- be listed in
specification.index.json, - preserve stable canonical
$idvalues for the release.
3.5 Conforming automation data file
A conforming automation data file MUST:
- declare the correct
$schemavalue for its artifact type, - pass JSON Schema validation against that schema,
- satisfy the relevant authoring profile in this document,
- pass the semantic validation rules defined in Section 13 when cross-file relationships apply.
3.6 Conforming validator
A conforming validator MUST:
- resolve the declared schema according to Section 12,
- fail on schema-validation errors,
- run semantic validation after schema success,
- fail on semantic-validation errors,
- emit diagnostics that conform to
diagnostics.schema.json, - emit stable
ruleIdvalues for every public failure condition, - identify the failing artifact and location deterministically,
- preserve authored ordering when reporting failures discovered in ordered arrays or repeated semantic checks.
3.7 Conforming publisher
A conforming publisher MUST:
- begin from valid source artifacts,
- refuse to publish source content that fails schema validation or semantic validation,
- derive publication artifacts from valid source content rather than treating them as standalone authored truth,
- preserve the catalog -> workflow -> step model when emitting publication outputs,
- generate
publishedOnUtcvalues in UTC with a trailingZwhen the publisher is the system generating those values, - derive
feed.jsonaccording to Section 14.
4. Normative References
The following references are normative for this specification:
RFC 2119, Key words for use in RFCs to Indicate Requirement LevelsRFC 8174, Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words- JSON Schema Draft 2020-12 Core
- JSON Schema Draft 2020-12 Validation
- JSON Schema Draft 2020-12 Recommended Output
RFC 3986, Uniform Resource Identifier (URI): Generic SyntaxRFC 6570, URI TemplateRFC 6901, JavaScript Object Notation (JSON) PointerRFC 7763, Thetext/markdownMedia Type- Semantic Versioning 2.0.0,
https://semver.org/ RFC 3339, Date and Time on the Internet: TimestampsRFC 3552, Guidelines for Writing RFC Text on Security Considerations
Where this specification restricts a referenced standard to a narrower authoring profile, the narrower Cuddler rule governs within this contract.
5. Design Goals and Non-goals
5.1 Design goals
The design goals of v1 are:
- minimal authoring core,
- transport and runtime neutrality at the source-contract level,
- machine-validatable JSON artifacts,
- human-authorable source files,
- public documentation that humans and AI assistants can consume directly,
- explicit separation of schema validation and semantic validation.
5.2 Non-goals
The non-goals of v1 are:
- full workflow-engine standardization,
- standardized step I/O contracts,
- universal runtime capability negotiation,
- agent-memory serialization,
- package-signing infrastructure,
- telemetry or execution-log standardization.
6. Terminology and Identity
This Document Role uses Automation Document Role as the public contract name.
The legacy https://www.cuddler.dev/standards/document-role/automation/v1.0.0/... namespace remains the canonical identifier namespace only for the published instance-validation schemas retained for compatibility in the v1 line:
catalog.manifest.schema.jsonworkflow.manifest.schema.jsonprompt.document.schema.jsonplugin.manifest.schema.jsonskill.manifest.schema.jsonexec.workflow.schema.jsonfeed.schema.json
Support-artifact schemas published for v1.0.0 use Cuddler-hosted schema identifiers under https://www.cuddler.dev/standards/document-role/automation/.
Public prose, release pages, and examples MUST use Cuddler naming. The retained legacy namespace MUST NOT be interpreted as a competing product identity.
7. Core Automation Model
The v1 core automation contract consists of three required data-file types:
catalog.manifest.jsonworkflow.manifest.jsonprompt.json
Their relationship is fixed:
- a catalog manifest declares one automation family,
- the catalog references one or more workflow manifests,
- each workflow manifest declares one ordered sequence of steps,
- each step references one prompt document,
- a step MAY also reference one supporting script asset.
The core contract does not require:
- a plugin runtime,
- a desktop package,
- a transport mechanism,
- a publication feed entry,
- a machine-readable execution-state model.
This conceptual core MUST remain stable throughout the v1 line.
8. Artifact Taxonomy and Canonical Source Layout
8.1 Core contract
The minimum authored source surface for a valid automation family is:
catalog.manifest.jsonworkflow.manifest.jsonprompt.json
8.2 Companion publication and adjunct profiles
The following surfaces are companion profiles rather than part of the minimum authored source surface:
feed.jsonas the publication profileplugin.manifest.jsonas an adjunct package profileskill.manifest.jsonas an adjunct package profileexec.workflow.jsonas an adjunct package profile
Those artifacts are optional for core source validity and do not add normative requirements beyond the ones stated in this document.
8.3 Canonical source layout
The canonical source layout for one catalog is:
catalogs/<catalog-id>/
catalog.manifest.json
plugin.manifest.json # optional adjunct
skill.manifest.json # optional adjunct
exec.workflow.json # optional adjunct
<workflow-id>/
workflow.manifest.json
<step-id>/
prompt.json
script.ps1 # optional
All manifest path references in v1.0.0 MUST use the catalog-root-relative reference frame.
That means every referenced path is resolved relative to the directory that contains catalog.manifest.json.
9. Artifact Registry
The machine-readable artifact registry for this release is published as specification.index.json.
The normative instance-validation artifact mapping is:
| Artifact type | Canonical schema $id | Repo source path | Public download URL | Instance files validated |
|---|---|---|---|---|
| Catalog manifest schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/catalog.manifest.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/catalog.manifest.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/catalog.manifest.schema.json | catalog.manifest.json |
| Workflow manifest schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/workflow.manifest.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/workflow.manifest.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/workflow.manifest.schema.json | workflow.manifest.json |
| Prompt document schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/prompt.document.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/prompt.document.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/prompt.document.schema.json | prompt.json |
| Plugin manifest schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/plugin.manifest.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/plugin.manifest.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/plugin.manifest.schema.json | plugin.manifest.json |
| Skill manifest schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/skill.manifest.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/skill.manifest.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/skill.manifest.schema.json | skill.manifest.json |
| Exec workflow schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/exec.workflow.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/exec.workflow.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/exec.workflow.schema.json | exec.workflow.json |
| Feed schema | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/feed.schema.json | tests/fixtures/document-role-specifications/automation-document-role-specification/1.0.0/support/feed.schema.json | https://www.cuddler.dev/standards/document-role/automation/v1.0.0/feed.schema.json | feed.json |
Support-artifact schemas and manifests are also normative release artifacts and are listed in specification.index.json.
specification.index.json is a machine-readable registry for the release package. It supports tooling and publication workflows, but the normative contract remains fully stated in this document.
10. Path, Identifier, Version, and Format Rules
10.1 Identifier rules
Catalog ids, workflow ids, step ids, prompt ids, and publication asset ids MUST:
- be case-sensitive,
- use lowercase kebab-case,
- match
^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$, - remain stable once published unless all affected references are intentionally updated in the same change.
promptId MUST equal the owning step id.
10.2 Version rules
The canonical authoring form for automation manifest version fields is a release-version string in MAJOR.MINOR.PATCH form such as 2.3.0.
For compatibility, the catalog, workflow, and exec-workflow schemas MAY still accept a positive integer version in the v1 line.
When both forms are technically accepted:
- authors SHOULD emit a release-version string,
- validators MUST accept either the canonical release-version string or a positive integer where the schema allows it,
- examples in this Document Role MUST use release-version strings,
- integer compatibility is deprecated for a future major revision.
10.3 JSON Schema format handling
Implementations MUST support JSON Schema Draft 2020-12.
Within this Document Role, the following format-bearing constraints MUST be treated as assertions by a conforming validator:
datedate-timeuriuri-reference
Validators MUST NOT silently downgrade those checks to annotation-only behavior for conformance decisions.
10.4 Path resolution algorithm
A conforming validator or publisher MUST resolve catalog-root-relative paths with the following algorithm:
- take the directory containing
catalog.manifest.jsonas the catalog root, - read the authored path exactly as written,
- reject the path if it is empty,
- reject the path if it begins with
/, - reject the path if it contains
\, - reject the path if it contains a Windows drive prefix such as
C:, - split on
/, - reject any empty segment,
.segment, or..segment, - join the remaining segments using
/for logical resolution, - resolve the logical path beneath the catalog root,
- reject the path if filesystem canonicalization escapes the catalog root,
- reject the path if the target does not exist when the rule being evaluated requires an existing artifact.
The path language of v1.0.0 is intentionally the ASCII-like language enforced by the published path regexes. This release does not define additional Unicode normalization behavior.
11. Schema Resolution Rules
11.1 Core and companion instance artifacts
Within Cuddler core, adjunct, and publication instance documents, $schema is an application-level schema locator that identifies the canonical validation schema for the instance document.
11.2 Support artifacts
Within support manifests and registries such as specification.index.json, semantic-rules.json, conformance.manifest.json, tests/manifest.json, implementation-report.template.json, and examples.manifest.json, $schema identifies the Cuddler-published instance schema for that support artifact type.
11.3 Resolution algorithm
A conforming validator MUST resolve schemas as follows:
- read the
$schemastring from the instance document, - compare it to the canonical identifiers listed in
specification.index.json, - if an exact canonical identifier match exists in a local pinned mapping, use that local resource,
- otherwise, if an exact match exists in a release-local artifact registry bundled with the validator, use that resource,
- otherwise, an implementation MAY fetch the schema over the network if its security policy allows network schema resolution,
- if network schema resolution is disabled or fails, emit
AUT-SCHEMA-001, - if the validator has a pinned release artifact for that schema identifier, it MUST compare the resolved schema bytes to the SHA-256 digest published in
specification.index.json, - if the resolved bytes do not match the published pinned digest, the validator MUST fail closed and emit
AUT-SCHEMA-002.
For public Cuddler release validation, offline pinned release-local schemas are RECOMMENDED over live network fetches.
Validators MUST NOT prefer an arbitrary same-filename local file over the canonical schema-identifier mapping when the two disagree.
12. Semantic Validation, Diagnostics, and Rule Identifiers
12.1 Semantic validation model
Schema validation checks one document at a time.
Semantic validation checks cross-file relationships and release-specific invariants that cannot be expressed adequately in one schema alone.
The machine-readable semantic rule registry for this release is semantic-rules.json.
12.2 Required public rule identifiers
At minimum, a conforming validator MUST implement these public rule identifiers:
AUT-SCHEMA-001: schema could not be resolvedAUT-SCHEMA-002: resolved schema bytes did not match the pinned release schema digestAUT-SCHEMA-003: JSON Schema validation failedAUT-SEM-001: eachcatalog.manifest.json.workflows[].idMUST equal theidinside the referencedworkflow.manifest.jsonAUT-SEM-002: each declared workflowpathMUST resolve to an existingworkflow.manifest.jsonwithin the catalog rootAUT-SEM-003: each workflow step id MUST be unique within its owning workflowAUT-SEM-004: each declaredpromptPathMUST resolve to an existingprompt.jsonAUT-SEM-005: each declaredscriptPathMUST resolve to an existing script assetAUT-SEM-006: eachprompt.json.promptIdMUST match the owning step idAUT-SEM-007: each referenced adjunct manifest path MUST resolve to the declared adjunct artifact typeAUT-SEM-008: duplicated feed-item summary fields MUST equal their embedded manifest counterparts when both are presentAUT-SEM-009: duplicate workflow reference ids within a catalog MUST be rejectedAUT-SEM-010: duplicate publication package identity tuples(catalogId, version)within one feed MUST be rejected
12.3 Diagnostics model
A conforming validator MUST emit a JSON object matching diagnostics.schema.json.
Each diagnostic entry MUST include:
messageseverityartifactPathruleId
When available, a diagnostic SHOULD also include:
codeinstancePathschemaPathexpectedactualrelatedArtifactPath
instancePath MUST be an RFC 6901 JSON Pointer.
schemaPath MUST be an RFC 6901 JSON Pointer into the resolved schema document.
Errors fail conformance. Warnings and info entries do not.
12.4 Metadata equality and intentional non-equality
The following equality rules are normative:
promptIdMUST equal the owning step id,catalog.workflows[].idMUST equal the referenced workflowid,- whenever root
feedItemsummary fields are present fordisplayName,description,author,organization,categories, ortags, they MUST equal the corresponding fields insidemanifest.
The following fields are intentionally allowed to differ:
workflow.steps[].titleandprompt.json.title,workflow.steps[].summaryandprompt.json.summary.
12.5 Example diagnostics
Schema failure example:
{
"specVersion": "1.0.0",
"valid": false,
"diagnostics": [
{
"message": "Required property \"workflows\" is missing.",
"severity": "error",
"artifactPath": "catalogs/customer-success-playbooks/catalog.manifest.json",
"instancePath": "",
"schemaPath": "/required",
"ruleId": "AUT-SCHEMA-003",
"expected": [
"$schema",
"id",
"version",
"name",
"description",
"workflows"
]
}
]
}
Semantic failure example:
{
"specVersion": "1.0.0",
"valid": false,
"diagnostics": [
{
"message": "workflow reference id \"lead-intake\" does not match the referenced workflow id \"lead-intake-v2\".",
"severity": "error",
"artifactPath": "catalogs/customer-success-playbooks/catalog.manifest.json",
"instancePath": "/workflows/0/id",
"ruleId": "AUT-SEM-001",
"relatedArtifactPath": "catalogs/customer-success-playbooks/lead-intake/workflow.manifest.json",
"expected": "lead-intake-v2",
"actual": "lead-intake"
}
]
}
13. Publication Derivation Rules
feed.json is the publication profile for published automation packages.
It is derived output. It MUST NOT be treated as independently authored truth for the source contract.
13.1 Deterministic field mappings
When a conforming publisher derives one feedItem from one valid source catalog and no separate publication profile supplies overriding metadata:
- root
catalogIdandmanifest.catalogIdMUST be derived fromcatalog.manifest.json.id, - root
versionandmanifest.versionMUST be derived from the published package version, manifest.contractVersionMUST be set to1.0.0,manifest.displayNameMUST be derived fromcatalog.manifest.json.name,manifest.descriptionMUST be derived fromcatalog.manifest.json.description,- root
displayNameand rootdescription, when present, MUST equal the manifest values, manifest.workflows[]MUST be emitted in the same order as the source catalog workflow references,- each
manifest.workflows[].workflowIdMUST be derived from the referenced workflow manifestid, - each
manifest.workflows[].titleMUST be derived from the referenced workflow manifestname, - each
manifest.workflows[].relativePathMUST default to the catalog workflow referencepath, manifest.supportAssets[]MUST be derived from every declaredscriptPathin workflow order, then step order,- each derived support-asset
assetIdMUST be<workflow-id>-<step-id>-script, - each derived support-asset
relativePathMUST default to the sourcescriptPath, - each derived support-asset
descriptionMUST beSupporting script for step "<step title>" in workflow "<workflow name>"., packageSha256MUST be computed over the exact bytes of the published zip artifact,publishedOnUtcat both the root and manifest levels MUST be UTC timestamps with a trailingZ.
13.2 Optional publication-only metadata
The following feed fields are publication-only metadata and are OPTIONAL in v1.0.0 unless a separate publication profile or publisher policy supplies them:
authororganizationcategoriestagsinstallationSummary
When duplicated at both the root feed-item level and the embedded manifest level, they MUST remain equal.
13.3 Ordering and uniqueness
A conforming publisher MUST:
- reject duplicate
(catalogId, version)tuples within one generated feed, - serialize the top-level feed array in ascending order by
catalogId, then by Semantic Version precedence ofversion, - preserve authored order for workflow-derived entries,
- preserve derived workflow/step order for support assets unless a separate publication profile defines another deterministic order.
For v1.0.0, downloadUrl remains the historical field name even though the value is package-relative rather than an absolute URL.
14. Artifact Authoring Profiles
14.1 catalog.manifest.json
A conforming source catalog.manifest.json MUST define:
$schemaidversionnamedescriptionworkflows
It MAY define:
sourceRepositoryexportedAtsourcePluginpluginManifestPathskillManifestPathworkflowBundlePath
14.2 workflow.manifest.json
A conforming source workflow.manifest.json MUST define:
$schemaidversionnamedescriptionsteps
Workflow steps[] MUST preserve execution order exactly as authored.
Each step MUST define:
idtitlepromptPath
Each step MAY define:
summaryscriptPath
In v1.0.0, scriptPath remains a PowerShell-shaped adjunct path ending in script.ps1. That is an explicit v1 scope constraint, not a claim of cross-runtime execution neutrality for script assets.
14.3 prompt.json
A conforming prompt.json MUST define:
$schemapromptIdtitleinstructions
It MAY define:
summaryformat
instructions is the canonical prompt content field and is authored as Markdown text embedded inside the JSON document.
In v1.0.0, omitted format values are treated as markdown. The field remains in the schema for explicitness and machine-readability even though only markdown is currently allowed.
14.4 Companion adjunct profiles
plugin.manifest.json, skill.manifest.json, and exec.workflow.json remain optional companion adjunct profiles in v1.0.0.
They MUST NOT replace the source authority of:
catalog.manifest.jsonworkflow.manifest.jsonprompt.json
15. Security Considerations
This section is normative.
Implementations and authors MUST account for at least the following risks:
- path traversal through crafted relative paths,
- symlink or junction escape outside the catalog root,
- schema poisoning through untrusted remote schema resolution,
- untrusted prompt content that may instruct unsafe actions,
- untrusted supporting scripts,
- malicious package substitution or hash mismatch,
- publication drift between derived artifacts and their source catalog,
- denial of service through extremely large files, deeply nested JSON, or pathological schemas,
- tool/runtime permission overreach by execution-oriented implementations.
Conforming validators and publishers MUST:
- validate path references according to Section 10.4,
- reject references that escape the catalog root after canonicalization,
- fail closed when schema resolution is ambiguous or digest validation fails,
- avoid treating prompt text or scripts as trusted merely because they pass schema validation,
- treat
packageSha256as an integrity field over exact artifact bytes, - avoid granting network, filesystem, credential, or host-execution permissions solely because an artifact references them.
16. Privacy Considerations
This section is normative.
The core contract defined here does not itself authorize access to private data sources.
Implementations MUST assume that prompt content, summaries, publication descriptions, provenance fields, and example datasets may contain sensitive information.
Implementations SHOULD:
- apply least-privilege access to any data consulted during authoring or execution,
- avoid leaking private repository paths or unpublished metadata into derived public artifacts,
- ensure that publication bundles and examples do not expose secrets, credentials, or internal-only source metadata,
- treat telemetry and execution logs as out of scope unless separately standardized and governed.
17. Versioning, Governance, and Reuse
17.1 Status states
This Document Role family recognizes the following status states:
draftstabledeprecatedobsolete
v1.0.0 is stable.
17.2 Patch releases
Non-breaking clarifications and hardening changes MAY be released as patch versions.
Patch releases MUST preserve:
- the core catalog -> workflow -> step model,
- canonical instance-validation schema
$idvalues for the v1 line, - existing conforming source artifact shapes unless a change is explicitly declared breaking.
17.3 Breaking changes
Breaking changes MUST use a new major version.
Examples include:
- renaming canonical fields,
- removing integer-version compatibility,
- replacing the top-level
feed.jsonarray shape, - changing the script model from the current PowerShell-shaped v1 constraint,
- eliminating duplicated identity fields such as
catalog.workflows[].idorpromptId.
17.4 Reuse and redistribution
For this public Document Role family:
- published JSON Artifact Definitions MAY be mirrored and redistributed when attribution is preserved and the original public URL is referenced,
- published example artifacts MAY be reused and redistributed when attribution is preserved and the original public URL is referenced,
- published conformance test artifacts MAY be mirrored and incorporated into independent validator or publisher test suites with attribution,
- short quotations from the specification for implementation or review purposes are permitted with attribution,
- altered redistributions SHOULD clearly indicate that they are modified copies and MUST NOT be presented as the canonical Cuddler publication.
18. Informative Appendices
18.1 Example bundle
The machine-readable example bundle for this release is published as examples.manifest.json.
The examples intentionally use source/package version 2.3.0 and feed contractVersion 1.0.0 so readers can distinguish artifact/package versioning from Document Role versioning.
18.2 Conformance fixtures
The conformance test bundle for this release is published under tests/ with a machine-readable index at tests/manifest.json.
Every public rule identifier in Section 12.2 is exercised by at least one published fixture.
18.3 AI implementation notes
The v1.0.0 public surface is intentionally sufficient for:
- schema discovery,
- artifact discovery,
- core source authoring,
- validation,
- publication derivation,
- machine-readable fixture discovery.
The following execution-oriented surfaces remain intentionally out of scope for v1.0.0 and are candidates for a future additive release:
- structured step inputs and outputs,
- cross-step state handoff semantics,
- capability and permission declarations,
- retry, timeout, and idempotence semantics,
- machine-readable execution-state persistence.
