Skip to main content

Feature Nodes

Feature nodes are non-normative grouping nodes that organize the graph into vertical product slices. They are the simplest node type — they have no statement, verification, or constraints.

Use Layer Nodes for shared horizontal infrastructure.

Schema

{
"id": "AUTH",
"type": "feature",
"title": "User Authentication",
"description": "Login, session management, and logout flows",
"links": {
"contains": ["AUTH-01", "AUTH-02", "AUTH-03", "DEC-AUTH-01", "DOM-USER-01", "POL-PERF-01"]
}
}

Fields

FieldRequiredDescription
idYesShort uppercase identifier (e.g., AUTH, TASKBOARD)
typeYesMust be "feature"
titleYesHuman-readable name (3–100 chars)
descriptionYesWhat this feature area covers
linksNoOutbound edges (typically contains)
metadataNoNon-normative context

Non-Normative

Feature nodes make no claims about the system. They don't have expectations, statements, or verification criteria. They exist purely to organize.

This means:

  • Removing a feature node doesn't change what gets implemented
  • Feature nodes don't participate in the minimality test
  • They are organizational sugar, not load-bearing specification

The contains Edge

Features use the contains edge to declare their children:

"links": {
"contains": ["AUTH-01", "AUTH-02", "DEC-AUTH-01", "DOM-USER-01"]
}

A feature can contain nodes of any type: behaviors, decisions, domains, policies, and extensions.

ID Conventions

Feature IDs are short uppercase identifiers:

FeatureID
User AuthenticationAUTH
Task BoardTASKBOARD
Billing & PaymentsBILLING
Design SystemDESIGNSYSTEM
NotificationsNOTIFICATIONS

Feature IDs should be recognizable and concise — they serve as the namespace prefix for child node IDs.

For shared infrastructure names like PLATFORM or DATA, prefer type: "layer" instead of type: "feature".