monthly-insights · git:20260810.9572c5c · 2026-08-10 · sha256 9395f6735b1ce95c

monthly-insights git:20260810.9572c5cA

Immutable. This exact content is served forever at /api/v1/blob/9395f6735b1ce95c.

---
name: monthly-insights
description: Generate a Claude Code usage report, extract key takeaways, save to Obsidian vault, and email a clean summary. Use when you say "monthly insights", "insights email", "email me my report", or "monthly review".
allowed-tools: Bash(gws *) Read Write Skill
---

# Monthly Insights Skill

Generates your Claude Code usage report, extracts the key takeaways, saves them to your Obsidian vault, and emails you a summary.

## Setup (do this once)

1. **Install gws** (Google Workspace CLI) via Homebrew: `brew install gws`
2. **Authenticate**: `gws auth login`
3. Update the two placeholders below:
   - `YOUR_VAULT_PATH` — the absolute path to your Obsidian vault folder
   - `YOUR_EMAIL` — the email address you want the summary sent to

## Step 1 — Generate the report

Run the `/insights` skill to produce the usage report.

```
/insights
```

Wait for it to finish. The report HTML will be at:
`~/.claude/usage-data/report.html`

## Step 2 — Extract key sections

Read `~/.claude/usage-data/report.html` and pull out:

1. **Top friction points** — the friction category titles plus their descriptions (from the "Where Things Go Wrong" section)
2. **Suggested CLAUDE.md rules** — every rule from the "Suggested CLAUDE.md Additions" section
3. **Features to try** — each feature name, one-liner, and the "Why for you" rationale

These three extractions are used in both Step 3 (Obsidian note) and Step 4 (email).

## Step 3 — Save to Obsidian vault

Write the note directly to your Obsidian vault using the Write tool. Save to a folder of your choice (e.g. "Claude Tips"):

```
YOUR_VAULT_PATH/Claude Tips/Claude Code Review YYYY-MM-DD.md
```

Build the note content as Obsidian-flavored Markdown with YAML frontmatter properties:

```
---
date: YYYY-MM-DD
tags:
  - claude-code
  - monthly-review
type: review
---

# Claude Code Review YYYY-MM-DD

## Friction Points
1. **[title]** — [one-sentence description]
2. ...

## Suggested CLAUDE.md Rules
- [rule text]
- ...

## Features to Try
1. **[feature name]** — [one-liner]
   Why for you: [rationale]
2. ...

## Full Report
Open `~/.claude/usage-data/report.html` in your browser.
```

Use the Write tool to create the file at the path above. Do NOT use the `obsidian` CLI for note creation (it can silently fail).

Confirm the note was created with the note name.

## Step 4 — Email via gws

Build a base64url-encoded RFC 2822 message and send it with the gws CLI.

Compose the plain-text email body using this template:

```
Monthly Claude Code Review

FRICTION POINTS
1. [title] — [one-sentence description]
2. ...
3. ...

SUGGESTED RULES FOR CLAUDE.md
- [rule text]
- ...

FEATURES TO TRY
1. [feature name] — [one-liner]
   Why for you: [rationale]
2. ...

---
Full report: open ~/.claude/usage-data/report.html in your browser.
Obsidian note: Claude Code Review YYYY-MM-DD
```

Keep it concise. No fluff, no greetings, no sign-off beyond the report link.

Use a temp file to avoid escaping issues:

```bash
cat > /tmp/insights-email.txt << 'EMAILEOF'
[composed body here]
EMAILEOF
BODY=$(cat /tmp/insights-email.txt)
RAW=$(printf "To: YOUR_EMAIL\r\nSubject: Monthly Claude Code Review\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n%s" "$BODY" | base64 | tr '+/' '-_' | tr -d '=\n')
gws gmail users messages send --params '{"userId":"me"}' --json "{\"raw\":\"$RAW\"}"
rm /tmp/insights-email.txt
```

Confirm the send succeeded (look for an `id` in the response).

## Summary of outputs

When all four steps are complete, confirm:

1. Report generated at `~/.claude/usage-data/report.html`
2. Key takeaways extracted (friction, rules, features)
3. Obsidian note saved as "Claude Code Review YYYY-MM-DD"
4. Email sent with subject "Monthly Claude Code Review"