Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions skills/changelog/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Apache License 2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
98 changes: 98 additions & 0 deletions skills/changelog/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
name: changelog
description: Generate a weekly changelog card for Twitter/X. Reads git log, distills the work into 6 punchy items, fills an HTML template, and opens it in the browser. Use when writing changelogs, weekly updates, or social media posts about shipped work.
license: Apache-2.0
---


Generate the weekly changelog Twitter card. Run every Friday (or whenever you ship).

## Steps

### 1. Get this week's commits
```bash
git log --oneline --since="7 days ago"
```

Get the stats:
```bash
# Commit count
git log --oneline --since="7 days ago" | wc -l

# Files + lines changed
git log --since="7 days ago" --pretty=tformat: --numstat | awk '{files++; add+=$1; del+=$2} END {print files " files · " add+del " lines"}'
```

### 2. Understand what actually shipped
Read each commit message. For any that are unclear, look at the diff:
```bash
git show [commit-hash] --stat
```
Group commits into themes. Ignore pure refactors, dependency bumps, and test fixes — users don't care. Focus on what changed for them.

### 3. Distill into exactly 6 items
Each item needs:
- **An emoji** that fits the work (✨ new feature, 🐛 fix, ⚡ performance, 🎨 design, 🔒 security, etc.)
- **A short title** — 3-5 words, lowercase, punchy
- **2-3 lines of body** — explain the user benefit, not the technical detail. Write like a human, not a release note. "credits update in real time" not "implemented shared zustand store for credit synchronisation."

If fewer than 6 meaningful things shipped, combine small related items or include one "under the hood" item about stability/performance.

### 4. Find or create the changelog template
Look for a `changelogs/` directory in the repo. If there's a `template.html`, use it.

If no template exists, create `changelogs/template.html` with this structure:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 1200px; height: 628px; overflow: hidden;
background: #09090b; font-family: 'JetBrains Mono', ui-monospace, monospace;
display: flex; flex-direction: column; padding: 48px;
}
.header { color: #71717a; font-size: 13px; margin-bottom: 32px; letter-spacing: 0.05em; }
.header span { color: #fafafa; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; flex: 1; }
.item { display: flex; gap: 12px; }
.emoji { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.content h3 { color: #fafafa; font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.content p { color: #71717a; font-size: 11px; line-height: 1.6; }
.content p strong { color: #a1a1aa; }
.footer { color: #3f3f46; font-size: 11px; margin-top: 24px; letter-spacing: 0.05em; }
</style>
</head>
<body>
<div class="header">what shipped this week · <span>MONTH DAY</span></div>
<div class="grid">
<div class="item"><div class="emoji">EMOJI</div><div class="content"><h3>TITLE</h3><p>BODY LINE 1<br>BODY LINE 2<br><strong>BODY LINE 3</strong></p></div></div>
<!-- repeat 5 more times -->
</div>
<div class="footer">N commits · N files · N lines · all live</div>
</body>
</html>
```

### 5. Create this week's file
Create `changelogs/YYYY-MM-DD.html` (use today's date).

Fill in:
- Header date (e.g. "what shipped this week · march 1")
- All 6 items
- Footer stats from step 1

### 6. Open in browser
```bash
open changelogs/YYYY-MM-DD.html
```

Tell the user: "ready — screenshot the browser window (⌘+Shift+4 on Mac) and post it."

## Voice
Lowercase. Direct. No buzzwords. User benefit first, technical detail never. If you can't explain the value to a non-engineer in one line, rewrite it.

## Design rule
If using an existing template — never touch the CSS. Content only. The design is locked.
13 changes: 13 additions & 0 deletions skills/cold-email/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Apache License 2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
127 changes: 127 additions & 0 deletions skills/cold-email/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
name: cold-email
description: Write cold emails that actually get responses. Strict 2-4 sentence formula for investors, employers, mentors, partners. Use when drafting outreach emails, investor emails, or any professional cold outreach.
license: Apache-2.0
---


# Cold Email Generator

Write ultra-short, specific, bold cold emails that get responses. Output directly in chat.

## Required Information

Before writing, gather these from user (prompt if missing):

1. **Recipient** — Name, role, company
2. **Your credentials** — Past wins, numbers, notable affiliations (user provides rough draft)
3. **Your ask** — What you want (user provides)
4. **Hook context** — Something recent/specific about recipient (auto-research or user provides)

## The Formula (strict)

Every email follows this structure:

```
Subject: [Short, casual, specific]

Hey [FirstName],

[Specific hook - what prompted this email RIGHT NOW] (1 sentence)

[Your credibility with concrete details] (1 sentence)

[Clear ask with specific time/topic] (1 sentence)

[Name]
```

**Total: 2-4 sentences maximum. No signature block.**

## Email Types (auto-select based on context)

| Type | Key Elements |
|------|--------------|
| **Advice/Mentorship** | Reference their experience, state your situation briefly, ask for specific time |
| **Investor Outreach** | Reference relevant investment, traction with numbers, "would love to tell you more" |
| **Job/Internship** | Reference role/company, one-line achievement, specific skill match |
| **Partnership** | What you do + impressive client/number, specific value prop for them |
| **Paid Consulting** | Offer to pay, reference their specific expertise, clear time ask |

## Subject Line Rules

**Good:** Short, casual, specific
- "Quick question [Name]"
- "[Name] - quick ask"
- "Re: [thing they posted about]"
- Just their first name

**Bad:** Formal, long, generic
- "Seeking Your Valuable Mentorship"
- "Introduction from an Aspiring Entrepreneur"
- Anything with "touching base"

## Voice Rules

### DO
- Be ultra-specific — "I saw your LinkedIn post about your angel group" not "I admire your work"
- Lead with recent context — Reference something from THIS WEEK if possible
- State concrete credentials — Numbers, past wins, notable companies
- Make a clear ask — "20 min call about X" not "pick your brain"
- Write casual — Like texting, not applying to grad school
- Be bold — Not the time for modesty
- Offer value when possible — "Would love to pay you for an hour"

### DON'T
- "I'd love to pick your brain"
- "I hope this email finds you well"
- Generic compliments without specifics
- Long paragraphs about your background
- Vague asks like "get coffee sometime"
- Being overly humble or apologetic
- Professional email signatures
- More than 4 sentences

## Editing Checklist

Before outputting, verify:

- [ ] 2-4 sentences max?
- [ ] Specific and recent hook?
- [ ] Credibility with numbers/names?
- [ ] Crystal clear ask?
- [ ] Casual tone (would send to a friend)?
- [ ] No filler words?
- [ ] No generic phrases?
- [ ] Short casual subject line?
- [ ] No email signature?

## Workflow

1. Check what info user provided
2. Prompt for any missing required info (recipient, credentials, ask)
3. Auto-select email type based on context
4. Research/craft specific hook (recent post, news, mutual connection)
5. Draft email following the formula
6. Edit ruthlessly — cut everything that doesn't add value
7. Output email directly in chat

## Follow-Up Template

If user needs a follow-up (3-5 days after no response):

```
Subject: Re: [original subject]

Hey [Name],

Following up on this - let me know if you're interested!

[Name]
```

**One follow-up max.**

## Detailed Guide

For full examples and advanced tactics, see [references/guide.md](references/guide.md).
Loading