Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/DOMAIN_MATRIX.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,18 @@
| warehouse-logistics | pallets, docks, robots, shipments | observe / plan / actuate | draft |
| farm-watershed | fields, soil, irrigation, forecast | observe / plan / actuate | draft |
| hospital-clinic | rooms, devices, protocols, orders | observe / plan / actuate | draft |
| smart-economy | legal entities, lines of business, relationships, accounts, instruments | observe / audit / plan / actuate | draft |

## smart-economy domain

The `smart-economy` domain is GAIA's first non-geospatial domain. It does not
define its own economics — it **binds GAIA to the Economic Prophet framework**
(`SocioProphet/economic-prophet`), the canonical economic engine for the stack.

- Value: **Economic Profit (EP)** — UVMC's canonical additive value measure.
- Measurement: Economic Prophet **UVMC measurement context** (period/scenario/model/lineage).
- Law/policy: Economic Prophet **policy simulation** (law modeled as friction on flows).
- GAIA contributes the world-model envelope, provenance, governance, and geo binding.

See `docs/SMART_ECONOMY_DOMAIN.md` for the full design, the founding-notes mapping,
and source provenance.
127 changes: 127 additions & 0 deletions docs/SMART_ECONOMY_DOMAIN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# smart-economy domain

The `smart-economy` domain is GAIA's first non-geospatial domain. It does **not**
define its own economics — it **binds GAIA's world model to the Economic Prophet
framework** (`SocioProphet/economic-prophet`), which is the canonical economic
engine for the SocioProphet stack. GAIA supplies the world-model envelope,
provenance, and Earth/geo binding; Economic Prophet supplies value, profitability,
and policy simulation.

It plugs into the standard GAIA pipeline:

**CV (sources) → canonical ontology → validation → actions (observe/audit/plan/actuate) → reports**

## Why bind, not reinvent

An earlier draft of this domain introduced a parallel `value_model_record`
(`V = N + L + C`). That was withdrawn: Economic Prophet already formalizes the
same economics, and the SocioProphet stack standardizes on it. The founding
world-model design notes map onto Economic Prophet constructs as follows.

| Founding notes (`drive-download-20260510T173010Z-3-001`) | Economic Prophet construct |
|---|---|
| `V = N + L + C` value algebra; "value" | **Economic Profit (EP)** — UVMC's canonical additive value measure (`ep_output.schema.json`) |
| Compositional `V = N(L)+L(C)+N(L(C))`, factor partitions | EP components + **UVMC** dimensions / industry overlays / KPI trees |
| Law as a friction operator on flows | **policy_simulation_profile** (actors, planner, reward functionals, triparty faces) |
| "All stats/models public"; open logic engine; provenance | **UVMC lineage** (`input_hash`/`output_hash`) + `uvmc_calculation_receipt` + policy `donor_corpus` license/attribution |
| Census/tax/demographics, demand, barriers | UVMC measured entities + governed `uvmc_dimension` reference records |
| `g2.gif` evidence decision tree | A declarative `audit` action over a `policy_simulation_profile` |

## Canonical value identity

Economic Profit is the additive backbone (UVMC design rule 1):

```
economic_profit = revenue - expected_loss - expense
- funding_costs + funding_credits - taxes - capital_charge
```

The bundled sample uses Economic Prophet's own synthetic numbers
(`examples/lineage_ep_output.json`): `1000 - 100 - 50 - 200 + 10 - 40 - 496.55 = 123.45`.
The validator enforces this identity and rejects the negative fixture
(`economic_profit = 999.99`).

> The founding notes' conserved-residual sketch `r = n mod M` has no native
> Economic Prophet counterpart and was **not** carried into the schema; the EP
> additive identity is the real conservation law. The `r = n mod M` idea is
> preserved only in the founding-notes synthesis as an open question for the model
> author (see Open gaps).

## Record shape

A `EconomyObservation` (`schemas/economy/economy_observation.v1.schema.json`) is a
GAIA envelope wrapping Economic Prophet outputs:

- `economic_prophet.ep_output` — conforms to economic-prophet `ep_output.schema.json`.
- `economic_prophet.measurement_context` — conforms to economic-prophet
`uvmc_measurement_context.schema.json` (object/period/scenario/model/parameter/
formula + lineage).
- `economic_prophet.policy_simulation_profile_ref` — optional link to the law/policy layer.
- Standard GAIA `source` / `provenance` / `governance` / `classification`.

## Law-as-action (policy audit)

The `g2.gif` evidence-admissibility decision tree is realized as a GAIA `audit`
action over an Economic Prophet `policy_simulation_profile`:

