Ryanhub - file viewer
filename: .cursor/skills/compose-message/SKILL.md
branch: main
back to repo
---
name: compose-message
description: >-
  Write outreach in Ryan's voice: LinkedIn notes, founder/lab DMs, cover letters,
  cold emails, follow-ups. Ambition-driven — lead with their work, not Ryan's
  resume. Draft normal + weird/loud variants for qualifying targets. Saves to
  outputs/L0001/. Use when drafting messages or company notes.
---

# Compose message

Write text Ryan might actually send. **Read `profile/voice.md`, `profile/outreach-angles.md`, and `profile/weird-outreach.md` (when target qualifies) before every draft.**

## Core rules

- Lead with the company's interesting work.
- Mention Ryan's projects only as supporting evidence.
- Do not repeatedly mention the same project.
- Do not default to Ezcaptain.
- Do not default to the physics project.
- Use specific projects only when directly relevant.
- Generate both normal/direct and weird/loud versions when appropriate.

## Read first

1. **`profile/target-thesis.md`** — positioning context
2. **`profile/outreach-angles.md`** — subject modes and agent rules
3. `profile/voice.md` — tone, templates, anti-patterns
4. `profile/weird-outreach.md` — if small/founder/lab target may need loud variant
5. Target lead: `leads/L0001-*.md` + company file `companies/CO0001-*.md`
6. Related contact: `contacts/C0001-*.md`
7. Tailored resume if exists: `outputs/L0001/resume_notes.md`
8. `profile/projects.md` — pick **relevant** proof points only

## Agent instructions

When writing company notes or outreach:

- Lead with the company's interesting work, not Ryan's resume
- Use Ryan's projects only as supporting evidence
- Do not repeatedly mention the same project
- Do not pitch boring SaaS unless the company is specifically in vertical SaaS or workflow tooling
- Prefer research, labs, AI, infra, robotics, simulation, devtools, and technically ambitious startups
- Avoid sounding like Ryan just wants any software job
- Tone: direct, curious, technical, ambitious — or **weird/loud** for top-tier small targets

## Weird outreach (optional second version)

Read **`profile/weird-outreach.md`** and **`profile/outreach-angles.md`** when the target is small, founder-led, lab-like, or unusually exciting.

**For strong targets, generate:**

1. normal/direct version
2. weird/loud version
3. brief cringe-risk note

Prepend a short **agent rationale** to the weird file (not part of the message Ryan sends):

```markdown
## Why weird
- Target qualifies because: ...
- Anchored on: {specific demo/paper/detail}
- Subject mode: intensity | honest cold | technical hook | founder-energy
- Cringe risk: low | medium — ...
```

**Never auto-send weird outreach.** Ryan picks the version and sends manually.

**Loud but true:** specific, honest, short, a little intense, human. Never fake urgency, fake familiarity, or bait subject lines.

## Output

Save to the lead's output folder:

```
outputs/L0001/
  cover_note.md
  outreach_email.md
  outreach_email_weird.md   # optional — with agent rationale at top
  linkedin_dm.md
  linkedin_dm_weird.md      # optional
  application_notes.md
```

Update lead frontmatter and sync:

```bash
.venv/bin/python scripts/sync_indexes.py
```

## Templates (adapt — see `profile/voice.md`)

### Founder / lab note

Lead with what they build or research. Position Ryan as a high-agency student trying to get near hard AI/systems work. Range of projects, not one flagship. Simple ask.

### Research-style note

Reference a specific paper, post, or demo detail. Research-engineering angle: prototypes, testing, making ideas usable.

### High-agency startup note

Acknowledge ambitious technical work. Explicitly not looking for ticket-picking internship. AI, systems, tools, simulation, or infra. Offer project list.

### LinkedIn connection note (300 char aware)

One specific thing about **their** work. One line on Ryan as builder/researcher. Simple close.

### Cover letter (~3 paragraphs)

1. Why **this** company's technical work — specific, not generic praise
2. Proof — 1–2 relevant achievements (only if they connect to this role)
3. Close — applying via [link], happy to chat

### Follow-up

Reference prior contact if known. One new data point or continued interest. Short.

## Hard rules

- First person, Ryan speaking
- No em dashes
- No "passionate", "thrilled", "excited to bring"
- No paragraph that could apply to any company
- Never fabricate contact history or referrals
- Never auto-send

## After Ryan sends (manually)

```bash
.venv/bin/python scripts/log_event.py \
  --type message \
  --contact C0001 --lead L0001 \
  --summary "Sent LinkedIn DM manually" \
  --next-followup 2026-07-07
```

## After drafting

Offer Ryan both versions when relevant: "Normal or weird?" Default to curious, technical, ambitious. Weird only when target qualifies — Ryan must approve before send.