Skip to main content
Glama

person_write

Write or update a person card to capture the current state of what you know about one human, merging new details with existing fields by default.

Instructions

Write a person card — the condensed current state of what you know about one human (not a knowledge page, not the memories: those stay the evidence). merge (default true) merges where/how one level deep (a field passed as null is removed), and replaces name, summary and may when passed; merge: false makes the card exactly what was passed. Passing summary says "I re-read the evidence and this is still right" and moves synthesized_at. Reserved keys (tier, field, projects, scope, trust) are rejected: gates stay in the harness. Worker bodies must not call this — cards are written by Art.

Input Schema

NameRequiredDescriptionDefault
howNoHow to work with them: field -> value (e.g. tz, mode, loop_in). null removes a field.
mayNoWhat they were said to be allowed to do, each with its source. Descriptive, not a grant. Replaces the whole list.
nameNoDisplay name (required on create and on merge: false), ≤ 80 chars.
slugYesPerson slug: lowercase [a-z0-9-], e.g. "patrick-kells".
mergeNoDefault true. false: the card becomes exactly what was passed.
whereNoWhere the person is in each system: field -> {value, verified_at?, source?, stale_after_days?}. null removes a field (merge writes only).
summaryNoShort synthesized summary, ≤ 1,200 chars.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.1

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only carry the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description goes well beyond that, disclosing merge depth ('one level deep'), that a null field is removed, that merge:false overwrites the card wholesale, that passing summary has the side effect of moving synthesized_at, and that reserved keys are rejected. That is exactly the extra behavioural context annotations don't provide.

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-loads the core identity of a person card, then layers merge semantics, then side effects and restrictions. It is a single dense passage rather than clearly delimited points, which makes it slightly harder to scan, but essentially no sentence is wasted.

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 7-parameter mutation tool with nested objects and no output schema, the description covers identity, merge behaviour, replacement semantics, side effects and access restrictions. The one gap is that, with no output schema present, it never says what a successful write returns.

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 100%, so the schema already carries the baseline. The description nevertheless adds real meaning — merge's default and one-level merge semantics, null-as-delete for nested fields, and what passing summary signifies ('I re-read the evidence and this is still right'). It adds value on top of structured data rather than restating it.

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

Purpose5/5

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

States a specific verb+resource ('Write a person card') and immediately scopes it against near neighbours by defining what a card is not — not a knowledge page, not the memories. An agent can distinguish it from knowledge_write and remember without opening the schema.

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 concrete when-not guidance ('not a knowledge page, not the memories: those stay the evidence') and an explicit audience restriction ('Worker bodies must not call this — cards are written by Art'). It stops short of naming the alternative tools to use instead, so routing is implied rather than spelled out.

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