Skip to content

Glossary ​

The v2 model

These terms belong to the v2 model. Its commands and MCP tools ship from 0.9.0, and ndx init creates v2 projects; a v1 project is one that has not yet run ndx migrate (see v1 projects).

Each term is shown with an example from n-dx's own PRD.

TermMeansn-dx example
Product layerThe product's standing requirements: what the app must do, each with a computed build status. Shown on the Product page. Not the codebase map, which shows how the code is structuredThe list of n-dx's areas and capabilities
AreaA durable part of the product, named for the job it serves. Areas do not nestExecute work
CapabilityOne thing the product does: a one-sentence statement plus its capability criteria, the standing spec it is met against. May hold sub-capabilities one level deepExecute work › Session strategy: "A forked task session edits like a fresh one"
ConstraintA rule that applies across capabilities, checked by a testArchitecture integrity (gateways, spawn-only), checked by architecture-policy.test.js
ChangeA bounded piece of work that adds, modifies, removes or fixes capabilities. Ticket-shaped; its release is a field, not a folder"Forked sessions recover from a read-only refusal" (#473): touches Session strategy, planned for 1.0.1
Task, subtaskThe steps of a change; what ndx work runs. A change with no tasks is itself the unit of work"Tell the forked session that orientation is over"
ApplyThe step that writes a change's amendments into the product layer when it completes. Deterministic; no model is calledA change that modifies a Session strategy capability criterion completes; apply rewrites it, restamps the spec hash and adds a History line. (A touches-only fix such as #473 is never applied: its history and health are computed)
EvidenceWhat machines record as work happensCommits with N-DX-Item trailers, hench run records, test results
StatusWhere a capability stands against intent (see below). ComputedSession strategy reads changing while an amendment to it is unapplied
HealthWhether it is broken right now: ok or defective. ComputedSession strategy reads defective while #473 is open

Status and health ​

Nobody sets either by hand. Both are computed from files and state.

AxisValueRule
IntentProposedCreated by an open change; never built
IntentChangingAn amendment to it is unapplied: its change is open, or completed and awaiting review or release apply. Cancelled changes do not count
IntentMetThe spec hash equals the hash recorded when it was last built, and its checks pass
IntentRevisedThe spec was edited after it was built, and no open change is building the edit
IntentRetiredA removed delta was applied
HealthOKNothing below
HealthDefectiveAn open fix touches it, or one of its checks fails

Revised is the signal a task board cannot show: the requirement has moved ahead of the build. The spec hash covers only the statement and capability criteria (never a change's acceptance criteria), so editing a capability's prose body never changes its status. Constraints carry health too.

Relationships ​

  • Amends: a change names a capability or constraint and a delta: added, modified or removed.
  • Touches: a change names a node with no delta. Used for fixes and refactors.
  • Applies to: a constraint names all capabilities, or a list of areas and capabilities.
  • Realized by: which files and zones a capability lives in. Computed from the commits of changes that amended it, never written by hand.

A change's kind is read, not tagged ​

Relationship to the product layerKind
Amends, addedFeature
Amends, modifiedEnhancement
Amends, removedRetirement
Touches a defective capabilityFix
Touches, no status changeRefactor
Amends a constraintPolicy change
Neither, spike flag setSpike

Reclassifying is free: a "bug" that turns out to be a feature request gains an amendment, and its kind follows.

Back to the PRD · Skills Reference

Released under the Elastic License 2.0.