Skip to content
GitLab

Writing Manifests

Every data product in Akili is defined by 6 YAML manifest files plus a logic/ directory. Together they declare what the product is, what it consumes, what it produces, where outputs are served, what quality means, and how it runs. The platform reads all 6 files at deploy time and translates them into assets, sensors, store writers, and quality checks. You never write orchestration code.

my-product/
product.yaml -- Identity, domain, ownership, classification
inputs.yaml -- What this product consumes
output.yaml -- Schema of what this product produces
serving.yaml -- Intent-based store routing
quality.yaml -- Quality check definitions
compute.yaml -- Runtime, engine, schedule, resources
logic/
transform.sql -- Business logic (or .py)
FilePurposeChanges How Often
product.yamlWho owns it, what domain, classification levelRarely
inputs.yamlUpstream dependencies and external sourcesWhen dependencies change
output.yamlOutput schema contract with consumersWhen schema evolves
serving.yamlWhere consumers access the dataWhen access patterns change
quality.yamlQuality gates that block bad dataAs quality requirements evolve
compute.yamlHow and when the product runsWhen tuning performance
Terminal window
akili init my-product --archetype source

This creates all 6 files with sensible defaults in my-product/. The --archetype flag pre-fills the structure for source-aligned, aggregate, or consumer-aligned products.

Before writing manifests, understand the three archetypes. They determine the shape of your inputs.yaml.

ArchetypeInput SourcePurposeExample
Source-alignedExternal systems via connectorsCapture raw data from operational systemsRaw POS data from Salesforce
AggregateOther data productsCombine and enrich data, where business logic livesJoins cleaned orders with cleaned outlets
Consumer-alignedAggregate products, shaped for a consumerOptimize for a specific use caseExecutive KPI dashboard feed