9 requirements implemented across presentation decks and project docs: 1. DX closing slide: added 'Infrastructure as a utility, not a craft' bullet to convey the full vision (infrastructure consumed, not maintained; platform compounds value over time). 2. PW Problem slide: 'moving a merged change' → 'promoting a change'. 3. PW Problem slide: added 'Red tape' and 'Scalability without increasing headcount' bullets (4 frictions, not 2). 4. PW Roadmap slide: redesigned with side-by-side HTML table layout (Testing | Planned), 16px font, no overflow. 5. PW deck: added new slide 'What This Platform Is — and Isn't' after North Star (sovereign boundary, infrastructure as utility, 4 anti-goals). PW deck now 16 slides (was 15). 6. Maturity nomenclature: 'Available today'/'shipped' → 'Testing' across both decks + source markdown. New .testing badge (blue/teal #DBEAFE). Roadmap title: 'Testing vs. Planned'. The platform has 0 consumer adoption — 'shipped' was inaccurate. 7. Global: 'substrate' → 'engine' across entire project (88 matches, 30+ files including .ciagent/, docs/, modules/, adapters/, schemas/, code). 8. Presentation files only: 'forge' → 'VCS' / 'version control system' (6 occurrences in 4 files). 'forge' retained in all technical docs and code as the industry-standard term. 9. New .agentic badge (purple/violet #EDE9FE) appended to agentic features in both decks: confidence signal, autonomous dev, pattern recognition, dynamic module creation, citizen developer surface, auto-promotion. Also: Change Request ID format changed from 'CR-2026-001' to 'CHG0678912' across presentation files, consumer guide, and test fixtures. HTML re-rendered. PPTX rendered for release upload. ---ci--- phase: 48 milestone: v1.9 status: complete requirements: covered: [] partial: [] ---/ci---
4.1 KiB
Modules
Reusable building blocks for cloud infrastructure. There are two kinds:
- Primitives — a single cloud resource or a small group of related
resources (e.g. a VPC with subnets and routing). Each primitive has an
interface.jsondeclaring its inputs and outputs. - Modules — a pattern that references multiple primitives to deploy a
complete stack (e.g. an ECS Fargate microservice). Each module has a
composition.jsondeclaring its children and wires.
The engine adapter compiles a module instance to infrastructure. Each module's README documents which resources it creates.
Primitives
| Module | What it creates | Source |
|---|---|---|
s3 |
aws_s3_bucket — a single S3 bucket |
modules/l1/s3/README.md |
vpc |
aws_vpc + aws_subnet + aws_route_table + aws_internet_gateway — VPC with subnets and routing |
modules/l1/vpc/README.md |
ecs-cluster |
aws_ecs_cluster — ECS Fargate cluster |
modules/l1/ecs-cluster/README.md |
ecs-service |
aws_ecs_task_definition + aws_ecs_service — Fargate service with task definition |
modules/l1/ecs-service/README.md |
iam-role |
aws_iam_role — IAM role with assume-role policy |
modules/l1/iam-role/README.md |
alb |
aws_lb + aws_lb_target_group + aws_lb_listener — Application Load Balancer |
modules/l1/alb/README.md |
ecr |
aws_ecr_repository — ECR container image repository |
modules/l1/ecr/README.md |
cloudfront |
aws_cloudfront_distribution + aws_cloudfront_origin_access_control — CloudFront distribution with S3 origin via OAC |
modules/l1/cloudfront/README.md |
waf |
aws_wafv2_web_acl — WAFv2 Web ACL (CloudFront-scoped) |
modules/l1/waf/README.md |
rds |
aws_db_instance — RDS database instance (multi-engine: postgres, mysql, etc.) |
modules/l1/rds/README.md |
Modules
| Module | What it references | Source |
|---|---|---|
static-assets |
3 primitives (s3, cloudfront, waf) — a production static asset stack | modules/l2/static-assets/README.md |
microservice |
6 primitives (vpc, cluster, ecr, iam-role, alb, ecs-service) — an ECS Fargate microservice | modules/l2/microservice/README.md |
Registry
Module versions are tracked in
registry.json.
Both primitives and modules are registered.
Examples
Each module has a examples/ directory containing validated consumer
contract examples (simple.yaml + complex.yaml + variation files). The
platform-test pipeline validates them against
schemas/contract.schema.json.
See each module's ## Examples section for the excerpts.
Versioning
Primitives and modules use semver: interface → MAJOR, behavior → MINOR, lifecycle → PATCH. A MAJOR bump requires a new registry entry (immutable publication); the old entry enters a 12-month deprecation window. See Versioning for the deploy-pipeline versioning.
Module patterns (roadmap)
The current composition.json mechanism is a thin pattern layer. A future
redesign will let a consumer dynamically create a module directly from the
contract file (an agentic "composition" flow). That is on the roadmap, not
implemented today.