agentsclimarketplace

Meeting summary

Skill XEasonChan/callingclaw/.agents/skills/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

Install
npx -y skills add XEasonChan/callingclaw --skill meeting-summary

Assembled 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

  1. Open in browser: open "http://localhost:4000/meeting-summary-{date}.html"
  2. Tell user the URL
  3. Ask if they want to export as PDF or share

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.