Handraiser Post Kit — Production Workflow
How to Use This Skill
Follow this workflow in order. Complete the concept brief (01-context.md) before writing. The skill must be tested before the post can be written — real proof is the foundation.
The output is a single .html file containing the post copy, image mockup, QC documentation, and analytical notes. Kathryn opens this in a browser to copy the post text and screenshot the image directly.
Step 1: Complete the Concept Brief
Open 01-handraiser-post-context.md and fill in every field.
Load before writing anything:
business-aos/reference/core/voice.md— tone, cadence, vocabularybusiness-aos/reference/core/audience.md— who they are, their languagebusiness-aos/reference/brand/copy-qc.md— 11-pattern check applied after writing03-handraiser-post-golden-example.md— HTML structure to match- The golden example HTML:
content/business/marketing/campaigns/practice-command-center/01-client-intelligence-brief-post.html
Validation gate: Do not proceed until:
- Skill has been tested on real data
- Teaching story has real numbers
- Trigger word is chosen
- Lead vertical is identified with specific tool names
- Hook line is drafted
Step 2: Scaffold the HTML
Produces: [##]-[skill-name]-post.html
Copy the full CSS from the golden example. The styling is locked. Change only the content.
Head
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LinkedIn Handraiser Post #[N] — [Skill Name] (v[X])</title>
<!-- Google Fonts: Cormorant Garamond + Inter + JetBrains Mono -->
<!-- Full CSS from golden example -->
</head>
Metadata Header
<div class="container">
<h1>LinkedIn Handraiser Post #[N] (v[X])</h1>
<p class="meta">
<strong>Skill:</strong> [Skill Name] v[X.0]<br>
<strong>Keyword:</strong> [KEYWORD]<br>
<strong>Target ICP:</strong> [Who this targets — be specific about which segment and why]<br>
<strong>Version notes:</strong> [What this version does / changes from prior if applicable]
</p>
<div class="gold-bar"></div>
Step 3: Write the Post Copy
Build the post copy inside the .post-copy card. One sentence per line. Each is one sentence.
Structure
<span class="label">Post Copy -- Ready to Paste</span>
<div class="post-copy">
Line 1 — Hook. One line. Trend-riding, curiosity, pattern-revealing, or contrarian.
<p>[Hook — e.g., "Everyone's building Claude skills right now."]</p>
Lines 2-3 — Curiosity bridge. Narrows from hook to Kathryn's specific angle.
<p>[Bridge — e.g., "Most are built for marketers. I wanted to see what one could do for a professional services practice."]</p>
Line 4 — What I built. One sentence with input, output type, and the specific pain it addresses.
<p>[What I built — e.g., "So I built a skill around the 15-minute ritual before every client call."]</p>
Pain list. The manual process broken into timed steps. JetBrains Mono, arrow prefix.
<ul class="pain-list">
<li>→ [X min doing Y]</li>
<li>→ [X min doing Y]</li>
<li>→ [X min doing Y]</li>
<li>→ [X min doing Y]</li>
</ul>
Compound math. One sentence — total time per call x calls per week = weekly cost.
<p>[Compound — e.g., "15 minutes per call. 8 calls a week. Two hours piecing together information that already exists."]</p>
The compression. What the skill does in how long.
<p>[Compression — e.g., "The skill compresses that into a two-minute brief."]</p>
Output description. What the brief contains — tease the surprising sections, don't list them all. The image shows the full inventory.
<p>[Output — e.g., "Paste 3-5 recent client emails. Get a seven-section brief that tells you what's moving, what's stalling, and what the client isn't saying out loud."]</p>
Authority. Real deployment proof — Kathryn's experience, not a specific client story (that's for v2+ or different hook angles).
<p>[Authority — e.g., "I've been deploying variations of this inside client firms for months. The pattern is the same everywhere — information scattered across five tools. The skill turns it into the analysis that takes experience and attention to do well."]</p>
The gift. Name + free offer.
<p>[Gift — e.g., "It's called the Client Intelligence Brief. I'll send it to you for free."]</p>
3-step CTA.
<ol class="cta-list">
<li>Connect with me (so I can DM it)</li>
<li>Like this post (so other practice owners find it)</li>
<li>Comment <strong>[KEYWORD]</strong> below</li>
</ol>
Signature block.
<div class="signature">
Kathryn Brown -- Advisory OS<br>
[Tagline — e.g., "Claude skills for professional services practices."]<br>
[Positioning — e.g., "One skill at a time. Deployed, not taught."]
</div>
</div>
<p class="meta">~[N] words before signature. Under 200 limit.</p>
Step 4: Build the Image Mockup
The image is rendered in HTML inside the reference doc. Kathryn screenshots it directly from the browser for LinkedIn.
<div class="section">
<h2>Image -- Handraiser Visual</h2>
<p>[Brief description of layout choices and why.]</p>
<div class="handraiser-image">
<div class="campaign-label">Free Claude Skill</div>
<div class="skill-name">[Skill Name]</div>
<div class="skill-desc">[One line: input → output]</div>
<div class="input-bar">
<span>[What to paste]</span>
</div>
<div class="arrow-down">▼</div>
<div class="output-list">
<!-- One output-row per section -->
<div class="output-row">
<div class="output-number">[N]</div>
<div class="output-content">
<div class="output-label">[Section Name]</div>
<div class="output-text">[One-line description]</div>
</div>
</div>
</div>
<div class="time-badge">
<span>[Time to run]</span>
</div>
<div class="cta-bar">
<div class="cta-text">Comment below to get it free</div>
<div class="cta-keyword">[KEYWORD]</div>
</div>
<div class="logo">Advisory OS</div>
</div>
<p><strong>Why this layout works:</strong></p>
<ul>
<li>[Reason 1 — tied to skill output count and visual hierarchy]</li>
<li>[Reason 2 — tied to feed behavior]</li>
</ul>
<p><strong>Production note:</strong> Screenshot this directly from the browser for LinkedIn. Gold (#b79d64) left-border on each output row is the visual thread. Dark background (#0a0a0a) stops the scroll.</p>
</div>
Image Rules
- Dimensions: 4:5 portrait target (1080×1350 at full scale). LinkedIn's max vertical ratio. Taller = more feed real estate. Set CSS to
width: 600px;withpadding: 48px;— no fixed height, no flexbox. Content flows naturally and determines the height. Screenshot captures whatever renders. - Screenshottable HTML. The mockup must render as a complete image in the browser. Kathryn screenshots it directly — no Canva, no Figma, no "image direction" text descriptions
- One
output-rowper section the skill produces - Section names match the skill file exactly
- Descriptions are shorter than the skill file's — one-line scan
- "2 minutes" (or actual time) in the time badge
- Keyword in CTA bar matches the post — unique per skill, never reused
- Dark background (#0a0a0a) is non-negotiable — contrast against LinkedIn's white feed
Step 5: Write the Copy QC Summary
Run the copy QC patterns against the post copy and document results.
<div class="section">
<h2>Copy QC Summary</h2>
<p>All 11 patterns checked against final post copy.</p>
<table class="qc-table">
<tr><th>Pattern</th><th>Severity</th><th>Result</th><th>Notes</th></tr>
<!-- P1 patterns -->
<tr><td>P1: Twinning</td><td>P1</td><td><span class="pass">Pass</span></td><td>[Notes]</td></tr>
<tr><td>P1: Mirror Reversal</td><td>P1</td><td><span class="pass">Pass</span></td><td>[Notes]</td></tr>
<tr><td>P1: Question-Silence-Revelation</td><td>P1</td><td><span class="pass">Pass</span></td><td>[Notes]</td></tr>
<tr><td>P1: Compound Corrections</td><td>P1</td><td><span class="pass">Pass</span></td><td>[Notes]</td></tr>
<!-- P2 patterns -->
<tr><td>P2: Three-Beat Parallels</td><td>P2</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P2: Not Because X. Because Y.</td><td>P2</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P2: Over-Validation</td><td>P2</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P2: Formulaic Setups</td><td>P2</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P2: Trying-to-Be-Quotable</td><td>P2</td><td>[result]</td><td>[Notes]</td></tr>
<!-- P3 patterns -->
<tr><td>P3: Dramatic Single-Word Beats</td><td>P3</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P3: Rhetorical Hand-Holding</td><td>P3</td><td>[result]</td><td>[Notes]</td></tr>
<tr><td>P3: Identical Openers</td><td>P3</td><td>[result]</td><td>[Notes]</td></tr>
</table>
<h3>Compound Check</h3>
<ul>
<li>[result] -- [Correction-revelation family check]</li>
<li>[result] -- [Sentence length variation check]</li>
<li>[result] -- [Read-aloud test]</li>
</ul>
</div>
Sentence Editor Summary
<div class="section">
<h2>Sentence Editor Summary</h2>
<p>8 rules applied to final post copy.</p>
<table class="qc-table">
<tr><th>Rule</th><th>Result</th><th>Notes</th></tr>
<tr><td>1. End Strong</td><td>[result]</td><td>[Key final words listed]</td></tr>
<tr><td>2. Define Acronyms</td><td>[result]</td><td>[Any acronyms used]</td></tr>
<tr><td>3. Economy</td><td>[result]</td><td>[What was cut]</td></tr>
<tr><td>4. No Repeats</td><td>[result]</td><td>[Check within sentences]</td></tr>
<tr><td>5. Vary Word Choice</td><td>[result]</td><td>[Words appearing 3+ times]</td></tr>
<tr><td>6. Precision Vocabulary</td><td>[result]</td><td>[Specific word upgrades]</td></tr>
<tr><td>7. Two-Comma Rule</td><td>[result]</td><td>[Max commas per sentence]</td></tr>
<tr><td>8. Kill Adverbs</td><td>[result]</td><td>[Adverb count]</td></tr>
</table>
</div>
Step 6: Write the Hook Analysis
Provide the hook used plus at least one alternate, with pros/cons and a recommendation.
<div class="section">
<h2>Hook Direction -- Analysis</h2>
<h3>Option A: [Type] (used in v[X])</h3>
<p><em>"[Hook text]"</em></p>
<ul>
<li>[Why it works for this ICP]</li>
<li>[Risk and who it filters out]</li>
</ul>
<h3>Option B: [Alternate type]</h3>
<p><em>"[Alternate hook text]"</em></p>
<ul>
<li>[Why this could work]</li>
<li>[Risk or limitation]</li>
</ul>
<div class="recommendation">
<strong>Recommendation: Option [X].</strong> [Reasoning tied to ICP, campaign timing, or prior post performance.]
</div>
</div>
Step 7: Write the Value Proposition Notes
Map each post element to its role. Catch false promises.
<div class="section">
<h2>Value Proposition -- What Changed</h2>
<p>[One paragraph: what the post promises and whether that matches what the skill actually delivers.]</p>
<table>
<tr><th>Element</th><th>Role</th><th>Copy</th></tr>
<tr><td><strong>Hook</strong></td><td>[Role]</td><td>[The copy]</td></tr>
<tr><td><strong>Compression</strong></td><td>[Role]</td><td>[The copy]</td></tr>
<tr><td><strong>Promise</strong></td><td>[Role]</td><td>[The copy]</td></tr>
<tr><td><strong>Authority</strong></td><td>[Role]</td><td>[The copy]</td></tr>
</table>
<p>[What the reader's takeaway should be — the promise in one sentence.]</p>
</div>
Step 8: QC the Complete File
Run 04-handraiser-post-quality.md against the full HTML document.
Blocking checks:
- Post copy: real proof with real numbers, no links, keyword clear and capitalized
- Image mockup: output rows match skill sections, dark background, gold accents
- Copy QC: all 11 patterns checked, no P1 failures
- Voice: no forbidden constructions, read-aloud test passes
- Word count: ~150-200 words (post copy only, excluding signature)
Fix all failures before delivering.
Step 9: Deliver
Final file: [##]-[skill-name]-post.html
The ## is the post number in the series (e.g., 01, 02). Goes to the campaign folder (e.g., content/business/marketing/campaigns/[campaign-name]/).
The .md version of just the post copy (without QC, image, or notes) can optionally be saved alongside if useful for reference — but the HTML is the primary deliverable.