From distillery
Generate a structured summary of internal team activity over a time window
npx claudepluginhub norrietaylor/distillery --plugin distilleryThis skill is limited to using the following tools:
<!-- Trigger phrases: digest, /digest, team digest, activity summary, what did the team capture, weekly digest, team activity -->
Produce a knowledge dashboard with recent entries, corrections, expiring soon, stale knowledge, and unresolved items. In team mode, also shows team activity, related entries from teammates, and the review queue.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
Generates executive summaries from date-folder communication files (MD/JSON/TXT/CSV) using AI with automatic workspace context from static/ PROJECT/TEAM files.
Share bugs, ideas, or general feedback.
Digest generates structured summaries of internal team knowledge activity — sessions, bookmarks, meeting notes, ideas, and references — over a configurable time window. Unlike /radar, which surfaces external feed signals, Digest focuses on what the team itself has captured.
/digest)/digest --days 14)/digest --project distillery)/digest --store)See CONVENTIONS.md — skip if already confirmed this conversation.
| Flag | Description |
|---|---|
--days N | Look back N days for activity (default: 7) |
--project <name> | Scope results to a specific project |
--store | Store the digest as a knowledge entry (default: display-only) |
Compute date_from as today's date minus N days in ISO 8601 format (YYYY-MM-DD).
Retrieve internal team entries, explicitly excluding feed, github, and digest types.
3a. Fetch entries:
distillery_list(
entry_type=["session", "bookmark", "minutes", "idea", "reference"],
limit=100,
date_from=<date_from>,
output_mode="full",
# project=<name> # only if --project specified
)
If --project was specified, pass project=<name> to scope results.
Note the total_count field from the response. Report: Summarizing <len(entries)> of <total_count> entries from the last <N> days.
If no entries found, display:
No internal entries found in the last <N> days.
Suggestions:
- Capture session knowledge with /distill
- Record a meeting with /minutes
- Save a bookmark with /bookmark
Stop here if no entries exist.
3b. Fetch per-author activity counts:
distillery_list(
group_by="author",
date_from=<date_from>,
# project=<name> # only if --project specified
)
3c. Fetch entry type distribution:
distillery_list(
group_by="entry_type",
date_from=<date_from>,
# project=<name> # only if --project specified
)
You (the executing Claude instance) produce the synthesis. Do not dump raw entries.
Per-Author Activity:
For each author with entries, summarize their contributions: how many of each type, notable topics from tag analysis, and any decisions or action items surfaced from their minutes or session entries.
Top Topics:
Aggregate tags across all entries. Identify the top 5–10 tags by frequency. Present as a ranked list with entry count per topic.
Key Decisions:
Scan minutes and session entries for decision-related keywords: "decided", "decision", "agreed", "resolved", "chosen", "approved", "will use", "going with". Extract and list the most significant decisions with their source entry type and author.
Entry Counts:
Tabulate entries by type using the distillery_list(group_by=...) responses from Steps 3b and 3c. Show counts per type and per author in compact tables.
If --store was not specified, skip to Step 7.
Call distillery_find_similar(content="<digest summary text>", dedup_action=True). Handle by action field per CONVENTIONS.md:
"create": No similar entries. Proceed to Step 6.
"skip": Near-exact duplicate. Show similarity table and offer: (1) Store anyway, (2) Skip.
"merge": Very similar entry exists. Show similarity table and offer: (1) Store anyway, (2) Merge with existing, (3) Skip.
For merge: combine new digest with the most similar entry's content, call distillery_update with the entry ID and merged content, confirm and stop.
"link": Related but distinct. Show similarity table, note new entry will be linked. Ask to proceed or skip. If proceeding, include "related_entries": ["<id1>", ...] in metadata at Step 6.
Similar entries found:
| Entry ID | Similarity | Preview |
|----------|-----------|---------|
| <id> | <score%> | <content_preview> |
On skip in any case: "Skipped. No new entry was stored." and stop.
Determine author & project per CONVENTIONS.md. Compute period_start and period_end as ISO 8601 dates.
distillery_store(
content="<full digest markdown>",
entry_type="digest",
author="<author>",
project="<project>",
tags=["digest", "team-activity", "internal"],
metadata={
"period_start": "<YYYY-MM-DD>",
"period_end": "<YYYY-MM-DD>",
"entry_count": <N>,
"authors": ["<author1>", ...],
"sources": ["session", "bookmark", "minutes", "idea", "reference"]
}
)
On MCP errors, see CONVENTIONS.md error handling — display and stop.
Display the digest. If --store was specified, append the standard confirmation:
[digest] Stored: <entry_id>
Project: <project> | Author: <author>
Summary: <first 200 chars of digest>...
Tags: digest, team-activity, internal
Omit the stored block if --store was not specified.
# Team Digest — <YYYY-MM-DD> (last <N> days)
Summarizing <M> of <total> entries from the last <N> days.
---
## Per-Author Activity
### <Author Name> — <N> entries
- **Sessions (<N>):** <brief summary of themes>
- **Minutes (<N>):** <topics covered>
- **Bookmarks (<N>):** <subject areas>
---
## Top Topics
| # | Tag | Entries |
|---|-----|---------|
| 1 | <tag> | <N> |
| 2 | <tag> | <N> |
---
## Key Decisions
- **<Decision summary>** — <author>, <entry_type>, <date>
- **<Decision summary>** — <author>, <entry_type>, <date>
---
## Entry Counts
### By Type
| Type | Count |
|------|-------|
| session | <N> |
| minutes | <N> |
| bookmark | <N> |
| idea | <N> |
| reference | <N> |
### By Author
| Author | Count |
|--------|-------|
| <name> | <N> |
---
[digest] Stored: <entry_id>
Project: <project> | Author: <author>
Summary: <first 200 chars>...
Tags: digest, team-activity, internal
distillery_list(group_by=...) grouped-breakdown failures): for those, omit the affected section and continue.--days overridesession, bookmark, minutes, idea, reference entry types — never feed, github, or digest--store flagdigest, team-activity, internal tags when storingentry_type="digest" for store callsperiod_start and period_end as ISO 8601 datestotal_count from distillery_list--store is specifieddistillery_list(group_by=...) failures are non-fatal — omit the affected breakdown section and continue