8.2 KiB
3. CORE_SEMANTIC_MODEL_V1.md
3.1 Scope
This is a V1 semantic freeze, not an eternal ontology. It defines the minimum durable concepts required to build the walking skeleton and preserve future migration freedom.
3.2 Canonical Core V1 concepts
Identity
Stable semantic identity independent of current name, locator, account, process or key. Supports identifier history and future merge/split corrections.
Actor
Entity capable of requests/actions/representation. Actor is not automatically a Principal.
Principal
The person/organization/accounting/legal/operational interest on whose behalf an action is performed. Same human may act for multiple principals.
Scope
Boundary for data, authority, project/context and permissible propagation.
AuthorityGrant / AuthorityContext
Evidence that an Actor may perform a class of actions for a Principal within Scope and validity conditions. Capability never implies grant.
Situation
Time-bounded interpretation of “what is happening now”: actor, interface/session, focus, project/workspace/environment bindings, active task, relevant resources, confidence/provenance. Situation is derived and expires/revalidates.
Observation
Something obtained from a source/sensor/tool/user report. Carries provenance, observed time, coverage and source semantics.
Claim
A proposition asserted by a source or derived system. It is not automatically fact.
Belief/Assessment
Current system interpretation supported by evidence; versioned/revisable and scoped.
Intent
Current request/desired change inferred from interaction; can be revised/superseded. Intent is not automatically long-term preference.
Goal
Desired world/state transition or outcome with lifecycle and lineage. Goal may be refined/superseded; method is not identical to goal.
Task
Durable unit of work that must survive session/process, coordinate actors, or carry lifecycle significance. Ephemeral reasoning steps are not Tasks.
Decision
Selection/commitment among alternatives with rationale/evidence refs where consequence warrants. Decision can have validity/revisit conditions.
ActionProposal
Structured candidate to change canonical state, communicate, allocate resources or mutate external world. Proposal has no execution authority by itself.
AuthorizedAction
Proposal that passed owner validation, current authority, revision/target/integrity checks and received commit identity.
ActionAttempt
Concrete execution attempt of an AuthorizedAction. Multiple attempts may serve one ActionIntent; attempt is not outcome.
Outcome
Observed/verifiable result attributable with stated confidence. Supports UNKNOWN/partial/provisional maturity.
Commitment
A future obligation/expectation created by promise/agreement/explicit user request/policy. Must have owner/beneficiary, fulfilment or renegotiation path and prospective continuity.
ProspectiveItem
Canonical future-relevance object used by Continuity for reminder/wake/review/expected transition. V1 may implement only reminder/wake subset; it remains independent of Temporal.
Event
Meaningful semantic transition or occurrence. Event is not a log line and not every low-level tool callback becomes Event.
Artifact
Durable content/resource with identity, content/schema metadata, provenance and scope. Payload may live outside PostgreSQL.
Capability
Declared/tested ability to observe, reason, communicate or act, with contracts, limits, provenance, health and allowed-use metadata. Capability availability ≠ authority.
Revision
Optimistic semantic version/precondition for mutable canonical objects and contracts.
Provenance
Lineage linking observations, claims, derived states, actions and artifacts to sources/derivations without treating copies as independent evidence.
3.3 Concepts intentionally NOT Core primitives in V1
These remain extension/derived concepts until evidence requires promotion: Thread, Journey, Program, Trajectory, Portfolio, Responsibility, Risk, Opportunity, Monitor, ControlLoop, Routine, Theory, Frontier. Foundation must permit them later but Codex must not materialize separate Core tables/services merely because they were discussed.
3.4 Required semantic distinctions
Actor ≠ Principal
Identity ≠ Identifier ≠ Locator
Situation ≠ RequestContext ≠ ModelContext
Observation ≠ Claim ≠ Belief
Intent ≠ Goal ≠ Task
Task ≠ ActionProposal ≠ AuthorizedAction ≠ ActionAttempt ≠ Outcome
Commitment ≠ Reminder delivery
Capability ≠ Authority
Event ≠ Integration message ≠ Log
Canonical state ≠ Projection ≠ Cache
Prediction ≠ Expected-by-process ≠ Required-by-commitment.
3.5 Required state semantics
Goal lifecycle (minimum)
ACTIVE | WAITING | DORMANT | SATISFIED | SUPERSEDED | ABANDONED
Transitions must preserve reason and lineage. ABANDONED does not mean failure; SUPERSEDED must point to successor when known.
Task lifecycle (minimum)
PENDING | ACTIVE | WAITING | COMPLETED | CANCELLED | FAILED
Task has revision, justification_ref, optional wake_condition_ref, owner and completion evidence. WAITING must say what it waits for or be explicitly dormant at higher level.
Action lifecycle
PROPOSED → VALIDATED → AUTHORIZED/REJECTED → EXECUTING → SUCCEEDED | FAILED | UNKNOWN_OUTCOME | COMPENSATED.
Retry preserves ActionIntent identity and creates a new attempt identity. UNKNOWN_OUTCOME blocks blind retry when duplicate effect is possible.
Commitment lifecycle
ACTIVE | WAITING | AT_RISK | FULFILLED | RENEGOTIATED | REVOKED | EXPIRED.
Future promise is not fulfilled by notification delivery alone unless the promise itself was only to notify.
Prospective item lifecycle
REGISTERED | ARMED | TRIGGERED | REVALIDATING | DELIVERED/STARTED | SATISFIED | SUPPRESSED | EXPIRED.
Trigger firing does not bypass relevance/authority revalidation.
3.6 Temporal model
Foundation must support distinguishing, where applicable:
- event/occurrence time;
- observed time;
- recorded time;
- validity interval;
- local-time intention vs absolute instant;
- relative schedule relation (
after Event X + duration) vs prematurely flattened timestamp.
Do not put four timestamps on every row blindly. Use common temporal value objects/contracts only where semantics require them.
3.7 Strong identifiers
Go Core should use distinct types for at least: IdentityID, ActorID, PrincipalID, ScopeID, SituationID, GoalID, TaskID, CommitmentID, ActionIntentID, ActionAttemptID, ArtifactID, CapabilityID, plus revision types. They serialize to language-neutral primitives.
3.8 Ownership baseline
| Semantic area | Canonical owner V1 | Notes |
|---|---|---|
| Identity/Actor/Principal bindings | Identity module | Other modules reference IDs/projections only. |
| Scope/Authority grants | Authority module | Commit queries current validation; no hidden default authority. |
| Situation/focus bindings | Situation module | Derived/ephemeral portions may use cache, but durable bindings/provenance explicitly classified. |
| Goal/Task/Decision | Work module | Can later split; V1 owner chosen to preserve local consistency. |
| Commitment/Prospective items | Continuity module | Temporal is execution engine adapter, not owner. |
| Observations/Claims/Beliefs/Provenance | Epistemics module | Search/vector indexes derived. |
| Action commit state | Commit module | External executor isolated. |
| Artifact metadata/lineage | Artifact module or platform-owned artifact service | Payload storage replaceable. |
| Capability registry/bindings | Capability module | Provider-specific adapters outside semantic owner. |
3.9 Consistency baseline
- Authority validation and Action authorization: strong owner-local consistency + revision preconditions.
- Task state transitions: owner-local optimistic revision/CAS.
- Cross-owner projections: eventual/rebuildable unless an explicit use case requires stronger semantics.
- UI aggregate views: derived projections; no cross-owner canonical joins.
- Integration reactions: owner-local commit + transactional outbox; consumers idempotent.
- No global total event order requirement; causal/aggregate ordering only where needed.