Skip to content

Where Product Definition as Code comes from

By Juan G. Carmona, 2026-08-29

LLMs are industrialising specification drift.

One product decision is copied into a PRD, a delivery specification, a ticket, an ADR, an agent prompt, a test and a support guide. Agentic delivery produces and revises those copies in parallel. Implementation is faster, but so are paraphrasing, context loss and silent divergence.

Product Definition as Code (PDaC) applies established engineering disciplines to that problem. Most of its mechanics already exist in version control, requirements engineering, configuration management, product and domain modelling, traceability, architecture, verification and AI context engineering.

This article is an attribution map: where those mechanics come from, how PDaC uses them and which products already demonstrate the prior art.

Product thinking feeds an accepted product definition through human acceptance. Delivery cites that definition and returns evidence and proposed Product Changes for human decision.

PDaC keeps authority moving from accepted intent to delivery while evidence and proposed changes move back for human decision.

PDaC mechanismMain source
Versioned, readable product filesGit, Markdown, Docs as Code and Requirements as Code
Structured metadata and validationYAML front matter, JSON Schema and CI quality gates
Stable identities and typed linksRequirements engineering, configuration identification and model-based traceability
Product vocabularyUse-case modelling, journey mapping, the Business Rules Approach and Domain-Driven Design
Accepted baselines and explicit Product ChangesConfiguration management, change control and pull-request review
Content citations and stale-reference detectionRequirements traceability, suspect-link analysis and content fingerprinting
Derived graphs and impact reportsDirected graphs, generated projections and change-impact analysis
Bounded context for agentsContext engineering, repository harnesses and human-in-the-loop workflows

PDaC assembles these sources around an accepted product definition. Delivery still owns delivery specifications, architecture, implementation and verification. When delivery finds a false assumption or a missing decision, it proposes a Product Change. The PDaC manifesto calls this one-way authority, two-way learning.

Git, Markdown and Docs as Code provide history, diffs, review and CI. YAML front matter adds machine-readable metadata without turning the document into a proprietary format. JSON Schema makes that metadata checkable.

Each product artefact has a stable, immutable ID. Titles and file paths can change without breaking identity. A business rule such as BR-REFUND-001 remains addressable from other artefacts, delivery specifications and agent instructions.

The Markdown is authoritative. Graphs, indexes, diagrams and reports are generated projections. They can be deleted and rebuilt without losing product knowledge.

The reference profile takes its vocabulary from use-case modelling, customer journey mapping, the Business Rules Approach and Domain-Driven Design, including Ubiquitous Language and Bounded Contexts.

EventStorming, Context Mapping, Shape Up and Impact Mapping can inform proposed product knowledge. PDaC does not replace those discovery and shaping methods. It governs the accepted result.

The PDaC reference profile connects actors, journeys, use cases, rules, domain knowledge, requirements and structured behaviour inside the canonical product definition.

PDaC-2 shows the current reference profile and its place between Product Changes, derived views and delivery consumers. The artefact chapter is authoritative.

The profile is a default, not the kernel. Another product vocabulary can still preserve PDaC’s core contracts for identity, relationships, citations and validation.

The Product Change workflow comes from configuration management: baselines, identified change sets, impact analysis, approval gates and immutable accepted history.

A Product Change records why the product should change, the intended outcome, affected areas, open questions and the complete proposed future state. Overlay validation applies the established practice of checking a proposed configuration before modifying the baseline. Git and pull-request review provide the acceptance boundary. The generated diff records what effectively changed.

These are different authorities:

AuthorityWhat it records
Product ChangeThe meaning and rationale of the proposal
Pull requestReview and human acceptance
Product diffThe effective change to the definition

Requirements traceability provides the link from intent to downstream work. Pre-requirements traceability adds origin and rationale. Suspect-link analysis provides the rule that an upstream change puts dependent links under review. Change-impact analysis provides the affected set.

PDaC packages those techniques as a citation contract. A citation binds a consumer to an artefact ID and a SHA-256 digest of the accepted content it used.

If the refund rule changes from 30 days to 14, citations in delivery specifications, prompts or tests become stale. PDaC reports them for review. It does not propagate the new number into documents whose meaning it cannot judge.

The digest detects drift, not an attacker. It is not a signature and does not establish authenticity. Repository review, access control and signing remain responsible for that.

Relationships, graphs and deterministic checks

Section titled “Relationships, graphs and deterministic checks”

Typed relationships come from requirements models, domain models and graph-based traceability. They compile the Markdown into a directed product graph. The relationship type also defines impact direction. A rule governing a use case and a requirement derived from that use case do not carry the same change semantics.

