Meeting summary
Generate a branded HTML meeting summary from CallingClaw meeting data. Includes: meeting topic, summary, review items table (screenshot + action), action items, transcript, and known issues. Uses CallingClaw light theme (Space Grotesk, Inter, accent #dc4a3a). Use when: meeting ends, user asks for summary, /meeting-summary command.From its SKILL.md
npx -y skills add XEasonChan/callingclaw --skill meeting-summaryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.8 KB, as published. Nobody here has run it
Meeting Summary Skill
Generate a polished HTML meeting summary after a CallingClaw meeting.
When to Use
- After a meeting ends (manually or via
/meeting-summary) - When user asks: "generate summary", "meeting report", "what did we discuss"
Data Sources
Collect data from these sources (all are best-effort — skip if unavailable):
1. Transcript
curl -s "http://localhost:4000/api/meeting/transcript?count=200"
Returns { entries: [{ role, text, ts }], total }. Filter out:
[Screen]entries (screen descriptions, keep separately for context)- Duplicate/repeated entries
- Hallucinated text (nonsensical English from Chinese speech)
2. Backend Logs — Voice Transcript
Search the most recent backend log file for [Voice] AI: and [Voice] User: entries.
These contain the actual voice transcript with better quality than the API.
3. Meeting Screenshots (Frames)
ls ~/.callingclaw/shared/meetings/{MEETING_ID}/frames/
Files are {timestamp_ms}.jpg. Pick 5-8 representative frames evenly distributed
across the meeting duration. Serve via: /api/meeting/frame/{meetingId}/{filename}
4. Meeting Status
curl -s "http://localhost:4000/api/status"
Get meeting ID, topic, participants from the current or last session.
5. Session Manager
curl -s "http://localhost:4000/api/shared/manifest"
Find the meeting session by ID for topic, start/end time, prep brief.
Output Format
Generate an HTML file at:
callingclaw-backend/public/meeting-summary-{YYYYMMDD}.html
Accessible at: http://localhost:4000/meeting-summary-{YYYYMMDD}.html
HTML Template Structure
Use CallingClaw landing page design tokens (light theme):
:root {
--bg: #ffffff;
--bg-subtle: #faf9f9;
--text: #1f2937;
--text2: #6b7280;
--text3: #9ca3af;
--accent: #dc4a3a;
--accent-light: #fef2f1;
--success: #4aa682;
--success-light: #e6f4ee;
--warning: #f59e0b;
--warning-light: #fef3c7;
--border: #e5e7eb;
--border-light: #f3f4f6;
--font-display: "Space Grotesk", system-ui, sans-serif;
--font-body: "Inter", system-ui, sans-serif;
--font-mono: "JetBrains Mono", monospace;
}
Required Sections (in order):
1. Header
- CallingClaw logo (inline SVG C shape)
- Meeting title (from topic or AI-generated)
- Meta: date, duration, participants, version badge
2. Meeting Summary
- Summary card with: goal, key decisions, unresolved items
- Keep concise — 3-5 bullet points max
3. Review Items (MOST IMPORTANT)
Table format — left: screenshot, right: discussion + action
<table class="review-table">
<thead><tr><th>Screenshot</th><th>Discussion & Action</th></tr></thead>
<tbody>
<tr>
<td class="frame-cell">
<img src="/api/meeting/frame/{meetingId}/{filename}" alt="...">
</td>
<td class="content-cell">
<span class="time-badge">{HH:MM}</span>
<h4>{Topic discussed}</h4>
<p>{What was discussed and why}</p>
<p><span class="priority p1|p2|p3">P1|P2|P3</span> {Action direction}</p>
</td>
</tr>
</tbody>
</table>
Select 4-6 key moments from the meeting. For each:
- Pick the most relevant screenshot frame (closest timestamp)
- Summarize what was discussed at that moment
- State the action direction / decision made
- Assign priority (P1 = critical, P2 = important, P3 = nice-to-have)
4. Action Items
Table with columns: Priority, Task, Owner
5. Key Transcript
Filtered conversation — only meaningful exchanges, no filler ("嗯"), no hallucinations. Show role (AI/User), text, timestamp.
6. Known Issues (if any)
Issues discovered during the meeting. Each with title + description.
7. Footer
"Generated by CallingClaw v{version}" + Meeting ID + date
Priority Badges
<span class="priority p1">P1</span> <!-- accent-light bg, accent text -->
<span class="priority p2">P2</span> <!-- warning-light bg -->
<span class="priority p3">P3</span> <!-- border-light bg -->
Frame API
Screenshots served via: GET /api/meeting/frame/{meetingId}/{filename}
Returns JPEG with Cache-Control: public, max-age=86400.
Example Reference
See: callingclaw-backend/public/meeting-summary-20260326.html
This is the canonical reference for styling and layout.
After Generation
- Open in browser:
open "http://localhost:4000/meeting-summary-{date}.html" - Tell user the URL
- Ask if they want to export as PDF or share