- `fixtures/economy/action-intent.policy-audit.v1.json` — a GAIA `ActionIntent`
(`verb=audit`) whose `constraints.decision_steps` encode the admissibility tree
(relevance → hearsay → opinion → tendency → credibility → identification →
privilege → discretionary-exclusion).
- `fixtures/economy/policy-decision.policy-audit.v1.json` — the resulting GAIA
`PolicyDecision` (`review`), citing the profile, its audit receipt, the triparty
face, and the audit action as `evidence_refs`.

Law is thus a friction operator: the audit never self-releases when the triparty
face residual sits above threshold and the reward functional is advisory-only.

## Network-of-networks topology

The founding notes' coupled networks are schematized in
`schemas/economy/economy_network_topology.v1.schema.json`:

- `networks` — the eight founding-notes networks (resource, distribution, labor,
capital, political, information, time, geographic).
- `nodes` — each binds to an Economic Prophet `economic_object_type` + `object_ref`
(and, for geographic nodes, a GAIA `geo_ref`); the political network's
`friction_model` points at a `policy_simulation_profile`.
- `edges` — typed flows (value, labor, capital, authority, location).

The sample (`fixtures/economy/economy-network-topology.sample.v1.json`) is derived
from Economic Prophet's `examples/object_graph.json` (entity → line-of-business →
relationship → account → instrument) plus the political and geographic bindings.

## Artifacts in this domain

- `docs/DOMAIN_MATRIX.md` — `smart-economy` row + summary.
- `schemas/economy/economy_observation.v1.schema.json` — EP/UVMC binding schema.
- `schemas/economy/economy_network_topology.v1.schema.json` — network-of-networks schema.
- `fixtures/economy/economy-observation.sample.v1.json` — positive observation fixture.
- `fixtures/economy/economy-network-topology.sample.v1.json` — topology fixture.
- `fixtures/economy/action-intent.policy-audit.v1.json` + `…/policy-decision.policy-audit.v1.json` — law-as-action.
- `fixtures/economy/negative/economy-observation.broken-ep-identity.v1.json` — negative fixture.
- `scripts/validate_economy_fixtures.py` — validator (EP identity + UVMC context + topology
referential integrity + policy-audit; cross-validates against a sibling
`economic-prophet` checkout when present).

Run validation:

```bash
python3 scripts/validate_economy_fixtures.py
```

## Open gaps (carried from the founding-notes synthesis)

- **No growth/rate dynamics in GAIA's binding.** Economic Prophet is period/horizon
aware (EP per period, cadence), so time-evolution lives there; GAIA currently
records point-in-time observations and does not yet drive a multi-period roll-up.
- **Network-of-networks topology not yet schematized.** The founding notes' resource/
distribution/labor/capital/political/information networks map to Economic Prophet's
object graph + UVMC dimensions, but GAIA has no topology record yet.
- **policy_simulation binding is by-reference only.** The law-as-friction layer is
linked, not embedded; a GAIA action template over `policy_simulation_profile`
(the `g2.gif` pattern) is the next artifact.
- **CV ingestion of real calibration data** (census/tax/land-sales) is not wired; the
sample fixture reuses Economic Prophet's synthetic example.
- **Conserved-quantity `r = n mod M`** from the notes is unmapped by design pending
author intent.
39 changes: 39 additions & 0 deletions docs/contracts/IDENTIFIER_PROFILE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# GAIA Identifier Profile v1

This profile narrows the existing registry `id` concept into stable identifiers used by GAIA layer, event, policy, workflow, and generated-report artifacts.

## Purpose

The profile exists so that GAIA artifacts can be joined without relying on prose, filenames, spreadsheet rows, or manually copied URLs. Every generated report, workflow run, layer query, and policy decision should carry identifiers that are stable, namespaced, and machine-checkable.

## Identifier rules

- Identifiers MUST be stable once published.
- Identifiers MUST be namespaced by domain or artifact family.
- Identifiers SHOULD be lowercase.
- Identifiers SHOULD use UUIDv7, ULID, or a deterministic content hash where time ordering or reproducibility matters.
- Identifiers MUST NOT encode secrets, credentials, access tokens, or private personal data.
- Identifiers MAY include human-readable prefixes when this improves reviewability.

## Canonical fields

