Skip to main content
Glama

Context Crystal

An open, standardized context lifecycle and interchange format for human and machine collaboration.

Context Crystal decouples context, goals, transient resources, and entities from ephemeral chat sessions, IDE windows, and agent runtimes. Inspired by OpenTimelineIO (OTIO) and grounded in cybernetics, it structures AI-assisted collaborative work as an immutable, auditable state lattice (DAG).

Specification Build & Tests Zero Reflection License: MIT


Why Context Crystal?

Modern AI-assisted engineering suffers from a few critical bottlenecks:

  1. The Navigational Void (Context vs. Memory): Tools frequently conflate "context" with "memory" (vector databases, RAG retrieval, associative search, or endless chat transcripts). While memory attempts to simulate cognitive recall, engineering requires a navigational map and compass: a deterministic record of where we have been (verified milestones, executed tools, resolved friction) and where we are going (goal nucleus, active acceptance criteria). Crystals are self-contained and inert at rest; active use and hydration turn them into meaningful, high-bandwidth context.

  2. The Session Boundary Problem: Work is trapped in ephemeral chat windows. When a context window fills, a session restarts, or work hands off between human steersmen and autonomous agents, nuance evaporates. Summaries suffer from lossy compaction, prompt drift, and hallucinated progress.

  3. Repository Pollution & Accidental Exposure: Persistent context tools often clutter codebases with dotfiles, agent scratchpads, private identities, and conversational logs. Worse, unmonitored agent logs risk permanently committing sensitive credentials or authorization tokens into git history.

  4. The Token Tax & Trial-and-Error Loops: Traditional context summarizers consume substantial LLM tokens simply re-reading and re-summarizing prior chat turns. Worse, when an agent hits an architectural dead end, that negative knowledge is lost upon session compaction—causing subsequent agents to repeat the exact same failed attempts. Context Crystal operates with 0 LLM tokens consumed for context management, delivers sub-5ms native cold starts, and automatically projects unresolved lessons learned into hydrated beams so agents never repeat failed spikes.

Context Crystal solves these challenges: It provides a deterministic, machine-readable state transition DAG that acts as an auditable map and compass across sessions, guarantees a 100% clean codebase through decoupled out-of-tree storage, eliminates context overhead with zero LLM tokens consumed for state tracking, and enforces a strict zero-secret posture.


Related MCP server: anthropic_skill

Installation & Quickstart

Context Crystal binaries are pre-compiled with LLVM Thin Link-Time Optimization (Thin LTO) for maximum runtime speed and minimal disk footprint.

1. Universal POSIX Bootstrap (macOS & Linux)

Install the latest release binary into ~/.local/bin/ccrystal with a single command:

curl -fsSL https://raw.githubusercontent.com/oswaldo/context-crystal/main/install.sh | sh

To install into a custom directory or pin a specific release version:

curl -fsSL https://raw.githubusercontent.com/oswaldo/context-crystal/main/install.sh | sh -s -- --to /usr/local/bin --version v1.0.0

2. Homebrew (macOS & Linux)

brew install oswaldo/context-crystal/ccrystal

Or add the tap repository first:

brew tap oswaldo/context-crystal
brew install ccrystal

3. Coursier (Universal Zero-Install: Windows, macOS, Linux, BSD)

For developers and automated agents on any operating system with Java 17+ installed:

# Instant launch via official Coursier contrib channel:
cs launch --contrib ccrystal

# Or install globally to your PATH:
cs install --contrib ccrystal

(You can also launch directly via immutable Maven Central coordinates: cs launch io.github.oswaldo:ccrystal-cli_3:latest.release -- --help)

4. Platform Support Matrix

Platform

Tier

Architecture

Runtime / Engine

Status

Linux

Tier 1

x86_64, aarch64

Native binary (Thin LTO)

Fully supported

macOS

Tier 1

Apple Silicon (aarch64), Intel (x86_64)

Native binary (LLVM -O3)

Fully supported (tested on macOS 14, 15, and 26 Apple Silicon)

Windows (PowerShell / CMD)

Tier 1

Any architecture (x86_64, arm64)

JVM / Coursier (cs launch)

Fully supported via Maven Central; standalone native MSVC binary planned for post-1.0

Windows (WSL)

Tier 1

x86_64 (WSL / Ubuntu)

Native binary / POSIX script

Fully supported

Universal (BSD, Solaris, etc.)

Tier 1

Any POSIX / JVM target

JVM (cs launch)

Fully supported via Maven Central (io.github.oswaldo:ccrystal-cli_3)


Zero-Learning-Curve: Agent-as-Operator

Human developers never need to memorize ccrystal commands, flags, or installation scripts.

Context Crystal is designed around the Agent-as-Operator paradigm:

  • Humans instruct in natural language.

  • Agents self-bootstrap and operate the crystal.

When an AI agent (Google Antigravity, Claude Code, Cursor, Windsurf, Copilot, etc.) encounters this repository or a project referencing Context Crystal, it reads the native agent skill, self-detects whether the binary is present, runs self-installation if missing, and manages state transitions autonomously.

Natural Language Workflows

Developer Utterance

What the Agent Executes Behind the Scenes

"Let's start working on the user authentication refactor."

Self-bootstraps ccrystal, calls ccrystal init auth-refactor -g "...", and sets the goal lattice nucleus.

"What did we accomplish on this branch yesterday?"

Calls ccrystal hydrate auth-refactor to inject verified checkpoints and task statuses directly into the prompt.

"While refactoring auth, I noticed our token parser fails on empty strings."

Calls ccrystal slice auth-refactor ... --fork-to token-parser-bug --prune to fork an adjacent crystal without derailing the current task.

"Spin up a temporary mock auth server for testing."

Leases a transient resource via ccrystal transient lease ... -t mock_service --policy delete_after_test.

"We're done! Wrap up and clean up."

Verifies all transient resource leases are resolved, records lessons learned, and marks tasks complete.


100% Clean Codebase Guarantee (Decoupled Storage)

Context Crystal adapts to your team's workflow without polluting your code:

┌────────────────────────────────────────────────────────┐
│               Target Project Repository                │
│    (100% Clean: No agent dotfiles, zero tool noise)    │
└───────────────────────────┬────────────────────────────┘
                            │
              Points to context store via:
              • CLI flag:    --store <path>
              • Environment: CCRYSTAL_STORE=<path>
              • File pointer: .ccrystal-store
                            │
                            ▼
