Skip to main content
Glama

Erinys Forget

erinys_forget

Delete an observation and its distilled descendants across all database substrates, then verify absence with a membership test; dry-run previews the deletion closure by default.

Instructions

VMG Verified Forgetting: 観測とその distilled 派生物を全 DB substrate から 削除し、不在を membership test で実証する。

forgetting は派生物に伝播する: distilled 子孫を含む closure ごと忘れる (子に親の情報が残るのを防ぐ)。closure を leaf-first で単一Txで削除し、 observations/vec/FTS(トリガ)/edges/collisions(CASCADE) を消す。 erinys_delete と違い、子を持つ親も忘れられる(NO ACTION FK を closure で解消)。 dry_run(既定)では削除せず closure と現在の在席のみ返す。

範囲外(正直な明示): Obsidian 書庫は次回 export の orphan 掃除で遅延除去、 .bak バックアップは復元用に設計上保持するため、この DB 検証の対象外。

Input Schema

NameRequiredDescriptionDefault
idYes
dry_runNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

A4.3/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 does so: it discloses propagation to distilled descendants, leaf-first deletion inside a single transaction, which substrates are hit (observations/vec/FTS via triggers/edges/collisions via CASCADE), NO ACTION FK resolution, and the safe dry_run default. It also honestly scopes out what it will NOT verify (Obsidian vault lazy-removal on next export, .bak backups retained by design), which is exactly the kind of caveat an agent would otherwise get wrong.

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?

Information-dense and front-loaded: identity and mechanism first, propagation semantics next, the erinys_delete contrast and out-of-scope caveats last. Slight redundancy around 'closure' and very dense parenthetical substrate lists cost it a point, but no sentence is filler.

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?

An output schema exists, so return values (closure and membership-test result under dry_run) need not be spelled out. Given a destructive, cross-substrate operation, the description covers mechanism, side effects, safety default, and exclusions; the only residual gap is the meaning of the required 'id' field.

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 0%, so the description must compensate. It fully explains dry_run's default-true and non-destructive behavior, which is the higher-risk parameter, but it never says what 'id' identifies (presumably an observation id, inferable only from context). Partial compensation leaves a real gap on the required parameter.

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

Purpose5/5

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

The opening line names a specific verb+resource+scope: verified forgetting that deletes an observation and its distilled derivatives across all DB substrates, with membership-test proof of absence. It explicitly contrasts with the sibling erinys_delete ('子を持つ親も忘れられる'), so an agent can route between the two without opening either 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?

It names the alternative (erinys_delete) and the discriminating condition (parent-with-children / closure resolution), and states that dry_run is the default path that only reports. It does not cover other plausible alternatives such as erinys_prune or erinys_supersede, so the guidance is clear but not exhaustive.

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