File Structure

Repository layout and naming conventions

A conforming ChooChoo repository MUST have the following structure. For a gentler introduction, see the Getting Started: Project Structure guide.

Directory Layout

.choochoorc
*.yaml
*.contract.yaml

Directory Descriptions

DirectoryContentsRelated Documentation
.choochoorcProject configuration file (JSON)Configuration
.choochoo/Metadata including approval policiesApproval Workflows
products/Data Product definitions following ODPSProducts (ODPS)
contracts/Data Contract definitions following ODCSContracts (ODCS)
workflows/Workflow definitions following ArazzoWorkflows (Arazzo)
apis/OpenAPI and AsyncAPI specificationsStandards Reference
agents/Agent registration and boundariesAgents
system-cards/System Card identity documentsSystem Cards

File Naming Conventions

File names MUST:

  • Use lowercase letters, numbers, and hyphens only.
  • Not contain spaces or special characters.
  • Be unique within their directory.
Artifact TypePatternExample
Product<name>.yamlcustomer-360.yaml
Contract<name>.contract.yamlcustomer-360.contract.yaml
Workflow<name>.workflow.yamlonboarding.workflow.yaml
OpenAPI<name>.openapi.yamlpayments.openapi.yaml
AsyncAPI<name>.asyncapi.yamlevents.asyncapi.yaml
System Card<name>.yamlcode-assistant.yaml

Violations of these naming conventions are detected during the first step of the validation pipeline and produce error E003 (Invalid file extension).

Configuration File

The .choochoorc file in the project root is a JSON file that controls all Engine behavior. See the Configuration guide for the full schema and options, including:

Initialization

Running choochoo init creates this directory structure automatically. Use the --with-agents flag to include the agents/ and system-cards/ directories. See the Quickstart for a step-by-step walkthrough.

On this page