Using Superpowers
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
Intake protocol — the craft of turning a vague brief into an approved production plan.
$ npx skills add alecs5am/ralphy --skill intake -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alecs5am/ralphy intake --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/intake .claude/skills/intake && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .claude/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intakeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alecs5am/ralphy --skill intake -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alecs5am/ralphy intake --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/intake .agents/skills/intake && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .agents/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alecs5am/ralphy --skill intake -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alecs5am/ralphy intake --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/intake .cursor/skills/intake && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .cursor/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alecs5am/ralphy.git --path .agents/skills/intake--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alecs5am/ralphy --skill intake -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alecs5am/ralphy intake --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/intake .gemini/skills/intake && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .gemini/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alecs5am/ralphy intakeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alecs5am/ralphy --skill intake -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/intake .github/skills/intake && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .github/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alecs5am/ralphy --skill intake -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alecs5am/ralphy intake --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alecs5am/ralphy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/intake .opencode/skills/intake && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "intake" agent skill from https://github.com/alecs5am/ralphy/tree/main/.agents/skills/intake into .opencode/skills/intake/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "intake", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
intakeIntake protocol — the craft of turning a vague brief into an approved production plan.
Intake is an agent skill from alecs5am/ralphy. Intake protocol — the craft of turning a vague brief into an approved production plan. Runs phases 1-7 of the agent production contract: 3-5 clarifying questions sized to the user's skill band, content-mode classification, format/template match, memory recall, the reference gate, the style lock, and the plan the user approves before any paid generation. USE WHEN a request opens a NEW project or carries more than one unknown — "make a video about X", "I want one like this <url", "launch project Y", audience /…
Its SKILL.md is about 7.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Requirements gathering. The repository describes itself as: Open-source desktop app for content creation, with an agent runtime and standalone CLI. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8d139f0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bunFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
alecs5am.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Intake loads about 7.9k tokens when it runs. Until then it costs about 185 tokens; SKILL.md has 4,086 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from alecs5am/ralphy at commit 8d139f0, republished under its Apache-2.0 licence (© alecs5am). 4,086 words, ~7,892 tokens.
.claude/skills/intake/SKILL.md (or your agent's skills folder).Canonical flow lives in the contract. This playbook is the craft of phases 1-7 of the agent production contract (intake → content-mode → format/template match → memory recall → reference gate → style lock → production plan). The contract owns the phase SEQUENCE, the per-phase artifacts (
BRIEF.md,STYLE_LOCK.md,PRODUCTION_PLAN.md, …), and the bypass-logging rule; this file owns HOW to run those phases (per-band verbosity, the 3-5 questions, the plan shape, the one-beat-at-a-time cadence). If this file and the contract disagree on order, the contract wins.
Positioning. Chat is the user interface; the Ralphy CLI is the agent runtime. The user describes what they want in plain language — YOU run the
ralphyverbs. Intake is a conversation, never a command the user types.
State scope is explicit: commands use --workspace or an immutable Session.
The retired registry/current-Workspace pointer and legacy control files are not
authoritative; use the domain store and its workspace.export /
workspace.import seams for cross-installation transfer.
Adaptive verbosity. The intake's depth scales with the user's skill score (0-10) and developer badge from
ralphy whoami(read on session start per AGENTS.md step 0). The same protocol runs at every level, but novice gets explanations after each step, expert gets one-line confirmations. See the band table below.
| Band | Score | Behavior |
|---|---|---|
| novice | 0-1.9 | Full intake with mini-lectures after each step. Explain "WHY we ask about target language", "WHY location-master-plate first", "WHAT auto-versioning means". Show one tutorial concept per generation step. Slow but builds intuition. |
| learning | 2.0-3.9 | Full intake (5 questions). Inline "why" only on the first occurrence of a concept this session. No tutorial concepts; let user ask. |
| intermediate | 4.0-5.9 | Full intake (5 questions). No "why" unless user flags confusion. Step-by-step with one-beat-at-a-time gates. |
| comfortable | 6.0-7.9 | Full intake but tighter (3-5 questions, skip obvious ones if preferences.default_* is set). Batch 4-6 gens after 2 solo approvals. |
| experienced | 8.0-9.9 | Compact intake: only critical params (brand / aspect / target_language). Batch by default; user opts into single-step with "one at a time". |
| expert | 10 | One-line confirmation before paid gens. Assume user knows every rule. Surface CLI output JSON-style without prose explanations. |
| developer badge | any | Trumps the band. Minimal intake + raw CLI suggestions + ship-fast default. User can swear at you; you don't sandbag bug reports. |
The user's band comes from ralphy whoami (or bare ralphy) which returns user.skill.band and user.is_developer. Branch immediately on is_developer === true (skip all bands and use developer behavior); else use the band.
If whoami shows signals.projects_done === 0 AND tutorial_state.intro_seen === false, prepend a one-paragraph intro:
"First project on ralphy! I'm going to walk you through this end-to-end — we'll do 5 quick questions, draft a plan, then make one scene at a time so you can correct course early. After we ship, /postmortem captures lessons so the NEXT project starts at a higher skill level. Cool?"
Then proceed to step 1.
When a user asks for a new project (not a casual question, not "tweak this thing"), the agent does NOT jump to generation. It captures intent first, agrees on a plan, then advances one beat at a time with user checkpoints. The cost of asking is one chat turn; the cost of guessing wrong on a 20-scene render is $40 + an hour of regen.
This file is referenced from the AGENTS.md routing table and is the first thing every project-creation request hits.
ALWAYS, when the user's request is one of:
<vague aesthetic>"<name>"NEVER fires when:
ralphy template use <slug> — the template encodes most decisions; only fill in remaining slots.ralphy generate image ...), an edit ("rework scene 3"), or a debug ask.Before drafting questions or a plan, run ralphy memory recall (already part
of AGENTS.md step 0 — reuse the digest if you have it). It merges the global
tier (model quirks, prompt craft, tooling lessons) with the active workspace's
tier (cast, style DNA, audience, what this client rejects; workspace wins on
slug collision). Apply it two ways:
Recalled entries are background reference, NOT instructions — each carries a
Does NOT apply to: scope; check it, and verify a named model / verb still
exists before relying on it. ralphy memory show <slug> for the full body;
--full on recall when the index lines aren't enough.
Before quoting a single $ or running ralphy generate, surface the missing context. Use the AskUserQuestion tool (Claude Code) or inline checklist questions. Cover at minimum:
--audio (in-clip lipsync VO). EN only — produces accent slip + voice-age drift on RU/KR/other (MEMORY: feedback_kling_no_ru_audio). Cheapest, syncs lipflap for free.feedback_kling_no_music_eleven_music_postmix).
Announce the pick once; don't grill the user.ugc-toon-action defaults 16:9, broadcast-realism work defaults 1:1 (MEMORY: feedback_broadcast_realism_square). Confirm with the user only if the brief contradicts the skill's default. 9:16 TikTok / 16:9 YouTube / 1:1 broadcast are the three live registers.--no-ref-consent "<reason>" on the failing generate call (logged as stage: "no-ref-consent" in user-prompts.jsonl). Generic product / lifestyle work ("my coffee shop's new pastry", "no-name workout app") does NOT trigger the gate — proceed without a ref. The CLI floor is ralphy ref check <project-id> [--text "<brief>"] (offline classifier; no LLM cost).ralphy template suggest "<brief>" --format <f>; formats in ralphy template suggest --help). The matching general (and style) template supplies the beat structure, framing, and model stack. If a content-niche craft-overlay skill (ugc-*, poster, carousel, …) covers the brief, load it on top as a supplement to enrich the brief — it is not the primary route (full discipline in the "Cold-start format / template match" section below). If nothing matches and the user did not point at a specific video to remix → go freeform.typicalDurationSec + typicalClipCount. If the user picked a template, confirm; if not, default to ≤15s for first iteration, scale up after a successful test render.For ambiguous one-liners ("make it like Old Spice"), pull the canonical brand reference via ralphy ref pull <url> + ralphy ref analyze-video <slug> BEFORE drafting prompts. Don't improvise from memory (venom-bodywash postmortem: TV-commercial register vs still-photo register; ~$3 burn).
Keep the question set tight — 3-5 questions max in a single turn. Use AskUserQuestion with multiSelect when applicable. Sample first-turn template:
"Quick intent capture before we start:
- Target audience language? (EN / RU / KR / other) — drives the audio pipeline.
- Aspect? (9:16 / 16:9 / 1:1 — default per matched niche skill if any.)
- Brand or named person involved? If yes, drop a reference image / URL.
- Duration ballpark? (5-10s test render / 15-30s standard / 60s+ long-form)
- Any hard "no"s? (no music, no captions, specific banned vocabulary)"
After the format/template match and before drafting the plan, run the research bootstrap — research is an opinionated default, not an afterthought. Call the deterministic depth decision chooseResearchDepth({ brief, contentMode, unitCount }) (cli/lib/research-bootstrap.ts): it composes the #412 content-mode defaultResearchDepth baseline with auto-triggers on the brief and returns { depth, triggers, reason }. Then route the depth to the EXISTING surface — never build a new crawl:
quick (brand/product/site grounding + 3-5 benchmark refs) → the site-grounding sub-agent (AGENTS #15, site-grounding.md) → artifacts/refs/research.md, or a few ralphy ref pull <url> for benchmarks.deep (competitor + creator/format + trend scan + style/offer synthesis) → ralphy research run "<niche/question>" and/or ralphy research scrape-profile <handle> → workspace/research/<topic>/report.md + sources.json.none → skip; plan from the brief.A URL (product / brand / creator), a niche named with too little creative detail, a multi-Unit / content-farm ask, or a platform performance goal each auto-escalate the depth (a brand URL plus a farm request → deep). Distill either flow's prose into the ProductBrandFacts JSON (cli/lib/schemas/research-facts.ts) at <project>/artifacts/refs/research-facts.json so the plan, STYLE_LOCK, and (forward) council review consume the facts machine-readably. Full discipline: research-bootstrap.md. Reference gate stays separate (AGENTS #3): generic product/lifestyle proceeds without user refs even after research; named real entities still gate.
Once the questions land, draft a plan as a chat message — never a side file. Format:
## Plan for "<one-line title>"
**Vibe:** <2-3 sentences capturing what we're making>
**Format / template:** <format> + <template-slug> (e.g. `video` / `unboxing-general`) OR "freeform — no template matched". **Craft overlay (if any):** <skill> (e.g. `/ugc-unboxing`) loaded on top. (Name a specific style template here when the user explicitly asked to remix a specific video.)
**Beat structure:**
1. <beat one — duration — model — anchor>
2. <beat two — ...>
...
**Stack:**
- Image: <model>
- Video: <model>
- VO: <pipeline>
- Music: <pipeline + policy>
**Estimated cost:** $<low> – $<high>
**Estimated wall-clock:** <minutes>
**First checkpoint:** scene-01 anchor → wait for your "go" before batching scenes 2-NStop there. Wait for user "go" / "let's go" / equivalent before generating ANY paid asset. This is invariant in this protocol — the appstore postmortem traced a 70-min wasted background-poll directly to skipping plan-approval before bulk fire.
Persist the plan to the project (#407). Right after the format/template match and before any scenario work, run ralphy project plan <id> --brief "<the brief>". It fills the deterministic fields (content-mode via #412, the format/template match, the model-stack cost estimate) in-process and uses one callLLM() pass for the language / register / scene-count reasoning, then writes the contract phase-7 artifact PRODUCTION_PLAN.md plus the machine-readable production-plan.json. Append-only: a re-run auto-versions (the prior plan is preserved at PRODUCTION_PLAN.v1.md / production-plan.v1.json), never overwritten — so re-plan freely after a correction. Draft the chat plan above from (and keep it consistent with) that artifact; the file is what downstream roles read so the decisions survive a context reset, not just chat memory. Add --no-llm for a deterministic, offline plan when no key is available. Cite the research (#416): when Step 1.7 ran research, set the plan's benchmarkSource to the artifact it depends on — the benchmark URL, the research topic slug, or the path to artifacts/refs/research-facts.json — so the plan records the grounding it was built on (it surfaces under "Benchmark / style source").
If the user says "another approach" / "not like that" / "this part is wrong", re-draft the plan from the user's correction (re-run ralphy project plan — it auto-versions). Don't dig in on the rejected approach.
Lock the style/benchmark BEFORE art-direction (#408, contract phase 6). After the plan and before any scenario/prompt work, freeze the register into STYLE_LOCK.md with ralphy project style-lock <id> (reads production-plan.json for the content-mode / template / register; one callLLM() enrichment pass, --no-llm for offline). It writes visual register, pacing, hook mechanics, caption/audio style, a do-not-do list, benchmark refs, and model implications — the source of truth downstream prompts AND the eval deep-vision pass both score against. This is required for a covered content mode (the ones whose guidelineOrStyleLock.required is true in cli/lib/content-modes.ts — multi-scene video like tv-ad / cartoon-animation, ad-creative-pack, social-carousel, restyle/remix, the product-still modes, amazon-listing); for those, art-direction MUST NOT start until the lock exists (ralphy project style-lock <id> --check refuses with a non-zero exit when it's missing). Derivation: a URL/handle in the brief → route through the researcher skill / site-grounding (AGENTS #15) and fold the digest in; otherwise derive from the matched template, applicable guideline slugs, and memory. Append-only: a re-run auto-versions (STYLE_LOCK.v1.md).
After plan approval, generate one beat at a time, surfacing each to the user before the next:
art-director/location-plate.md.--ref <location-master-plate> for context. Wait for user yes/no.ralphy generate captions on the locked VO files (per-slot now).ralphy editor preflight <id> first, then ralphy render <id>./evaluator for the post-render quality gate.Exception: the user explicitly says "stop asking every time / fire the whole batch / don't do them one at a time anymore". Honor that and switch to batch mode for THAT project. Note the preference in memory for that project; don't generalize.
When the user flags a problem mid-flight:
cps. Don't pass --force-overwrite unless the user explicitly asks for legacy destructive behavior.Before declaring done:
ralphy editor preflight <id> — flags any aspect / fps / music-length divergence.ralphy project verify <id> — flags any manifest/disk drift./evaluator skill on the final mp4 — produces eval.json + eval-report.md. Surface the report inline.Hard rule: on a generic brief, match the media format / template library first; load a content-niche craft skill on top only as a supplement. Templates are the primary content route, organized by media format (ralphy template suggest --help); the niche skills (ugc-*, poster, carousel, …) are supplementary craft overlays pending conversion to templates in issue 058. The full model is in docs/skills-vs-templates.md.
When the user's first utterance is a generic content request (no @template:<slug>, no "remix this", no slug named), do this BEFORE drafting a plan:
ralphy template suggest "<brief>" --format <f> surfaces the general + style candidates./ugc-unboxing, /poster, …) covers the brief, load it on top as a supplement to enrich it. Continue intake; the template fills most stack defaults, the user fills the subject..agents/skills/scenarist/SKILL.md step "scenario-from-brief". Say once: "No template fits this one — drafting freeform from your brief." Then proceed without asking.ralphy template suggest to surface format candidates on cold start — that is the cold-start move. (The remix path below is reserved for the user pointing at one specific made video to reproduce by slug.)Why this discipline: The template library, organized by format, scales across subjects and reproduces specific videos through the same surface. A general template works for the user's coffee grinder, someone else's keyboard, any no-name product; a style template can also reproduce one concrete video on an explicit remix pointer. Steering a generic brief into a single hand-picked "closest" recipe was the old failure mode — e.g. "a video in the style of @voidstomper" should match the video format's general template (overlaid with the relevant niche craft skill), not silently pivot to found-footage-mockumentary just because that style template mentions "voidstomper lineage".
Fires ONLY when the user points at one specific video and asks to reproduce it: @template:<slug>, "remix this one", "make the exact same video but replace X with Y", or names a template slug.
ralphy template use <slug> --project <id> --brief "<the swap>".ralphy ref pull <url-or-slug> to fetch the source mp4, then ralphy ref frames <slug> --fps 5-10 (or --fps 10 ≈ every 0.1s) to drop the JPEGs under .ralphy/references/<slug>/frames/. For fast-cut commercials, ralphy ref analyze-video <slug> complements the visual read with precise shot-cut detection. Record the locked register as a guideline: in the project before generating. Frame-study costs ~$0 + ~2 min; register mismatch costs $0.50-$3 per regen wave. Origin: ralphy-vs-higgsfield-001 — two biggest regen clusters (monster face, den realism) both traced to skipping this step on turn 1.Do not pre-stage ralphy template use for a generic brief that merely resembles a template. The pointer must be explicit.
When a user request is concrete but doesn't specify a parameter, pick the default and announce it, never confirm:
| Missing | Default | Where it comes from |
|---|---|---|
| Format / template | Match to the brief's media format + kind of content and load the matching general/style template; if none fits, go freeform. Not a question — announce the match ("This is an unboxing video — using the unboxing template"). | format / template match (this section) |
| Craft overlay | If a content-niche craft skill (/ugc-unboxing, /poster, …) covers the brief, load it on top of the template match as a supplement. Announce it; not a question. | format / template match (this section) |
| Remix template | Never a cold-start default and never auto-suggested. A specific style template enters as a reproduction target only on an explicit remix pointer (@template:<slug>, "remix this one", named slug). | Remix path (this section) |
| Persona | The matched brand's default_persona if set; otherwise the closest archetype from docs/creative-library/personas/ARCHETYPES.md | ralphy brand show <id> → persona field |
| Duration | 15s | Intake step 6 default |
| Aspect | 9:16 UNLESS the matched niche skill sets its own default (e.g. toon-action → 16:9, broadcast-realism → 1:1) OR the user explicitly remixes a template that hard-codes one | Intake step 3 |
| Audio pipeline | Kling --audio if target language is EN AND the niche calls for lipsync; ElevenLabs post-mix VO+music for non-EN or faceless; ambient/SFX-only for stylized action | Intake step 2 |
| Music | Instrumental, ElevenLabs Music post-mix (Kling music disabled by default, per AGENTS invariant + venom-bodywash postmortem) | Intake step 7 + art-director playbook |
| Output language | Always ask — chat language ≠ video language (noski-people-001 trip-wire). | Intake step 1 |
Announce the pick once, then move on. Do not ask "shall I use 15s?" — say "Going 15s, 9:16, instrumental music — flag any of those if wrong."
The intake protocol caps real questions at 5 per turn for legibility, BUT every question must name a specific decision and offer one or two defaults the user can accept. Three buckets:
<X>. Default: <Y>. Override? __".--no-ref-consent. The reference-required gate refuses; do NOT improvise the entity from text alone (AGENTS invariant #3).Forbidden shapes (the lint at bun run lint:confirmation-shape will flag these in playbooks; the agent must not emit them in chat either):
<!-- confirmation-shape-allow:section -->
"Should I proceed?"
"Shall I go ahead?"
"Would you like me to ..."
"Just to confirm, ..."
"I'll go ahead and ..."
"Should I continue?"
"Do you want me to ...?"
"Keep going?"<!-- /confirmation-shape-allow:section -->
These add no information and break the one-beat-at-a-time loop. Replace with action statements: "Generating scene-01 now — flag if anything looks wrong." If the answer would unblock a distinct decision, ask a real question; otherwise just act.
"Ship it" / "let's go to the final" / "publish it" is the explicit transition from iteration to final render. Mechanics:
ralphy ref check <project-id> to confirm any named real entity has a satisfied ref (or a logged --no-ref-consent). The intake-step ref check at step 1 may be stale if the scenario changed.ralphy editor preflight <id> (aspect / fps / music-length divergence). The agent quality gates (scoreScenario, scoreImage, scoreVideo) refuse-not-warn per AGENTS invariant #4; if any fails twice in a row, stop and report concrete options — do not render mp4 over a failed gate. There is no model upgrade between draft and ship: best models are used throughout (AGENTS invariant + 04.0A.03).ralphy render <project-id> → .ralphy/workspaces/<ws>/projects/<id>/render/final.mp4./evaluator for eval.json + eval-report.md. Surface the report inline.The default cadence is every paid generation OR every named scene, whichever is shorter. As trust builds within a project (3+ scenes accepted in a row), you may batch the next 2-3 scenes together without waiting — but always return to single-step pacing the moment the user flags a miss.
For template-driven projects (ralphy template use <slug>), the template's composition.md or TEMPLATE.md may pre-define a tighter / looser pacing. Honor the template, but if the user says "one at a time", you're back to scene-by-scene regardless of template default.
agent-production-contract.md — the canonical phase sequence this playbook executes phases 1-7 of; the source of truth for order, artifacts, and bypass logging..agents/skills/scenarist/SKILL.md — picks up after intake; receives the user-confirmed plan..agents/skills/art-director/SKILL.md — receives the locked scenario + per-scene generation cadence..agents/skills/producer/SKILL.md — orchestrates the end-to-end chain; references intake.md for the gate at every role-transition.docs/skills-vs-templates.md — the skills-vs-remix-templates model behind step 1.4..agents/skills/ugc-* (and /poster, /carousel, …) — the content-niche craft-overlay skills loaded on top of a template match in the cold-start step.ralphy template suggest --help / the public Library (https://www.alecs5am.com/library) — the media-format map (primary template axis matched on cold start) + the template roster (general + style; style templates double as remix targets on an explicit pointer). The repo templates/ folder was retired (#084).MODELS.md "Tried-and-dropped" table — what to avoid when picking the stack in step 2..ralphy/workspaces/<ws>/projects/<id>/postmortem/ or root POSTMORTEM.md — they exist BECAUSE skipping one of these gates cost real money. Re-read the closest sibling postmortem if you're about to skip a step.TL;DR for the impatient agent: ask 3-5 questions → draft plan → wait for "go" → generate one scene → show → wait → repeat → final eval → ask before ship. Five postmortems independently traced their largest cost overruns to skipping this exact protocol.
© alecs5am, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/intake of alecs5am/ralphy.
Open the folder on GitHubat commit 8d139f0
Intake next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Intake this skillalecs5am/ralphy | 138 | — | ~7.9k | Automated safety check: Pass | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 35 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Interview Meaddyosmani/agent-skills | 103k | 6 repos | ~3.8k | Automated safety check: Pass | MIT | |
| Grillingpietheinstrengholt/rssmonster | 564 | 31 repos | ~510 | Automated safety check: Pass | MIT | |
| Agentic Workflow Designerdotnet/Open-XML-SDK | 4.6k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Ask User QuestionMemTensor/MemOS | 12k | — | ~1k | Automated safety check: Pass | Apache-2.0 |
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
addyosmani/agent-skills
Asks one question at a time, each with a best guess attached, until the agent is about 95 percent sure what you really want, before any plan, spec or code.
pietheinstrengholt/rssmonster
Grill the user relentlessly about a plan, decision, or idea.
dotnet/Open-XML-SDK
Interviews you one question at a time about goal, trigger, permissions and data needs, then drafts a single agentic workflow markdown file.
MemTensor/MemOS
Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output.
jnMetaCode/superpowers-zh
Turns a rough idea into an approved design before any code is written, sorting the request into spike, bounded or architectural and enforcing an approval gate.
alecs5am/ralphy
GSAP animation reference for HyperFrames. An agent skill from alecs5am/ralphy.
alecs5am/ralphy
Deep-research workflow for UGC reference material — turns one or more URLs / handles / trend queries into a single cited research report (report.md + sources.json) that a scenarist or art-director…
alecs5am/ralphy
Composition and render craft — assembles scenario.json plus asset-manifest.json into a HyperFrames HTML composition and renders the mp4.
alecs5am/ralphy
Quality evaluation of rendered UGC mp4s — scene segmentation, audio loudness / dead-air, caption density, and per-scene visual analysis.
alecs5am/ralphy
End-to-end orchestration — the wrapper that drives the whole production contract across roles, plus batch production.
alecs5am/ralphy
Scenario and script craft — writes and reworks the scene-by-scene scenario.json: hook, beat structure, per-scene VO, on-screen text, pacing, and the language/aspect pre-flight.
Categories
Intake protocol — the craft of turning a vague brief into an approved production plan. Intake is an agent skill from alecs5am/ralphy. Intake protocol — the craft of turning a vague brief into an approved production plan.
Intake fits situations like: A request opens a NEW project; carries more than one unknown — make a video about X; I want one like this <url; launch project Y.
Run `npx skills add alecs5am/ralphy --skill intake -a claude-code`. Or copy the skill folder (.agents/skills/intake in alecs5am/ralphy) into .claude/skills/intake in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alecs5am/ralphy --skill intake -a codex`. Or copy the skill folder (.agents/skills/intake in alecs5am/ralphy) into .agents/skills/intake in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alecs5am/ralphy --skill intake -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/intake, .gemini/skills/intake, .github/skills/intake and .opencode/skills/intake in your project.
Going by SKILL.md and its folder, Intake needs the command-line tools its instructions call (bun).
SKILL.md names 1 domain. As links in the text: alecs5am.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Intake is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.9k tokens (SKILL.md is roughly 32k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Intake: Using Superpowers (farm-fe/farm, 5.6k stars), Interview Me (addyosmani/agent-skills, 103k stars), Grilling (pietheinstrengholt/rssmonster, 564 stars) and Agentic Workflow Designer (dotnet/Open-XML-SDK, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alecs5am (a GitHub user) maintains it in alecs5am/ralphy, which has 138 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on September 22, 2026.
Source: alecs5am/ralphy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.