The stack is frozen around a simple rule:
Psychepreserves subjective continuityThrongletspreserves delegate continuity and shared-environment tracesOasyce Netturns durable external facts into policy and operationsOasyce Chaindecides which accounts, authorizations, commitments, and settlements count publicly
Only four top-level identity objects are allowed:
principal— continuing subjectaccount— asset and settlement containerdelegate— authorized executorsession— one concrete run, never an economic subject
Everything else must first be expressed as:
- policy
- view
- trace
- summary
- or a derived surface around those four primitives
If it cannot, suspect the concept before adding a new object.
subjective continuity substrate
Owns:
- private subjective state
- relation residue
- dyadic interpretation
- open loops
- reply bias
- writeback learning
Must remain:
- local
- cheap
- host-agnostic
- standalone
delegate continuity + session traces/coordination + emergent collective intelligence
Owns:
- delegate continuity
- session traces
- signals
- presence
- spaces
- local decay / promotion / inhibition
Must remain:
- useful without Psyche
- environment-native rather than anthropomorphic
- sparse and attributable
policy, operations, and resource orchestration
Owns:
- capability routing
- budgets
- registration
- pricing
- revocation policy
- operational summaries
It should only consume low-frequency, durable, externally meaningful summaries. It does not define authorization truth; it operationalizes it.
account truth, authorization truth, commitments, settlement, and public finality
Owns:
- account ownership
- delegate authorization truth
- commitments
- settlement
- dispute surfaces
- public anchoring and finality
It must not define consciousness or subjective identity.
Authorization truth moves one way:
Chain -> Net -> Thronglets -> Psyche
This means:
Chaindecides whether an account or delegate authorization countsNetturns that truth into policy, routing, and revocation behaviorThrongletscaches and executes within that already-decided truthPsycheonly consumes the resulting execution boundary and continuity effects
Negative rules:
Psychemust not infer or mint authorization truthThrongletsmust not create durable authorization outside chain truthNetmust not redefine identity primitivessessionmust never become an authorization subject
Belongs in Psyche only.
Examples:
- chemistry
- raw residue
- private self-model drift
- per-turn open-loop internals
- long-form private memory
Optional bridge from Psyche to Thronglets.
It must be:
- sparse
- typed
- thresholded
- low-frequency
- attributable
Current shape:
providermodeversionexports- derived
signals - derived
traces
Produced only after Thronglets decides a trace has become:
- low-frequency
- durable
- externally meaningful
- auditable
Only facts that require public finality belong on-chain:
- account truth
- authorization truth
- commitments
- settlement
- disputes
- low-frequency anchors
Psyche local turn
-> subjective carry / relation dynamics / writeback learning
-> optional external continuity exports
-> Thronglets local trace cache
-> conditional sparse signal degradation
-> optional Net-facing summary candidate
-> optional Chain-facing commitment or settlement
Signals remain fixed:
recommendavoidwatchinfo
Trace taxonomy remains fixed:
coordinationcontinuitycalibration
Psyche should default to trace production first. Signal production happens only when the external environment truly needs to change another delegate's next move.
Psyche does not own Thronglets runtime policy. It only emits low-frequency external continuity traces through the frozen payload:
provider = "thronglets"mode = "optional"version = 1taxonomy = coordination | continuity | calibrationevent = relation-milestone | writeback-calibration | continuity-anchor | open-loop-anchorsummaryspaceaudit_ref
Thronglets owns the runtime rules layered on top of that payload:
- retention windows
- stable / auditable evidence thresholds
- trace -> signal degradation
- summary-candidate promotion
Current frozen runtime rules:
coordination: local retention72h; stable evidence =>= 2 tracesor>= 2hcontinuity: local retention168h; stable evidence =>= 2 tracesor>= 2h; auditable only withaudit_refor>= 2 sessionscalibration: local retention168h; stable evidence =>= 2 tracesor>= 2h; aggregation only whenfailed_count >= 2
Current frozen degradation:
relation-milestone->watchwhen stable + auditable, elseinfowhen stableopen-loop-anchor->watchwhen>= 2 tracesor>= 1hcontinuity-anchor->infowhen stable + auditablewriteback-calibration->avoidwhen repeated failures (failed_count >= 2) and stablerecommendis never produced directly by Psyche
Current runtime introspection expected from Thronglets write APIs:
runtime.state = local-only | derived-signal | summary-candidateruntime.local_retention_hoursruntime.stable_evidenceruntime.auditable_evidenceruntime.derived_signal_ruleruntime.summary_candidate_rule
- must work without Thronglets
- must not leak high-frequency subjectivity
- must prefer behavior bias over narrative self-description
- must work without Psyche
- must not become a shadow memory vault for private inner state
- must keep raw continuity traces local unless runtime conditions justify promotion
- must execute inside authorization truth, not create it
- must stay additive
- must consume summaries, not private streams
- must never redefine identity primitives
- must translate chain truth into policy, not replace it
- must stay low-frequency
- must not absorb session state
- must not turn delegates or sessions into implicit principals
- must remain the only source of account and authorization truth
When a new idea appears, test it in this order:
- Can it be compressed into existing Psyche containers?
- Is it one of the four identity primitives?
- Is it only a trace, view, policy, or summary?
- Does it predict durable external behavior?
- Can it be implemented without widening the stack?
If the answer stays "no", question the concept before changing the architecture.
The blueprint only holds if all remain true:
Psychestill works as a standalone subjectivity substrateThrongletsstill works as a standalone delegate/session continuity layerOasyce Netremains additive rather than redefining lower layersOasyce Chainonly decides what counts publicly- a future AI
principalcan occupy the same model without structural rewrite