Skip to main content
SEASON 01 ・ 紅の刻 ・ THE FORGE OPENSFIRST SHORT INCOMING ・ MIRA ・ 覚醒STUDIO 伝 ・ ANIMELEGENDS.AI ・ EST. 2026v0.9.0 ・ THE GATE TREMBLES7 STAGES ・ 99 AGENTS ・ 3 NARRATORS ・ 0 COPIEDBUILT ON SIP ・ ATTESTED ・ 通信SEASON 01 ・ 紅の刻 ・ THE FORGE OPENSFIRST SHORT INCOMING ・ MIRA ・ 覚醒STUDIO 伝 ・ ANIMELEGENDS.AI ・ EST. 2026v0.9.0 ・ THE GATE TREMBLES7 STAGES ・ 99 AGENTS ・ 3 NARRATORS ・ 0 COPIEDBUILT ON SIP ・ ATTESTED ・ 通信
How it works

How an anime studioruns itself.

Six skills. Three MCP servers. Five commands. One compounding dataset. Claude Code is the brain. The pipeline is the product.

6
Skills
3
MCP servers
5
Commands
Grimoire
Descend
The orchestrator

Claude Code is the brain.

All of this runs on your laptop. Skills load from the repo. MCP servers reach out to providers. Slash commands compose the whole flow. No proprietary cloud. No framework tax.

  • Skills load locally

    SKILL.md files live in your repo. Claude Code reads them every session — no cloud sync, no vendor lock.

  • MCPs reach out

    Three typed servers wrap every external surface: trend ingest, media generation, dataset read/write.

  • Commands compose

    Five slash commands orchestrate skills + MCPs into end-to-end workflows from topic to distribution.

  • Grimoire compounds

    Every artifact gets logged. The dataset gets smarter. Next short starts from evidence, not vibes.

claude-code · ~/animelegends.ai

Your laptop is the studio. Your CLI is the control room. Your Grimoire is the memory.

The six skills

One file per stage of the pipeline.

Every stage of production is a SKILL.md — plain markdown with a typed I/O contract. Claude Code reads them on every run. Fork them, rewrite them, or build your own.

Stage 02 · Concept

concept-forge

Signal → logline. Mascot, channel, hook, payoff.

Inputs
topic | signal.jsonbrand/voice.md
Outputs
concept.json
skills/concept-forge/SKILL.mdmd
# SKILL: concept-forge

## Purpose
Convert a topic string or signal manifest into a concept.json — a logline,
hook, payoff, mascot assignment, and archetype language set.

## Mascot Assignment Logic
  AKASHI: philosophical truths, archetypes, universal patterns
  KAGE:   rankings, comparisons, data-driven arguments
  MIRA:   beginner-friendly explanations, curious explorations
  default: AKASHI

## Output
  id:                concept_<project_id>
  mascot:            akashi | kage | mira
  platform_primary:  tiktok | youtube-shorts | instagram-reels
  duration_target_s: 15 | 30 | 60
  hook:              "the cognitive gap the first 3s must create"
  payoff:            "what the viewer leaves with"
  archetype_language: ["the crimson swordsman", ...]
Three MCP servers

The outside world, typed.

