Second stage of the AnimeLegends generative pipeline. Receives validated topic from signal-forge (or raw topic if invoked directly), maps it to an archetype from the Atlas taxonomy (47 narrative archetypes covering power systems, philosophy, character arcs, world-building), assigns trinity mascot roles (Mira opens with curiosity, Kage measures/analyzes, Akashi closes with synthesis), selects one of six hook formulas optimized for retention (Question Hook, Contradiction Hook, Bold Claim Hook, Unsolved Mystery Hook, Ranked Reveal Hook, Behind-the-Scenes Hook), decides video duration (30s/45s/60s) based on channel and topic depth, designs the payoff beat, and outputs a ConceptManifest with A/B hook variants for downstream testing.
Inputs
What this skill expects to receive:
interface ConceptForgeInput {
signal_manifest?: SignalManifest; // from signal-forge (preferred)
topic?: string; // raw topic string if invoked directly
duration_override?: 30 | 45 | 60; // force specific duration (optional)
hook_formula_override?: string; // force specific hook formula (optional)
}
Source of input: SignalManifest from signal-forge, or direct user invocation with topic string.
Outputs
What this skill produces:
interface ConceptManifest {
concept_id: string; // UUID v4
signal_id?: string; // parent signal UUID if from signal-forge
topic: string; // clean topic text
archetype: {
name: string; // from Atlas taxonomy (e.g., "PowerSystemEvolution")
category: string; // "power" | "philosophy" | "character" | "world"
atlas_id: string; // stable ID from Atlas (e.g., "ATL-PS-07")
};
channel: string; // PowerScaling | Philosophy | LoreDrop | TrainingArc | LegendsLabs
duration_sec: 30 | 45 | 60; // video length
mascot_roles: {
opener: string; // "MIRA" | "KAGE" | "AKASHI"
measurer: string; // "MIRA" | "KAGE" | "AKASHI"
closer: string; // "MIRA" | "KAGE" | "AKASHI"
};
hook_formula: string; // "Question" | "Contradiction" | "BoldClaim" | "Mystery" | "Ranked" | "BTS"
hook_variants: {
variant_a: string; // hook text option A
variant_b: string; // hook text option B
};
payoff: {
beat: string; // final reveal / synthesis (1 sentence)
cta: string; // call-to-action (e.g., "Follow for more lore drops")
};
narrative_beats: number; // 3 | 5 | 8 (beat structure based on duration)
timestamp: string; // ISO 8601
}
Where the output goes: passed to script-forge as input, logged to grimoire-keeper.
Core logic / rules
Input normalization — If signal_manifest provided, extract topic_clean, channel, mascots array, and signal_id. If only topic provided, assign default channel (Philosophy), default mascots (MIRA, KAGE, AKASHI), set signal_id=null.
Archetype mapping — Query Atlas taxonomy (47 archetypes) via keyword matching. Match topic against archetype keywords:
Power category: "PowerSystemEvolution" (ATL-PS-07), "TierHierarchy" (ATL-PS-12), "AbilityCounters" (ATL-PS-18), etc.
Philosophy category: "DualitySymbolism" (ATL-PH-03), "MoralGrayness" (ATL-PH-09), "ExistentialTheme" (ATL-PH-14), etc.
Character category: "MentorSacrifice" (ATL-CH-05), "FallFromGrace" (ATL-CH-11), "RedemptionArc" (ATL-CH-22), etc.
World category: "LoreLayering" (ATL-WD-08), "HiddenHistory" (ATL-WD-15), "WorldBuildingEconomy" (ATL-WD-21), etc.
Default: "GenericAnalysis" (ATL-GEN-01) if no strong match.
Mascot role assignment — Assign trinity roles based on channel and archetype:
Opener: always MIRA for Philosophy/LoreDrop/TrainingArc; AKASHI for PowerScaling/LegendsLabs (expertise assertion).
Measurer: always KAGE (analytical dissection).
Closer: AKASHI for PowerScaling/Philosophy (synthesis/verdict); MIRA for TrainingArc (warmth); KAGE for LegendsLabs (technical rigor).
Duration selection — Assign video length based on topic complexity and channel:
Behind-the-Scenes Hook: "The studio did something genius here" (LegendsLabs only)
Respect hook_formula_override if provided.
Hook variant generation — Generate two hook text variants (A/B) using selected formula. Each variant must be ≤15 words, start with mascot opener's voice style, and front-load the surprise/tension.
Payoff design — Craft the final beat (synthesis or reveal that resolves the hook tension) and a channel-appropriate CTA (e.g., "Follow for power system breakdowns", "Drop your theory below").
Narrative beat structure — Assign beat count based on duration:
Manifest generation — Populate ConceptManifest with all fields, generate UUID for concept_id, set timestamp to ISO 8601 UTC.
Grimoire logging — Log invocation to grimoire-keeper with stage="concept-forge", input_id=signal_id, output_id=concept_id, decision="accept" (no rejection at this stage), rationale (one-line: archetype + hook selected), duration_ms.
{
"concept_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"signal_id": "550e8400-e29b-41d4-a716-446655440000",
"topic": "Why [redacted character]'s Domain is philosophically perfect",
"archetype": {
"name": "DualitySymbolism",
"category": "philosophy",
"atlas_id": "ATL-PH-03"
},
"channel": "Philosophy",
"duration_sec": 45,
"mascot_roles": {
"opener": "MIRA",
"measurer": "KAGE",
"closer": "AKASHI"
},
"hook_formula": "Question",
"hook_variants": {
"variant_a": "What if a Domain could express pure philosophy through technique alone?",
"variant_b": "Can a single ability contain an entire worldview? Let's explore."
},
"payoff": {
"beat": "The Domain isn't just power—it's the character's philosophy made tangible, proving theme and technique are one.",
"cta": "Follow for more philosophy deep-dives"
},
"narrative_beats": 5,
"timestamp": "2026-08-16T09:30:00Z"
}
Why this output: Philosophy topic → DualitySymbolism archetype. 45s for mid-depth analysis. MIRA opens (Philosophy channel), KAGE measures, AKASHI closes. Question Hook chosen for philosophical intrigue. 5-beat structure for 45s.
Example 2: PowerScaling topic, 30s duration
Input:
{
"topic": "Why speed doesn't always beat raw power in battle",
"duration_override": 30
}
Output:
{
"concept_id": "f7e6d5c4-b3a2-9180-7654-321098fedcba",
"topic": "Why speed doesn't always beat raw power in battle",
"archetype": {
"name": "AbilityCounters",
"category": "power",
"atlas_id": "ATL-PS-18"
},
"channel": "PowerScaling",
"duration_sec": 30,
"mascot_roles": {
"opener": "AKASHI",
"measurer": "KAGE",
"closer": "AKASHI"
},
"hook_formula": "Contradiction",
"hook_variants": {
"variant_a": "Everyone says speed wins—but they're missing something critical.",
"variant_b": "Speed versus power? The answer isn't what you think."
},
"payoff": {
"beat": "AOE attacks, prediction, and zone control neutralize speed—raw power wins through board dominance.",
"cta": "Follow for power system analysis"
},
"narrative_beats": 3,
"timestamp": "2026-08-16T09:35:00Z"
}
Why this output: PowerScaling topic → AbilityCounters archetype. 30s override respected. AKASHI opens (expertise assertion) and closes (verdict). Contradiction Hook chosen (challenges common belief). 3-beat structure for quick comparison.
Example 3: LegendsLabs topic, 60s duration
Input:
{
"topic": "How one studio perfected the sakuga slow-motion cut",
"hook_formula_override": "BTS"
}
Output:
{
"concept_id": "9876fedc-ba09-8765-4321-0fedcba98765",
"topic": "How one studio perfected the sakuga slow-motion cut",
"archetype": {
"name": "ProductionInnovation",
"category": "world",
"atlas_id": "ATL-WD-28"
},
"channel": "LegendsLabs",
"duration_sec": 60,
"mascot_roles": {
"opener": "AKASHI",
"measurer": "KAGE",
"closer": "KAGE"
},
"hook_formula": "BTS",
"hook_variants": {
"variant_a": "This studio broke the rules of animation—and created a signature move.",
"variant_b": "The secret behind anime's most iconic slow-motion cuts? Pure genius."
},
"payoff": {
"beat": "By timing smears to 3-frame windows and layering particle FX, they turned technique into art—now every studio copies it.",
"cta": "Follow for animation breakdowns"
},
"narrative_beats": 8,
"timestamp": "2026-08-16T09:40:00Z"
}
Why this output: LegendsLabs production topic → ProductionInnovation archetype. 60s for deep technical breakdown. AKASHI opens (expertise), KAGE measures and closes (technical rigor). BTS Hook override respected. 8-beat structure for 60s detailed analysis.
Failure modes
Unknown archetype — If topic keywords don't match any of the 47 Atlas archetypes, assign "GenericAnalysis" (ATL-GEN-01) and log warning to Grimoire. Proceed with concept generation.
Invalid duration override — If duration_override is not 30, 45, or 60, ignore override, compute duration from topic complexity, and log warning.
Invalid hook formula override — If hook_formula_override is not one of the six valid formulas, ignore override, select formula based on channel, and log warning.
Missing mascot roles from signal — If signal_manifest.mascots array is malformed or empty, use default trinity: [MIRA, KAGE, AKASHI] and log warning.
Empty topic — If both signal_manifest and topic are null/empty, abort with error: "concept-forge requires SignalManifest or topic string", log to Grimoire with decision="error".
Grimoire logging contract
Every invocation of this skill logs via grimoire-keeper. Fields logged:
stage: "concept-forge"
input_id: signal_id from input (or null if invoked directly)
output_id: concept_id from generated ConceptManifest
decision: "accept" (no rejection at concept stage)
duration_ms: elapsed time from input receipt to manifest generation
archetype: Atlas archetype ID selected
Legal firewall
This skill does not generate external content or invoke image/video models. Legal filtering was applied upstream in signal-forge, so topic field in input is already sanitized. No additional legal checks required at concept stage.
Quality gates
Output ConceptManifest has all required fields (concept_id, topic, archetype, channel, duration_sec, mascot_roles, hook_formula, hook_variants, payoff, narrative_beats, timestamp)
concept_id is valid UUID v4
archetype.atlas_id matches Atlas taxonomy format (ATL-XX-NN)
duration_sec is one of: 30, 45, 60
mascot_roles has exactly three keys: opener, measurer, closer; each value is MIRA, KAGE, or AKASHI
hook_formula is one of: Question, Contradiction, BoldClaim, Mystery, Ranked, BTS
hook_variants.variant_a and hook_variants.variant_b are each ≤15 words
1---2name: concept-forge3description: Maps topic to archetype taxonomy, assigns trinity mascots with narrative roles (Mira opens, Kage measures, Akashi closes), selects hook formula, decides duration (30/45/60s), designs payoff, outputs ConceptManifest with A/B hook variants.4---56# concept-forge78## Intent910Second stage of the AnimeLegends generative pipeline. Receives validated topic from `signal-forge` (or raw topic if invoked directly), maps it to an archetype from the Atlas taxonomy (47 narrative archetypes covering power systems, philosophy, character arcs, world-building), assigns trinity mascot roles (Mira opens with curiosity, Kage measures/analyzes, Akashi closes with synthesis), selects one of six hook formulas optimized for retention (Question Hook, Contradiction Hook, Bold Claim Hook, Unsolved Mystery Hook, Ranked Reveal Hook, Behind-the-Scenes Hook), decides video duration (30s/45s/60s) based on channel and topic depth, designs the payoff beat, and outputs a `ConceptManifest` with A/B hook variants for downstream testing.1112## Inputs1314What this skill expects to receive:1516```typescript17interface ConceptForgeInput {18 signal_manifest?: SignalManifest; // from signal-forge (preferred)19 topic?: string; // raw topic string if invoked directly20 duration_override?: 30 | 45 | 60; // force specific duration (optional)21 hook_formula_override?: string; // force specific hook formula (optional)22}23```2425Source of input: `SignalManifest` from `signal-forge`, or direct user invocation with topic string.2627## Outputs2829What this skill produces:3031```typescript32interface ConceptManifest {33 concept_id: string; // UUID v434 signal_id?: string; // parent signal UUID if from signal-forge35 topic: string; // clean topic text36 archetype: {37 name: string; // from Atlas taxonomy (e.g., "PowerSystemEvolution")38 category: string; // "power" | "philosophy" | "character" | "world"39 atlas_id: string; // stable ID from Atlas (e.g., "ATL-PS-07")40 };41 channel: string; // PowerScaling | Philosophy | LoreDrop | TrainingArc | LegendsLabs42 duration_sec: 30 | 45 | 60; // video length43 mascot_roles: {44 opener: string; // "MIRA" | "KAGE" | "AKASHI"45 measurer: string; // "MIRA" | "KAGE" | "AKASHI"46 closer: string; // "MIRA" | "KAGE" | "AKASHI"47 };48 hook_formula: string; // "Question" | "Contradiction" | "BoldClaim" | "Mystery" | "Ranked" | "BTS"49 hook_variants: {50 variant_a: string; // hook text option A51 variant_b: string; // hook text option B52 };53 payoff: {54 beat: string; // final reveal / synthesis (1 sentence)55 cta: string; // call-to-action (e.g., "Follow for more lore drops")56 };57 narrative_beats: number; // 3 | 5 | 8 (beat structure based on duration)58 timestamp: string; // ISO 860159}60```6162Where the output goes: passed to `script-forge` as input, logged to `grimoire-keeper`.6364## Core logic / rules65661. **Input normalization** — If `signal_manifest` provided, extract `topic_clean`, `channel`, `mascots` array, and `signal_id`. If only `topic` provided, assign default channel (Philosophy), default mascots (MIRA, KAGE, AKASHI), set `signal_id=null`.67682. **Archetype mapping** — Query Atlas taxonomy (47 archetypes) via keyword matching. Match topic against archetype keywords:69 - **Power category**: "PowerSystemEvolution" (ATL-PS-07), "TierHierarchy" (ATL-PS-12), "AbilityCounters" (ATL-PS-18), etc.70 - **Philosophy category**: "DualitySymbolism" (ATL-PH-03), "MoralGrayness" (ATL-PH-09), "ExistentialTheme" (ATL-PH-14), etc.71 - **Character category**: "MentorSacrifice" (ATL-CH-05), "FallFromGrace" (ATL-CH-11), "RedemptionArc" (ATL-CH-22), etc.72 - **World category**: "LoreLayering" (ATL-WD-08), "HiddenHistory" (ATL-WD-15), "WorldBuildingEconomy" (ATL-WD-21), etc.73 - Default: "GenericAnalysis" (ATL-GEN-01) if no strong match.74753. **Mascot role assignment** — Assign trinity roles based on channel and archetype:76 - **Opener**: always MIRA for Philosophy/LoreDrop/TrainingArc; AKASHI for PowerScaling/LegendsLabs (expertise assertion).77 - **Measurer**: always KAGE (analytical dissection).78 - **Closer**: AKASHI for PowerScaling/Philosophy (synthesis/verdict); MIRA for TrainingArc (warmth); KAGE for LegendsLabs (technical rigor).79804. **Duration selection** — Assign video length based on topic complexity and channel:81 - **30s**: PowerScaling simple comparisons, quick LoreDrop facts, single-beat reveals.82 - **45s**: Philosophy mid-depth, character arc summaries, multi-factor analysis.83 - **60s**: complex power systems, deep lore theories, production breakdowns (LegendsLabs).84 - Respect `duration_override` if provided.85865. **Hook formula selection** — Choose from six retention-optimized formulas:87 - **Question Hook**: "What if I told you [surprising claim]?" (Philosophy, LoreDrop)88 - **Contradiction Hook**: "Everyone thinks X, but actually Y" (PowerScaling, Philosophy)89 - **Bold Claim Hook**: "This is the most [superlative] in all of anime" (PowerScaling, LegendsLabs)90 - **Unsolved Mystery Hook**: "No one talks about [hidden detail]" (LoreDrop, TrainingArc)91 - **Ranked Reveal Hook**: "Here's why [X] ranks above [Y]" (PowerScaling, LegendsLabs)92 - **Behind-the-Scenes Hook**: "The studio did something genius here" (LegendsLabs only)93 - Respect `hook_formula_override` if provided.94956. **Hook variant generation** — Generate two hook text variants (A/B) using selected formula. Each variant must be ≤15 words, start with mascot opener's voice style, and front-load the surprise/tension.96977. **Payoff design** — Craft the final beat (synthesis or reveal that resolves the hook tension) and a channel-appropriate CTA (e.g., "Follow for power system breakdowns", "Drop your theory below").98998. **Narrative beat structure** — Assign beat count based on duration:100 - 30s → 3 beats (hook, analysis, payoff)101 - 45s → 5 beats (hook, context, analysis, twist, payoff)102 - 60s → 8 beats (hook, context, evidence 1, evidence 2, counterpoint, synthesis, payoff, CTA)1031049. **Manifest generation** — Populate `ConceptManifest` with all fields, generate UUID for `concept_id`, set `timestamp` to ISO 8601 UTC.10510610. **Grimoire logging** — Log invocation to `grimoire-keeper` with `stage="concept-forge"`, `input_id=signal_id`, `output_id=concept_id`, `decision="accept"` (no rejection at this stage), `rationale` (one-line: archetype + hook selected), `duration_ms`.107108## Worked examples109110### Example 1: Philosophy topic, 45s duration111112**Input:**113114```json115{116 "signal_manifest": {117 "signal_id": "550e8400-e29b-41d4-a716-446655440000",118 "topic_clean": "Why [redacted character]'s Domain is philosophically perfect",119 "channel": "Philosophy",120 "mascots": ["MIRA", "KAGE", "AKASHI"]121 }122}123```124125**Output:**126127```json128{129 "concept_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",130 "signal_id": "550e8400-e29b-41d4-a716-446655440000",131 "topic": "Why [redacted character]'s Domain is philosophically perfect",132 "archetype": {133 "name": "DualitySymbolism",134 "category": "philosophy",135 "atlas_id": "ATL-PH-03"136 },137 "channel": "Philosophy",138 "duration_sec": 45,139 "mascot_roles": {140 "opener": "MIRA",141 "measurer": "KAGE",142 "closer": "AKASHI"143 },144 "hook_formula": "Question",145 "hook_variants": {146 "variant_a": "What if a Domain could express pure philosophy through technique alone?",147 "variant_b": "Can a single ability contain an entire worldview? Let's explore."148 },149 "payoff": {150 "beat": "The Domain isn't just power—it's the character's philosophy made tangible, proving theme and technique are one.",151 "cta": "Follow for more philosophy deep-dives"152 },153 "narrative_beats": 5,154 "timestamp": "2026-08-16T09:30:00Z"155}156```157158**Why this output:** Philosophy topic → DualitySymbolism archetype. 45s for mid-depth analysis. MIRA opens (Philosophy channel), KAGE measures, AKASHI closes. Question Hook chosen for philosophical intrigue. 5-beat structure for 45s.159160### Example 2: PowerScaling topic, 30s duration161162**Input:**163164```json165{166 "topic": "Why speed doesn't always beat raw power in battle",167 "duration_override": 30168}169```170171**Output:**172173```json174{175 "concept_id": "f7e6d5c4-b3a2-9180-7654-321098fedcba",176 "topic": "Why speed doesn't always beat raw power in battle",177 "archetype": {178 "name": "AbilityCounters",179 "category": "power",180 "atlas_id": "ATL-PS-18"181 },182 "channel": "PowerScaling",183 "duration_sec": 30,184 "mascot_roles": {185 "opener": "AKASHI",186 "measurer": "KAGE",187 "closer": "AKASHI"188 },189 "hook_formula": "Contradiction",190 "hook_variants": {191 "variant_a": "Everyone says speed wins—but they're missing something critical.",192 "variant_b": "Speed versus power? The answer isn't what you think."193 },194 "payoff": {195 "beat": "AOE attacks, prediction, and zone control neutralize speed—raw power wins through board dominance.",196 "cta": "Follow for power system analysis"197 },198 "narrative_beats": 3,199 "timestamp": "2026-08-16T09:35:00Z"200}201```202203**Why this output:** PowerScaling topic → AbilityCounters archetype. 30s override respected. AKASHI opens (expertise assertion) and closes (verdict). Contradiction Hook chosen (challenges common belief). 3-beat structure for quick comparison.204205### Example 3: LegendsLabs topic, 60s duration206207**Input:**208209```json210{211 "topic": "How one studio perfected the sakuga slow-motion cut",212 "hook_formula_override": "BTS"213}214```215216**Output:**217218```json219{220 "concept_id": "9876fedc-ba09-8765-4321-0fedcba98765",221 "topic": "How one studio perfected the sakuga slow-motion cut",222 "archetype": {223 "name": "ProductionInnovation",224 "category": "world",225 "atlas_id": "ATL-WD-28"226 },227 "channel": "LegendsLabs",228 "duration_sec": 60,229 "mascot_roles": {230 "opener": "AKASHI",231 "measurer": "KAGE",232 "closer": "KAGE"233 },234 "hook_formula": "BTS",235 "hook_variants": {236 "variant_a": "This studio broke the rules of animation—and created a signature move.",237 "variant_b": "The secret behind anime's most iconic slow-motion cuts? Pure genius."238 },239 "payoff": {240 "beat": "By timing smears to 3-frame windows and layering particle FX, they turned technique into art—now every studio copies it.",241 "cta": "Follow for animation breakdowns"242 },243 "narrative_beats": 8,244 "timestamp": "2026-08-16T09:40:00Z"245}246```247248**Why this output:** LegendsLabs production topic → ProductionInnovation archetype. 60s for deep technical breakdown. AKASHI opens (expertise), KAGE measures and closes (technical rigor). BTS Hook override respected. 8-beat structure for 60s detailed analysis.249250## Failure modes251252- **Unknown archetype** — If topic keywords don't match any of the 47 Atlas archetypes, assign "GenericAnalysis" (ATL-GEN-01) and log warning to Grimoire. Proceed with concept generation.253- **Invalid duration override** — If `duration_override` is not 30, 45, or 60, ignore override, compute duration from topic complexity, and log warning.254- **Invalid hook formula override** — If `hook_formula_override` is not one of the six valid formulas, ignore override, select formula based on channel, and log warning.255- **Missing mascot roles from signal** — If `signal_manifest.mascots` array is malformed or empty, use default trinity: [MIRA, KAGE, AKASHI] and log warning.256- **Empty topic** — If both `signal_manifest` and `topic` are null/empty, abort with error: `"concept-forge requires SignalManifest or topic string"`, log to Grimoire with `decision="error"`.257258## Grimoire logging contract259260Every invocation of this skill logs via `grimoire-keeper`. Fields logged:261262- `stage`: `"concept-forge"`263- `input_id`: `signal_id` from input (or `null` if invoked directly)264- `output_id`: `concept_id` from generated `ConceptManifest`265- `decision`: `"accept"` (no rejection at concept stage)266- `rationale`: one-line explanation (e.g., `"Philosophy_DualitySymbolism_QuestionHook_45s"`)267- `cost_usd`: `0.00` (no paid API calls at this stage)268- `duration_ms`: elapsed time from input receipt to manifest generation269- `archetype`: Atlas archetype ID selected270271## Legal firewall272273This skill does not generate external content or invoke image/video models. Legal filtering was applied upstream in `signal-forge`, so `topic` field in input is already sanitized. No additional legal checks required at concept stage.274275## Quality gates276277- [ ] Output `ConceptManifest` has all required fields (concept_id, topic, archetype, channel, duration_sec, mascot_roles, hook_formula, hook_variants, payoff, narrative_beats, timestamp)278- [ ] `concept_id` is valid UUID v4279- [ ] `archetype.atlas_id` matches Atlas taxonomy format (ATL-XX-NN)280- [ ] `duration_sec` is one of: 30, 45, 60281- [ ] `mascot_roles` has exactly three keys: opener, measurer, closer; each value is MIRA, KAGE, or AKASHI282- [ ] `hook_formula` is one of: Question, Contradiction, BoldClaim, Mystery, Ranked, BTS283- [ ] `hook_variants.variant_a` and `hook_variants.variant_b` are each ≤15 words284- [ ] `narrative_beats` matches duration: 30s→3, 45s→5, 60s→8285- [ ] `payoff.beat` is non-empty (≥10 words)286- [ ] `payoff.cta` is non-empty and channel-appropriate287- [ ] Grimoire log entry created with all required fields288289## Changelog290291### 0.1.0 — 2026-08-16292293- Initial release294- Atlas taxonomy integration (47 archetypes across 4 categories)295- Trinity mascot role assignment (opener/measurer/closer)296- Six hook formula types with A/B variant generation297- Duration-based narrative beat structure (3/5/8 beats)298- Payoff design with channel-specific CTAs299- Grimoire logging integration
Run npx skillmds@latest add frankxai/concept-forge in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Maps topic to archetype taxonomy, assigns trinity mascots with narrative roles (Mira opens, Kage measures, Akashi closes), selects hook formula, decides duration (30/45/60s), designs payoff, outputs ConceptManifest with A/B hook variants. It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
frankxai (@frankxai) published this skill. Their other Agent Skills are listed on their SkillMD profile.