Practice Builders — Social (8-angle set, 3 feeds)
Updated 2026-07-29 (Sloane — formatting pass off Kathryn's published Angle 8 edit, directed by Piper)
Source of all 8 angles: Kathryn's 7/24 Otter interview "Client Communication Strategies" (ZVh0w2dlleoVegk9ZX4kUBGmATg), plus the 7/21 Nicole/Kelly transcript (eNjFEN1O67Ha8zXiyXkVFS9sIus) for Angle 8's rental-lot story.
Approved copy lives in KHB cards 3a7a879e-ce9d-8107-a647-c0bbc191bde2 (Posts 1-3) and 3a9a879e-ce9d-8194-9968-e87452bcd355 (Posts 4-8).
Brand = Practice Builders OS on all 3 feeds. The old LinkedIn=Advisory-OS split was retired 2026-07-24. Do not re-split.
The 8 × 3 matrix
Every angle now exists for all 3 feeds. The insight and the story hold constant across a row; the angle itself is re-framed per channel — LinkedIn toward the business consequence and the structural point, Facebook toward the personal cost, Instagram tightened to 1 line with the image carrying the rest.
| # | Angle | File | |||
|---|---|---|---|---|---|
| 1 | Bottleneck is a safety blanket | APPROVED (home) | DRAFTED | DRAFTED | 01-bottleneck-safety-blanket-LI-FB-IG.md |
| 2 | Lawn-mower / 80% rule | DRAFTED | APPROVED (home) | APPROVED (home) | 02-lawn-mower-80-rule-LI-FB-IG.md |
| 3 | Bad-fit yes / vetting | APPROVED (home) | DRAFTED | DRAFTED | 03-bad-fit-yes-vetting-LI-FB-IG.md |
| 4 | Label inside the bottle | DRAFTED | APPROVED (home) | DRAFTED | 04-label-inside-the-bottle-LI-FB-IG.md |
| 5 | Theme-based days | DRAFTED (re-framed 7/28) | APPROVED (home) | DRAFTED | 05-theme-week-LI-FB-IG.md |
| 6 | Beautiful website is backwards | APPROVED (home) | DRAFTED (re-framed 7/28) | DRAFTED | 06-beautiful-website-backwards-LI-FB-IG.md |
| 7 | Build the skill before you close the task | DRAFTED | APPROVED (home) | DRAFTED | 07-build-the-skill-LI-FB-IG.md |
| 8 | Cost-cutting at the wrong level / rental lot | APPROVED (home) | DRAFTED | DRAFTED | 08-cost-cutting-wrong-level-LI-FB-IG.md |
APPROVED = Kathryn-approved copy, carried verbatim, not rewritten. That channel is the angle's home channel. 9 of 24. DRAFTED = net-new this pass, awaiting Kathryn's review. 15 of 24.
Each file states per channel which version is approved-and-untouched, which are new, the frame reasoning, and the source for every factual claim.
Formatting standard — Kathryn's Angle 8 edit (2026-07-29)
Kathryn re-edited the Angle 8 LinkedIn post before publishing it at 11:53 ET, "mostly for spacing and line breaks — and a few word choices that didn't hit right when I read it as it would look posted." Her published version was pulled back from ContentStudio and is the reference standard for the whole set: KATHRYN-EDIT-08-linkedin.txt. Do not change it.
Structure — now the standard on every post in the set:
- Blank line between thought-groups. What we handed her was one line per line, unbroken.
- A group is 1 or 2 lines. Never more. 17 groups in her post, none longer than 2.
- One sentence per line. Not one line in her final carries two sentences. The trailing spaces she left behind sit at exactly the splits she made — mechanical proof of the rule.
- Solo lines carry weight — the hook halves, the turn of the argument, the long payoff question. Three consecutive one-line groups slow the reader right where the argument pivots.
- A colon binds a lead-in to its payload ("Here's what it misses:") so the pair stays in one group.
- Split the opening sentence across an ellipsis where it has a natural break — "…use a platform..." / "...bundles every AI model…". The ellipsis replaces the relative pronoun.
- The longest sentence gets its own group.
Word choices: "rental counter" → "car rental counter" (disambiguate a two-way noun) · "solo owners" → "business owners" · "The plan I'm on runs $200 a month. That's not the number to flinch at." → "…and I'm happy to pay it" (defensive → plain and positive) · "work worth more" → "work that's more valuable."
Applied 2026-07-29 to all 19 unpublished posts, plus Angle 8 LinkedIn synced to her live text. Lessons 1–5 and 7 everywhere. Lesson 6 applied to exactly one other post — Angle 3 Facebook, whose opener carries the same shape ("An owner told me this week..." / "...we dropped the ball and we lost a client."). It was not forced onto the rest; most openers are complete declaratives with no mid-sentence break.
Deliberate exception — parallel triads and enumerations stay one group even at 3-4 lines: Angle 5's "Then a prospect books a meeting / Then a client needs you / Then an hour of email," Angle 6's three visitor questions and "Months go by / It looks great / It converts nobody," Angle 6 FB's 4-line site enumeration, Angle 7's three once-a-year jobs. Each is one unit standing in for one thing, not 3 thoughts, and breaking them kills the beat. Her Angle 8 post contained no triad to test the rule, and the Angle 6 LinkedIn copy she already approved carries one. Flagged rather than assumed — Kathryn's call.
Approved-but-unpublished copy was respaced, not rewritten (Angle 4 FB, Angle 5 FB, Angle 6 LI, Angle 7 FB). Spacing and line splits only; not a word or a mark of punctuation changed. The reasoning: she approved the words, then showed on Angle 8 that approving the words is not the same as approving the block of text they arrived in. If she wants an approved block left as a wall, that is the one thing to reverse.
Two draft copy faults caught in the same pass and fixed: "he'd been carrying the whole thing as a team failure" → "treating" (Angle 3 FB — "carrying" is on the banned coach/effort-verb list in copy-qc.md), and "Here's the thing sitting underneath that." cut entirely (Angle 6 FB — Pattern 9 rhetorical hand-holding). Neither should have shipped in the draft.
Spacing survives the pipeline — verified. push-schedule.sh sends --content "$(cat FILE)", so the bytes in the .txt are the bytes that reach the platform. Kathryn's file, pulled back from ContentStudio after publishing, has plain empty lines and no zero-width-space characters. Blank lines hold through ContentStudio to LinkedIn. The zero-width-space workaround in business-aos/reference/brand/linkedin-sentence-editor.md is contradicted by that evidence and should be revisited.
Distribution state
Angles 1-3 are PUBLISHED to their original channels — Angle 1 on LinkedIn, Angle 2 on Facebook and Instagram, Angle 3 on LinkedIn. That is 4 published posts, not 3. Confirmed by Kathryn directly, relayed via Piper 2026-07-28. The earlier "staged as drafts, nothing published" note in this file was stale and is corrected here. Card 3a7a879e still reflects the pre-publish state and should be updated.
Angle 8 LinkedIn PUBLISHED 2026-07-29 11:53 ET — Kathryn's own edit, not the copy we staged. 08-rental-lot-rain-linkedin-cyp-paste-ready.txt and the LinkedIn block in 08-cost-cutting-wrong-level-LI-FB-IG.md have both been synced to her live text. SCHEDULE.json still carries an Angle 8 LinkedIn row (2026-07-29 11:45) — it must be removed before the next push-schedule.sh run or it will double-post.
The published copy and creative on those 5 channels is locked. The new channel versions for Angles 1-3 are additions to feeds that never saw the angle — they are not sequels and carry no callback to the published post.
Known defect, published posts only. Four .txt files still contain literal markers: bottleneck-safety-blanket-linkedin, bad-fit-vetting-linkedin, lawn-mower-80-rule-fb, lawn-mower-80-rule-ig. push-schedule.sh does no conversion — it sends the file byte for byte — so any re-push of these would post the literal characters. They are left as-is deliberately: those 4 posts are live and their .txt is the record of what was staged, and none of them appear in SCHEDULE.json. Fix them only if a re-push is ever wanted.
Angles 4-8 have never been staged. Copy approved for the home channel; visuals not built.
What's needed to ship
Copy is complete for all 24. Visuals are complete for all 24 as of 2026-07-28.
| # | File stem | All 3 ratios |
|---|---|---|
| 1 | bottleneck-safety-blanket-{fb,ig,linkedin}-cyp | BUILT |
| 2 | lawn-mower-80-rule-{fb,ig,linkedin}-cyp | BUILT |
| 3 | bad-fit-vetting-{fb,ig,linkedin}-cyp | BUILT |
| 4 | 04-label-inside-bottle-{fb,ig,linkedin}-cyp | BUILT |
| 5 | 05-theme-week-{fb,ig,linkedin}-cyp | BUILT |
| 6 | 06-wireframe-reduction-{fb,ig,linkedin}-cyp | BUILT |
| 7 | 07-worksheet-torn-{fb,ig,linkedin}-cyp | BUILT (rebuilt 7/28; handwriting re-lettered 7/28 — greeking replaced with real content) |
| 8 | 08-rental-lot-rain-{fb,ig,linkedin}-cyp | BUILT |
Published creative on Angles 1-3 stands — those rows are the same designs re-rendered, never redesigned. Do not reuse a 4:5 file on Facebook; every feed has its own file.
Image direction (Piper, 2026-07-28 — reverses the 7/26 visual plan)
The 7/26 plan (headshots on 5/7/8, quote-card on 4, plain-text-graphic on 6) is superseded. Current direction:
- 4 — Label inside the bottle: the literal bottle. A label shot from INSIDE the glass, warped and unreadable, beside the same label from outside, crisp. Fallback: sticky-note chaos against 1 clean numbered list of 10 (Old-vs-New template, old side carries the visual weight).
- 5 — Theme week: two week-grids side by side. Left, fragmented colored blocks, no 2 alike. Right, 1 solid color filling the week.
- 6 — Beautiful website is backwards: wireframe reduction. A greyed 6-tab site skeleton collapsing to 1 page block with 2 buttons.
- 7 — Build the skill: the worksheet, torn — the sheet the job was worked out on, dense with real working, one gold thread tracing the order it was done in, severed by the tear. Rebuilt 7/28 (Wren, directed by Piper); supersedes both the arithmetic option and the tab-in-the-trash option.
- 8 — Cost-cutting at the wrong level: the illustrated rental lot in the rain. Restored — not a headshot.
- 1-3: published creative stands. Only the missing ratios above are outstanding.
Visual production (Wren, 2026-07-28)
Governing principle: the visual carries the argument, it does not repeat the words. A quote card sets a line the caption already gave the reader — five in a row read flat. Every treatment has to work at thumbnail with the caption unread.
No two posts in this set share a treatment. That constraint is the point of the exercise.
| # | Treatment | Drawn from | FB 1:1 | IG 4:5 | LI 4:5 |
|---|---|---|---|---|---|
| 1 | Dark serif quote card | published round 1 | PASS | PASS | PASS |
| 2 | Big-number statement, cream | published round 1 | PASS | PASS | PASS |
| 3 | Light serif quote card | published round 1 | PASS | PASS | PASS |
| 4 | The literal bottle. The same bottle twice — left, the label seen from inside the glass: mirrored, warped, murky, unreadable. Right, the same label from outside: crisp and ranked. | built new | PASS | PASS | PASS |
| 5 | Old-vs-New split as pure data-shape. One week fragmented into 60 blocks, no 2 alike, against the same week as 1 unbroken gold block. Zero words but the day rail. | belief-shift template 2, stripped to shape | PASS | PASS | PASS |
| 6 | Wireframe reduction. The 6-tab site skeleton, large and gray and unresolved, collapsing to 1 sharp page block with 2 buttons. A designer's diagram. | built new | PASS | PASS | PASS |
| 7 | Single artifact, close. The sheet the whole job was worked out on — ruled columns of handwritten figures, revisions struck and re-entered, tallies, check-offs, boxed sub-totals, marginal arrows, a ring where a cup sat. Traced through it in gold: the order it was done in. The sheet is torn and the tear severs the thread; the halves no longer line up. Handwriting says real things. | rebuilt 7/28, re-lettered 7/28 | PASS | PASS | PASS |
| 8 | Illustrated scene. Top-down packed rental lot in pouring rain, ~270 cars in marked bays, all cool desaturated paint, 1 car in gold. Wordless. | built new | PASS | PASS | PASS |
Post 7 — rebuilt 2026-07-28. The tab-in-the-bin card was rejected (Kathryn: the trashcan looked amateur) and its files were removed, not left alongside the new ones. Five faults: three focal points competing (window, falling document, bin); a stock outline wastebasket, which is icon-set vocabulary rather than an original form; a dotted motion arc, which reads as presentation-software animation; placeholder gray bars standing in for content while every other card in the set carries real content; and no coherent space — no ground plane, no consistent depth.
The rebuild is a single artifact rendered close, which is the one treatment slot the set had not used: not a field (Post 8), not a pair (4, 5), not a diagram (6), not type (1, 2, 3). Density comes from internal detail — roughly 600 individually drawn marks — rather than from repeating a unit, which is what keeps it off Post 8's treatment. The argument lands without a caption: the working survives, the order it was done in does not.
Post 7 — handwriting re-lettered 2026-07-28 (Wren, directed by Piper). Kathryn: "fix the handwriting - make it real words that make sense." Nothing else changed — concept, tear, gold thread, composition, lighting and density all stand. The marks were greeked pseudo-letterforms; they passed at thumbnail but read as invented script at full size on LinkedIn, which is a tell that a machine made it. They are now drawn from a stroke alphabet (a–z, A–Z, 0–9 and punctuation, each letter built on its own skeleton, each with its own jitter, slant, weight and opacity from the seeded stream) — still handwork, not a font, but spelling actual words.
The sheet now reads as the annual invoice being pieced together by hand: heading Annual invoice and a date, columns Task / Hours / Rate / Amount, and line items — Returns filed, Extensions, Quarterly estimates, Payroll filings, Sales tax, Amended return, Notices, Entity return, Bookkeeping cleanup, Year-end planning, K-1s, 1099s, Research memo, Client calls, Portal setup, Reconciliations, Advisory calls, Document requests, Prior-year review, Correspondence. Working notes in the margins (carry fwd, check prior yr, wrote off, confirm w/ client, est., adj., see notes), a boxed Subtotal and a boxed Total, and a note under the total (Check vs. prior yr). Tallies, check-offs, struck-and-re-entered revisions and the arrows back to a source number all survive untouched.
Everything on the sheet is invented. No client, person or business is named — not a first name, not an initial, not a recognisable detail. The line items are generic tax-practice work; the figures are plain and unremarkable and were chosen to sum to nothing in particular. Column strides were set coprime with each figure bank so a column walks its whole bank instead of repeating four numbers down the page.
Hierarchy held. Real words are far more legible than the greeking they replaced, so the ink was taken down (opacity 0.26–0.62, from 0.44–0.84) rather than anything structural being changed. The gold thread and the tear remain the focal point; the sheet is legible on inspection and secondary at a glance. The tear still cuts through content — it clips an identically-drawn sheet on both halves, so any mark crossing it breaks exactly where the tear falls.
The arithmetic option was rejected again, for the reason it was rejected the first time — a numbers card rhymes with Post 2, and a 2-hours-against-10-minutes layout rhymes with the paired comparisons on 4 and 5.
Gold inversion held. Gold marks the thing being lost, not the thing being gained. On this card it is the thread, and the tear cuts it.
Posts 1-3 — what changed and what didn't. Nothing was redesigned. The published creative is untouched; these are the same designs re-rendered at the ratios the new feeds need. Both 4:5 treatments survive the square crop without reflowing — verified by eye at 1:1, not just by the gate.
Gold discipline. One gold moment per card. On Post 5 the fragmented palette deliberately excludes the gold/amber hue band so the solid block owns the gold. On Post 8 gold is the only warm hue anywhere on the card.
Determinism. The generative cards draw from a fixed seed, so a re-render produces an identical image. Re-rendering will never silently change a card Kathryn has already seen. Verified by pixel-diffing two consecutive renders, not assumed — and that check caught a real defect on the Post 7 rebuild: feGaussianBlur makes Chromium rasterise large soft surfaces nondeterministically, and the first build differed by 9% of subpixels between runs. Every soft edge on Post 7 is now a gradient or a stack of strokes; there is no SVG filter in the file.
Correction, 2026-07-28 (Wren). The earlier claim that two runs come out byte-for-byte identical does not hold, and it did not hold for the approved 7/28 build either — it was a lucky pair, not a guarantee. Re-checked on the re-lettered card and on the previously-committed build pulled straight from git:
- The seed is genuinely deterministic. The generated SVG geometry is identical across runs —
sha256of#scene.outerHTMLmatches every time (LinkedIn/IGb2496fa6…, FBf090ccca…). Every drawn mark lands in exactly the same place on every render. This is the part that matters: a re-render cannot silently move or change anything Kathryn has seen. - Chromium's rasteriser is not. Two renders land in one of exactly two rasterisations — the pixel diff is always either 0 or exactly 1,623,977 pixels, never anything between. Where they differ, 99.4% of the differing pixels differ by ±1 out of 255 (mean delta 1.12); only 0.06% differ by ≥16. It is invisible dither/edge noise, not a design change.
- Not caused by the re-lettering. The committed pre-change build shows the same behavior today (27.85% of pixels, max delta 89) as the re-lettered build (27.88%, max delta 89). The change is determinism-neutral.
- No flag fixes it.
--disable-partial-raster,--disable-checker-imagingand--disable-gpuwere each tested across repeated runs and the two-class behavior persists regardless.--disable-gpudoes force a single stable class, but software raster shifts 81% of pixels away from the current GPU output — that would change all 24 cards, including approved ones, so the shared renderer was deliberately left alone. Flagging it here for a separate decision rather than changing shared tooling under a narrow brief.
The working gate, therefore: hash the generated SVG, not the PNG. A PNG diff of 0 is nice but a coin flip; an SVG hash match is the real guarantee.
Ratio gate. Every PNG goes through .claude/skills/run-socials/render-social-image.js, which asserts the source HTML fills the target canvas and fails loudly rather than shipping a cropped or letterboxed image. FB 1080×1080, IG and LinkedIn 1080×1350, all rendered @2x. On the Post 7 rebuild the gate was additionally confirmed by reading the IHDR width/height out of each PNG header rather than trusting the renderer's log: FB 2160×2160, IG 2160×2700, LinkedIn 2160×2700. Re-confirmed the same way after the 7/28 re-lettering — FB 2160×2160, IG 2160×2700, LinkedIn 2160×2700.
Blocker — RETIRED 2026-07-28
The previous entry here claimed the authority-with-face frame was blocked pending a verified real photograph of Kathryn. That is false and it is retired.
Kathryn cleared the AI-generated brand persona photos for use in social and marketing visuals on 2026-07-28. No face treatment waits on sourcing a photograph. Full decision, including the consistency rules that do still apply (lock ONE persona as the likeness; never the same photo 3× in a set):
business-aos/decisions/2026-07-28-kathryn-likeness-ai-brand-photos-cleared.md
None of the current 8 angles call for a face treatment — the 7/28 direction above moved all 5 headshot slots to concept visuals. The clearance is recorded here so no one re-blocks on it.
Push note
Both LinkedIn posts in Angles 1-3 share token linkedin-cyp; push-drafts.sh matches images by token only, so they were pushed from isolated dirs to prevent wrong image pairing. The new channel versions add more same-token collisions across all 8 angles — isolate per push.
Copy standards applied across all 24
Numerals never spelled out. No hashtags, no first comment. One sentence per line — and as of 2026-07-29, blank lines between thought-groups per the formatting standard above. pacing marks are retired: push-schedule.sh sends the .txt verbatim and converts nothing, so every unpublished post now carries real newlines. Contractions throughout. A skill is runnable steps, never an SOP. No coach language, no "walk through," no "honest/honestly," no "not X — it's Y" twinning, no "firm" in top-of-funnel copy, no SaaS/builder jargon.
No fabrication. Every claim in a new version traces to the 7/24 or 7/21 transcript. Claims cut for lack of a source are recorded in the file where they were cut — the $200/mo plan figure (Angle 8, FB + IG), an elapsed-time figure (Angle 3, FB), a build-time promise plus a stalled-start assertion and an invented reader history (Angle 6, FB), a restart-cost accounting claim (Angle 5, LI), and a judgment-call count (Angle 7, LI).
Angle 5 LinkedIn re-framed 2026-07-28 — Kathryn's call. The first version argued calendar shape as a throughput decision and framed treating it as personal preference as the mistake. That inverts the source: Kathryn's language on this passage is preference throughout ("each of us is different," "I would much rather," "I'd rather be in the rhythm"), and she is not prescriptive about anyone's calendar. Rewritten onto the split the transcript does support — the switching cost is universal, the remedy is personal. Her term is theme-based days; the quarterly-review week is her stated example of it, not the principle. Facebook and Instagram untouched.
Angle 6 Facebook re-framed 2026-07-28. The first version separated from LinkedIn on landing point rather than argument — both were the sequencing thought at 2 volumes. Rewritten onto its own thesis: the site is about you, and nobody arrived looking for you. A directed "permission" frame (the site was never what stood between you and a client) was rejected — it requires a diagnosis of the reader's stalled state that the transcript doesn't carry. Rationale recorded in the angle file.
Files
NN-slug-LI-FB-IG.md— the 8 angle files, all 3 channels side by side. Source of truth for copy.*-paste-ready.txt— what actually posts. Generated from the fenced blocks in the.mdfiles; real newlines, real blank lines, no. Edit the.md, then regenerate — never hand-edit the.txtor the two drift.KATHRYN-EDIT-08-linkedin.txt— Kathryn's own edit of the Angle 8 LinkedIn post, pulled from ContentStudio after she published it. The formatting reference standard. Do not change it.*.html— screenshot-ready source at platform canvas*.png— rendered @2x, ratio-gated
Status: copy complete on all 8 angles × 3 feeds; all 19 unpublished posts respaced 2026-07-29 to Kathryn's own standard. Nothing re-pushed to ContentStudio — the existing drafts still carry the pre-respace text. Ball with Kathryn to look at the respaced set, then Piper for the re-push.
Angle 09 — Time block (added 2026-08-10, Sloane via /run-socials)
First angle built on the ad-proven structure (task in line 1 → number → insight second), not the interpretation structure of angles 1-8. Source: Kathryn's 8/2 Otter interview ("a single time block on your calendar… you are fooling yourself"; prep + the work + distribution).
| Feed | Copy | Image | ContentStudio |
|---|---|---|---|
09-time-block-linkedin-cyp-paste-ready.txt | 09-time-block-linkedin-cyp.png (1080×1350) | DRAFT 6a79eddc9ec5ef964f0e0e27 | |
09-time-block-fb-cyp-paste-ready.txt | 09-time-block-fb-cyp.png (1080×1080) | DRAFT 6a79edd240c20457d20416ad | |
09-time-block-ig-cyp-paste-ready.txt | 09-time-block-ig-cyp.png (1080×1350) | DRAFT 6a79edd73129aade2409e64b |
Status: staged as drafts, ball = Kathryn (review + schedule).
Known issue surfaced by this run — three stale angle5-ai-guide-*-paste-ready.txt files have no matching image and now FAIL the distribute pairing check (they were previously being paired with angle 04's image without anyone noticing). They need either a matching image or removal.
STANDING RULE — social carries the live ads' structure (Piper, 2026-08-10)
Kathryn, 2026-08-10: "we need our socials to emulate what the ads do." Binds every social run on this campaign.
Where live ad state comes from: Cade, off the platform, or Kathryn. Never a repo doc. This rule was written twice off the wrong ad because the SLO
STATUS.mdwas read as live. It records Product Shot as turned off 2026-06-07 and Product Shot is the live creative. Cade reconciles that file; until then it is not a source for what is running.
The two live ads — copy verbatim, supplied by Kathryn 2026-08-10
SLO ($7 · 52 Claude Skills) — creative: $7 in gold on deep teal above eight labeled cards (Proposals · SOWs · Session Recaps · Follow-ups · Case Studies · Pipeline · Onboarding · Content), under "8 categories. Ready to paste."
Every proposal you write follows the same structure. You're still building it from scratch.
Every session recap has the same sections. You're still writing it by hand.
Every follow-up email follows the same pattern. It's still sitting in your head.
52 Claude skills built for independent consultants. Each one turns a deliverable you repeat every week into a 5-minute production system.
$7 for all 52.
CIB (free lead magnet) — creative: deep teal, FREE AI SKILL in gold caps, Client Intelligence Brief in large white serif, gold rule, "Prep for any client call in 2 minutes.", then four gold-chevron bullets — Rolling items alert · Client priority read · Call playbook · Ranked next actions.
You're using AI for content and summaries. Meanwhile it could be running your client relationships.
The Client Intelligence Brief is an AI skill that preps you for any client call in 2 minutes.
Paste a few recent emails. Get back rolling items nobody flagged, client priorities, and a call playbook with specific language for the conversation.
Not a chatbot. Not a prompt. A skill that reads your real data and produces a structured brief.
It's free.
The spine both ads share — this is the pattern
- Open on the gap between what they already do and what's sitting there unused. Flat, no drama. "You're still building it from scratch." · "You're using AI for content and summaries. Meanwhile it could be running your client relationships."
- Concrete nouns only. Proposal, session recap, follow-up email, recent emails, rolling items, client priorities, call playbook. Never a category — not "your workflow," not "client work," not "your week."
- Input → output, stated literally. "Paste a few recent emails. Get back [three named things]." · "turns a deliverable you repeat every week into a 5-minute production system."
- A time, always. 5 minutes. 2 minutes.
- Kill the objection by negation, not argument. "Not a chatbot. Not a prompt."
- Price bare and last, one line, no cushion. "$7 for all 52." · "It's free."
- Teach nothing. Neither ad explains why the problem exists, offers a principle, or has a point of view to defend. Zero.
- The image is the list of what you get. Eight category cards. Four output bullets. The copy names a sample; the image shows the set.
Device, not rule: the SLO ad's three-beat parallel (Every X… You're still Y) is one way to execute move 1. The CIB ad does move 1 in a single sentence. Use either. Don't mistake the device for the pattern.
What binds every post
| Rule | |
|---|---|
| 1 | Open on the gap — what they do now vs what's available. No explaining why. |
| 2 | Concrete nouns. If the noun is a category, rewrite it. |
| 3 | Input → output, literally, in the reader's terms. |
| 4 | A time in it. |
| 5 | Objections die by negation, in a fragment. |
| 6 | Teach nothing. A lesson in the post means it is not built to this shape. |
| 7 | Image is the set — the ad visual system, deep teal and gold, labeled items. Not a quote card. |
| 8 | Where there is an offer: price bare, last, one line. |
This does not turn social into ads. Cadence stands; most posts still ask for nothing. What changes is the shape — and this shape is what the money has already proved on this exact audience.
Owners. Cade: live creative + numbers every Monday, off the platform. Sloane: writes to this shape. Wren: image as the set, in the ad system. Arden: wire rules 2 and 6 into /run-socials as a gate.