Claude Code doesn't call Flux, Kling, Supabase, or Reddit directly. Every external surface is wrapped in an MCP server with a pydantic contract. Swap the provider, keep the pipeline.

  • animelegends-signal

    MCP server

    Reddit + YouTube + AniList — trend ingest and scoring.

    Tools · 5

    • signal_get_trending
    • signal_score_topic
    • signal_get_hot_debates
    • signal_manual_topic
    • signal_get_release_calendar
    example.tsts
    // claude code → animelegends-signal
    await mcp.callTool("signal_get_trending", {
      platform: "reddit",
      limit: 10,
      min_score: 8,
    });
    
    // → returns topics scored on debate potential,
    //   archetype accessibility, trend velocity,
    //   and brand alignment (max 12 / filter 8+).
    
  • animelegends-gen

    MCP server

    Flux.1 · Kling 2.x · ElevenLabs · Suno v4 — one typed surface.

    Tools · 6

    • gen_estimate_cost
    • gen_image
    • gen_video_clip
    • gen_voice
    • gen_music
    • gen_batch_images
    example.tsts
    // Estimate before burning budget
    const quote = await mcp.callTool("gen_estimate_cost", {
      image_count: 11,
      video_clip_count: 11,
      voice_duration_s: 30,
      music_duration_s: 30,
    });
    
    // Standard negative prompt + style tokens are
    // appended automatically to every image call.
    
  • animelegends-grimoire

    MCP server

    Supabase + local JSON fallback — the compounding dataset.

    Tools · 8

    • grimoire_log_production
    • grimoire_update_status
    • grimoire_log_metrics
    • grimoire_list_productions
    • grimoire_get_production
    • grimoire_query_performance
    • grimoire_get_hook_insights
    • grimoire_get_stats
    example.tsts
    // Every stage logs. The dataset grows.
    await mcp.callTool("grimoire_log_production", {
      project_id: "project_20260419_strongest",
      topic: "why the strongest lose first",
      mascot: "akashi",
      channel: "flagship",
      duration_s: 30,
      status: "rendered",
    });
    

Every tool call is validated, retryable, and loggable. No provider SDK leaks into a skill file. No skill calls an HTTP endpoint directly.

Five slash commands

Entry points to the whole system.

Each command is a markdown file in /commands. They orchestrate skills and MCP tools into end-to-end workflows. Run one of these and Claude Code does the rest.

  • /new-short

    /new-short <topic> [--mascot] [--duration] [--channel]

    Full pipeline from topic string to rendered MP4. Every stage, every manifest, one invocation.

    Invokes

    • concept-forge
    • script-forge
    • storyboard-forge
    • gen-director
    • remotion-composer
    claude-code · sessionsh
    $ /new-short "the training arc is a lie" --mascot kage --duration 30
    
    ◆ project_id: project_20260419_training-arc-is-a-lie
    ▸ concept-forge  · concept.json
    ▸ script-forge   · 5 beats, hook locked
      ⏸ review? [yes / edit / regenerate]
    ▸ storyboard-forge · 11 shots
    ▸ gen-director  · est $2.87 · confirm? y
    ▸ remotion-composer · out/final.mp4 (4.9MB, 30.0s)
    ✓ 6m 42s · ready for /publish
    
  • /from-signal

    /from-signal [--channel] [--duration]

    Pull the highest-opportunity trending topic from anime discourse. Score it. If ≥ 8/12, run /new-short automatically.

    Invokes

    • signal_get_trending
    • signal_score_topic
    • /new-short
    claude-code · sessionsh
    $ /from-signal --channel flagship
    
    ◆ scanning: r/anime, r/powerscaling, r/animediscussion
    ◆ 14 candidates scored
      → top: "why nobody finished the arc they promised"
        debate 3 · archetype 3 · velocity 2 · brand 3 = 11/12
    ▸ auto-routing to /new-short...
    
  • /remix

    /remix <project_id> [--angle] [--mascot] [--duration]

    Create a variant of a proven short. Same topic, different angle, mascot, or duration. Doubles content from winners.

    Invokes

    • concept-forge (parent ctx)
    • script-forge
    • /new-short
    claude-code · sessionsh
    $ /remix project_20260411_strongest --mascot kage --duration 60
    
    ◆ parent: project_20260411_strongest (akashi, 30s)
    ◆ new angle: data-driven power-scaling ledger
    ◆ new project_id: project_20260411_strongest_remix_1
    ▸ concept-forge (kage lens, 60s)
    ▸ script-forge (8 beats)
    ▸ storyboard → gen → render
    
  • /publish

    /publish <project_id|path> <platforms> [--schedule]

    Distribute a rendered MP4. Generates captions, picks hashtags by channel, hits platform APIs, logs post IDs to Grimoire.

    Invokes

    • publish-orchestrator
    • grimoire_log_production
    claude-code · sessionsh
    $ /publish project_20260419_strongest all
    
    ◆ pre-flight: duration ok · size 4.8MB · no copyrighted names
    ◆ caption (125c) + hashtags by channel
    ▸ tiktok        → post_id 7398... · published
    ▸ youtube-shorts → post_id dQw... · published
    ▸ instagram-reels → post_id 19xy... · published
    ▸ x-video        → post_id 177... · published
    ◆ metrics scheduled: +1h, +24h, +72h
    
  • /grimoire-query

    /grimoire-query "<natural language question>"

    Ask the dataset. Translates a question to SQL against the Grimoire schema. Returns data + pattern + one actionable call.

    Invokes

    • grimoire_query_performance
    • grimoire_get_hook_insights
    claude-code · sessionsh
    $ /grimoire-query "which hooks drove the most watch time this week"
    
    ┌──────────────────────────────────────────────┬──────────┬──────┐
    │ hook_style                                   │ avg_wt_s │  n   │
    ├──────────────────────────────────────────────┼──────────┼──────┤
    │ claim + cognitive gap (akashi)               │  21.4    │  7   │
    │ data ledger open (kage)                      │  18.9    │  5   │
    │ question-first (mira)                        │  12.1    │  3   │
    └──────────────────────────────────────────────┴──────────┴──────┘
    ► recommend: double akashi claim-openers next 7d.
    
