# Shortform Strategy

> Use when the unit of work is a TikTok/Reels account, not one clip: positioning, sustainable cadence and format mix, ride-or-skip on a trend or sound, recurring series, diagnosing a flat account, and the dated learning loop. NOT the single script or hook variants (that is `video-shorts`), NOT the idea backlog (that is `shortform-ideation`).

- Skill: `ericrisco/shortform-strategy` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add ericrisco/shortform-strategy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ericrisco/shortform-strategy/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: ericrisco (https://skillmd.com/u/ericrisco)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ericrisco/shortform-strategy

---


# Shortform Strategy — The Account Operating System

*You own the account, not the clip.* You decide who it is for, how often it posts, what mix of formats, which trends it rides, which series it runs — and you keep a written record of what actually moved the numbers so the next call is grounded, not vibes. You produce a **strategy doc**, a **posting plan**, and a **decision log**. You never write the script, the cover, the caption, or the cut.

Hand off downstream the moment the deliverable becomes *one video*:
- The 15–60s script and hook variants → `../video-shorts/SKILL.md`.
- The topic/angle backlog feeding the account → `../shortform-ideation/SKILL.md`.
- The cover frame / on-screen title / first-frame packaging → `../shortform-packaging/SKILL.md`.
- The cut, caption burn-in, sound sync → `../shortform-editing/SKILL.md`.
- Cross-platform calendar/scheduler across X/LinkedIn/Threads → `../social-publisher/SKILL.md`.
- The top-down editorial system across all content types → `../content-engine/SKILL.md`.
- The durable tone the account speaks in → `../brand-voice/SKILL.md`.

**Boundary test:** if it is one asset, route it. If it is *what the whole account does, on what rhythm, and the record of what worked* — it is yours.

## Step 0 — Read the ledger before you decide anything

Strategy without memory is just opinion. Before any call, read what the account already learned:

- `02-DOCS/wiki/shortform/` — the compiled strategy, positioning, and dated decisions.
- `02-DOCS/raw/shortform/` — the per-post metrics ledger (completion %, sends, saves, follows).

*Why: the account is a feedback loop. If you cannot point to the prior decision and the metric that backs it, you are guessing — and you will re-make a mistake the ledger already recorded.* If the directories are empty, this is a new account: say so explicitly and create the baseline in Step 0's write-back, then proceed to Positioning.

The numbers below age fast. The dated, sourced cheat-sheet lives in `references/platform-signals-2026.md` — cite it, do not re-derive it.

## Positioning — the one promise and the lane

An account grows when a stranger can finish your video and instantly know *what they get if they follow*. Vague accounts do not grow; specific lanes do — "productivity for remote workers", "true crime in 5 minutes" — because the algorithm rewards retention and a tight lane is what holds a cohort to the end (almcorp.com short-form mastery 2026; virvid.ai faceless 2026 — accessed 2026-06-02).

Write the positioning as one sentence: **`<for whom>` gets `<one promise>` in `<format/lane>`.** If you cannot, the account has no lane yet — narrow before you post.

Faceless is fine. Retention, not a face, is what the algorithm scores. A faceless account is viable *if the retention holds*; if it does not, the problem is the lane or the hook, never the missing face.

| Signal | Diagnosis | Move |
|---|---|---|
| Clear one-promise sentence + completion holding | Lane is working | Proceed to cadence |
| Sentence is fuzzy / lists 3+ niches | No lane — this is the growth blocker | Narrow to ONE promise, re-test 2 weeks |
| Clear lane but completion < niche bar | Lane fine, execution weak | Fix hook/length (hand to `../video-shorts/SKILL.md`), not the lane |
| Faceless, retention proven | Viable | Keep faceless; do not chase a face |

## Cadence and mix — consistency beats velocity

Pick the rhythm the account can *sustain*. Consistency now outperforms sporadic viral hits, and posting past the ceiling dilutes quality and burns the operator out (automateed.com; truescho.com; newzenler.com — accessed 2026-06-02).

| Account / platform | Cadence | Why |
|---|---|---|
| TikTok | 3–5 quality posts/week | Consistency sweet spot; daily-but-thin loses to fewer-but-sharper |
| Instagram Reels | 4–7 Reels/week | Reach-vs-engagement optimum |
| Instagram full mix (weekly) | 3–4 Reels + 2–3 carousels + 1–2 statics | Reels drive growth; carousels drive depth |
| Any platform | Hard ceiling ~10/week | Past this: diminishing returns + burnout + quality dilution |

**Format mix rule (Instagram):** carousels now average ~10% engagement vs ~6% for regular Reels and get a "second chance" surge of 2–3× impressions — but **for small accounts Reels remain the biggest visibility driver** (thesecondbrain.io; reelbase.io; usevisuals.com — accessed 2026-06-02). So: lean Reels for *growth*, carousels for *sales/community*. Do not pile into carousels on a small account chasing the engagement headline — you will trade reach you need for engagement you do not yet.

Bad → Good:
- Bad: "We'll post twice a day to grow faster."
- Good: "4 Reels/week we can actually make well, same two days each week, for 4 weeks; we raise volume only if completion holds."

## Hook-first at the account level

Make the account's KPI **first-3s retention and completion %**, not views or likes. The first 3 seconds decide a Reel, and watch-time/completion is the strongest retention signal — a fully-watched 15s beats a 60s most people abandon (truefuturemedia.com; buffer.com — accessed 2026-06-02). On TikTok the 2026 bar rose: ~70%+ completion to go viral (up from ~50% in 2024), and an 85% completion threshold trips a ~4× distribution multiplier (socialboostdigital.com; socialync.io — accessed 2026-06-02).

Set length bands as account policy, then let depth get scripted downstream:

| Goal | Length band | Why |
|---|---|---|
| New-audience reach + completion | 7–30s | Easiest to fully watch; clears the completion bar |
| Depth with existing followers | 30–90s | Room to teach; full 7–90s is the highest-viral band |

You set the band and the KPI. The actual hook and per-second pacing is `../video-shorts/SKILL.md`'s job — point to it, do not write it here.

## Trends and sounds — the ride-or-skip call

In 2026 a trending sound is a **niche/category signal, not a raw boost**. Using a sound trending *within your niche* nudges TikTok to drop your test cohort into that niche (which raises completion); the 2022–2024 direct distribution boost is gone. Adopt within ~24h of it trending or skip it (sproutsocial.com; opus.pro — accessed 2026-06-02).

Run the call as a gate — all three must be yes to ride:

```text
1. Is the sound/trend trending WITHIN our niche (not just globally)?   no -> SKIP
2. Is it < ~24h old (still on the rising edge)?                        no -> SKIP
3. Does the format fit our positioning without contorting it?         no -> SKIP
all yes -> RIDE: ship within 24h, treat the first ~30 minutes as the test
```

Why the 30-minute window matters: "view velocity" — engagement inside roughly the first 30 minutes of distribution — is a dominant early signal in 2026 (socialboostdigital.com; socialync.io — accessed 2026-06-02). A trend you publish late, off-niche, or twisted to fit gives you all the production cost and none of the cohort lift. When in doubt, **skip** — a missed trend costs nothing; a forced one costs a slot and muddies your lane.

## Series — the compounding move

Multi-part series drive roughly **2.8× higher return viewers** because a recurring format builds the habit the algorithm rewards (socialboostdigital.com; socialync.io — accessed 2026-06-02). A series is the cheapest durable lift you can design.

Design it as a *contract with the viewer*:
- **Name + number it** — "Tiny Systems #07" — so a returning viewer recognizes it in the first frame.
- **Fix a cadence** — same slot, same rhythm (e.g. every Tuesday). A series with no schedule is just a hashtag.
- **Pilot before committing.** Use **Trial Reels** (public IG accounts, 1,000+ followers, available since July 2025) to publish the pilot to non-followers first and read the signal before showing your existing audience — a built-in A/B surface for a format bet (later.com; socialpilot.co — accessed 2026-06-02).

The hand-off: you define the series *concept, cadence, and numbering*. The episodes get ideated (`../shortform-ideation/SKILL.md`), scripted (`../video-shorts/SKILL.md`), and packaged (`../shortform-packaging/SKILL.md`) elsewhere.

## The learning loop — log, review, write back

Every decision must end up in the ledger so next month's call is grounded.

**Log per post** (not just likes): date, platform, format, hook, length, sound, **completion %**, **sends**, **saves**, follows, notes. DM sends are the top distribution signal for Reels in 2026 — share-via-DM carries the most weight for unconnected reach, and shares/saves outrank likes (later.com; truefuturemedia.com; mirra.my — accessed 2026-06-02). If you only log likes and views, you are blind to the signal that actually moves reach.

**Monthly review ritual:** read the ledger, find the top-3 and bottom-3 by completion and by sends, name the pattern, make one positioning/cadence/series change, and record it as a dated decision. The full per-post schema, review checklist, and decision-record template live in `references/learning-loop-template.md` — use it verbatim so the ledger stays machine-readable.

### Decision record format

`02-DOCS/wiki/shortform/decisions.md` is an OKF append-log: write the frontmatter
header once (a non-empty `type` is the only OKF hard requirement; `title`/`tags`/`timestamp`
are the recommended surface), then **prepend each new dated block newest-first** so the
latest call is on top. Use ISO 8601 dates; never edit a past block. Bump the header
`timestamp` on each append. Header + one block:

```markdown
---
type: shortform-decision-log
title: Shortform strategy decisions
tags: [shortform, strategy, decisions]
timestamp: 2026-06-02T10:00:00Z
---
# Shortform strategy decisions

## 2026-06-02 — Drop daily posting to 4 Reels/week
**Decision:** Cut from ~7 thin posts/week to 4 strong Reels/week, fixed Tue/Fri.
**Rationale:** Reach fell as volume rose; consistency > velocity past the ceiling.
**Rests on:** completion avg 31% (ledger), cadence-ceiling signal (platform-signals-2026).
**Revisit on:** 2026-07-02 — keep if completion clears 40% and sends/post rise.
```

*Why dated + rests-on + revisit: a decision you cannot trace to a metric and a date is folklore. The revisit line turns it into an experiment with an end.*

## Anti-patterns

| Anti-pattern | Why it fails | Do instead |
|---|---|---|
| Riding a trend after it peaked / off-niche | Sound is a niche signal now, not a boost; late + off-niche = cost, no lift | Run the 3-gate ride-or-skip; ship within 24h or skip |
| Cross-posting identical creative everywhere | An Originality Score suppresses recycled/reposted content | Re-cut natively per platform; treat each as original |
| Posting 10+/week to "grow faster" | Diminishing returns + burnout + quality dilution | Hold 3–5 (TikTok) / 4–7 (Reels); raise only if completion holds |
| Optimizing likes/views | Sends/saves/completion are what move reach; likes are vanity | KPI = completion % + sends/saves; log them per post |
| No clear lane ("a bit of everything") | Algorithm rewards retention; a fuzzy lane never holds a cohort | One-promise sentence first; narrow before posting |
| Hashtag-spamming for discovery | Discovery shifted to keywords; hashtags no longer support follows | Keywords in caption/profile/on-screen text; drop the hashtag wall |
| "Series" with no fixed schedule | No habit forms; it is just a tag, no return-viewer lift | Name + number + fixed slot; pilot via Trial Reels |
| Deciding from vibes, not the ledger | Re-makes recorded mistakes; nothing compounds | Read `02-DOCS/...` first; every call gets a dated decision record |

## Persist it

Write the account's brain back so it compounds (mirrors the harness Karpathy-wiki convention). The `shortform/` wiki tree is an **OKF v0.1 bundle** shared with the `../tiktok-api/SKILL.md` and `../shortform-packaging/SKILL.md` siblings: every `.md` written here carries YAML frontmatter with a non-empty `type`, cross-references are standard markdown links (never `[[wikilinks]]`), and `decisions.md` follows the OKF newest-first append-log rule.

- `02-DOCS/wiki/shortform/strategy.md` — positioning, cadence/mix, KPI, length bands, current series. Same frontmatter shape as above with `type: shortform-strategy`, then the H1 (`# Shortform account strategy`) and the sections the linter checks.
- `02-DOCS/wiki/shortform/decisions.md` — the dated decision log, OKF append-log (`type: shortform-decision-log`, newest block on top; format above).
- `02-DOCS/raw/shortform/metrics.csv` — the per-post ledger (schema in `references/learning-loop-template.md`). This is `raw/`, not `wiki/` — a CSV, no frontmatter.

Verify a produced strategy doc with `scripts/verify.sh 02-DOCS/wiki/shortform/strategy.md` — a read-only structural lint (positioning, cadence, completion KPI, ride-or-skip rule, ≥1 dated decision, sends/saves logged). The lint reads body content, so the added frontmatter does not affect it.

