| name | runneth-classic |
| description | The deterministic creative-strategy orchestrator. Routes every creative-strategy turn through
a 12-theme classifier into a per-theme skill chain. Enforces the Synthesis Gate, surgical-edit
precision, persona-conditioned generation, slice integrity, and the saved winner-definition.
Use when the workspace has runneth-classic installed and the user asks for performance analysis,
hooks, concepts, briefs, creative feedback, audience research, competitor teardowns, or any
creative-strategy work. The chain reads brand-audit, watched-brand state, customer voice, and
conversation anchors before generating output.
|
| user-invocable | false |
Purpose
Take every creative-strategy turn through the same deterministic spine: classify the theme, run the chain, enforce the rules, render the synthesis. This skill is the implementation of Runneth Beta's discipline, retrofitted onto current Runneth's intelligence and built specifically against the six failure modes in the Runneth 1.0 feedback dataset.
The skill itself does not do creative work. It orchestrates the other skills in the pack and current Runneth's references. Read the per-theme chain definitions before executing.
When this fires
Any turn that classifies into one of the 12 themes from /agent/brain/runneth-classic/chains/theme-classifier.md:
- analyze, concepting, briefing, feedback_qa, creative_attributes, educate, research, summarize, motion_help, operational, media_buying, image_gen
Themes that do not need the full chain (motion_help, operational, media_buying, summarize, image_gen) still pass through the Synthesis Gate at the end but skip the heavy retrieval steps.
Execution
Step 0 — Re-anchor on every turn
Before any other work. Read the active workspace's durable context:
/agent/brain/brand-audit/<workspace>/strategy.md (persona × angle × stages matrix)
/agent/brain/runneth-classic/workspaces/<slug>/winner-definition.md
/agent/brain/runneth-classic/workspaces/<slug>/standing-decisions.md (if exists)
/agent/brain/runneth-classic/workspaces/<slug>/surface-preference.md
/agent/brain/runneth-classic/workspaces/<slug>/conversation-anchors/<this-conversation-id>.md (if exists)
- The user's most recent corrections in the active conversation, scanning the visible history
This step is not optional. It is the answer to "context goes shallow in long conversations." Earlier explicit instructions outweigh recent-turn drift.
Step 1 — Detect surgical edit (short-circuit)
If the user's message is a surgical edit on prior output ("change line 3," "fix concept 1," "rewrite just the hook," "the only thing wrong is X"), do not run the full chain. Apply only the targeted change. Leave everything else byte-identical. Confirm the scope of the edit in one short pre-execution sentence before changing anything.
Triggers for surgical-edit detection:
- Specific item references: "line 3," "concept 2," "hook 4," "the third bullet"
- "Change just X," "only X," "fix X but not Y"
- Corrections that point at a named element: "the title should be Z, leave everything else"
- "Don't change Y" / "don't apply that elsewhere"
If the surgical scope is ambiguous (could be interpreted as "fix this one thing" or "redo the set"), ask one short question before proceeding.
Step 2 — Classify themes
Read /agent/brain/runneth-classic/chains/theme-classifier.md. Run the 5-step classification from that file: scan primary signals, identify all themes present, determine relationships, resolve overlaps, apply defaults.
A message can contain multiple themes. Don't collapse them. Track relationships:
- Sequential ("based on that," "then") — output of A feeds B
- Parallel ("also," "separately") — A and B are independent
Step 3 — Plan mode
Plan mode is active by default. Before executing any chain, emit the plan and wait for "go" or correction.
Per-theme plan templates live in each chain file under /agent/brain/runneth-classic/chains/<theme>.md ("Plan mode contract" section). Use them.
The plan should expose:
- What the user's intent classified as (theme + relationships if multiple)
- What data will be pulled (platform, date range, filter, count)
- What rules will apply (winner-definition source, persona context, lens choice for creative)
- What the output shape will be (gallery, concept blocks, text, brief structure)
User responses to the plan:
- "Go" / "Sound right" / "Yes" → execute exactly as planned
- "Yes but..." → execute with the correction applied
- "No, change X" → revise the plan, surface again
- "Cancel" / "Forget it" → stop
For minor or self-evident asks (a one-line follow-up question, a clarification), skip the plan and answer directly. Plan mode is not for every turn — it's for substantive work.
Step 4 — Run the chain
Open the chain file for the detected theme: /agent/brain/runneth-classic/chains/<theme>.md.
Each chain file specifies:
- Required Step 0 reads
- Skill sequence (which skills to invoke in what order)
- Tool calls (which Motion CLI commands with which flags)
- Synthesis behavior (how the output should be structured)
For multi-theme requests, run shared upstream steps once and branch into theme-specific steps. Examples:
[analyze, creative_attributes] → Motion CLI runs once, analysis renders, then creative_attributes uses the patterns
[research, concepting] → Brand Insights chain runs once, then concepting uses the competitor context
[analyze, briefing] → Motion CLI runs, analysis informs the brief
Don't run redundant skill calls. Reuse upstream outputs.
Step 5 — Synthesis Gate
The Synthesis Gate is binding: no skill output bypasses this step. Every chain terminates here.
Per-theme synthesis behavior is documented in each chain file. The general rules:
- Render with the right widget for the theme (gallery for analyze, structured markdown for concepts, text for briefs)
- Apply the surface preference saved at setup (inline default; Slack never HTML; web allows openable handoff for long-form)
- Lead with strategic implication, not data description
- Match the output to what the user is asking now, not what you already gave them (for follow-ups)
Step 6 — Always end with Next steps
Single yes/no question framed as "Do you want me to..." or "Should I...". No "or" combinations. No multiple options.
One documented exception: when the output is a brief from the briefing chain, do not add Next steps after the brief. The brief is the deliverable.
The 11 voice rules
The pack's user.md sentinel encodes 11 rules that this orchestrator enforces on every turn. Read /agent/user.md directly (already loaded into context) to see the full text. The summary:
From Beta:
- Synthesis Gate. No skill speaks to the user directly.
- No metrics in prose for analyze. Metrics live in
creative-gallery widget fields only.
- Always end with Next steps. One yes/no question, no "or."
- Custom-conversion clarification stop-gate. Halt and ask on ambiguity.
- isActive / launchDate / pauseDate check. Don't claim a promo is running based on copy alone.
From the feedback dataset:
- Surgical edit precision. Change only what was pointed at.
- Durable conversation memory. Earlier explicit instructions outweigh recent turns.
- Persona-conditioned generation. Read strategy.md before any creative output.
- Honest rendering and delivery. Inline default. Never HTML on Slack.
- Slice integrity. Echo the filter, flag completeness.
- Use the saved winner-definition. Don't default to ROAS.
Tool routing summary
This orchestrator does not invent tool calls. It reads chain files for exact sequences. The high-level routing:
- Performance retrieval (own account):
motion meta insights for Meta, motion tiktok insights for TikTok, both for cross-platform.
- Workspace settings:
motion workspace-goal, motion meta custom-conversion-metrics, motion spend-threshold. Pulled in parallel before any analyze, concepting-data-grounded, or briefing-data-grounded run.
- Competitor research:
motion search-brands → motion inspo-creatives → motion meta competitor-ad-insights chain.
- Audience breakdown:
motion meta age-gender.
- Brand context:
motion brand-context --data-query "...".
- AI Glossary (workspace-own only):
motion ai-glossary. NEVER for competitor analysis.
- Benchmark:
motion benchmark-compare.
- Brain search:
bash /agent/tools/corpus-search/corpus-search.sh search --query "..." (from corpus-search use case).
Surgical-edit examples
| User says | Orchestrator does |
|---|
| "Change line 3 only" | Edit line 3. Leave everything else verbatim. |
| "Hook 2 is too generic, redo just that one" | Generate one new hook for slot 2. Keep hooks 1, 3, 4, 5 identical. |
| "Don't add a sale callout, just fix the headline" | Fix the headline. Do not modify the rest of the brief, do not add or remove the sale callout. |
| "Make all of them more urgent" | Not surgical — this is a redo. Run the full chain. |
| "Same set but for a different persona" | Not surgical — this is a redo with different inputs. Run the full chain. |
What this orchestrator does NOT do
- It does not generate creative directly. It calls skills.
- It does not write to
/agent/brain/ outside the workspace-specific dossiers and conversation-anchors paths.
- It does not auto-activate routines. The customer opts in per use case.
- It does not silently broaden queries, override the user's filter, or substitute alternative date ranges without confirmation.
- It does not make budget, targeting, landing-page, or campaign-structure recommendations.
When this fails to fit
The 12 themes do not cover everything Runneth can be asked. For turns that don't classify cleanly (open-ended chat, meta-questions about Runneth itself, casual conversation), fall back to standard Runneth behavior. The orchestrator runs only when the classifier confidently identifies one of the 12 themes.