Skip to main content
Glama

Erinys Save

erinys_save

Saves structured observations to ERINYS memory, records author provenance, and enforces optional project/scope gates to block unauthorized writes.

Instructions

Save a structured observation to ERINYS memory.

principal: この記憶を書いた主体(例 claude-opus-4-8 / codex)。省略時は env ERINYS_PRINCIPAL → "unknown"。VMG provenance に記録される。

P0-7 (opt-in): allowed_projects / allowed_scopes は書き込み許可の access gate。明示引数 > env(ERINYS_ALLOWED_PROJECTS / ERINYS_ALLOWED_SCOPES)> 無効(None)。どれも設定されなければ従来どおり無条件に保存する。許可外の project/scope への書き込みは POLICY_DENIED で拒否する。

Input Schema

NameRequiredDescriptionDefault
typeNomanual
scopeNoproject
titleYes
contentYes
projectNo
metadataNo
principalNo
topic_keyNo
session_idNo
source_classNo
allowed_scopesNo
allowed_projectsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

B3.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it documents the principal resolution chain (explicit → ERINYS_PRINCIPAL → 'unknown'), that provenance is recorded in VMG, and that writes outside allowed_projects/allowed_scopes are rejected with POLICY_DENIED while unset gates allow unconditional writes. That is real mutation-safety context. It stops short of stating whether a save with an existing topic_key overwrites, deduplicates, or errors.

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 one-line purpose is front-loaded, followed by two focused blocks on principal and the access gate; no sentence is padding. The mixed Japanese/English phrasing and embedded version labels (P0-7) add mild noise but do not obscure meaning.

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?

An output schema exists, so return values need not be explained, but for a 12-parameter write tool with zero schema descriptions the definition is not complete enough. Nine parameters, including the key identity fields topic_key and session_id, are left for the agent to guess at.

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

Parameters2/5

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

Schema description coverage is 0% across 12 parameters, so the description must compensate and it largely does not. It covers only principal, allowed_projects, and allowed_scopes; title, content, type, scope, project, metadata, topic_key, session_id, and source_class are entirely undocumented, including the meaning of topic_key and source_class, which are non-obvious.

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 and resource: 'Save a structured observation to ERINYS memory.' An agent immediately knows this is the single-record write path. It does not, however, contrast itself with the very similar erinys_batch_save or erinys_update siblings, leaving the boundary implicit.

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 explains the conditional access-gate behavior (explicit arg > env > None) and the POLICY_DENIED outcome, which is useful. But it never says when to choose this tool over erinys_batch_save (multi-record) or erinys_update (mutating an existing memory), so selection among siblings is left to inference.

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