git:20260403.2eadd0d to git:20260922.ed4a4b3

34 added, 1 removed. Audit C to C.

# Skill: Signal to Sequence
**Duration:** 2–4 hours per campaign
**Output:** `outputs/campaigns/[date]-[campaign-name]/`
---
## Quick Start
```
Read skills/signal-to-sequence/SKILL.md.
Build a Tier 2 campaign for accounts triggering the [signal name] signal.
Target the [persona title] persona.
```
For a complete example of what this produces, see:
`examples/sample-company/outputs/campaigns/2024-03-01-series-b-revops-tier2/`
---
## Purpose
Turn a signal — or a set of accounts sharing a signal — into a live outreach campaign. This skill connects the signal library to actual sequences. It answers the question: "We know who to target and why. Now what do we actually say?"
The output of this skill is not a rough draft. It is a sequence ready to load into your outbound tool.
---
## When to Run This Skill
- A new signal fires across multiple accounts simultaneously (e.g., batch of Series B announcements)
- You're launching a new campaign segment
- An existing campaign is underperforming and needs a full rebuild
- A new ICP tier needs to be activated for the first time
---
## Inputs
- Target signal(s) from `context/signal-library.md`
- ICP tier for this campaign from `context/icp-definition.md`
- Persona(s) being targeted from `context/personas/`
- Competitive context from `context/competitor-radar.md` (if relevant)
- Company profile from `context/profile.md`
---
## Step 1: Define the Trigger Logic (20 min)
Before writing a word, be precise about what fires this campaign.
**Single-signal trigger:** One signal alone justifies outreach.
- Which signal? [From signal library]
- Minimum score threshold to activate?
- Recency window: signal must have fired in last [X] days?
**Multi-signal trigger:** Two or more signals in combination.
- Signal A + Signal B = activate
- What does the combination tell you that neither signal alone tells you?
**Suppression conditions:** Accounts that match the signal but should NOT receive this campaign.
- Active opportunity in CRM
- Existing customer
- Contacted in last [X] days
- [Any other suppression rules from signal library]
Document the trigger logic in plain language before moving to Step 2. Ambiguous triggers produce wasted outreach.
---
## Step 2: Segment the Target List (20 min)
Pull all accounts matching the trigger logic. Segment by:
- ICP tier (Tier 1 vs. Tier 2 vs. Tier 3 gets different sequence intensity)
- Persona (different message for each role)
- Account status (cold prospect vs. previously contacted vs. dark opportunity)
Output: a clean list per segment with contact information and signal data attached.
---
## Step 3: Design the Sequence (45 min)
Build the sequence structure before writing copy. Define:
| Touch | Day | Channel | Goal | Personalization level |
|-------|-----|---------|------|-----------------------|
| 1 | 0 | Email | First impression + signal hook | High — signal-specific |
| 2 | 3 | LinkedIn | Connect + brief context | Medium |
| 3 | 6 | Email | Value prop + proof | Medium |
| 4 | 10 | Email | Different angle or asset | Low |
| 5 | 14 | Phone/VM | Direct ask | Medium |
| 6 | 21 | Email | Break-up + pivot | Low |
**Tier guidance:**
- Tier 1: 6–8 touches, all channels, manual personalization on touches 1–3
- Tier 2: 5–7 touches, email + LinkedIn, semi-automated
- Tier 3: 4–5 touches, email-first, templated with signal variable
---
## Step 4: Write the Copy (60–90 min)
Write each touch. Apply the PVP standard to Tier 1 and Tier 2 email 1.
### The PVP Standard (Permissionless Value Prop)
A message passes PVP if the prospect would find it valuable even if they never buy from you. It delivers market intelligence, not a sales pitch.
**Test:** Remove your CTA. If the message still has value, it passes. If it's pointless without the CTA, it's a pitch — rewrite it.
**Four questions every Tier 1 first touch must answer yes to:**
1. Does this contain an insight the prospect doesn't already have?
2. Would they forward this to a colleague?
3. Would they find this useful even if they never buy?
4. Is this market intelligence, not just personalization?
---
### Touch 1 — Email (Signal Hook)
**Subject line options (write 3, A/B test 2):**
- [Option A — curiosity-based]
- [Option B — direct/insight-based]
- [Option C — question-based]
**Body structure:**
```
[Signal hook — one specific, datable observation]
[Insight — what that signal means in context, something they may not know]
[Connection — how that maps to what you do, in one sentence]
[CTA — one ask, frictionless]
[Signature]
```
**Example:**
```
Subject: [Company]'s RevOps hire
[First name],
[Company] just posted for a Senior RevOps Manager — third ops hire in 90 days.
Teams at that growth rate typically hit the same wall: the tooling that worked at
50 people breaks at 150.
We've helped [anonymized: a developer platform at similar scale] cut their
pipeline-to-close variance in half by rebuilding the ops layer before it became
a bottleneck.
Worth 20 minutes to compare notes?
[Name]
```
---
### Touch 2 — LinkedIn Connection Request
```
[First name] — sent you an email [X] days ago about [one-sentence context]. Would be good to connect here too.
```
The connection note should be 1–2 sentences max. Reference something specific: the email you already sent, a recent post they published, or their new role. "Following your work" and "building something adjacent" read as spray-and-pray. LinkedIn accepts correlate with personalization quality — use the signal context you already have.
---
### Touch 3 — Email (Value Prop + Proof)
Shift the angle. Don't repeat touch 1. Lead with a different dimension of value or a proof point.
```
[First name],
Following up from last week. Wanted to share something relevant.
[Specific outcome or data point from a reference customer in a similar situation]
[One sentence connecting that to their current situation]
Happy to walk through how we approach it — [CTA].
[Name]
```
---
### Touch 4 — Email (Asset or Different Angle)
Offer something concrete: a framework, a benchmark, a piece of content, a question worth thinking about.
---
### Touch 5 — Phone / Voicemail
```
Talk track:
"[Name], [Your name] from [Company]. Reached out a couple times over email — not trying to be persistent,
just think the timing might be right given [specific signal/context]. If I'm wrong, happy to hear it.
Call me back at [number] or reply to my email — either works."
```
---
### Touch 6 — Break-up Email
```
Subject: Closing the loop
[First name],
I've reached out a few times — not going to keep at it.
If the timing isn't right or this isn't relevant, totally understood.
If something changes — [specific trigger that would make this relevant again] — feel free to reach out.
[Name]
```
---
## Step 5: Measurement Plan (15 min)
Define success before launch. Set targets by tier:
| Metric | Tier 1 target | Tier 2 target | Tier 3 target |
|--------|--------------|--------------|--------------|
| Reply rate | ≥ 8% | ≥ 4% | ≥ 2% |
| Meeting rate | ≥ 5% | ≥ 2% | ≥ 1% |
| Pipeline per 100 accounts | $[X] | $[Y] | $[Z] |
**What to track:**
- Reply rate by touch number (where are people responding?)
- Meeting rate by signal type (which signals convert best?)
- Signal-triggered vs. generic performance lift
**Review cadence:** First review at 2 weeks (enough volume to see patterns). Full review at 6 weeks.
---
+ ## Step 6: Variant Tracking (10 min)
+
+ If you're testing different versions of any element (subject line, body copy, CTA, send time), document the variants before launch. Without structured tracking, you'll know something worked better but not why.
+
+ ### Variant Tracking Table
+
+ Add this to `brief.md` for every campaign that runs variants:
+
+ ```markdown
+ ## Variants
+
+ | Variant | Element tested | Version A | Version B | Split |
+ |---------|---------------|-----------|-----------|-------|
+ | V1 | Subject line | "[Company]'s RevOps stack" | "First 90 days" | 50/50 |
+ | V2 | CTA | "Worth 20 min to compare notes?" | "Want to see how [Reference] handled it?" | 50/50 |
+
+ ### Variant Results (updated weekly)
+
+ | Variant | Metric | Version A | Version B | Winner | Confidence | Decision |
+ |---------|--------|-----------|-----------|--------|------------|----------|
+ | V1 | Open rate | 52% (n=36) | 41% (n=35) | A | Medium (n < 50/arm) | Continue A, retest at n=100 |
+ | V2 | Reply rate | 5.6% (n=36) | 3.4% (n=35) | A | Low | Keep testing |
+ ```
+
+ **Rules for variant testing:**
+ - Test one element at a time. Testing subject line AND body copy simultaneously means you can't attribute the difference.
+ - Minimum sample size per variant: 50 sends before declaring a winner. Below 50, the result is noise.
+ - "Winner" means >=30% relative improvement with at least 50 sends per arm. A 10% difference at n=40 is not a winner; it's a signal to keep testing.
+ - Document the decision: keep winner, keep testing, or retire both and try something new.
+ - After declaring a winner, update the sequence to use only the winning version. Don't let both run indefinitely.
+
+ ---
+
## Output Structure
```
outputs/campaigns/[date]-[campaign-name]/
- ├── brief.md ← Trigger logic, segments, objectives
+ ├── brief.md ← Trigger logic, segments, objectives, variant tracking
├── sequences/
│ ├── tier1.md ← Full sequence copy, Tier 1
│ ├── tier2.md ← Full sequence copy, Tier 2
│ └── tier3.md ← Full sequence copy, Tier 3
├── metrics.md ← Targets and measurement plan
└── results.md ← Updated as campaign runs
```