Skip to content

ADR-008: data-PRD Is a Kind-Switch Variant of PRD, Not a Sibling Artifact

Example from HELIX’s own docs. This generated page comes from docs/helix/. Use it to see the method in practice; start with the artifact-type catalog for reusable templates. Historical plans and reports may describe retired architecture.

Source identity (from 02-design/adr/ADR-008-data-prd-is-prd-kind-variant.md):

ddx:
  id: ADR-008
  authoring:
    home: repo
  depends_on:
    - helix.prd

ADR-008: data-PRD Is a Kind-Switch Variant of PRD, Not a Sibling Artifact

DateStatusDecidersRelatedConfidence
2026-05-30AcceptedHELIX maintainersartifact-types catalog, prd, data-prdHigh

Context

AspectDescription
ProblemThe data-prd artifact type is a near-duplicate of prd with data-product framing. Its required_sections drift from the prd template, the boundary between the two artifact types is not load-bearing, and the catalog carries an orthogonality defect: two artifact-type directories that differ only in framing, not in role.
Current Stateworkflows/activities/01-frame/artifacts/prd/ and workflows/activities/01-frame/artifacts/data-prd/ ship as sibling artifact-type directories. Both serve the framing role of “product requirements document”; data-prd only adjusts vocabulary toward data products. The two trees have diverged in required sections without a substantive reason.
RequirementsThe catalog must represent one PRD role with explicit variant framing rather than two parallel artifact types. The variant must remain discoverable for data-product framing without forcing every PRD to carry data-product vocabulary. Downstream consumers that reference data-prd must continue to resolve.

Decision

data-prd collapses into prd as a kind: data variant. The PRD artifact gains a kind field (default product); when set to data, the prompt and template guidance shift to data-product framing under conditional headings. The current data-prd artifact-type directory is deprecated and will be removed in Phase 3.

The PRD artifact owns one role — framing product (or data-product) requirements — and exposes the variant through a kind switch on its meta. The shape of the artifact is unified; the framing is parameterized.

Key Points: one PRD artifact with a kind switch | kind: product default, kind: data for data products | data-prd directory removed in Phase 3 with alias for downstream consumers

Alternatives

OptionProsConsEvaluation
Keep data-prd as a sibling artifact typeNo migration work; existing references unchangedPerpetuates orthogonality defect; required-section drift continues; catalog advertises a boundary that is not load-bearingRejected: the boundary does not carry weight
Merge data-prd into prd with no variant markerSimplest collapseLoses data-product framing entirely; existing data-PRD consumers lose guidanceRejected: framing variant has real value
Collapse data-prd into prd as a kind: data variantUnifies the role; preserves the framing as a parameterized variant; eliminates the duplicate directory; lets the template carry conditional guidancePhase 3 must edit prd meta/prompt/template and remove the data-prd directory; downstream references to data-prd must be redirected or aliasedSelected: smallest change that resolves the defect while preserving the framing variant

Consequences

TypeImpact
PositiveThe artifact-type catalog represents one PRD role instead of two near-duplicates.
PositiveRequired-section drift between prd and data-prd ends; one template governs both framings.
PositiveData-product framing remains discoverable through an explicit kind: data switch rather than a parallel directory.
PositiveNew PRD-shaped variants (if any) can be added as additional kind values without forking the directory.
NegativePhase 3 must extend prd meta/prompt/template, delete the data-prd directory, and update or alias every reference under docs/helix/ and workflows/.
NeutralExisting PRDs default to kind: product and require no content change.

Risks

RiskProbImpactMitigation
Downstream consumers still resolve data-prd by pathMMAdd an alias in any downstream consumer that resolves artifact-type paths; update references in the same Phase 3 pass
Conditional kind-specific guidance in the template becomes hard to readMMKeep kind-specific guidance under clearly labeled conditional headings; avoid interleaving product and data framing line-by-line
New PRD variants accumulate via the kind switch without governanceLMDocument the kind enum in prd meta with the supported values; new values require an ADR

Validation

Success MetricReview Trigger
workflows/activities/01-frame/artifacts/data-prd/ is removed after Phase 3A data-prd artifact-type directory remains after Phase 3
prd meta declares a kind enum with product (default) and data valuesThe prd artifact ships without a kind field after Phase 3
prd prompt and template carry kind-specific guidance under conditional headingsData-product framing is lost from the unified PRD artifact
All references to data-prd under docs/helix/ and workflows/ resolve to prd with the kind switchA reference to data-prd resolves to a missing directory after Phase 3

References

Innsigle seal: model-primary by HELIX

The signature covers the markdown source of this page, not these HTML bytes. This page quotes that seal; verify it against the source file.

Composition
model-primary
Issuer
HELIX helix
Signing key
ed25519:b0865d76d834a52c48506414d16f4e5a (build key)
Signed source
artifacts/adr/ADR-008-data-prd-is-prd-kind-variant.md
Signed
2026-09-23T14:11:58Z
Content digest
sha256:469be206…129decc4

This build key is endorsed by the human key for build signing; the signature is not a detector and not a truth guarantee.

Raw attestation JSON
{
  "payload": {
    "innsigle": "1",
    "type": "https://innsigle.dev/claim/colophon/v1",
    "issued_at": "2026-09-23T14:11:58Z",
    "issuer": {
      "id": "helix",
      "name": "HELIX",
      "key_id": "ed25519:b0865d76d834a52c48506414d16f4e5a",
      "key_url": "https://documentdrivendx.github.io/helix/.well-known/innsigle/keys.json"
    },
    "subjects": [
      {
        "uri": "https://documentdrivendx.github.io/helix/artifacts/adr/ADR-008-data-prd-is-prd-kind-variant/",
        "digest": {
          "alg": "sha256",
          "value": "469be206ea4a907bfa27d5a8feed0e10432f549b14aa7144fc98e231129decc4"
        }
      }
    ],
    "colophon": {
      "schema_version": "1",
      "composition": "model-primary",
      "ingredients": [
        {
          "kind": "model",
          "name": "Claude",
          "role": "draft"
        },
        {
          "kind": "tool",
          "name": "sloptimizer",
          "role": "rewrite"
        },
        {
          "kind": "human",
          "name": "operator",
          "role": "structure-edit"
        }
      ],
      "notes": null
    }
  },
  "payload_encoding": "json",
  "signatures": [
    {
      "key_id": "ed25519:b0865d76d834a52c48506414d16f4e5a",
      "alg": "ed25519",
      "sig": "Ik_5zHTe13iCiE_Da_x6kS--pTizR-Dx0G4UqSRK2VfqP_hfOjvLWRgoaT5N_h1MouqkIKMAYk4AwHzvSkt-Cw",
      "signed_at": "2026-09-23T14:11:58Z"
    }
  ]
}