The graph supports impact reports, navigation, diffs and bounded context for agents. None of those views becomes a second source of truth.

Deterministic validation follows the same contract-testing approach used by schemas, compilers and standards conformance suites. It checks identities, relationship targets, change overlays and citations. Stable PRODUCT### diagnostics and conformance cases allow independent implementations to return reproducible results.

A valid model can still describe the wrong product. Structural validation proves structure, not customer value, regulatory interpretation, implementation or outcomes.

The separation between intent, design, implementation and evidence comes from requirements engineering, the V-model, shift-left verification and architecture practice. PDaC uses that separation rather than treating every specification as the same kind of authority.

  • Architecture Decision Records, C4, Structurizr and arc42 own technical decisions and architecture views. They can cite product drivers.
  • OpenSpec, GitHub Spec Kit, Kiro and other Spec-Driven Development workflows own an implementation increment. They consume accepted product intent.
  • Gherkin and Cucumber express executable examples. Tests and delivery evidence show correspondence with a target; they do not approve the target.
  • Backlogs, plans and prompts are projections or consumers. They are not the product definition.

These disciplines remain independently authoritative for their own work. PDaC provides the product references they consume.

The agent-facing parts come from context engineering, repository harnesses, instruction files such as AGENTS.md, human-in-the-loop review and agent-assisted brownfield recovery.

The authority rule remains the same. Agent memory and generated briefings are derived. Brownfield recovery from code, tests, documents and interviews produces evidence-backed proposals with provenance, confidence and visible contradictions. An agent can draft or challenge a decision. It cannot accept one.

The operating split is deliberate: deterministic tools validate, AI interprets and humans decide.

Prior art, neighbours and integration targets

Section titled “Prior art, neighbours and integration targets”

The landscape is broad. These products and projects are prior art, competitors, complements or integration targets. They are not necessarily ProductShape dependencies.

AreaExamplesPrior art used in PDaC
Git-native requirements and linked documentsDoorstop, StrictDoc, Sphinx-NeedsPlain-text requirements, stable references, validation and generated views
Baselines, reviews and lifecycle governanceIBM DOORS Next, Jama Connect, Polarion ALMBaselines, controlled changes, reviews, suspect links and audit history
Cross-tool requirements and traceabilityOpenFastTrace, Eclipse Capra, TRLCTyped links across heterogeneous artefacts and deterministic trace validation
Evidence and compliance tracesLOBSTER, Duvet, ReqToCodeRequirement-to-code and requirement-to-test evidence kept separate from intent
Agentic SDD and delivery orchestrationOpenSpec, GitHub Spec Kit, Kiro, Tessl, BMADExplicit delivery specifications, structured agent context and change workflows
Product context and brownfield recoveryPAELLADOC, PRD-Led Context Engineering, ReversaPersistent product context and evidence-backed recovery from existing systems

None of these projects is reduced to one feature in practice. The table identifies the part most relevant to PDaC and makes the lineage explicit.

The technical contracts also build on public standards:

PDaC uses requirements-engineering vocabulary but makes no ISO/IEC/IEEE 29148 conformance claim. ReqIF and OSLC are future paths for exchange and cross-tool links. SysML v2 and DMN are adjacent formal models, not canonical PDaC formats.

In v0.2.0, citations resolve within one repository. Cross-repository citation resolution is still out of scope.

The v0.2.0 specification groups the sources into three layers. The kernel combines stable identity, typed relationships, traceability, content fingerprints and deterministic validation. The reference profile combines product, domain and requirements modelling. The reference workflow combines configuration management, semantic change records, Git review and human acceptance.

The PDaC reference workflow starts from an accepted baseline, records semantic intent in a Product Change, validates an overlay, requires human approval, applies the candidate on a working branch, sends it through pull-request review and accepts the new baseline only when a human merges it.

Apply materialises an approved candidate on a working branch. Only the human-reviewed merge creates a new accepted baseline.

Its main design choice is the authority boundary. Accepted product intent is upstream. Delivery cites it. Evidence returns as a proposal rather than rewriting it. That is a composition of prior art, not a claim to have invented the underlying practices.

PDaC does not discover the right product, prove implementation correctness or guarantee outcomes. It adds maintenance work, so it should earn that cost.

To assess the combination, take one real rule used by several documents or agents, give it a stable identity, cite it from delivery and change it through a Product Change. Check whether the resulting impact list finds work the team would otherwise miss.

The specification is a public request for comments. Corrections to this lineage, missing prior art and concrete counterexamples are welcome.