| Field | Meaning | Example namespace |
|---|---|---|
| `artifact_ref` | Stable pointer to a generated artifact or manifest bundle | `gaia:artifact:` |
| `dataset_id` | Stable dataset identity independent of a specific version | `gaia:dataset:` |
| `layer_id` | Stable spatiotemporal layer identity | `gaia:layer:` |
| `layer_version_id` | Versioned layer artifact or manifest | `gaia:layer-version:` |
| `event_id` | Immutable event-envelope identity | `gaia:event:` |
| `run_id` | Workflow/action/query run identity | `gaia:run:` |
| `policy_id` | Policy or policy profile identity | `gaia:policy:` |
| `policy_decision_ref` | Audit pointer to a policy decision | `gaia:policy-decision:` |
| `work_item_id` | Work item, issue, request, or task identity | `gaia:work-item:` |
| `engagement_id` | Operational engagement or bounded collaboration identity | `gaia:engagement:` |

## Relationship to existing registry contract

This profile does not replace the Registry Contract. It specializes the `id`, `version`, `content_hash`, `origin`, `lineage`, `policy`, and `attestations` fields for GAIA-generated artifacts and PAIRS-like spatiotemporal layer workflows.

## Validation posture

Each identifier-bearing example SHOULD validate against `schemas/jsonschema/core/identifier-profile.v1.schema.json` directly or through a higher-level schema that imports the same field constraints.
40 changes: 40 additions & 0 deletions docs/decisions/ADR-0002-pairs-like-layer-governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# ADR-0002: GAIA PAIRS-like Layer Governance

Status: Proposed

## Context

GAIA already defines the repository spine for responsible Earth digital twinning: Curation Vault provenance, canonical ontology entrypoints, validation, declarative actions, generated reports, registry contracts, Workflow IR, and assessment scorecards. The PAIRS-like platform pattern we want to adopt is therefore not a new repository estate. It is a GAIA profile for spatiotemporal layers, generated operational artifacts, policy-aware query contracts, and auditable event envelopes.

The operating failure mode we are avoiding is the hybrid memo becoming the operational database: a hand-authored document that mixes links, people, work items, client or domain context, dates, policy claims, and cost/usage fragments without machine-checkable provenance or classification. GAIA should make those artifacts generated views over structured records.

## Decision

Land the PAIRS-like layer/query/governance work inside `SocioProphet/gaia-world-model` as contracts, schemas, examples, report templates, and validation hooks. Do not create new repositories for `gaia-contracts`, `gaia-catalog`, `gaia-ledger`, `socioprophet-runsheet`, `socioprophet-query-plane`, or `socioprophet-policy-pdp` until the contracts prove that a runtime split is required.

## Consequences

- GAIA remains the semantic and provenance home for world-model layers.
- The Curation Vault remains the provenance/capture home for sources, manifests, hashes, and inventory.
- The Registry Contract remains the discovery/composition contract and is extended by identifier, event, classification, RunSheet, and layer-query profiles.
- Workflow IR remains the execution-shape home for ingest, normalize, register, evaluate policy, query, and report workflows.
- Reports become generated evidence artifacts with schemas and manifests rather than hand-maintained authority.

## Non-goals

- No production query service is introduced by this ADR.
- No new repository is created by this ADR.
- No claim is made that GAIA is a complete Earth simulator today.
- No network ingestion or external data fetch is required by the initial contract package.

## Initial implementation package

