Skip to content

Spec v0.3 — Overview

Status: stable (chốt 2026-05-02). Authoritative source: atomprd/specs/atomprd-v0.3.md.

This document supersedes v0.1 (11 atom kinds) and v0.2 (26 atom kinds, flat). v0.3 adds the 2-layer atom model (Intent + Behavior) and per-field provenance.

Aspectv0.1v0.2v0.3
Atom kinds1126 (consolidated 11 + 17 block primitives)26
Relations92020
Per-atom layers1 (flat)1 (flat)2 layers (Intent + Behavior)
ProvenancenonenonePer-field A / B / C / D attribution
acceptance atomyes (BDD prose)droppeddropped (use criterion EARS instead)
constraint atomyes (generic)droppeddropped (use risk or invariant)
domain atomn/ayesrenamed host_domain (V2 view name conflict)
Block primitivesconceptual onlyfirst-class atomsfirst-class atoms

A v0.3-conforming tool MUST:

  1. Validate atoms against the discriminated AtomSchema exported by @atomprd/spec (Zod), not a hand-rolled parser.
  2. Preserve id immutability across import/export round-trip.
  3. Respect the intent + behavior + provenance jsonb fields when present (Layer 2 + per-field provenance) — pass them through unchanged if the tool doesn’t have a Layer 2 editor.
  4. Use the 26 atom kind IDs verbatim (no renaming, no shadowing).

A v0.3-conforming tool MAY:

  • Implement only a subset of atom kinds (e.g. PM-tier tool focusing on vision + persona + module + feature + criterion).
  • Treat unknown atom kinds as opaque jsonb (forward-compatibility for future v0.4+ additions).
  • Provide its own UI for Layer 2 (the spec defines shape, not authoring UX).
  • v0.3.x — additive changes (new optional fields, new atom kinds added to the back of the union).
  • v0.4 — first breaking change (e.g. tightening feature.behavior.steps to require trigger). Will ship a migration script.
  • v1.0 — public-stable freeze candidate. Until then, AtomPRD is “early access — schema may change”.

The OSS package version (@atomprd/spec) MAY be ahead of this document on point releases. The spec doc is authoritative on shape; the package is authoritative on the executable Zod schemas.

Format Spec marketing version vs OSS spec semver

Section titled “Format Spec marketing version vs OSS spec semver”

The public-facing markdown at format.atomprd.dev uses Format-Spec-version numbering (v1.0, v1.1, …) — distinct from the OSS spec semver here. They map:

  • Format Spec v1.0 ↔ OSS spec v0.1 (11 atom kinds)
  • Format Spec v1.1 ↔ OSS spec v0.2 (26 atom kinds, flat)
  • Format Spec v1.2 ↔ OSS spec v0.3 (26 + 2-layer + provenance) ← current

The two streams will be unified once the OSS spec stabilises at 1.0.

PackageStatusUse for
@atomprd/spec v0.3.0shippedZod schemas + 26 atom kinds + 20 relations + 2-layer + provenance types
@atomprd/coreshippedPrdDocument wrapper + diff + integrity validation
@atomprd/codegenshippedCodegenTemplate interface + runTemplate() driver
@atomprd/codegen-senlang v0.3.0shippedBridge: atoms → SenLang Document v0.3 + map + scenarios
@atomprd/codegen-nestjsscaffoldAtoms → NestJS entities/controllers/migrations
@atomprd/sdkshippedRe-exports for downstream consumers
@atomprd/cliscaffoldatomprd init / validate / gen / mcp
@atomprd/mcp-servershippedMCP transport (HTTP + stdio) for IDE / agent integration