AgentStack
SKILL verified MIT Self-run

Chat Insights

skill-deusmaximus-chat-insights-chat-insights · by DeusMaximus

Generate a usage insights report by analysing recent claude.ai conversations. Trigger when the user asks to "run insights", "generate a usage report", "analyse my recent conversations", or similar. Produces a visual HTML report covering what's working, friction points, topic breakdown, and quick wins — modelled on Claude Code's /insights command but for the claude.ai web interface. Do NOT use for…

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add skill-deusmaximus-chat-insights-chat-insights

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Chat Insights? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Chat Insights Skill

Generate a usage insights report from recent claude.ai conversations, similar in spirit to Claude Code's /insights command. The output is a rendered HTML widget with metric cards, a what's working section, friction analysis (split by Claude-side and user-side), topic breakdown, and quick wins.

Context and limitations

This skill uses the recent_chats and conversation_search tools, which return conversation snippets and summaries — not full transcripts. This means:

  • Pattern detection is directional, not exhaustive
  • Hallucination counts and friction examples are necessarily lower bounds
  • Only conversations in the current scope are visible: from outside a Project, conversations inside Projects aren't searchable, and vice versa

Be explicit about these limitations in the report or as a note following it. Do not present findings with more confidence than the data warrants.

If fewer than ~10 usable conversations are retrieved, tell the user the dataset is too thin rather than producing a low-signal report.

Data collection strategy

Step 1 — Pull recent conversations

Pull two batches using recent_chats (n=20 each), paginating with before set to the earliest updated_at from the first batch. This gives up to 40 conversations as the working dataset — the actual time span depends on how frequently the user chats.

If the user specifies a timeframe ("last week", "this month"), use before/after parameters accordingly. Otherwise, just take whatever the most recent ~40 conversations cover.

Step 2 — Targeted gap-filling (optional)

If memory entries reference topics that don't appear in the retrieved batch, or if the batch is heavily skewed toward one area, use conversation_search with 1–2 targeted queries to pull relevant conversations from the gaps.

Do not run more than 3 total conversation_search calls. The point is to fill gaps, not to exhaustively catalogue everything.

Step 3 — Synthesise before rendering

Read through all retrieved conversations before writing any output. Build a mental model of:

  • Recurring topics and rough frequency
  • Patterns in how the user opens conversations (with context vs. without)
  • Sessions where Claude made errors the user caught
  • Sessions that ended with an open loop or deferred decision
  • MCP tools actively used
  • What the user used Claude for that wasn't purely technical (sanity checks, second opinions, creative/personal topics)

Only then write the report.

Synthesis framework

What's working

2–4 items. Focus on interaction patterns and behaviours that are genuinely effective — not generic praise. Examples: efficient use of a specific MCP tool, a consistent correction style, strong contextual memory between sessions, effective use of Claude for a particular task type.

What's hindering you

Split into two columns:

Claude-side friction — Hallucinations, reflex over-answering, wrong defaults, failure to check docs or tools before answering. Use specific examples from the retrieved conversations where possible.

User-side friction — Not enough context at session open, repeated open loops, decisions deferred despite having all the information needed, conversations that trailed off without resolution.

Be direct. These sections are most useful when specific and honest, not hedged.

Topic breakdown

Categorise sessions into ~6–8 topic areas with rough counts, if the dataset supports it — collapse to fewer if any category would have <3 sessions. Use badges. Derive the categories from the actual conversation mix; do not force sessions into predetermined categories. "Misc" is fine for outliers.

Assign badge colours to encode meaning rather than sequence. Suggested mappings as a starting point: blue for technical/work topics, teal for infrastructure/homelab, purple for hardware/purchasing, coral for security or scam detection, amber for AI/meta topics. Adjust freely based on what the user actually talks about.

Quick wins

2–3 specific, actionable suggestions. These should be things the user could actually do in the next week, not general advice. Reference specific open loops or patterns from the session data where possible.

Visual output

Requires the visualize tool. Call visualize:read_me (modules: ["data_viz", "chart"]) first, then render with visualize:show_widget.

Metric cards (top of report)

Display 4 cards in a grid. Default suggestions:

  • Conversations (count)
  • Non-coding topics (% of sessions)
  • MCP tools used (count, list key ones as subtitle)
  • Hallucinations caught (count, "by you — lower bound" as subtitle, since snippets undercount)

Adjust these if the data suggests different metrics are more meaningful for this particular user's conversation mix.

Sections

Render in order: metric cards → what's working → what's hindering → topic breakdown → quick wins.

Use the CSS variable system for all colours throughout. Do not hardcode light/dark mode values.

Output notes

After the widget, add a brief plain-text note covering:

  • Approximate date range and conversation count analysed
  • Any obvious gaps in coverage (e.g. Claude Code sessions don't appear here — those are best covered by Claude Code's native /insights command)
  • Whether context limits affected the analysis

Keep this note short — 2–4 sentences.

Known tool quirks

  • recent_chats returns up to 20 results per call; paginate with before parameter set to the earliest updated_at from the prior batch
  • Some conversations appear as summaries only (no snippet content) — treat these as partial data points
  • Conversations inside Claude Projects are not searchable from outside a project context; the report will only cover the scope the user is currently in
  • conversation_search queries should use content nouns from the actual conversations, not meta-words like "discussed" or "talked about" — the tool does text matching, not semantic search

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.