Communitygithub.com

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

rsc-harness 是什麼?

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

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ericrisco/rsc-harness/tree/HEAD/skills/viral-score

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

viral-score — is this clip worth publishing?

A fixed rubric for scoring a vertical clip's chance of travelling. Its value is that it is fixed: the same clip scores the same on Monday and Friday, and two clips are comparable because they were measured with the same instrument.

So do not substitute your own judgment for the rubric and do not adjust the weights. If a clip has a quality the rubric does not capture, say so in the reasons — but score it with this.

Score candidates before rendering whenever you can. Judging a transcript excerpt costs seconds; editing a clip that gets discarded costs an afternoon.

The ten criteria

Each is scored 0-10.

#CriterionWeightWhat earns the points
1Opening hook20 %Do the first 3 seconds stop the scroll? Curiosity, surprise, emotion, a strong claim, a striking open
2Expected retention20 %Is there a reason to reach the end? Sustained curiosity, pace, resolution, no dead air
3Emotional impact15 %Intensity: inspiration, awe, fear, anger, joy, nostalgia, humour, surprise. Indifference scores very low
4Shareability10 %Would someone send this to a friend?
5Comment-worthiness10 %Does it invite debate or a reply?
6Message clarity5 %Does the idea fit in one sentence?
7Value density5 %Does every second earn its place?
8Originality5 %Is it different or unexpected?
9Context independence5 %Does it land without having heard the rest of the episode?
10Storytelling5 %Is there a story, a lesson, or a transformation?

The calculation

Viral Score = ( Hook×0.20 + Retention×0.20 + Emotion×0.15 + Shareability×0.10
              + Comments×0.10 + Clarity×0.05 + Density×0.05
              + Originality×0.05 + Context×0.05 + Storytelling×0.05 ) × 10

Automatic penalties

Subtracted after the formula, and they stack.

PenaltyPoints
Weak hook−10
Slow intro−8
Needs too much context−10
Long pauses−5
Idea too generic−8
Provokes no emotion−10
Unsatisfying ending−5

Clamp the final result to [0, 100].

Reading the score

RangeVerdict
95-100Exceptional. Publish immediately
90-94Very likely to perform
80-89Good candidate. Worth editing and publishing
70-79Acceptable, but there are better clips
60-69Weak. Publish only if there is no alternative
0-59Discard

Required output, per clip

  • Start and end timestamp
  • Viral Score (0-100)
  • A table with all ten criterion scores
  • Reasons behind the scoring
  • Main strengths
  • Main weaknesses
  • Verdict: Publish / Review / Discard

Scoring several clips adds two things: a ranking from highest to lowest, and where the cut-off falls — the point below which publishing stops being worth it.

Applying it well

Score the clip, not the topic. A fascinating episode routinely yields a clip that scores 45.

Judge the hook on the actual first three seconds, not on the idea in the abstract. A clip that opens with a filler word or halfway through a sentence has a weak hook: −10. That is also why the excerpt should start on a sentence boundary — where you cut decides the hook.

Be strict about context independence. If the viewer needs to know who the guest is, or what the previous question was, that is −10.

Do not inflate the mean. If twenty clips all come out above 80, the rubric is not being applied. A healthy batch spreads widely, with few above 85.

Justify every low score with what happens in the clip, at a timestamp — not with a generality.

Anti-patterns

Anti-patternDo instead
Scoring how interesting the subject isScore this clip's execution; the topic is not the artifact
Grading the hook from the full ideaRead only the first three seconds as the viewer receives them
Compressing a batch into 78-85Use the range; a flat distribution means the instrument is not being used
"Weak hook" with no evidenceQuote the opening words and the timestamp
Adjusting weights for a clip you likeThe weights are the instrument. Argue in the reasons, score with the rubric
Rendering first, scoring afterScore transcript candidates, then edit only what survives
Skipping the penalties because the total looks lowThey are automatic and they stack; a 72 with three penalties is a 49

See Also

  • ../shortform-packaging/SKILL.md — the hook line, caption, hashtags and cover for a clip that passed this bar.
  • ../shortform-ideation/SKILL.md — inventing the angle, upstream of anything scoreable.
  • ../shortform-editing/SKILL.md — executing the edit once a clip is chosen.
  • ../shortform-strategy/SKILL.md — what the channel should publish over time, which this feeds with per-clip evidence.

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

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

相關技能