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`).
Scanned 9/2/2026
Install to Claude Code
npx -y skills add ericrisco/rsc-harness --skill shortform-strategy --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Shortform Strategy?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ericrisco-shortform-strategy)More formats (shields.io, HTML) on the badges page.
---
name: shortform-strategy
description: "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`)."
tags: [short-form-video, tiktok, instagram-reels, account-growth, positioning, posting-cadence, trends, series, algorithm-2026]
recommends: [video-shorts, shortform-ideation, shortform-packaging, shortform-editing, social-publisher, content-engine, brand-voice, analytics]
origin: risco
---
# 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!