--- id: MAN-8 family: GR-MAN level: extended profiles: [storage-api] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-man/man-8 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # MAN-8 — An entry that cannot be built is skipped, not fatal *GR-MAN (Part I) · level: extended · profiles: storage-api · added in 1.0* One broken entry must not cost the workflow its whole contract, so the build drops it and carries on. ## The rule > **Normative.** This is the rule. > > 1. An entry that cannot be resolved (the node it names is missing, the node declares no such port) is skipped with a logged warning, and the remaining entries are still built. > > 2. An entry that is structurally malformed, missing or empty in `name`, `node_id` or `port`, is likewise skipped and never contributes to the contract. ## What it means A manifest can go wrong in two different ways, and neither costs the workflow the rest of its contract. An entry can be structurally malformed — its `name`, `node_id` or `port` missing or empty — in which case it never named anything to resolve in the first place. Or it can be well-formed but point nowhere real: a node that is not in the graph, or a port its node's own type never declared. Either way the entry is dropped and the build carries on with whatever else the manifest names. ## Example ```json title="An entry naming a node absent from the graph" verdict="skipped" { "name": "gone", "node_id": "ghost", "port": "key" } ``` ```json title="An entry naming a port its node's own type never declared" verdict="skipped" { "name": "gone", "node_id": "n1", "port": "nope" } ``` ```json title="An entry with no name at all" verdict="skipped" { "node_id": "n1", "port": "key" } ``` None of the three contributes a property to the built contract; a valid sibling entry elsewhere in the same manifest still would. ## Related rules - Names: MAN-14, MAN-17 - Referenced by: MAN-14, MAN-17 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.