ADR-013: Cross-phase informs edges are valid when declared on the downstream 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-013-cross-phase-informs-edges.md):
ddx:
id: ADR-013
authoring:
home: repo
depends_on:
- helix.prdADR-013: Cross-phase informs edges are valid when declared on the downstream artifact
| Date | Status | Deciders | Related | Confidence |
|---|---|---|---|---|
| 2026-05-30 | Accepted | HELIX maintainers | artifact dependencies, schema validator | High |
Context
| Aspect | Description |
|---|---|
| Problem | The audit flagged the Deploy artifact monitoring-setup declaring informs: metrics-dashboard, an Iterate artifact in a later phase. It is unclear whether HELIX permits an artifact to declare an informs edge that crosses a phase boundary into a downstream phase, and whether the back-edge must also be declared on the consumer. |
| Current State | workflows/activities/05-deploy/artifacts/monitoring-setup/meta.yml declares informs: metrics-dashboard. workflows/activities/06-iterate/artifacts/metrics-dashboard/meta.yml declares both informed_by and informs lists but does not currently encode every back-edge for every upstream informs. The schema validator does not enforce edge symmetry across artifacts. |
| Requirements | The methodology must not forbid real evidence-flow edges that cross phases (production telemetry feeding dashboards is a real flow). At the same time, cross-phase edges must be explicit on both ends so that walking from either side reveals the relationship. |
Decision
An artifact may declare informs an artifact in a later phase. The cross-phase
edge is valid when:
- The source artifact’s purpose produces evidence the target consumes (the edge encodes a real evidence flow, not a speculative association), and
- The edge is declared on both sides —
informson the source artifact andinformed_byon the target artifact — or in a single canonical place chosen by the consumer when only one direction can be authoritative.
The monitoring-setup → metrics-dashboard edge is the canonical example:
production telemetry configured in Deploy feeds the dashboards consumed in
Iterate. The methodology accepts this as a valid cross-phase informs edge.
Key Points: cross-phase informs allowed | edge must be real evidence flow | declared on both ends (or canonical single place) | symmetry check is a follow-up validator concern, not required by this ADR
Alternatives
| Option | Pros | Cons | Evaluation |
|---|---|---|---|
Forbid cross-phase informs edges entirely; restrict informs to same-phase artifacts | Simpler validator; clear phase boundary | Erases real evidence flows (Deploy telemetry → Iterate dashboards); forces artifacts to invent intermediate hops or drop the edge | Rejected: phase boundary is not a methodology firewall against evidence flow |
| Allow cross-phase informs but only when declared on the upstream side | Single source of truth | Walking from the consumer no longer reveals the upstream; reviewers must scan all earlier phases to find inbound edges | Rejected: breaks bidirectional discoverability |
| Allow cross-phase informs; require declaration on both ends (or a canonical single place); leave symmetry enforcement as a follow-up validator concern | Preserves real evidence flows; keeps edges discoverable from both ends; does not block this ADR on validator work | Phase 3 walk must check both sides; some artifacts will need back-edges added | Selected: accepts the real flow without overcommitting the validator |
Consequences
| Type | Impact |
|---|---|
| Positive | Real cross-phase evidence flows (e.g., Deploy telemetry → Iterate dashboards) are recognized as first-class edges. |
| Positive | Both-end declaration keeps the dependency graph walkable from either direction. |
| Positive | Phase 3 has a clear rule: walk all artifacts for informs edges and ensure the back-edge is declared. |
| Negative | Phase 3 must check edge symmetry across the full artifact set and add missing back-edges where the upstream declares informs but the downstream does not declare informed_by. |
| Neutral | The schema validator is unchanged in this ADR. Symmetry enforcement is a follow-up Phase 1B validator concern. |
Risks
| Risk | Prob | Impact | Mitigation |
|---|---|---|---|
| Authors declare speculative cross-phase edges that are not real evidence flows | M | M | Phase 3 walk and reviewers reject edges that do not match the source artifact’s stated purpose |
| Back-edges drift out of sync as artifacts evolve | M | M | Follow-up Phase 1B validator extension checks edge symmetry; until then, the Phase 3 walk establishes the baseline |
| Confusion about whether to declare on one end or both | L | L | This ADR states the rule: both ends, or a single canonical place chosen by the consumer when only one direction can be authoritative |
Validation
| Success Metric | Review Trigger |
|---|---|
Every informs edge declared on an upstream artifact has a matching informed_by entry on the downstream artifact (or a documented canonical-single-place choice) | A Phase 3 walk finds an upstream informs with no corresponding downstream informed_by |
monitoring-setup → metrics-dashboard is preserved as a valid cross-phase informs edge | A review flags the edge as invalid because it crosses a phase boundary |
| Schema validator extension for edge symmetry is filed as a follow-up Phase 1B concern | Edge symmetry drift recurs and is not surfaced mechanically |
References
- PRD
- Plan: 2026-05-30 Artifact Types and Concerns Audit
- ADR-004: Dependencies Encoding
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-013-cross-phase-informs-edges.md- Signed
- 2026-09-23T14:11:58Z
- Content digest
sha256:4610701f…6f75dc67
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-013-cross-phase-informs-edges/",
"digest": {
"alg": "sha256",
"value": "4610701f8d8f26f8d70230548c30c55193bc7fe16ec5138daead6f596f75dc67"
}
}
],
"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": "s_ws8mHomNSa1BA1hjcBYpPKA4VAtpSSQxUUWxT9kLreEkG8jjegN3EJjjW3h3nk0OC8YCF14kOSCx31xkG-CQ",
"signed_at": "2026-09-23T14:11:58Z"
}
]
}