Communitygithub.com

ericrisco/rsc-harness

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`).

rsc-harness란 무엇인가요?

rsc-harness is a Claude Code agent skill that 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`).

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ericrisco/rsc-harness/tree/HEAD/skills/shortform-strategy

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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.

SignalDiagnosisMove
Clear one-promise sentence + completion holdingLane is workingProceed to cadence
Sentence is fuzzy / lists 3+ nichesNo lane — this is the growth blockerNarrow to ONE promise, re-test 2 weeks
Clear lane but completion < niche barLane fine, execution weakFix hook/length (hand to ../video-shorts/SKILL.md), not the lane
Faceless, retention provenViableKeep 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 / platformCadenceWhy
TikTok3–5 quality posts/weekConsistency sweet spot; daily-but-thin loses to fewer-but-sharper
Instagram Reels4–7 Reels/weekReach-vs-engagement optimum
Instagram full mix (weekly)3–4 Reels + 2–3 carousels + 1–2 staticsReels drive growth; carousels drive depth
Any platformHard ceiling ~10/weekPast 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:

GoalLength bandWhy
New-audience reach + completion7–30sEasiest to fully watch; clears the completion bar
Depth with existing followers30–90sRoom 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:

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:

---
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-patternWhy it failsDo instead
Riding a trend after it peaked / off-nicheSound is a niche signal now, not a boost; late + off-niche = cost, no liftRun the 3-gate ride-or-skip; ship within 24h or skip
Cross-posting identical creative everywhereAn Originality Score suppresses recycled/reposted contentRe-cut natively per platform; treat each as original
Posting 10+/week to "grow faster"Diminishing returns + burnout + quality dilutionHold 3–5 (TikTok) / 4–7 (Reels); raise only if completion holds
Optimizing likes/viewsSends/saves/completion are what move reach; likes are vanityKPI = completion % + sends/saves; log them per post
No clear lane ("a bit of everything")Algorithm rewards retention; a fuzzy lane never holds a cohortOne-promise sentence first; narrow before posting
Hashtag-spamming for discoveryDiscovery shifted to keywords; hashtags no longer support followsKeywords in caption/profile/on-screen text; drop the hashtag wall
"Series" with no fixed scheduleNo habit forms; it is just a tag, no return-viewer liftName + number + fixed slot; pilot via Trial Reels
Deciding from vibes, not the ledgerRe-makes recorded mistakes; nothing compoundsRead 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.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

ericrisco/rsc-harness

Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof and testimonials, and one primary CTA — or diagnosing a page that gets traffic and does not convert, as a copy problem rather than a layout one. NOT the paid ad that drives the click (that is `ads`), NOT the visual layout the words sit in (that is `design`), NOT the experiment that picks the winning variant (that is `ab-testing`).

ericrisco/rsc-harness

Use when you need to render an actual video file with Remotion — React compositions, the Composition/Sequence/TransitionSeries graph, transitions, burned-in word-by-word captions from a transcript, automatic silence removal, b-roll overlays, headless CI renders, and a final MP4 or MOV. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT mastering audio to LUFS or building an RSS feed (that is `podcast`), NOT structuring the narrative arc (that is `course-storytelling`).

ericrisco/rsc-harness

Use when you have raw 9:16 footage and need it cut into a post-ready vertical short — dead air removed, fast jump cuts, karaoke word-by-word burned-in captions from a transcript, cuts and zooms snapped to the music beat, safe-area placement so captions clear the platform UI, and a platform-correct MP4 export. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT building a Remotion React composition codebase (that is `remotion-video`), NOT deciding when or where to post (that is `social-publisher`).

ericrisco/rsc-harness

Use when a Reels/TikTok/Shorts account needs its next video ideas scored into a ranked backlog, grounded in its own performance log plus dated trending sounds, each bet logged so its outcome feeds the next batch. NOT scripting a chosen idea (that is `video-shorts`), NOT pillars or cadence (that is `shortform-strategy`), NOT packaging a finished cut (that is `shortform-packaging`).

ericrisco/rsc-harness

Use when a vertical short is shot or scripted and you need the upload-form copy and cover that win the feed — the hook line, the first-frame on-screen text, the search-led caption, a tight hashtag set, and the cover frame; it learns from what performed via the 02-DOCS log. NOT inventing the idea (that is `shortform-ideation`), NOT scripting or directing the cuts (that is `video-shorts`), NOT executing the edit (that is `shortform-editing`), NOT scheduling the post (that is `social-publisher`).

ericrisco/rsc-harness

Use when connecting a real TikTok account to code via the Content Posting, Display and Business Account APIs — OAuth, chunked video publish with status polling, and pulling views, watch time and impression sources, then logging that performance into the wiki as a dated feedback record. Covers short-lived tokens breaking a cron, unverified pull-from-URL ownership, and rate limits. NOT what to post or how to package it (that is `shortform-strategy` and `shortform-packaging`).

ericrisco/rsc-harness

Use when scripting or directing the edit of a single vertical short that has to hold attention from the first frame — turning a topic, a clip or a long video into a shot-by-shot script and an edit decision sheet, fixing a hook that dies in second three, generating hook variants to test, and planning cuts and on-screen text. NOT scheduling or cross-platform cadence (that is `social-publisher`), NOT running the editorial calendar (that is `content-engine`), NOT defining the durable brand tone (that is `brand-voice`).

ericrisco/rsc-harness

Use to judge whether a short-form clip is worth publishing — scores a reel, short or podcast excerpt 0-100 on ten weighted criteria with automatic penalties, then ranks a batch and says where the cut-off falls. Run it on transcript candidates before rendering. NOT writing the hook or caption (that is `shortform-packaging`), NOT inventing the idea (that is `shortform-ideation`), NOT executing the edit (that is `shortform-editing`).

관련 스킬