OperationId
WHAT an operation IS, apart from how any surface writes it down. The same act arrives spelled three ways: `config:set` in a terminal, `config_set` in a tool catalogue, `config.set` over HTTP. Greenhouse evidence/0176 measured what that costs — a human consented to `config:set`, the gate compared strings against `config_set`, and the yes matched nothing. The first fix normalised the text, which greenhouse decisions/0030 then filed as debt: «La ortografía pertenece a la proyección; la identidad pertenece al átomo. Si una compuerta compara ortografías, está comparando UI, no autoridad.» — Rod, 2026-08-13 So identity lives here, in the atom that has no dependencies, and every surface PROJECTS it. A gate asks whether two things are the same act; it never learns to spell.
OperationId::__construct()
public function __construct(string $cualquierGrafia):Parameters
| Name | Type | Description |
|---|---|---|
| $cualquierGrafia | string |
OperationId::canonizar()
public static function canonizar(string $nombre): stringThe same act however it was written. Colon, underscore and dot are the three separators this family's surfaces use, and they are the reason this class exists rather than a `str_replace` at each call site.
Parameters
| Name | Type | Description |
|---|---|---|
| $nombre | string |
OperationId::is()
public function is(self|string $otro): boolIs this the same act as that one, whatever surface wrote it?
Parameters
| Name | Type | Description |
|---|---|---|
| $otro | self|string |
OperationId::forCli()
public function forCli(): stringHow a terminal writes it.
OperationId::forTool()
public function forTool(): stringHow a tool catalogue writes it.
OperationId::__toString()
public function __toString(): string