refactor(schema): rename commission_certified to commission_certifiable

The flag is a susceptibility marker, not an absolute state — Commission
certification only applies when trading in TRACTUS_PRIMARY zones.
Compact-internal trade ignores it entirely. Renamed across all TOML
source files, schema docs, workshop outputs, and D-184.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 23:32:18 +02:00
co-authored by Claude Opus 4.6
parent bcf15354d2
commit 4a3febbe29
8 changed files with 94 additions and 94 deletions
@@ -35,7 +35,7 @@ CREATE TABLE commodities (
demand_model TEXT NOT NULL CHECK(demand_model IN (
'market', 'utility', 'compliance'
)),
commission_certified INTEGER NOT NULL DEFAULT 0,
commission_certifiable INTEGER NOT NULL DEFAULT 0,
compact_contested INTEGER NOT NULL DEFAULT 0,
shadow_viable INTEGER NOT NULL DEFAULT 0,
panic_threshold_weeks INTEGER NOT NULL DEFAULT 0 CHECK(panic_threshold_weeks >= 0),
@@ -97,7 +97,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| `unit` | enum | yes | `tonnes`, `units`, `contracts` | quantity basis |
| `production_ubiquity` | enum | yes | `ubiquitous`, `common`, `regional`, `concentrated`, `monopolistic` | B-S init guidance |
| `demand_model` | enum | yes | `market`, `utility`, `compliance` | B-S demand floors |
| `commission_certified` | bool | yes | true/false | Gestalt political |
| `commission_certifiable` | bool | yes | true/false | Gestalt political |
| `compact_contested` | bool | yes | true/false | Gestalt political |
| `shadow_viable` | bool | yes | true/false | Gestalt political |
| `panic_threshold_weeks` | int | yes | ≥ 0 | B-S panic mechanism |
@@ -151,7 +151,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| V-10 | Services (`tier = service_*`) must NOT appear as chain inputs or outputs | D-173: services outside production chain |
| V-11 | `panic_threshold_weeks >= 0` | Schema constraint |
| V-12 | `demand_model = "utility"` requires `elasticity` ∈ {perfectly_inelastic, inelastic} | Utility demand can't be highly deferrable |
| V-13 | `demand_model = "compliance"` requires `commission_certified = true` | Compliance demand requires a certifying authority |
| V-13 | `demand_model = "compliance"` requires `commission_certifiable = true` | Compliance demand requires a certifying authority |
| V-14 | Services must have `bulk_class = "non_physical"` | Services can't be transported |
| V-15 | Services must have `unit = "contracts"` | Service unit convention |
| V-16 | Commodity IDs must match pattern `[a-z][a-z0-9_]*` | Slug format for Rust/SQL |
@@ -163,7 +163,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| W-01 | Every non-service physical commodity SHOULD appear as chain input or chain output | Orphan detection |
| W-02 | Raw tier commodities SHOULD NOT appear as chain outputs | Raws are extracted, not produced |
| W-03 | Final tier commodities SHOULD NOT appear as chain inputs | Finals are end-of-chain |
| W-04 | `shadow_viable = true` SHOULD have `commission_certified = true` OR `compact_contested = true` | Shadow markets arise from regulatory friction |
| W-04 | `shadow_viable = true` SHOULD have `commission_certifiable = true` OR `compact_contested = true` | Shadow markets arise from regulatory friction |
| W-05 | `production_ubiquity = "monopolistic"` commodities with `elasticity = "inelastic"` SHOULD be reviewed | Monopoly + inelastic = potential runaway pricing |
### Coverage warnings (future — gated by corp data)