GR-MAN
20 rules. Part I of the specification.
- MAN-1A workflow's launch inputs are declared, never inferred
- MAN-2A manifest entry names an input and binds it to a port
- MAN-3However the manifest was written, one validator refuses a bad entry
- MAN-5The published contract carries structure and nothing else
- MAN-6The author's words win over the node's
- MAN-7Only a flat default is published
- MAN-8An entry that cannot be built is skipped, not fatal
- MAN-9A workflow used as a node cannot build its own contract forever
- MAN-10A declared input name wins over an internal node-keyed key
- MAN-11A declared input delivers to the port its entry binds
- MAN-12The node-keyed input shape is internal and unreachable from outside
- MAN-13An undeclared launch key is refused, and its value never delivered
- MAN-14Strictness polices the caller, never the stored manifest
- MAN-15Launch inputs are checked in one fixed order and answered once
- MAN-16The value check enforces type and enum, and declares the rest
- MAN-17Declared outputs are collected by the same mapping, in reverse
- MAN-18The contract is rebuilt when the manifest changes, and versioned when it is
- MAN-19A workflow declared asynchronous cannot be launched and waited on
- MAN-20The API maps a client interface onto the stored manifest
- MAN-21A contract entry states the port's lane as well as its schema