distillery_store
Capture new knowledge (session notes, bookmarks, meeting minutes) and return an entry ID, detecting near-duplicates and conflicts to maintain data integrity.
Instructions
Store a new knowledge entry and return its ID with dedup/conflict information.
USE WHEN: capturing a new piece of knowledge (session notes, bookmarks, meeting minutes, ideas, etc.) into the Distillery store.
PARAMS:
content (str, required): The knowledge content to store.
entry_type (str, required): Entry classification. Valid: [session, bookmark, minutes, meeting, reference, idea, inbox, github, person, project, digest, feed].
author (str, required): Who authored this entry.
project (str, optional): Project scope for the entry.
tags (list[str], optional): Tags for categorisation; supports namespaced tags (e.g. "topic/ai").
metadata (dict, optional): Arbitrary key-value metadata. Some entry types REQUIRE specific metadata keys (TYPE_METADATA_SCHEMAS); omitting them returns INVALID_PARAMS naming the missing/invalid field:
person: expertise (list[str])
project: repo (str)
digest: period_start, period_end (str)
github: repo, ref_type, ref_number; ref_type in [issue, pr, discussion, release]
feed: source_url, source_type; source_type in [rss, github] Other types (session, bookmark, minutes, meeting, reference, idea, inbox) accept arbitrary metadata.
source (str, optional, default="claude-code"): Origin of the entry. Valid: [claude-code, manual, import, inference, documentation, external].
session_id (str, optional): Opaque session identifier for grouping related entries.
dedup_threshold (float, optional, default=config): Cosine similarity threshold (0-1) for near-duplicate warnings.
dedup_limit (int, optional, default=config): Max duplicates to report.
verification (str, optional, default="unverified"): Verification status. Valid: [unverified, testing, verified].
expires_at (str, optional): ISO 8601 datetime; entries past expiry appear in stale results.
output_mode (str, optional, default="full"): Response verbosity. Valid: [full, summary]. Use "summary" for bulk imports to skip dedup/conflict checks.
include_conflict_prompt (bool, optional, default=False): When true, each conflict candidate carries the ~1–2 KB
conflict_promptLLM template required to round-trip throughdistillery_find_similar(conflict_check=true). Defaults to false to keep store responses small (issue #348).
RETURNS (success): { entry_id: str, persisted: bool, dedup_action: str, conflicts?: list[{entry_id, content_preview, similarity_score, conflict_prompt?}], warnings?: list } RETURNS (error): { error: true, code: "INVALID_PARAMS" | "BUDGET_EXCEEDED" | "INTERNAL", message: "..." }
RELATED: distillery_find_similar (for pre-store dedup checks), distillery_correct (to supersede an existing entry)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| author | Yes | ||
| source | No | ||
| content | Yes | ||
| project | No | ||
| metadata | No | ||
| entry_type | Yes | ||
| expires_at | No | ||
| session_id | No | ||
| dedup_limit | No | ||
| output_mode | No | ||
| verification | No | ||
| dedup_threshold | No | ||
| include_conflict_prompt | No |