┌────────────────────────────────────────────────────────┐
│           Decoupled Context Companion Repo             │
│   (Immutable DAG, transient leases, lessons learned)   │
└────────────────────────────────────────────────────────┘
  • In-Tree Mode (.ccrystals/): Default for internal projects where teams want context history versioned alongside source code.

  • Decoupled Out-of-Tree Mode (CCRYSTAL_STORE): Set an environment variable or add a single .ccrystal-store pointer line. All crystals, entity logs, and transient leases are written to an isolated companion repository. Your public source repository remains pristine.


Key Capabilities

  1. Topological State DAG: Context is structured as an immutable directed acyclic graph capturing human prompts, agent reasoning, tool executions, and verifiable checkpoints.

  2. Capture Fidelity Guarantees: Distinguishes between Inferred context (agent synthesis, chain-of-thought) and Intercepted execution records (deterministic, verbatim tool input/output), preventing synthetic hallucinations from masquerading as verified facts.

  3. First-Class Transient Resource Leases: Tracks temporary resources (git_worktree, test environment overrides, mock services, dummy assets) with automated cleanup gates before task conclusion.

  4. Context Cleavage & Slicing (ccrystal slice): Prune context lattices to avoid token saturation, or slice and fork unexpected discoveries into linked child crystals with full parent lineage.

  5. Selective Context Hydration & Beam Shaping (ccrystal cast/hydrate --from): Reconstitutes living state (Goal, Tasks, Leases, Lessons) while focusing the state transition beam on a specific milestone (--from <anchor|id>, --to <anchor|id>, --tail <N>), keeping prompts lean without permanent forking.

  6. Continuous Improvement & Lessons Learned: Built-in ledger tracking friction, root causes, and verified action audit trails.

  7. Sub-Millisecond Atomic Batching: Pipelined CLI execution (ccrystal batch "...") combines multi-step state transitions into a single roundtrip, eliminating agent latency and token waste.

  8. Deterministic Zero-LLM Housekeeping & Melting: Sub-DAG topological melting (ccrystal melt) collapses intermediate transition chains into consolidated checkpoint nodes with aggregated artifact links, preserving key decisions while drastically reducing prompt token overhead with zero LLM dependency.

  9. Cold Storage Archiving & Cave Hygiene Triage: Classify workspace health into Active, Solid, and Stale states (ccrystal triage --solid/--stale). Move completed crystals to cold storage (ccrystal archive) to keep active context listings lean while preserving full history and artifacts.

  10. Secret Sanitization & Zero-Leak Invariant: Context crystals capture operational lineage without compromising security. Enforces a strict pointers over values invariant (referencing env:VAR or vault keys rather than literal credentials) with automated scanning recommendations (such as Betterleaks or Gitleaks) to prevent sensitive token exposure in context repositories.

  11. Multi-Dimensional Search & Temporal Scoping (ccrystal search / crystal_search): Query cave history across full-text contents, temporal bounds (--since 7d, --today, --yesterday), active leases, touching paths, open tasks, aging status, and author identities, with deterministic sorting and defensive pagination.


Pre-Packaged Agent Adapters

Context Crystal includes ready-to-use skills and instruction adapters for major agent harnesses:


Native Model Context Protocol (MCP) Server (ccrystal mcp)

