ADR 0001 — Companion turn contract
ADR 0001 — Companion turn contract
Section titled “ADR 0001 — Companion turn contract”Status
Section titled “Status”Accepted.
Context
Section titled “Context”Asterel exposes CLI, gateway, Discord, desktop/operator, and extension channel surfaces. If each surface assembles prompts, memory context, safety checks, and post-turn updates independently, product behavior drifts and tests no longer prove the default companion experience.
Decision
Section titled “Decision”All accepted text turns converge on the shared companion turn contract:
- surface admission and pickup policy;
- turn enrichment with affect, memory, persona, and governance context;
- provider/tool loop execution;
- response finalization and exposure checks;
- post-turn update for autosave, relationship continuity, and memory work.
Transport adapters may normalize input and deliver output, but they must not fork companion behavior.
Consequences
Section titled “Consequences”- Integration tests can target the shared contract instead of every adapter.
- Discord remains the release-gated default path until another adapter proves the same lifecycle coverage.
- New surfaces need adapter tests plus a contract test showing they enter the shared runtime path.