v1
2 Layer 2 · Reference Approach

The standard: a versioned, testable specification.

PMO as Code is specified, versioned, and testable, so that implementing it never requires reading the reference implementation's source code. The current version is v0.8.1, still marked draft while it hardens toward a 1.0 of its own.

What it specifies.

The document model
Frontmatter fields, required sections, and document lifecycle for every kind, from charter to benefits realization.
Identity and item grammars
Project identifiers, document identifiers, and the item grammar that makes requirements, risks, and tests countable and linkable.
Typed link relations
What traces may point at, what sequencing means, and which broken links block a merge.
Two-tier check semantics
The normative line between deterministic structural checks, which block, and semantic AI checks, which only advise.
Profiles
How named document-set expectations are declared, composed, and enforced.
Derived status
The inputs a conforming implementation must derive RAG from, including risk appetite and the rule that reports lower colors and never raise them.

Versioning.

The specification is versioned independently of any implementation. A breaking change to a grammar or to blocking semantics requires a major version bump, and changes land the way everything else in this ecosystem lands: a pull request against SPEC.md, gated and recorded.

Hardening the standard to 1.0 is itself a chartered project in the public portfolio, with its own derived status: PRJ-003-STD, live.

The conformance suite.

The spec ships with 73 executable conformance cases across five categories (document, grammar, graph, profiles, registry), each pairing an input with the verdict a conforming implementation must produce. The reference implementation pins a spec version and verifies itself against that version’s suite; docassert 1.x currently pins v0.8.1.

Why the suite matters
"Implements PMO as Code" is a checkable claim, made against numbered cases, rather than a marketing sentence. An alternative implementation earns the same claim the same way.

Implementing it.

Read SPEC.md, run your implementation against the conformance suite, and use the artifacts mirror for the canonical templates. The spec is Apache 2.0; a conforming implementation owes nobody anything.