Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/XxYouDeaDPunKxX/Memory-Assisted-Shaping/llms.txt

Use this file to discover all available pages before exploring further.

Memory-Assisted Shaping defines exactly eight signal types. Each type maps to a specific protocol semantic. No other types are valid in v0. If a signal does not fit one of these types, GPT does not append and continues shaping.

Signal types

mode

Records a state transition between operating states (e.g., entering SYNTHESIS after OP approval). Emitted when GPT transitions between operating states. This is a strong trigger — a mode signal must be appended before non-trivial synthesis when Python persistence is available.
type
string
Always mode.
text
string
The state transition being recorded (e.g., "Entering SYNTHESIS after OP approval of artifact direction.").
effect
string
Optional. Downstream shaping or synthesis effect of the transition (e.g., "Synthesis must not reopen gate on persistence model.").
Example
python3 -S ./notes.py append --type mode --text "Entering SYNTHESIS after OP approval." --effect "Do not reopen shape gate."

shape

Records a change in what the input is becoming — a shift in candidate form. Emitted when the shape of the idea materially changes during shaping. A shape signal preserves the movement so later reinterpretation can recover the path.
type
string
Always shape.
text
string
Description of the shape change (e.g., "Input shifted from workflow to protocol.").
effect
string
Optional. Impact on later shaping or artifact direction.
Example
python3 -S ./notes.py append --type shape --text "Input shifted from workflow to protocol." --effect "Artifact family is now a behavioral contract, not a runbook."

gate

Records a real gate being opened, deferred, or closed. One of the strongest signal triggers. A gate signal should include an effect when the gate affects later synthesis. A deferred gate must never be treated as closed — the signal preserves that distinction.
type
string
Always gate.
text
string
The gate and its current status (e.g., "Persistence model gate opened — file vs. database unresolved.").
effect
string
Optional but strongly recommended. How an unresolved or deferred gate affects synthesis (e.g., "Artifact must not hardcode storage layer until gate is closed.").
Example
python3 -S ./notes.py append --type gate --text "Persistence model gate deferred — file vs. database unresolved." --effect "Artifact must not hardcode storage layer."

decision

Records an OP-confirmed decision. This is a strong trigger. The decision must be OP-confirmed — not model-inferred. A decision signal prevents confirmed choices from being reopened or reversed during later shaping.
type
string
Always decision.
text
string
The confirmed decision (e.g., "OP confirmed: append-only log as persistence model.").
effect
string
Optional. Downstream constraint imposed by the decision.
Example
python3 -S ./notes.py append --type decision --text "OP confirmed: append-only log as persistence model." --effect "No in-place record updates permitted in artifact."

discard

Records a path that was considered and rejected. Emitted for discarded paths that are likely to return, in order to prevent them from re-emerging in later shaping. Does not need to be emitted for every rejected option — only paths with re-emergence risk.
type
string
Always discard.
text
string
The discarded path and the reason for rejection (e.g., "Discarded bidirectional sync — too much coordination overhead.").
effect
string
Optional. Why this path should not be re-raised (e.g., "Do not reopen — conflicts with append-only constraint.").
Example
python3 -S ./notes.py append --type discard --text "Discarded bidirectional sync — too much coordination overhead." --effect "Do not reopen — conflicts with append-only constraint."

tension

Records material tension between lenses that affects the form. Emitted only when the tension is material and likely to recur — not for noise. A tension signal that does not change form, constraint, source of truth, runtime, lifecycle, evidence requirement, gate status, or final output is not signal-worthy.
type
string
Always tension.
text
string
Description of the tension and which lenses are in conflict (e.g., "IMPLEMENTATION and ARTIFACT lenses conflict on output verbosity — operability vs. readability.").
effect
string
Optional. How the unresolved tension may affect synthesis or artifact form.
Example
python3 -S ./notes.py append --type tension --text "IMPLEMENTATION vs ARTIFACT: runtime verbosity conflicts with standalone usability." --effect "Artifact form will need to resolve before SYNTHESIS."

source

Records a source-of-truth change or boundary. Emitted when the canonical source for a concern changes or a conflict between sources is identified. Preserves which authority governs which concern so later synthesis does not introduce duplication or hidden fallback logic.
type
string
Always source.
text
string
The source-of-truth change or boundary (e.g., "protocol.md is canonical for behavioral rules; note-io.md is canonical for I/O contract only.").
effect
string
Optional. How the boundary affects later shaping or artifact structure.
Example
python3 -S ./notes.py append --type source --text "protocol.md is canonical for behavioral rules; note-io.md governs I/O only." --effect "Do not duplicate behavioral rules in note-io.md."

artifact

Records artifact boundaries, direction, or readiness. Emitted to preserve what the artifact is and is not before SYNTHESIS. Ensures synthesis produces a clean artifact without redesign and without contamination from process trace.
type
string
Always artifact.
text
string
The artifact boundary or direction (e.g., "Artifact is a behavioral contract (AI_ONLY). Excluded: implementation code, conversation history, shaping rationale.").
effect
string
Optional. Constraint on synthesis (e.g., "Synthesis must not include process notes or raw shaping trace.").
Example
python3 -S ./notes.py append --type artifact --text "Artifact is a behavioral contract. Excluded: implementation code, conversation history, shaping rationale." --effect "Synthesis must not include process notes."

Signal fields

Python adds the following fields automatically on every append. The model sends only type, text, and optionally effect.
id
string
Auto-assigned by Python. Format: n{seq:05d} (e.g., n00001).
ts
string
UTC timestamp in ISO 8601 format, assigned at append time.
session_id
string
UUID assigned at session init via python3 -S ./notes.py init.
seq
integer
Monotonically increasing sequence number within the session.
type
string
One of the eight allowed types: mode, shape, gate, decision, discard, tension, source, artifact.
text
string
The signal content. Must be non-empty.
effect
string
Optional. Downstream shaping or synthesis effect. Use only when the effect changes later shaping or synthesis.
checksum
string
First 16 hex characters of the SHA-256 of the record, excluding the checksum field itself.

What signals are NOT

Memory signals are not any of the following:
  • Model-managed notes — the model does not own the memory file.
  • Summaries — signals preserve minimal operational continuity, not narrative recaps.
  • Artifact content — signals must not leak into final artifacts as process trace.
  • Source of truth — the append log is a continuity aid, not a design document.
  • A checklist — signals are not task tracking or progress markers.
  • Model self-commentary — signals record protocol-relevant events, not GPT’s internal reasoning.
Memory signals preserve operational continuity — nothing more.
GPT must not emit memory signals for cosmetic preferences, naming decisions, unconfirmed examples, ordinary conversation, or repeated information.

Build docs developers (and LLMs) love