Skip to main content
Glama

validate_task_memory

Dry-run validates a candidate task memory before saving. Checks durability, specificity, and reusability, returning acceptance, rejection, or warnings without writing to the knowledge base.

Instructions

Dry-run validation for a candidate task memory before calling write_task_memory. Use this after meaningful work and before persisting a lesson to check whether the candidate is durable, specific, reusable, and shaped like a high-quality ChatCrystal note. It has no side effects and never writes to the knowledge base. Returns acceptance, rejection reason, warnings, and materialized note fields so agents can revise the candidate or skip weak work logs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYesUse auto for agent-generated writebacks and manual for explicit user-curated memories.
taskYesCurrent task context used to scope, rank, and store memories.
scopeNoStore as project memory by default; global is reserved for broadly reusable manual lessons.
memoryYesCandidate ChatCrystal note content to validate or persist as reusable task memory.
source_run_keyNoIdempotency key for auto writebacks; required in auto mode to avoid duplicate memory receipts.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed30 schema fields changedv0.5.6
    • addedInput schema / properties / memory / description
      Added value: +"Candidate ChatCrystal note content to validate or persist as reusable task memory."
    • addedInput schema / properties / memory / properties / code_snippets / description
      Added value: +"Small snippets that make the memory actionable without copying large files."
    • addedInput schema / properties / memory / properties / code_snippets / items / properties / code / description
      Added value: +"Minimal code, command, config, or query that illustrates the reusable lesson."
    • addedInput schema / properties / memory / properties / code_snippets / items / properties / description / description
      Added value: +"Why this snippet matters and when to reuse it."
    • addedInput schema / properties / memory / properties / code_snippets / items / properties / language / description
      Added value: +"Programming or markup language for the snippet."
    • addedInput schema / properties / memory / properties / decisions / description
      Added value: +"Durable design, product, architecture, or process decisions made during the task."
    • addedInput schema / properties / memory / properties / error_signatures / description
      Added value: +"Exact errors or symptoms that should trigger this memory in future debug recall."
    • addedInput schema / properties / memory / properties / files_touched / description
      Added value: +"Files that provide useful provenance for the memory."
    • addedInput schema / properties / memory / properties / key_conclusions / description
      Added value: +"Important takeaways that should be recalled before similar future work."
    • addedInput schema / properties / memory / properties / outcome_type / description
      Added value: +"Primary kind of reusable memory being saved."
    • addedInput schema / properties / memory / properties / pitfalls / description
      Added value: +"Mistakes, traps, or failure modes future agents should avoid."
    • addedInput schema / properties / memory / properties / resolution / description
      Added value: +"Specific fix or action that resolved the issue."
    • addedInput schema / properties / memory / properties / reusable_patterns / description
      Added value: +"Generalizable implementation, debugging, migration, or configuration patterns."
    • addedInput schema / properties / memory / properties / root_cause / description
      Added value: +"Underlying cause of the problem when the memory is about a fix or pitfall."
    • addedInput schema / properties / memory / properties / summary / description
      Added value: +"Concrete summary of what was learned or decided, written so it remains useful in a later session."
    • addedInput schema / properties / memory / properties / tags / description
      Added value: +"Short tags for retrieval, such as framework, subsystem, source tool, or failure type."
    • addedInput schema / properties / memory / properties / title / description
      Added value: +"Specific note title. Prefer the durable lesson over a generic task name."
    • addedInput schema / properties / mode / description
      Added value: +"Use auto for agent-generated writebacks and manual for explicit user-curated memories."
    • addedInput schema / properties / scope / description
      Added value: +"Store as project memory by default; global is reserved for broadly reusable manual lessons."
    • addedInput schema / properties / source_run_key / description
      Added value: +"Idempotency key for auto writebacks; required in auto mode to avoid duplicate memory receipts."
    • addedInput schema / properties / task / description
      Added value: +"Current task context used to scope, rank, and store memories."
    • addedInput schema / properties / task / properties / branch / description
      Added value: +"Current VCS branch when relevant to the task."
    • addedInput schema / properties / task / properties / cwd / description
      Added value: +"Current working directory of the agent session."
    • addedInput schema / properties / task / properties / error_signatures / description
      Added value: +"Concrete errors, stack traces, failing commands, or symptoms. Most useful with debug tasks."
    • addedInput schema / properties / task / properties / files_touched / description
      Added value: +"Files already touched or expected to be touched; improves project memory matching."
    • addedInput schema / properties / task / properties / goal / description
      Added value: +"Plain-language task goal or user request. Include enough context to retrieve relevant memories."
    • addedInput schema / properties / task / properties / project_dir / description
      Added value: +"Absolute project directory when known; helps ChatCrystal match memories to the right local workspace."
    • addedInput schema / properties / task / properties / project_key / description
      Added value: +"Stable project identifier used to prioritize project-scoped memories, such as a repository or workspace key."
    • addedInput schema / properties / task / properties / source_agent / description
      Added value: +"AI coding tool or agent that is calling ChatCrystal; use unknown when unsure."
    • addedInput schema / properties / task / properties / task_kind / description
      Added value: +"Kind of work being performed. Use debug for failures; choose the closest non-debug category for planned work."
  2. First observedv0.5.5

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavior: 'Dry-run validation', 'has no side effects', 'never writes to the knowledge base', and describes return values (acceptance, rejection reason, warnings, materialized note fields). No contradictions.

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 efficiently cover purpose, usage, and behavior without fluff. Front-loaded with primary action, then usage guidance, then behavior and returns. Every sentence adds value.

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?

Given moderate complexity (5 params, nested objects) and no output schema, the description covers return fields (acceptance, rejection reason, warnings, materialized note fields) and states the tool is for validation. Could elaborate more on what constitutes 'high-quality' criteria but is sufficient for an agent to use correctly.

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 coverage is 100%, so baseline is 3. The description adds context about what the tool does overall but does not discuss individual parameters beyond what the schema already provides. It does not compensate for any missing schema details.

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?

The description clearly states the tool validates a candidate task memory before persisting, using specific verbs ('validate') and resources ('task memory'). It distinguishes itself from sibling write_task_memory with the 'Dry-run' qualifier and explicitly names it as the counterpart.

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

Usage Guidelines4/5

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

Provides clear context: 'Use this after meaningful work and before persisting a lesson'. States it has no side effects, indicating safe dry-run usage. However, does not explicitly state when not to use or list alternatives beyond implying write_task_memory is the next step.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZengLiangYi/ChatCrystal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server