Skip to main content
Glama

source_register

Records a primary source in a journal before ingesting it, deduping by SHA-256 or locator so repeats return the existing ID instead of creating duplicates.

Instructions

Records a primary source BEFORE ingesting it: a Source concept in a journal (default 'sources', map_create kind journal). Dedupes by sha256, else locator: a duplicate returns {id, duplicate: true, ingest_status}, writes nothing, adding locator_mismatch + existing_locator if the locator differs. Never fetches; body is your distillation. Cite its ID in provenance, then concept_patch ingest_status.

Input Schema

NameRequiredDescriptionDefault
mapNoLedger journal; default 'sources'
bodyNoDistillation: facts, decisions, open questions
titleYes
reasonNoWhy (commit trailer)
sha256NoLowercase hex SHA-256 of the original bytes
locatorNoURL or {{path:<key>}}, never a raw path
timestampNo
source_kindYes
ingest_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: dedup order (sha256, else locator), the exact duplicate return shape ({id, duplicate: true, ingest_status}), that nothing is written, that locator_mismatch + existing_locator are added on divergence, and 'Never fetches.' This is unusually rich side-effect and return disclosure.

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?

Front-loaded with the core action ('Records a primary source BEFORE ingesting it') before the dense dedup/workflow detail. The sentences are information-packed with little waste, though the jargon-heavy clause structure is somewhat dense to parse.

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 9-param tool with no annotations and no output schema, the description covers dedup, duplicate-return shape, write behavior, and the downstream workflow. Minor gaps remain around the required title/source_kind params, but an agent has enough to invoke correctly.

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?

At 56% schema coverage, the description compensates for key params: it specifies map's default ('sources'), clarifies body ('your distillation'), and explains sha256/locator as the dedup keys with locator_mismatch behavior. It leaves the required title and source_kind undocumented anywhere, but adds genuine meaning beyond the schema for the parameters that drive behavior.

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+resource: 'Records a primary source BEFORE ingesting it: a Source concept in a journal.' The dedup and workflow clauses reinforce exactly what the tool does. It doesn't explicitly name which sibling (e.g. concept_new) to avoid, but the source-specific purpose is clearly distinguishable.

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 clear timing context ('BEFORE ingesting it') and orders the workflow ('Cite its ID in provenance, then concept_patch ingest_status'). It provides strong usage context but does not name when-not to use it or explicitly contrast with alternatives like concept_new.

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