Subject
What the change is made OF — the only dimension here that does not answer «how much». ── WHY A FIFTH AXIS, MEASURED RATHER THAN ARGUED ─────────────────────────────────────────────── Eight operations were compared: four demanded a cryptographic signature and four did not, and on every declared dimension they were IDENTICAL — same durability, same authority, same recoverability. Four axes and none of them discriminated, because all four answer how much and none answers of what. The property this framework actually gates on was declared nowhere. It is also not derivable. Three independent static readers were built to infer it from what a handler touches — shallow, transitive, and verb-qualified — and all three failed differently, and all three missed an operation whose package-manager command had been printed by running it. The property lives between what reading derives and what running measures, so it must be declared. ── AND `Unknown` IS THE CEILING, NOT A GAP ───────────────────────────────────────────────────── Like every dimension in this namespace, an operation that never said carries the worst reading, not the most convenient one (GOV-05). That inverts who carries the burden: whoever wants to run without consent has to WRITE that their operation does not touch the executable, and a written claim is one a reviewer can quote and refute. It does not prevent the lie; it gives it a name.
Subject::weight()
public function weight(): intHow much scrutiny this level demands — higher wins when profiles are joined.
Subject::cases()
public static function cases(): arraySubject::from()
public static function from(string|int $value): staticParameters
| Name | Type | Description |
|---|---|---|
| $value | string|int |
Subject::tryFrom()
public static function tryFrom(string|int $value): ?staticParameters
| Name | Type | Description |
|---|---|---|
| $value | string|int |