Skip to main content
Glama

memory_propose

Stage a draft memory in a review queue so background lanes can propose writes without committing them; a human or agent ratifies before it becomes canon.

Instructions

Stage a DRAFT memory in the capture-propose queue for later ratification. A proposal is NOT an authored memory: it is invisible to recall, memory_list, find_similar, and the boot digest until it is ratified via memory_ratify. Use this when a background lane wants to suggest a write without committing it — the human (or Art) reviews and ratifies before it becomes canon. Drafts may be rough; validation runs at ratify time.

Input Schema

NameRequiredDescriptionDefault
ttlNoTime-to-live: "7d", "30d", "24h", "permanent", or omit
titleYesShort title for the proposed memory
sourceNoWhere this proposal came from, e.g. a lane name
contentYesThe proposed memory content
projectNoAssociated project, if any
categoryYesMemory category: user (about the human), project (about work), self (capability/learning), feedback (corrections/confirmations), reference (external pointers), pursuit (active goal or ongoing creative thread), episode (short-term cross-body tape: where you were / what was said or decided / what shipped / what is open — 48h TTL by default, set metadata.where to your surface e.g. "discord:#general", "voice", "wake:<id>", "lane:tending", "terminal")
metadataNoArbitrary key-value metadata

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.5.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed2 schema fields changedv0.5.0
    • changedInput schema / properties / category / description
      Previous value: -"Memory category: user (about the human), project (about work), self (capability/learning), feedback (corrections/confirmations), reference (external pointers), pursuit (active goal or ongoing creative thread)"New value: +"Memory category: user (about the human), project (about work), self (capability/learning), feedback (corrections/confirmations), reference (external pointers), pursuit (active goal or ongoing creative thread), episode (short-term cross-body tape: where you were / what was said or decided / what shipped / what is open — 48h TTL by default, set metadata.where to your surface e.g. \"discord:#general\", \"voice\", \"wake:<id>\", \"lane:tending\", \"terminal\")"
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "user",
      -  "project",
      -  "self",
      -  "feedback",
      -  "reference",
      -  "pursuit"
      -]New value: +[
      +  "user",
      +  "project",
      +  "self",
      +  "feedback",
      +  "reference",
      +  "pursuit",
      +  "episode"
      +]
  3. First observedv0.4.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (non-read-only, non-destructive, closed-world). The description adds the critical behavioral fact that the draft is invisible to recall, memory_list, find_similar and the boot digest until ratified, and that validation is deferred to ratify time so drafts may be rough. That is exactly the context an agent cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then the invisibility constraint, then the when-to-use rule. No filler and every clause carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the full propose→ratify lifecycle, visibility semantics, and validation timing for a 7-parameter write tool with no output schema. It stops short of describing what staging returns (e.g. a proposal id) or the default retention of a draft, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (including the detailed category enum and ttl format), so the schema carries the parameter burden. The description adds only an indirect hint about content validation timing and nothing about ttl, source, project, or metadata semantics; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (stage) and resource (draft memory in the capture-propose queue) plus the downstream lifecycle step (ratification). The contrast with memory_ratify and with an 'authored memory' makes it distinguishable from siblings like remember and memory_proposals without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the triggering scenario ('a background lane wants to suggest a write without committing it') and the gating condition (human/Art reviews and ratifies before it becomes canon). It also routes away from the direct-write path by stating a proposal is NOT an authored memory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.