Full page · 04 · Unique

Intent that travels:
the semantic layer, built.

Raw code is a raster — tokens without meaning. Intent is the vector: the semantic layer built on top. You cannot convert one into the other; intent has to be constructed. DesignGraph builds it and keeps it close to the functions it describes.

Core

Every function carries a durable summary, from a one-line label to the full decision path, zoomable across levels. Groups hold claims; claims resolve against evidence. Old codebases read back their accumulated intent — validated, not remembered.

Live example

$ groups_for_function({ "function": "handle_controller_chain_disk", "file": "src/daemon.rs" })
{
  "excluded_count": 0,
  "excluded_paths": [],
  "freshness": {...},
  "function_id": "src/daemon.rs::handle_controller_chain_disk",
  "groups": [{"id": "all", "l0": "all: universal group (no authored project-level intent)"}],
  "intent_labels": "absent",
  "message": "no usable intent labels at /home/khoi/Documents/designgraph/.designgraph/intent/intent-labels.json — run `designgraph intent` for function L0 summaries; the group rows below are manifest-derived",
  "zoom": "l0"
}

Real MCP tool output — verbatim excerpt. Field names and values are byte-identical to the live response; only the freshness block is collapsed to {...}. The function resolves to the universal all group; the intent data layer is unpopulated in this build (labels require the labeling pass), and the tool says so explicitly instead of inventing a summary. Captured live against the DesignGraph codebase.

API surface

Tool
groups_for_function (composed intent) + groups_validate (claim checks)
Parameters
groups_for_function: function (required), file, zoom (l0–l3) · groups_validate: full, baseline
Returns
The function's own label plus every group it belongs to; per-zoom claims with the evidence appendix; an explicit no-intent arm when labels are absent

Use cases

Honesty: the intent data layer is not yet populated in this build — the labeling pass needs its runtime, which is not configured here. The machinery is source-verified and fixture-proven; the page labels what is shipped versus what is next.