- `docs/contracts/IDENTIFIER_PROFILE.md`
- `docs/contracts/EVENT_ENVELOPE.md`
- `docs/contracts/SPATIOTEMPORAL_LAYER_QUERY.md`
- `docs/contracts/RUNSHEET_CONTRACT.md`
- `docs/policy/CLASSIFICATION_PROFILE.md`
- `schemas/jsonschema/**`
- `examples/**`
- `gaia/reports/templates/runsheet.v1.md`
- `scripts/validate_gaia_contract_examples.py`
24 changes: 24 additions & 0 deletions fixtures/economy/action-intent.policy-audit.v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"id": "act:economy-policy-audit-0001",
"actor": "agent:economy-policy-auditor",
"verb": "audit",
"target": "economic-prophet:policy_simulation_profile:policy-sim-source-intake-001",
"constraints": {
"mode": "bounded",
"requires_review": true,
"framework_ref": "SocioProphet/economic-prophet@main",
"decision_procedure": "evidence-admissibility-decision-tree",
"decision_steps": [
"relevance",
"hearsay",
"opinion",
"tendency-coincidence",
"credibility",
"identification",
"privilege",
"discretionary-exclusion"
],
"reward_functional_ref": "ep-plus-release-quality",
"release_authority": "advisory_only"
}
}
60 changes: 60 additions & 0 deletions fixtures/economy/economy-network-topology.sample.v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"record_version": "v1",
"record_type": "EconomyNetworkTopology",
"record_id": "gaia:economy:network-topology:synthetic-bank-holdco:v1",
"standards_refs": [
"SocioProphet/gaia-world-model/docs/SMART_ECONOMY_DOMAIN.md",
"SocioProphet/economic-prophet/schemas/canonical_object.schema.json",
"SocioProphet/economic-prophet/schemas/policy_simulation_profile.schema.json"
],
"networks": [
{"network_id": "net-capital", "network_kind": "capital", "description": "Committed/liquid capital flows across the object graph."},
{"network_id": "net-labor", "network_kind": "labor", "description": "Labor/life network supplying the value function L."},
{"network_id": "net-resource", "network_kind": "resource", "description": "Land/resource network (Nature), demand/supply with legal/illegal frictions."},
{"network_id": "net-distribution", "network_kind": "distribution", "description": "Distribution network with boundary-condition frictions."},
{"network_id": "net-political", "network_kind": "political", "description": "Law/policy network; law modeled as friction on flows.", "friction_model": "economic-prophet:policy_simulation_profile:policy-sim-source-intake-001"},
{"network_id": "net-information", "network_kind": "information", "description": "Information/communication network."},
{"network_id": "net-time", "network_kind": "time", "description": "Time network: process/investment/travel/life horizons."},
{"network_id": "net-geographic", "network_kind": "geographic", "description": "Geo-tag network binding economic nodes to GAIA Earth geometry."}
],
"nodes": [
{"node_id": "n-entity", "network_id": "net-capital", "economic_object_type": "legal_entity", "object_ref": "entity-bank-holdco"},
{"node_id": "n-lob", "network_id": "net-capital", "economic_object_type": "line_of_business", "object_ref": "commercial-banking"},
{"node_id": "n-rel", "network_id": "net-capital", "economic_object_type": "relationship", "object_ref": "rel-synthetic-001"},
{"node_id": "n-account", "network_id": "net-capital", "economic_object_type": "account", "object_ref": "account-credit-001"},
{"node_id": "n-instrument", "network_id": "net-capital", "economic_object_type": "instrument", "object_ref": "instrument-loan-001"},
{"node_id": "n-labor-pool", "network_id": "net-labor", "economic_object_type": "other", "object_ref": "labor-pool-synthetic-001"},
{"node_id": "n-policy-face", "network_id": "net-political", "economic_object_type": "triparty_face", "object_ref": "participant-planner-clearing-face"},
{"node_id": "n-geo-site", "network_id": "net-geographic", "economic_object_type": "other", "geo_ref": "gaia:geo:site:synthetic-001"}
],
"edges": [
{"edge_id": "e-entity-lob", "from_node": "n-entity", "to_node": "n-lob", "flow_type": "capital", "network_id": "net-capital"},
{"edge_id": "e-lob-rel", "from_node": "n-lob", "to_node": "n-rel", "flow_type": "capital", "network_id": "net-capital"},
{"edge_id": "e-rel-account", "from_node": "n-rel", "to_node": "n-account", "flow_type": "capital", "network_id": "net-capital"},
{"edge_id": "e-account-instrument", "from_node": "n-account", "to_node": "n-instrument", "flow_type": "value", "network_id": "net-capital"},
{"edge_id": "e-labor-instrument", "from_node": "n-labor-pool", "to_node": "n-instrument", "flow_type": "labor", "network_id": "net-labor"},
{"edge_id": "e-policy-instrument", "from_node": "n-policy-face", "to_node": "n-instrument", "flow_type": "authority", "network_id": "net-political"},
{"edge_id": "e-geo-entity", "from_node": "n-geo-site", "to_node": "n-entity", "flow_type": "location", "network_id": "net-geographic"}
],
"source": {
"source_id": "economic-prophet-object-graph",
"source_type": "EconomicProphetObjectGraph",
"license_ref": "internal-design-record",
"access_tier": "internal"
},
"provenance": {
"chain": ["fixture:generated"],
"derived_from": ["SocioProphet/economic-prophet:examples/object_graph.json", "drive-download-20260510T173010Z-3-001:IMG_2747,IMG_2754"],
"runtime_boundary_id": "runtime:economy-network-topology:v0"
},
"governance": {
"privacy_tier": "internal",
"safety_tier": "standard",
"retention_tier": "sample",
"redistribution": "restricted"
},
"classification": {
"security_marking": "internal_sample",
"sensitive_geo_policy_ref": "policy:sensitive-geo:not-applicable-non-geospatial"
}
}
Loading
Loading