Custom node

warningcustom-node

A custom node is a hole in the model: the catalogue has no word for it, so no rule can check anything about it. It is meant to be temporary, and naming it in the catalogue closes the hole.

Severity
warning
Selects
every node of kind custom
Components in scope
1
What it checks

It looks at every node of kind custom, and fires when:

  • — the node's `anyProperty` has no value
Message
Node '{{node.id}}' is custom: no rule can judge it. Replace it with a catalogue component or contribute one (docs/governance.md).

{{node.id}} style paths are filled in from the node, the edge or the design the finding is about.

Applies to · 1 components
Tripped by · 1

Reference designs whose broken twin names this rule in its header. The gate reads the same header, and fails when a rule no design trips.

Source
# yaml-language-server: $schema=../schema/rule.schema.json
# A custom node is a hole in the model: the catalogue does not name it, so nothing can be
# checked about it. Fires on every custom node, unconditionally. Tripped by
# designs/reference/custom-escape-hatch/design.broken.yaml.
schemaVersion: "1"
type: "rule"
id: "custom-node"
severity: "warning"
select:
  node:
    kind: "custom"
# `when` is required and the custom kind defines no properties, so nothing ever resolves on
# one of these nodes: this predicate is how the fixed predicate set spells "always".
when:
  prop: "anyProperty"
  exists: false
message: "Node '{{node.id}}' is custom: no rule can judge it. Replace it with a catalogue component or contribute one (docs/governance.md)."

The same page as markdown, for an agent: /catalogue/rules/custom-node.md