Claude-skills-kit weekly-digest-synthesizer
Compile weekly status digests from multiple .md/.txt files. Extracts project updates, action items, and blockers into a structured report. Use when aggregating team status notes into a weekly summary. Triggers: 'compile weekly digest', 'weekly digest', 'составь дайджест', 'скомпилируй статусы'.
git clone https://github.com/KirKruglov/claude-skills-kit
T=$(mktemp -d) && git clone --depth=1 https://github.com/KirKruglov/claude-skills-kit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/weekly-digest-synthesizer" ~/.claude/skills/kirkruglov-claude-skills-kit-weekly-digest-synthesizer && rm -rf "$T"
skills/weekly-digest-synthesizer/SKILL.mdWeekly Digest Synthesizer
This skill compiles status updates from multiple local
.md and .txt files into a structured weekly digest. It groups content by project area, surfaces action items and blockers, and outputs a ready-to-share markdown file named weekly-digest-YYYY-MM-DD.md.
Input:
- Folder path or list of
/.md
files containing status updates.txt - Optional: digest date (defaults to today), output format preference (concise / detailed)
Output:
— structured digest with Summary, Projects, Action Items table, Risks & Blockersweekly-digest-YYYY-MM-DD.md
Language Detection
Detect the user's language from their message:
- If Russian (or contains Cyrillic): respond in Russian
- If English (or other Latin-script language): respond in English
- If ambiguous: respond in the language of the trigger phrase used
Instructions
Step 1: Validate Input
-
Determine input source from the user's message:
- Folder path → scan all
and.md
files in that folder.txt - List of files → use those files directly
- No path provided → scan the current working directory for
and.md
files.txt
- Folder path → scan all
-
Verify files exist and are readable:
- If no files found: stop. Report "No .md or .txt files found at [path]. Provide a folder path or list of files to process."
- If a specific file path does not exist: stop. Report "File not found: [path]. Check the path and try again."
-
Check for unsupported file formats:
- If user provides only
,.docx
,.xlsx
, or similar: stop. Report "Unsupported file types. This skill processes .md and .txt files only.".pdf
- If user provides only
-
Determine digest date:
- If user specifies a date → use that date in output filename
- If not specified → use today's date (YYYY-MM-DD format)
Step 2: Read and Parse Files
-
Read each file in turn and extract:
- Project or area name: inferred from filename, H1/H2 heading, or leading section header
- Status indicator: on track / at risk / blocked — detected from keywords ("blocked", "delayed", "at risk", "completed", "done", "✅", "⚠️", "🔴") or inferred from context
- Key updates: bullet points, sentences describing progress, decisions, or changes
- Action items: tasks with any mention of owner name and/or due date
- Blockers: sentences or bullets mentioning dependencies, blockers, or unresolved issues
-
Handle empty or sparse files:
- If a file is empty or contains only headings with no body content: skip it; note in digest footer as "Files with no updates: [filename]"
- If a file has content but no structured indicators: include as raw notes under the filename; add note "No structured status found — raw content included"
Step 3: Group and Deduplicate
-
Group extracted content by project or area:
- Use project name from file heading if available
- Use filename (without extension) as fallback project name
-
Identify cross-cutting signals across all files:
- Recurring blockers (same blocker mentioned in 2+ files)
- Action items with no identified owner
- Action items with no due date
- Projects with "blocked" status
-
Flag possible duplicate projects:
- If two file headings look similar (e.g., "Project Alpha" and "Alpha Q2"): group under a shared section and add note "[Possible duplicates — verify manually]"
- Do not silently merge
-
Check for large input:
- If 20+ files or total content exceeds ~10,000 words: add a note at digest header: "Large input: [N] files processed. Review for completeness."
Step 4: Check for Existing Output File
- Check if
already exists in the working directory:weekly-digest-[date].md- If yes: ask user — "File weekly-digest-[date].md already exists. Overwrite or save as weekly-digest-[date]-v2.md?"
- Wait for response before writing
Step 5: Write Digest
- Write
using the Output Format belowweekly-digest-YYYY-MM-DD.md - Populate all sections; mark any empty section explicitly (e.g., "No blockers reported")
- Report in chat: "Digest written: weekly-digest-[date].md — [N] files processed, [N] projects, [N] action items"
Output Format
# Weekly Digest — [Date] **Compiled from:** [N] files | **Projects covered:** [N] | **Action items:** [N] [Note if large input: "Large input: N files — review for completeness"] --- ## Summary [2–4 sentences: overall week health, key progress, main risks or blockers] --- ## Projects ### [Project / Area Name] - **Status:** ✅ On track / ⚠️ At risk / 🔴 Blocked - **Updates:** [key progress points, 1–3 bullets] - **Action items:** [owner] — [action] by [date or TBD] - **Blockers:** [if any; "None" if clear] ### [Next Project...] --- ## Cross-Cutting Action Items | Owner | Action | Due | Source File | |-------|--------|-----|-------------| | [name or TBD] | [action description] | [date or TBD] | [filename.md] | --- ## Risks & Blockers - [Blocker or risk description — source: filename.md] - [Recurring blocker flagged across N files] --- ## Files Processed Files included: [list] Files with no updates: [list, or "None"] [Possible duplicates: [list, or omit if none]]
Field rules:
- Status: use ✅ / ⚠️ / 🔴 based on detected keywords; default to ✅ if no risk signals found
- Action items: include owner when mentioned; use "TBD" if no owner identified; flag "No owner" items in Cross-Cutting section
- Summary: write from extracted content — do not invent progress or add assumptions
Edge Cases
- Empty or heading-only files: Skip; note in "Files with no updates" section
- No structured status indicators: Include raw content; add note "No structured status found"
- Possible duplicate project names: Group together; add "[Possible duplicates — verify manually]" note
- 20+ files or 10,000+ words total: Proceed; add "Large input" note at digest header
- Digest file already exists: Ask user before overwriting
Negative Cases
- No files found: Stop. Report "No .md or .txt files found at [path]."
- Invalid file path: Stop. Report "File not found: [path]."
- Only unsupported file formats: Stop. Report "Unsupported file types. Convert to .md or .txt first."