Ledger and SDK Roles
IGRE separates responsibilities across four actors.
Real Systems
Section titled “Real Systems”Real systems are the sources of truth the CLI observes or mutates.
They can be remote or local:
- remote SaaS APIs
- production databases
- local SQLite caches
- local config files
- generated files
Local does not mean safe. If local state can be overwritten or deleted, mutation belongs in laction.
Domain SDK
Section titled “Domain SDK”The domain-specific SDK owns domain truth claims.
It declares:
- available tools
- local or remote action targets
- observation address vocabulary
- verification support
- risk anchors
- rollback classifications
- intent builders
- action executors
- verification executors
The SDK should do more than wrap HTTP. It is the place where domain-specific claims become structured and lintable.
IGRE Ledger
Section titled “IGRE Ledger”The ledger is the durable protocol record.
It stores:
- fetch artifacts
- intent artifacts
- action runs
- action steps
- action units
- validation and verification results
The ledger must preserve lineage:
action run -> intent -> fetches used to build intentIt may store raw observations, normalized observations, external ids, hashes, or references. IGRE requires durable lineage, not raw payload retention in every case.
Ultimate CLI
Section titled “Ultimate CLI”The CLI owns user experience and policy.
It decides:
- command names
- argument parsing
- local data paths
- when local cache updates are included
- how status is rendered
- whether it runs embedded or delegates to a service
The CLI should keep action names explicit:
tool action commit-time-entries --intend intend_...tool laction update-local-cache --intend intend_...The action name is a human signal and a validation guardrail.