Context Crystal includes an embedded, zero-overhead MCP server built directly into the native binary. It connects Claude Desktop, Cursor, Zed, Windsurf, and agent harnesses to your workspace crystals with zero Python or Node.js runtime dependencies.

  • Compound Atomic Tools (17 tools):

    • Batching & Inception: crystal_batch, crystal_init.

    • Transitions & Provenance: crystal_checkpoint, crystal_task_transition, crystal_goal_transition.

    • Artifacts & Leases: crystal_artifact, crystal_transient_lease.

    • Context Shaping & Slicing: crystal_hydrate, crystal_slice_fork.

    • Lattice Bonds & Topology: crystal_connect (cross-crystal relations, cycle-defended directed DAG edges, and depth-1 defensive hydration context projection).

    • Metrics, Search & Lifecycle: crystal_stats, crystal_search (multi-dimensional filtering and pagination), crystal_triage, crystal_melt, crystal_archive, crystal_unarchive, crystal_prune.

  • Dynamic Context Resources (ccrystal://):

    • ccrystal://{id}/state: Living state container JSON (Goal status, pending tasks, active leases, open lessons).

    • ccrystal://{id}/dag: Normalized DAG nodes and parent lineage JSON.

    • ccrystal://{id}/hydrate: Synthesized Markdown context beam formatted for immediate LLM prompt injection (supports ?from=...&to=...&tail=... query parameters).

    • ccrystal://{id}/bonds: Lattice bonds and inbound/outbound topology JSON.

    • ccrystal://artifacts: Global cave artifact registry.

    • ccrystal://{id}/artifacts: Crystal-scoped referenced artifacts.

    • ccrystal://entities: Registered cave identities and authors.

  • Prompt Beams & Triage: Hydrate shaped context beams directly via hydrate_context (accepting from, to, tail, depth) and review cave lifecycle hygiene via triage_cave.

Client Configuration

Add to your MCP client settings (e.g., Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json, or Antigravity mcp_config.json):

{
  "mcpServers": {
    "context-crystal": {
      "command": "ccrystal",
      "args": ["mcp"]
    }
  }
}

For detailed protocol specifications and editor templates, see docs/mcp/README.md.


Verified CLI Quickstart

If you want to run commands directly or script automation, the native CLI is fast and ergonomic.

Install the standalone native binary for Linux or macOS with a single command:

curl -fsSL https://raw.githubusercontent.com/oswaldo/context-crystal/main/install.sh | sh

The script automatically detects your OS and architecture (linux-x86_64, macos-aarch64, macos-x86_64), installs ccrystal into ~/.local/bin, and verifies binary execution.

Building from Source (Alternative)

If you prefer building from source, ensure you have:

  • Java Development Kit (JDK): Version 21+ (verified on JDK 21 LTS and bleeding-edge OpenJDK 26 across Linux x86_64 and macOS Apple Silicon)

  • Build Tool: sbt 1.10+

  • Compiler: Scala 3.9+

  • Native Linker: clang (for Scala Native LLVM target; sudo apt install clang / sudo dnf install clang on Linux, or included with Xcode CommandLineTools on macOS)

TIP

Collaborator Quickstart & Hardware Baseline:

  • Idiomatic Bleeding-Edge Setup: We recommend bootstrapping your environment with Coursier:

    # Single command installs bleeding-edge JDK 26, sbt, scalafmt, scala-cli, and configures PATH
    cs setup --jvm 26 -y
  • Shell PATH: Ensure ~/.local/bin and Coursier's application bin directory (~/.local/share/coursier/bin on Linux, or ~/Library/Application Support/Coursier/bin on macOS) are exported in your ~/.bashrc, ~/.zshrc, or shell profile.

  • Memory Baseline: Scala Native Thin LTO linking benefits from 8 GB+ RAM. A .jvmopts baseline (-Xmx4g) is included in the repository. On lightweight machines, run sbt "coreJVM/test; cliJVM/test" for fast local iteration.

  • Contributing: See docs/contributing.md for our dual-key cryptographic policy and local verification workflow.

# 1. Fast build (development mode, ~10s)
sbt "cliNative/nativeLink"

# 2. Optimized release build with Thin LTO (~25s, dead-code elimination, peak runtime performance)
sbt 'set cli.native / nativeConfig ~= { _.withMode(scala.scalanative.build.Mode.releaseFast).withLTO(scala.scalanative.build.LTO.thin) }; cliNative/nativeLink'

# Install into local user PATH (portable across macOS BSD and Linux GNU)
mkdir -p ~/.local/bin
rm -f ~/.local/bin/ccrystal
cp ./cli/native/target/scala-3.9.0/ccrystal-cli ~/.local/bin/ccrystal
chmod +x ~/.local/bin/ccrystal
strip ~/.local/bin/ccrystal

Essential Commands

# 1. Initialize a new crystal
ccrystal init auth-refactor -g "Refactor JWT Validation" -i "Replace legacy parser with Nimbus"

# 2. Add and check off task milestones
ccrystal task add auth-refactor -d "Write failing reproduction test"
ccrystal task done auth-refactor -t t1

# 3. Append verifiable state transitions to the DAG
ccrystal node add auth-refactor -k human_prompt -s "Investigate parser NPE"
ccrystal node add auth-refactor -k tool_execution -s "sbt test" --fidelity intercepted

# 4. Track temporary scaffolding with transient resource leases
ccrystal transient lease auth-refactor -t git_worktree -p "../ccrystal-worktrees/auth" -d "Isolated worktree" --policy revert_on_conclusion

# 5. Hydrate prompt / inspect context (markdown view)
ccrystal hydrate auth-refactor

# 6. Execute atomic multi-command batch (ideal for agents)
ccrystal batch "task add auth-refactor -d 'Deploy to staging'; transient clean auth-refactor -l l1; node add auth-refactor -k checkpoint -s 'Ready for review'"

# 7. Context Cleavage: slice and fork into a child crystal
ccrystal slice auth-refactor --from node-1 --to node-3 --fork-to auth-edge-cases --prune

# 8. Selective Context Hydration & Beam Shaping
ccrystal hydrate auth-refactor --from v1-checkpoint --tail 5

# 9. Deterministic Sub-DAG Melting (Squash intermediate node chains)
ccrystal melt auth-refactor --from node-auth-refactor-init --to checkpoint-1 --summary "Finalized initial auth spec & scaffolding"

# 10. Cross-Crystal Lattice Bonds & Defensive Hydration Paging
ccrystal connect auth-core api-gateway -r depends_on -d "Gateway relies on token contract"
ccrystal connections auth-core        # Inspect outbound and inbound bonds
ccrystal disconnect auth-core api-gateway # Sever cross-crystal link

# 11. Cave Metrics & Storage Footprint
ccrystal stats                     # High-level cave metrics, disk footprints, and token savings
ccrystal stats --since 7d --detailed # Scoped breakdown for crystals updated in last 7 days

# 12. Cave Hygiene Triage, Cold Storage Archiving & Retention Pruning
ccrystal triage --solid               # Inspect concluded crystals ready for cleanup
ccrystal archive auth-refactor        # Move completed crystal to cold storage (.ccrystals/archive/)
ccrystal unarchive auth-refactor      # Restore crystal to active cave
ccrystal search --archived            # Search across active and archived crystals
ccrystal prune auth-refactor -f       # Permanently prune single crystal with entity cascade
ccrystal prune --older-than 90d       # Prune archived crystals exceeding 90-day retention
ccrystal prune --older-than 30d --dry-run # Preview candidates and freed bytes without deleting

# 13. Dual-Audience Guidance & Entity Conventions
ccrystal --for-ai               # Operational invariants, PII rules, and entity schemes for AI agents
ccrystal entity conventions     # Display canonical entity prefixes (usr_, agt_, mdl_, tool_, sys_)

# 14. Universal Agent Runtime Onboarding & The Golden Triad
ccrystal agent doctor                  # Diagnose Golden Triad status (Runtime Binary, MCP Server & Agent Skill)
ccrystal agent doctor --json           # Machine-readable JSON diagnostic report
ccrystal agent install --dry-run       # Preview automated MCP and skill distribution without disk changes
ccrystal agent install                 # Safely auto-configure detected agent harnesses and deploy agent skills
ccrystal agent install --symlink-skill # Symlink canonical skill from workspace instead of copying
ccrystal agent install --workspace-skill # Install canonical skill into local workspace (.agents/skills/context-crystal/SKILL.md)
ccrystal agent install --no-skill      # Configure MCP server only without installing skill files
ccrystal agent install --target cursor # Auto-configure specific harness (cursor, claude-code, zed, etc.)

Repository & Monorepo Architecture

Context Crystal is built as a high-performance cross-compiled Scala 3 monorepo:

├── spec/          # Vendor-neutral JSON Schema v1 specification & compliance suite
├── core/          # Pure functional models, DAG engine, codecs, and FsCrystalStore SPI
│   ├── shared/    # Cross-platform core logic (Scala 3)
│   ├── jvm-native/# Shared filesystem engine, POSIX locks & OCC rebase (JVM & Native)
│   ├── jvm/       # JVM target-specific platform primitives
│   ├── native/    # Scala Native (LLVM) target-specific platform primitives
│   └── js/        # Scala.js target
├── cli/           # Decline-based command-line interface & native MCP server
├── skills/        # Canonical agent skills and IDE/CLI adapters (Antigravity, Claude, Cursor)
├── docs/          # Cybernetic philosophy & operational guidelines (for_devs.md, for_ais.md)
└── conductor/     # Conductor Spec-Driven Development (SDD) tracks & system tenets

Storage Isolation & Concurrency Control

Context Crystal is engineered for safe simultaneous collaboration across multiple human developers and autonomous AI agents:

  • Atomic Inode Replacement: File writes stage to .<target>.tmp-<time>-<nano> in the target directory and perform an atomic swap via POSIX rename(2) (REPLACE_EXISTING), eliminating torn reads.

  • Optimistic Concurrency Control (OCC): The storage-isolated CrystalStore.update(id)(f) API executes pure functional transformations with deterministic 128-bit ContentFingerprint validation and automatic bounded rebase retries.

  • Defensive Agent Installation: ccrystal agent install checks pre-read fingerprints to detect external file modifications, preventing data loss or clobbering of concurrent user edits.

  • Ephemeral Mutex Serialization: Short-lived .lock mutex files with PID tracking and 5-second staleness auto-expiration prevent filesystem races during multi-entity write operations.

Running Tests

# Run full cross-platform test suite (Native, JVM, JS)
sbt test

# Fast iteration on JVM only
sbt "coreJVM/test; cliJVM/test"

# Run formatting and scalafix linter checks
sbt "scalafmtCheckAll; scalafixAll"

Quality Guards & Automated Git Hooks

Context Crystal includes repository-managed git hooks in .githooks/ to enforce zero push-fail cycles:

# Activate automated pre-commit and pre-push quality guards
./scripts/setup-hooks.sh
  • pre-commit: Runs sbt scalafmtCheckAll on staged .scala files.

  • pre-push: Runs sbt "scalafmtCheckAll; scalafixAll --check" and sbt test before pushes.


Philosophy & Foundations

We model human and machine collaborators not as theatrical roleplaying personas, but as self-governing Entities operating on explicit feedback loops toward measurable goals:

  • 👨‍💻 For Developers: Why shedding anthropomorphic overhead lowers cognitive fatigue and accelerates flow.

  • 🤖 For AI Entities: How immutable context lattices prevent attention degradation and prompt drift.

  • 📖 System Tenets & Specification: Detailed architectural tenets, including capture fidelity, transient leasing, and decoupled storage.

Craftsmanship: Proudly Human-in-the-Loop (Not AI Slop)

Context Crystal firmly rejects the paradigm of unsupervised brute-force agent swarms and synthetic slop. It is proudly human-in-the-loop — conceived, architected, audited, and reviewed with care, love, and rigor in deliberate partnership with computational intelligence. We treat AI not as a reckless replacement for human judgment and discernment, but as a cognitive amplifier operating under rigorous human stewardship, using its extraordinary capabilities for what they were genuinely destined to achieve.


Contributing

All development strictly follows Conductor Spec-Driven Development (SDD) and strict Git worktree isolation.

Please read AGENTS.md before starting any work or submitting pull requests.

Available Tools

17 tools
crystal_archiveA

Archive a concluded or inactive crystal to cold storage (.ccrystals/archive/) to reduce cave bloat while preserving all state and artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
crystal_idYesIdentifier of the crystal to archive

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses the storage target, that state and artifacts are preserved (non-destructive/reversible), and the reason for doing it. It omits auth requirements, failure conditions for active crystals, and whether the operation is undoable via crystal_unarchive.

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?

One sentence, front-loaded with the action and target, and every clause earns its place by adding destination, precondition, and rationale.

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?

For a one-parameter tool with no output schema and no annotations, the description covers purpose, precondition, destination, and side effects adequately. Only minor gaps remain, such as how to reverse the archive or what error occurs on an active crystal.

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?

There is a single required parameter (crystal_id) and schema coverage is 100%, so the schema already documents it fully. The description adds no syntax, format, or sourcing detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (archive) and resource (crystal) plus the destination path (.ccrystals/archive/) and the motivation (reduce cave bloat). The contrast with destructive siblings like crystal_delete or crystal_melt is implied by 'preserving all state and artifacts' but no sibling is named explicitly.

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?

Gives a clear selection condition: only concluded or inactive crystals should be archived, which frames when the tool applies. It stops short of naming alternatives (e.g., crystal_delete for removal, crystal_unarchive for restoration) or stating what happens if the crystal is still active.

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

crystal_artifactC

Register, list, or inspect virtual and physical artifacts across cave or crystal.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoArtifact identifier (required for register/inspect)
uriNoArtifact URI pointer
caveNoTarget cave registry
nameNoArtifact human-readable name
roleNoRole: target, instrument, or precondition
actionYesAction: list, register, or inspect
geo_uriNoGeo coordinates URI
substrateNoSubstrate: virtual or physical
crystal_idNoOptional crystal ID for crystal-scoped operations
media_typeNoMIME / media type
descriptionNoArtifact description
civic_addressNoPhysical civic address
location_nameNoPhysical location name
bench_coordinatesNoPhysical bench coordinates

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden of behavioral disclosure, and it falls well short. It never states that 'register' mutates persistent state, whether registration is idempotent or overwrites existing artifacts, what the cave vs crystal registries mean, or what a failed lookup returns for a 14-parameter tool with three distinct actions.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or repetition. It is efficient, though for a tool with 14 parameters and three actions it is arguably thinner than the surface area warrants, which keeps it just short of a 5.

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

Completeness3/5

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

The schema is fully documented and carries the parameter semantics, so the description is not the sole source of detail. Still, with no annotations, no output schema, and three distinct actions sharing one parameter bag, the description should have clarified which parameters apply to which action and what register actually does to persisted state.

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% and every parameter is individually documented, so the baseline is 3. The description adds only marginal meaning ('virtual and physical' mirrors the substrate enum, 'cave or crystal' mirrors the cave boolean and crystal_id), offering no per-action parameter applicability beyond what the schema already states.

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

Purpose4/5

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

The description gives three specific verbs (register, list, inspect) against a named resource (artifacts) and adds scope qualifiers (virtual/physical, cave/crystal). It is clear enough to distinguish from generic siblings like crystal_delete or crystal_hydrate, but it never distinguishes itself from crystal_list, which plausibly overlaps with the 'list' action.

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

Usage Guidelines2/5

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

No when-to-use guidance is provided. The agent is not told when to choose register vs inspect vs list, whether 'cave' or 'crystal' scoping should be preferred, or what preconditions exist (e.g. an id is required for register/inspect per the schema, but the description never says so).

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

crystal_batchB

Execute compound semicolon-delimited atomic transition recipes (e.g. 'node add -s "..." demo; task done -t task-1 demo'). Maximizes efficiency by minimizing roundtrips.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYesSemicolon-separated compound crystal commands

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden. It never says whether the batch is transactional (does one failing command abort the rest?), what permissions are required, or what happens on partial failure — and the word 'atomic' is ambiguous about whether it describes each command or the whole batch.

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

Conciseness4/5

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

Two sentences with the purpose stated first and the efficiency rationale second, plus an inline example. Nothing is wasted, though the example sentence is dense and could be set apart for readability.

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

Completeness3/5

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

For a one-parameter tool with no output schema and no annotations, the description covers purpose and input format adequately but omits failure/ordering semantics and error behavior — the main things an agent needs to safely batch mutating commands.

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

Parameters4/5

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

Schema coverage is already 100% for the single 'commands' parameter, so the baseline is 3. The description goes beyond the schema's bare 'semicolon-separated' phrasing by giving a concrete worked example showing subcommand syntax and quoting, which materially clarifies the expected format.

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

Purpose4/5

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

States a specific verb (Execute) and resource (compound semicolon-delimited atomic transition recipes), and the example makes the compound/batch nature concrete. It is distinguishable from single-transition siblings like crystal_task_transition, though it never names them explicitly.

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

Usage Guidelines3/5

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

The clause 'Maximizes efficiency by minimizing roundtrips' implies the tool is for batching multiple commands in one call, which is useful implied guidance. However, it never states when NOT to batch, nor names the singular sibling tools as the alternative for one-off transitions.

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

crystal_checkpointC

Create an anchor checkpoint node in the crystal DAG.

ParametersJSON Schema
NameRequiredDescriptionDefault
anchorNoOptional anchor tag name
summaryYesCheckpoint summary
fidelityNoFidelity: full, selective, summary
crystal_idYesCrystal identifier

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden yet discloses nothing about effects: whether the checkpoint is reversible, what permissions are required, how it interacts with the DAG, or what fidelity actually changes. 'Create an anchor checkpoint node' restates the operation without behavioral context.

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

Conciseness4/5

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

A single efficient sentence with the core operation front-loaded and no filler. It is arguably too terse for a mutation tool, but it wastes no words.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and a rich 4-parameter surface, the description is far too thin. It omits what a checkpoint does to the DAG, side effects, and any return or error behavior an agent would need.

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%, so all four parameters (anchor, summary, fidelity, crystal_id) are already documented in the schema, making a baseline of 3 appropriate. The description adds no syntax, format, or meaning beyond what the schema provides.

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

Purpose4/5

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

States a specific verb (create) and resource (anchor checkpoint node) within the crystal DAG, so the basic operation is unambiguous. However, it offers no differentiation from the many crystal_* siblings such as crystal_artifact or crystal_slice_fork, and 'anchor checkpoint node' remains jargon-heavy.

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

Usage Guidelines2/5

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

The description gives no indication of when to create a checkpoint versus using siblings like crystal_artifact, crystal_slice_fork, or the transition tools. No prerequisites, triggers, or exclusions are mentioned.

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

crystal_connectB

Connect, disconnect, or inspect directed lattice bonds between crystals in the cave, enforcing an acyclic graph invariant and supporting cross-crystal context hydration.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction: connect (establish bond), disconnect (sever bond), or list (inspect inbound and outbound bonds; default: connect)
relationNoBond relation type (relates_to, depends_on, blocks, supersedes, references; required for connect)
crystal_idNoCrystal ID to inspect when action is 'list' (or alias for source_crystal_id)
descriptionNoOptional human or agent rationale explaining the cross-crystal bond
json_outputNoWhen action is 'list', return structured JSON instead of formatted text (default: false)
source_crystal_idNoSource crystal ID initiating the bond
target_crystal_idNoTarget crystal ID being connected to (required for connect)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does usefully disclose that an acyclic invariant is enforced, implying connect can fail and disconnect may be the remedy, and that bonds feed cross-crystal context hydration. It says nothing about failure modes on cycle detection, permission requirements, or whether disconnect cascades to dependent bonds.

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

Conciseness4/5

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

A single front-loaded sentence packs the operations, the resource, and the key invariant without filler. It is dense rather than padded, though the trailing 'cross-crystal context hydration' clause is the least informative part and could be trimmed.

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

Completeness3/5

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

For a 7-parameter mutation-and-read tool with no annotations and no output schema, the description is adequate but thin: it omits what a list returns, what happens on cycle rejection, and how bonds behave when a referenced crystal is archived or melted by a sibling. The safety and lifecycle context an agent needs to call this confidently is partially missing.

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%, so the schema already documents all seven parameters, including the action/relation enums and the list-time crystal_id alias. The description adds no syntax, format, or interaction detail beyond mapping its three verbs onto the action enum. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific set of operations (connect, disconnect, inspect) on a specific resource (directed lattice bonds between crystals), and names the acyclic-graph constraint that governs them. The 'crystals in the cave' metaphor is domain jargon, but the verb+resource pairing is unambiguous once the reader knows the domain. It does not explicitly distinguish itself from siblings like crystal_hydrate, which it gestures at via 'cross-crystal context hydration'.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the 17 siblings, nor any prerequisites about when a bond should be created rather than recorded some other way. 'Enforcing an acyclic graph invariant' is a behavioral constraint rather than guidance on tool selection. Usage is only weakly inferable from the action enum.

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

crystal_goal_transitionB

Transition a crystal's top-level goal status (conclude successfully, abandon, or reopen) with optional resolution summary or reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesTarget goal status (in_progress, concluded_success, concluded_abandoned)
summaryNoOptional resolution summary or abandonment reason
crystal_idYesCrystal identifier

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for what is clearly a state-mutating tool. It names the target states but says nothing about permissions required, whether transitions are reversible, whether concluding a goal affects open tasks, or what side effects occur.

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

Conciseness4/5

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

One compact sentence with no redundancy, and the core action plus the outcome options are front-loaded. Slightly dense but nothing wasted.

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

Completeness3/5

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

Adequate minimum for a state-transition tool: it conveys the action, the target states, and the optional summary. However, with no annotations and no output schema, the description should have covered transition legality and side effects on related tasks; those gaps leave the agent under-informed.

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%, so the schema already documents all three parameters and the enum values. The description adds only a loose conceptual mapping ('reopen' → in_progress, 'abandon' → concluded_abandoned), which is mild value on top of a fully-covered schema — the baseline 3.

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

Purpose4/5

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

The description states a specific verb and resource — transitioning a crystal's top-level goal status — and enumerates the three transitions (conclude successfully, abandon, reopen). It implicitly distinguishes itself from crystal_task_transition by scoping to the 'top-level goal', though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

The enumerated transition options imply what the tool is for, but there is no statement of when to choose it over crystal_task_transition, no preconditions (which current statuses permit a transition), and no exclusions. Usage must be inferred.

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

crystal_hydrateC

Hydrate context beam from a crystal with selective shaping (tail, slice range from/to, depth, or summary only).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnding anchor or node ID/prefix for transition slice
fromNoStarting anchor or node ID/prefix for transition slice
tailNoNumber of recent transitions to include in slice
depthNoMaximum traversal depth (default: 10, alias for tail)
crystal_idYesTarget crystal identifier
summary_onlyNoExclude DAG transitions and hydrate living state summary only (default: false)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Hydrate' implies reconstruction/read, but the description never confirms it is read-only, whether it mutates crystal state, what permissions it needs, or what the beam actually contains.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the shaping options come early. It is efficient, though the dense jargon reduces readability more than length does.

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

Completeness2/5

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

For a six-parameter tool with no annotations and no output schema, the description is thin. It neither explains the returned 'context beam' nor clarifies the default traversal behavior, leaving the agent guessing about the operation's effect and output.

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 the schema already documents all six parameters with descriptions. The description's list of shaping modes loosely maps to the params but adds no syntax, defaults, or interaction rules beyond the schema, so baseline 3 applies.

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

Purpose3/5

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

States a specific verb ('hydrate') and resource ('context beam from a crystal') and enumerates the shaping modes. However, the domain jargon ('context beam', 'crystal') is opaque without external context, and it draws no boundary against the many crystal_* siblings such as crystal_slice_fork or crystal_checkpoint.

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

Usage Guidelines2/5

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

The parenthetical list (tail, slice range from/to, depth, summary only) names parameter modes, not usage conditions. There is no statement of when to hydrate versus checkpointing, forking, or listing, and no prerequisites or exclusions are given.

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

crystal_initC

Initialize a new context crystal.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesTitle/goal of the crystal
nameYesCrystal identifier
tasksNoOptional initial acceptance criteria / tasks
authorNoOptional author name
intentNoOptional detailed intent

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say whether initialization persists state, whether the name must be unique, what happens on a duplicate name, or whether the crystal becomes active immediately. 'New' implies creation, but nothing beyond that is conveyed.

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

Conciseness3/5

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

A single short sentence with zero waste and the action front-loaded. But at this length it is under-specified rather than genuinely concise, leaving the agent with no more information than the tool name alone provides.

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

Completeness2/5

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

For a five-parameter creation tool with no annotations and no output schema, the description is far too thin. It omits uniqueness constraints, side effects, and any indication of what is returned, so an agent cannot call it with confidence about outcomes.

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%, so all five parameters (name, goal, tasks, author, intent) are already documented in the schema. The description adds no meaning beyond it, which places it at the baseline of 3 for fully-covered schemas.

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

Purpose3/5

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

States a specific verb ('Initialize') and resource ('context crystal'), which is enough to separate it from crystal_delete, crystal_melt, and crystal_list. However, 'context crystal' is undefined domain jargon and the description offers no differentiation from creation-adjacent siblings like crystal_hydrate or crystal_slice_fork, so the agent must infer the distinction.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no stated prerequisites, and no mention of when it should not be used. With 15 siblings all sharing the 'crystal' prefix, the absence of routing guidance is a real gap.

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

crystal_meltC

Melt and squash intermediate sub-DAG transitions into a single consolidated checkpoint node with aggregated artifact links (Zero-LLM deterministic squashing by default).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEnding node ID or anchor to melt
fromYesStarting node ID or anchor to melt
anchorNoOptional anchor label for the consolidated node
summaryNoOptional manual summary override for the consolidated node
crystal_idYesIdentifier of the target crystal

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that squashing is deterministic and Zero-LLM by default, which is useful, but it omits key mutation details: whether intermediate nodes are deleted, whether the operation is reversible, what permissions are required, and what happens to existing artifacts or transitions.

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

Conciseness4/5

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

The description is a single sentence with no redundant filler and puts the core operation first. The jargon and parenthetical are dense, but the sentence is appropriately sized for a tool definition.

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

Completeness2/5

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

For a non-trivial consolidation tool with five parameters, no annotations, and no output schema, the description is missing usage guidance and critical behavioral details about mutation and reversibility. The 100% schema coverage handles parameters, but the description should do more to explain the operation's context and consequences.

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%, so the input schema already documents all five parameters. The description does not add any parameter-level meaning such as format, constraints, or examples beyond what the schema provides, which matches the baseline of 3 for high schema coverage.

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

Purpose4/5

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

The description names a specific verb pair ('Melt and squash') and resource ('intermediate sub-DAG transitions'), and states the resulting artifact ('single consolidated checkpoint node with aggregated artifact links'). It does not explicitly differentiate itself from close siblings like crystal_checkpoint or crystal_task_transition, but the core operation is clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool instead of alternatives, nor any prerequisites or exclusions. The parenthetical 'Zero-LLM deterministic squashing by default' hints at a default behavior but does not tell the agent when to choose this over crystal_checkpoint or crystal_task_transition.

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

crystal_pruneB

Permanently prune a crystal or cold storage archives by retention policy (with entity and artifact cascade).

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoBatch prune all archived crystals in cold storage (default: false)
forceNoForce deletion/pruning without confirmation prompt (default: true for single crystal delete, false for batch prune)
dry_runNoPreview candidates and cascade impact without deleting (default: false for batch prune)
crystal_idNoCrystal identifier to delete (active or archived)
older_thanNoBatch prune archived crystals inactive for duration (e.g. '30d', '2w', '3m')
archive_onlyNoRestrict deletion strictly to cold storage (default: true for batch prune)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully flags that the operation is 'permanent' (irreversible) and that deletion cascades to entities and artifacts, which is genuinely important context for a destructive tool. It omits, however, any statement of permissions/auth requirements, confirmation behavior, or scope differences between single-crystal and batch modes.

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

Conciseness4/5

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

A single sentence that front-loads the destructive nature and the resource. It is efficient, though the phrasing 'a crystal or cold storage archives' is slightly awkward and mixes singular/plural scope.

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

Completeness3/5

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

For a destructive, zero-annotation, no-output-schema tool, the description conveys permanence and cascade but leaves gaps around batch-vs-single semantics, safety parameters, and how it relates to sibling archive/melt tools. The 100% schema coverage compensates for parameter detail, keeping this at minimum viable.

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%, so all six parameters are already documented in the schema, and the baseline is 3. The description's 'retention policy' and 'cascade' phrasing loosely maps to older_than and the cascade behavior but adds no syntax, format, or interaction detail beyond the schema.

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

Purpose4/5

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

States a specific verb (prune) plus resource (crystal / cold storage archives) and mechanism (retention policy with entity/artifact cascade). However, it does not distinguish itself from close siblings like crystal_melt, crystal_archive, or crystal_unarchive, which an agent would need to tell apart.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named despite several plausible siblings (crystal_melt, crystal_archive). The retention-policy phrasing implies a scenario but leaves the agent to infer selection criteria.

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

crystal_slice_forkC

Extract crystal fragment or fork sub-DAG into a new crystal.

ParametersJSON Schema
NameRequiredDescriptionDefault
pruneNoWhether to prune source crystal to anchor
fork_toYesDestination crystal identifier
crystal_idYesSource crystal identifier
from_anchorNoOptional source anchor

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says nothing about permissions, whether the operation mutates the source crystal, what 'prune' destroys, or whether it is reversible — notable gaps for a tool whose own parameter implies data loss on the source anchor.

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

Conciseness3/5

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

A single front-loaded sentence with zero redundancy, which is good. However, the brevity crosses into under-specification for a 4-parameter mutation tool, so it is efficient but too thin to earn higher marks.

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

Completeness2/5

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

With no annotations, no output schema, and a destructive-sounding 'prune' parameter, the description should explain mutation effects, permissions, and the fork/extract distinction. It provides none of that, so an agent cannot call this safely on description alone.

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%, so all four parameters are documented in the schema itself, which sets the baseline at 3. The description adds no syntax, format, or interpretation beyond that, so it neither helps nor hurts.

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

Purpose3/5

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

States a verb ('Extract ... fork') and a resource ('crystal fragment / sub-DAG ... into a new crystal'), but the domain jargon is dense and the description never distinguishes this from siblings like crystal_melt, crystal_batch, or crystal_hydrate. An agent knows roughly what happens but not exactly which operation this is relative to the rest of the family.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. The 'or' between 'extract fragment' and 'fork sub-DAG' hints at two modes but never says which parameter selects which mode, leaving the agent to infer usage entirely.

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

crystal_statsB

Compute and inspect workspace cave statistics, temporal genesis, structural totals, physical disk footprints, and quantitative prompt token savings across global cave or filtered search criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
agingNoFilter by aging category (active, solid, stale)
queryNoOptional free-text search query to scope statistics calculation
sinceNoFilter crystals active on or after ISO-8601 date/datetime or relative expression (today, yesterday, 1d, 7d)
untilNoFilter crystals active on or before ISO-8601 date/datetime or relative expression
authorNoFilter by author entity ID
statusNoFilter by goal status
detailedNoShow detailed per-crystal storage breakdown and ranking (default: false)
has_lessonsNoFilter crystals with recorded lessons learned
json_outputNoOutput structured JSON instead of human-readable dashboard table (default: false)
touching_pathNoMatch leases or artifacts referencing the specified filesystem path or URI
has_open_tasksNoFilter crystals with incomplete acceptance criteria
include_archivedNoInclude crystals in cold storage (default: false)
has_active_leasesNoFilter crystals holding active transient resource leases

TDQS

B3.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. 'Compute and inspect' strongly implies a non-destructive read, and the global-vs-filtered framing conveys scope, but nothing is said about cost/performance, whether results are cached, or permissions. It signals read-only behavior implicitly rather than explicitly.

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

Conciseness3/5

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

It is a single front-loaded sentence with the verb first, which is good. However, the clause stack ('temporal genesis', 'structural totals', 'physical disk footprints', 'quantitative prompt token savings') is jargon-heavy and overlapping, adding length without sharpening meaning.

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

Completeness3/5

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

For a 13-parameter analytics tool with no annotations and no output schema, the description covers the broad purpose and scoping but omits any indication of the returned structure, which the json_output param implies is selectable. Adequate as a minimum-viable statement, but it leaves real gaps for such a complex tool.

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%, so the 13 parameters are already fully documented in structured form, establishing a baseline of 3. The description adds only the high-level notion of 'filtered search criteria' and global scope, contributing no syntax or semantics beyond the schema.

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

Purpose4/5

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

The description names a specific verb ('compute and inspect') and resource ('workspace cave statistics'), and enumerates the metric families it returns (disk footprints, token savings, structural totals). An agent can distinguish it from crystal_search (which retrieves crystals) because this tool aggregates rather than lists. It stops short of explicitly naming siblings or contrasting scope, keeping it below a 5.

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

Usage Guidelines2/5

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

It hints at two modes ('global cave or filtered search criteria') but never states when to reach for this tool over crystal_search or crystal_triage, nor when filtering is preferable. There are no exclusions or prerequisites given. Usage must be inferred entirely from the name and param list.

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

crystal_task_transitionC

Add or complete a task in a crystal.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: add or done
crystal_idYesCrystal identifier
description_or_idYesTask description (for add) or task ID (for done)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and does not meet it. It is a mutation tool (adds state, marks tasks done) yet says nothing about idempotency, whether 'done' fails on an unknown ID, who may invoke it, or what happens to the crystal on completion.

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

Conciseness4/5

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

A single eight-word sentence, front-loaded with both verbs and the resource, with no filler. Its brevity borders on under-specification, but as structure goes it is clean and waste-free.

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

Completeness2/5

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

Three required parameters, a mutation semantic, no annotations, and no output schema — yet the description is one clause. Nothing explains the dual-purpose description_or_id parameter or the consequences of each action, so an agent must infer behavior entirely from field names.

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%, so all three parameters (action enum, crystal_id, description_or_id with its dual add/done semantics) are already documented in the schema. The description adds nothing beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb pair plus resource: 'Add or complete a task in a crystal.' An agent can tell it manipulates tasks rather than goals, leases, or slices. However, it does not name crystal_goal_transition, the near-identical sibling, so the differentiation is implicit rather than explicit.

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

Usage Guidelines2/5

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

No guidance on when to use this versus crystal_goal_transition or any other sibling, and no prerequisites or context. The description only restates the two operations without saying which situations call for each.

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

crystal_transient_leaseC

Create, clean, or promote a transient resource lease.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: lease, clean, or promote
lease_idNoLease ID
crystal_idYesCrystal identifier
descriptionNoLease description
resource_typeNoResource type (default: workspace_branch)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It lists three actions but does not disclose what 'clean' destroys, what 'promote' changes, whether leases expire, what permissions are required, or any side effects or reversibility constraints. This leaves major behavioral questions unanswered for a mutation tool.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is concise, though its brevity contributes to the lack of actionable detail for a five-parameter mutation tool.

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

Completeness2/5

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

Given five parameters, three mutation actions, no annotations, and no output schema, the description is too thin. It does not explain the lease lifecycle, action-specific prerequisites, which parameters apply to which actions, or expected outcomes, leaving the agent to infer critical invocation details.

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%, so all five parameters are documented in the input schema, and the enum values are already fully specified. The description repeats the action names but adds no additional meaning about parameter interactions or expected values beyond the schema.

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

Purpose3/5

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

The description names the resource ('transient resource lease') and three operations ('create, clean, or promote'), so the general purpose is inferable. However, it does not explain what a transient lease is or distinguish this tool meaningfully from the many other crystal_* lifecycle tools beyond the resource name.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as crystal_checkpoint, crystal_slice_fork, or crystal_melt. The action enum implies three possible uses, but the description does not state when each action is appropriate or what conditions should lead an agent to choose this tool.

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

crystal_triageB

Triage workspace cave crystals for lifecycle hygiene and aging, categorizing them into keep (active), candidates for cleanup (concluded/abandoned with 0 open leases), and requires review.

ParametersJSON Schema
NameRequiredDescriptionDefault
agingNoOptional filter by aging classification state
json_outputNoOutput structured JSON array instead of markdown report (default: false)
include_archivedNoInclude archived crystals from cold storage (default: true)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the categorization rules (keep = active, cleanup = concluded/abandoned with 0 open leases, plus a review bucket), which is genuinely useful decision logic. It never states whether the operation is read-only or mutating, what permissions are needed, or whether it changes state, which is a notable gap for a triage tool.

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

Conciseness4/5

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

A single dense sentence that front-loads the action and then the outcome categories; no filler. It is slightly clause-heavy but every clause contributes information.

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

Completeness3/5

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

There is no output schema and no annotations, so the description must carry more weight; it partially compensates by enumerating the three result buckets. It still omits the return format, whether any state is modified, and any safety profile, leaving the agent with an incomplete picture of a triage operation.

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%, so aging, json_output, and include_archived are already fully documented in the schema, establishing a baseline of 3. The description adds no additional parameter meaning beyond a passing reference to 'aging'.

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

Purpose4/5

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

The description gives a specific verb (triage) and resource (cave crystals) and defines the three output buckets precisely, so the agent knows what the tool produces. It does not, however, differentiate itself from siblings like crystal_list or crystal_melt, leaving the agent to infer when triage is preferable.

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

Usage Guidelines2/5

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

The phrase 'for lifecycle hygiene and aging' hints at intent but there is no explicit when-to-use statement, no prerequisites, and no named alternative among the many crystal_* siblings. The agent gets no guidance on when this tool is the right choice over crystal_list.

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

crystal_unarchiveA

Restore an archived crystal from cold storage (.ccrystals/archive/) back to the active cave.

ParametersJSON Schema
NameRequiredDescriptionDefault
crystal_idYesIdentifier of the crystal to restore

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does add real behavioral context by naming the source location (.ccrystals/archive/) and the destination (active cave), i.e. a state transition, but it omits critical mutation semantics: whether restoring overwrites an existing active crystal with the same id, required permissions, and error behavior when the id is not archived.

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?

One sentence, zero waste, front-loaded with the verb and the resource. Nothing is padded or repeated from the title or schema.

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?

For a single-parameter tool with a fully documented schema and no output schema, the description supplies enough to invoke it correctly: what is restored and from/to where. The only meaningful gap is the overwrite/conflict behavior on an already-active id, which is minor at this complexity level.

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% for the single parameter, so the schema already documents crystal_id ('Identifier of the crystal to restore'). The description adds no format, naming, or lookup guidance beyond that, which is the expected baseline when the schema does the work.

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

Purpose4/5

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

The description states a specific verb (Restore) and resource (an archived crystal), and the 'archived' qualifier plus the archive path makes the inverse relationship to crystal_archive clear without opening either schema. It stops short of naming the sibling explicitly, which is what separates a 4 from a 5.

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

Usage Guidelines3/5

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

Usage is only implied: the agent can infer 'use this to bring an archived crystal back' from the wording, but there is no explicit when-to-use, no precondition (e.g. crystal must currently be archived), and no reference to alternatives such as crystal_archive or crystal_hydrate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.2.0
    • Addedcrystal_connect
    • Removedcrystal_delete
    • Addedcrystal_prune
  2. 3 tool updatesv1.1.0
    • Removedcrystal_list
    • Addedcrystal_search
    • Addedcrystal_stats
  3. 15 tool updatesv0.1.0
    • First observedcrystal_archive
    • First observedcrystal_artifact
    • First observedcrystal_batch
    • First observedcrystal_checkpoint
    • First observedcrystal_delete
    • First observedcrystal_goal_transition
    • First observedcrystal_hydrate
    • First observedcrystal_init
    • First observedcrystal_list
    • First observedcrystal_melt
    • First observedcrystal_slice_fork
    • First observedcrystal_task_transition
    • First observedcrystal_transient_lease
    • First observedcrystal_triage
    • First observedcrystal_unarchive

TDQS

B3.3/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target distinct lifecycle operations (init, checkpoint, task/goal transition, hydrate, archive/unarchive, prune, connect). A few overlap conceptually—checkpoint vs melt both manipulate DAG nodes, and several tools bundle multiple actions (crystal_artifact handles register/list/inspect; crystal_transient_lease handles create/clean/promote)—but descriptions keep boundaries clear enough.

Naming Consistency5/5

Every tool follows the crystal_<snake_case_noun/verb> pattern consistently, with readable and predictable suffixes. No camelCase or stylistic drift.

Tool Count4/5

17 tools is on the heavier side but justified by a rich domain (DAG lifecycle, leasing, artifacts, archival, bonding). Each tool maps to a distinct operation, though a couple could theoretically be merged.

Completeness4/5

Covers the full lifecycle: init, checkpoint, task/goal transitions, leases, forking, hydration, triage, archive/unarchive, melt, prune, connect, search, stats, and batch. Some minor gaps (e.g. no rename/update-metadata or explicit delete beyond prune) but core workflows are complete.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Production-grade, autonomous Model Context Protocol (MCP) server that elevates AI models from stateless code generators into persistent, self-verifying software engineers.
    21
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first MCP server that lets AI agents query their own LLM call history as a branchable DAG and offload conversation context into immutable, AES-256-GCM-encrypted capsules — restorable in full or per segment, crypto-shreddable, with RAID-style replication. 12 tools, no API keys, no cloud.
    49 npm
    3
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Enables local-first LLM orchestration with persistent memory, knowledge management, routing, swarm patterns, API probing, tests, automation planning, and plugin discovery via a stdio MCP server, using SQLite for offline storage.
    51
    62 npm
    1
    MIT