The Grimoire

The pipeline that makes the pipeline better.

Every stage logs. Every post measures. Every metric feeds the next concept. A dataset that compounds in value the longer you run it — the moat no fresh fork can shortcut.

  1. 01

    PRODUCE

    Every skill writes a typed manifest.

    concept.json → script.json → storyboard.json → assets.json → assembly.json

  2. 02

    PUBLISH

    Distribution writes post_id per platform.

    tiktok · youtube-shorts · instagram-reels · x-video

  3. 03

    MEASURE

    Metrics pulled at +1h, +24h, +72h.

    views · watch time · saves · shares · CTR

  4. 04

    LEARN

    Hook and concept scorers update.

    hook_style_scores · mascot_perf · channel_perf · prompt_cluster_perf

  5. 05

    DIRECT

    Next run starts from evidence, not vibes.

    concept-forge reads hook_insights → script-forge picks cadence

grimoiresql
# grimoire/schema.sql (excerpt)
productions    # one row per short · full lineage FKs
scripts        # beats, hooks, payoffs
storyboards    # shot prompts, camera specs, seeds
assets         # every generated file · provider · model · cost
posts          # platform post_ids, publish timestamps
metrics        # hourly metric snapshots per post per platform

# natural language access
/grimoire-query "best-performing hook styles, 30s only, last 14d"

What compounds

  • ·Labeled dataset of prompt → generation → performance.
  • ·Training signal for a house-trained style LoRA.
  • ·Hook scorer that replaces guesswork with posteriors.
  • ·Lineage graph that makes every remix deliberate.

Build in public with us

Weekly Labs notes. Pipeline changelog. Model-comparison dispatches. Unsubscribe with one click.

Fork the Forge

Run your own studio.

Three steps from git clone to your first rendered short. The skill files, the MCP servers, the Remotion compositions — all yours.

  1. 01

    Clone

    Fork the open-source Forge. All skills, commands, MCP servers, Remotion templates.

    ~/forgesh
    $ gh repo fork animelegends-ai/forge --clone
    $ cd forge
    
  2. 02

    Configure

    Set your provider keys. Supabase is optional — there's a local JSON Grimoire fallback.

    ~/forgesh
    # .env.local
    FAL_KEY=...
    KLING_API_KEY=...
    ELEVENLABS_API_KEY=...
    SUPABASE_URL=...   # optional
    SUPABASE_ANON_KEY=... # optional
    
  3. 03

    Run

    One invocation. Concept to rendered MP4, fully logged.

    ~/forgesh
    $ claude code
    > /new-short "your first legend"
    

The pipeline is the product. Every artifact shipped trains the system that ships the next one. That’s the moat.

Where legends are remembered, measured, and born.