원클릭으로
show-profile-manager
Create, load, validate, and version show profiles and creative config objects for the podcast pipeline.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create, load, validate, and version show profiles and creative config objects for the podcast pipeline.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Session epoch boundary event — emits canonical tic, captures lessons, writes handoff. CENTROID: session epoch boundary event IS: - the ONE place the handoff is written; the clock of the governance system IS NOT: collapse_zones: - memory write - signal emitter - CogPR extractor - Mogul spawner - inline governance mutation sibling_overlaps: - /review worker - /siren ticker - chore executor WHEN: - once per tic at session end - on mid-session epoch boundaries when posture shifts materially NOT WHEN: - during chores (chores are appetizer, real work happens alongside) - after single-step edits - when the active plan already covers the thread RELATES TO: - /review (governance judgment — not a /review worker; /cadence is the clock, /review is the judge) - /siren (signal ops — not a /siren ticker; /cadence writes, /siren classifies) - Mogul mandate (cadence writes, Mogul consumes) ARGS: stance: dispatch off_envelope: ask # off_envelope rationale: /cadence is load-beari
Splat-conditioned covenant interpretation for the live board: rehydrate an ADMITTED current→target covenant against current reality, propose its decomposition as a bounded morphism, bind that proposal to the generic temporal-splat protocol, lower it to a receipted FragmentDAG, and validate the board projection — under the kernel contract (autonomous_kernel/covenant-splat-fqoq-runtime-spec.md). Fires on intent like "map this approved route into dependency-aware lanes," "the board lost the cables for this covenant," "rehydrate current reality without changing the target," "drain this unmaterialized route," "derive a fragment DAG from this ratified covenant" — even when nobody says "covenant-splat." CENTROID: admitted covenant → lawful current conformation slice → bounded morphism proposal → receipted temporal intake → FragmentDAG contract IS: - the per-route drain procedure (§14 resolver — locate the admitted covenant, never re-litigate it, diagnose exactly one state) - CovenantSlice scaffold hydration from t
Signal emission and triage dashboard for the CGG v3 signal manifold (volume projection lives in the v2 manifest-prune engine). Operational companion to /review. CENTROID: operational interface to the signal manifold state machine IS: - the place signals are emitted, ticked, updated, and triaged - the dashboard for active signal state and effective volume - the snapshot/diff surface for conformation records IS NOT: collapse_zones: - doctrine judgment (review evaluates; siren operates — never decides whether a signal warrants inscription) - queue mutator (queue.jsonl belongs to review pipeline; siren must not write to CogPR queue) - mandate spawner (cadence writes mandates; siren carries signals, not mandates) - warrant auto-acknowledger (warrants require /review human gate; siren mints via threshold but never acks) - CogPR extractor (extraction is cpr-extract-hook territory; siren emits signals, never CogPRs) - timestamp-based transition driver (tic is the time authority — timestam
Constitutional judgment surface for the CGG signal manifold — pending CogPRs into doctrine, active warrants into action. CENTROID: human-gated constitutional judgment for CogPRs and warrants IS: - the promotion gate from pending CogPR to inscribed doctrine - the warrant triage surface from active signal to bounded action - the lattice integrity check across docket entries (relations, refinements, contradictions) IS NOT: collapse_zones: - queue mutator (review-execute applies; review judges) - signal emitter (cadence emits, siren classifies, review evaluates) - mandate spawner (cadence writes mandates; review must not) - inline doctrine inscription (verdicts route through review-execute, not review's own writes) - autonomous reviewer (every promotion requires human gate) sibling_overlaps: - /siren (signal triage) - /complement (closure-inference lattice gap) - review-execute agent (mechanical apply) WHEN: - when the queue contains decision-ready CogPRs (extracted, enrich
Orchestrate governed reasoning arenas. Infer geometry, generate spec, spawn team, execute with dependency gating, extract pressure for governance routing. CENTROID: governed reasoning arena orchestration IS: - arena geometry inference (dyadic, triangulation, tournament-lattice, CRX, VPL, OA-VPL-T) - show spec generation (YAML: agents, positions, capture policy, pressure path) - team spawning with dependency-gated phase execution - pressure extraction and routing to governance surfaces IS NOT: collapse_zones: - doctrine judgment (arenas produce CogPRs and signals; /review judges them — stage does not promote) - deliverable orchestrator (stage spawns reasoning agents; /swarm spawns deliverable agents) - ambient signal emitter (stage emits arena-scoped pressure; /siren emits ambient signals) - human-gated review surface (arenas produce governance input; the human gate is /review) - autonomous arena closer (arenas close on phase completion, not author discretion) sibling_overlaps: -
Orchestrate governed parallel agent work. Internal (same-repo), external (cross-service/polling), or hybrid swarm patterns with consolidation mechanics. CENTROID: parallel deliverable orchestration with governed consolidation IS: - internal swarm (same-repo agents, shared context, artifact consolidation) - external swarm (cross-service, polling-based, async completion) - hybrid swarm (internal agents + external polling + inbox consolidation) - dependency-gated task DAG execution (blocked_by lists) IS NOT: collapse_zones: - adversarial reasoning (use /stage — arenas produce governance pressure; swarm produces deliverables) - single-agent wrapper (swarm implies ≥2 parallel agents with consolidation) - autonomous consolidator (lead holds consolidation authority; agents do not merge) - scope mutator (swarm coordinates work; does not promote, inscribe, or cross governance boundaries) - silent dispatch (every swarm writes a spec YAML before execution) sibling_overlaps: - /stage (gover
SOC 직업 분류 기준
| name | show-profile-manager |
| description | Create, load, validate, and version show profiles and creative config objects for the podcast pipeline. |
| user-invocable | true |
| model | opus |
| tools | Read, Write, Edit, Glob, Grep, Bash |
You manage the identity layer of the podcast pipeline. A profile is not a settings file — it is a creative worldview. When you create or edit a profile, you are defining how a show thinks, what it values, and what it refuses.
/show-profile-manager create — Interactive profile creation (guided conversation)/show-profile-manager load [name] — Load and validate a profile/show-profile-manager edit [name] — Modify a profile field/show-profile-manager creative add [profile] — Add a creative config to a profile/show-profile-manager creative edit [profile] [creative] — Modify a creative config/show-profile-manager list — Show available profiles and their creatives/show-profile-manager validate [name] — Check profile schema completenessProfiles are stored as JSON files in ./profiles/ relative to the working directory:
profiles/
show-name.profile.json
{
"schema_version": "1.1.0",
"profile_id": "uuid",
"show_name": "string — the show's name",
"show_slug": "string — filesystem-safe identifier",
"mission": "string — what this show exists to do in the world",
"audience_tribe": "string — who these people are, not just demographics but identity",
"platform_stack": [
{
"platform": "instagram | tiktok | youtube_shorts | youtube | spotify | apple_podcasts",
"priority": "primary | secondary | tertiary",
"primary_ratio": "9:16 | 1:1 | 16:9 | 4:5",
"content_approach": "string — how the show uses this platform specifically"
}
],
"aesthetic_invariants": {
"visual": {
"grain_vs_clean": "float 0-1 (0=clinical digital, 1=heavy film grain)",
"typography_personality": "string — how text feels, not just which font",
"color_anchors": ["string — 3-5 color descriptions, not hex codes"],
"motion_style": "string — how things move (languid, snappy, weighted, floaty)",
"texture_preference": "string — organic/synthetic, tactile/flat, lived-in/pristine"
},
"sonic": {
"strategy": "string — what role sound design plays in the show's identity",
"identity_description": "string — what the show sounds like between words",
"vocal_processing": "string — how voice should feel (warm/present/distant/intimate)"
},
"anti_patterns": [
"string — things this show NEVER does, visually or sonically"
]
},
"editorial_voice": {
"host_sensibility": "string — how the host sees the world, what they find interesting",
"what_the_show_rewards": "string — what makes a good moment on this show",
"what_bores_the_show": "string — what the show has no patience for",
"trusted_formats": ["string — formats/structures that work for this show"],
"forbidden_moves": ["string — editorial choices this show would never make"]
},
"growth_scoring_weights": {
"hook_density": "float 0-1 — weight for scroll-arrest moments",
"quotability": "float 0-1 — weight for standalone phrases",
"tension_resolution": "float 0-1 — weight for build-peak-release arcs",
"loop_ability": "float 0-1 — weight for end-echoes-beginning structures",
"emotional_peaks": "float 0-1 — weight for surprise/recognition/revelation",
"tribal_signals": "float 0-1 — weight for audience-identity language"
},
"team": [
{
"name": "string — team member name",
"role": "string — role in the show (host, writer, producer, editor)",
"bio": "string — brief description relevant to creative decisions"
}
],
"show_stats": {
"episodes": "int — total episodes released",
"countries": "string — reach description (e.g., '25+ countries')",
"platforms": "int — number of distribution platforms",
"ai_knowledge_entries": "int — number of AI knowledge base entries, if applicable"
},
"release_schedule": [
{
"name": "string — content type name (e.g., 'Full Episode')",
"day": "string — day of week",
"platform": "string — primary platform for this release",
"notes": "string — additional context"
}
],
"studio": "string — physical studio location description",
"guest_deliverable": "string — description of what the pipeline produces FOR the guest",
"website": "string — show website URL",
"rss_feed": "string — podcast RSS feed URL",
"creatives": []
}
{
"creative_id": "uuid",
"name": "string — human-readable name (e.g., 'Instagram Reel - Standard')",
"output_type": "reel | story | short | trailer | audiogram",
"platform": "instagram | tiktok | youtube_shorts",
"ratio": "9:16 | 1:1 | 16:9 | 4:5",
"duration_target": {
"min_seconds": 30,
"max_seconds": 90,
"sweet_spot": 60
},
"caption_style": {
"key_semantic": {
"position": "center | lower_third | upper_third | dynamic",
"font_personality": "string — not a font name, a feeling",
"size_behavior": "string — how size relates to emphasis",
"animation": "string — how text arrives and departs",
"diegetic_treatment": "string — how text integrates with b-roll (in-world vs overlay)"
},
"subtitle": {
"position": "bottom | lower_third",
"font_personality": "string — deliberately subordinate to key semantic",
"size": "small | medium",
"style": "string — how subtitles look and feel"
}
},
"hook_style": "string — how this creative opens (hard cut, slow build, question, provocation, recognition)",
"broll_direction": "string — overall b-roll philosophy for this creative",
"copy_tone": "string — how the post copy sounds (conversational, authoritative, vulnerable, provocative)",
"video_gen_tool": "seedance-2.0-i2v | seedance-2.0-r2v | kling-v3-pro-i2v | nano-banana-2 | none",
// Must match a key in fal_router.py MODELS dict exactly. Abstract names (e.g. 'seedance', 'kling') will break envelope generation.
"video_gen_notes": "string — tool-specific prompt optimization notes",
"morph_config": {
"enabled": "boolean — whether morph transitions are used for this creative (default true for morphing b-roll slots)",
"generation_model": "seedance-2.0-i2v — deterministic start+end frame binding. Only model that guarantees morph endpoints. Do NOT use r2v for morphs (no frame binding).",
"midpoint_model": "nano-banana-2 — generates the abstract midpoint image at show palette",
"frame_binding": "deterministic — image_url (start) + end_image_url (end). No reference images alongside frame binding (API modes are mutually exclusive on Seedance).",
"clip_duration_minimum": "4 — Seedance minimum. Generate at 5s, trim to fit overlay window half.",
"departure_frame_offset": "-0.033 — seconds before b-roll IN timestamp (one frame at 30fps)",
"return_frame_offset": "0.0 — at b-roll OUT timestamp exactly",
"reframe_before_generation": "true — departure and return frames must be cropped/reframed to output aspect ratio before use as start/end frames"
},
"adjudication_config": {
"enabled": "boolean — whether visual adjudication runs for this creative (default true)",
"preset": "source_assessment | generated_assessment | draft_review — which adjudication preset to run",
"model_tier": "small | medium | large — model tier for adjudication (default medium)",
"auto_revise": "boolean — if true, pipeline automatically re-runs flagged stages on REVISE verdict (default false)",
"morph_continuity_check": "boolean — if true, adjudicator specifically checks morph transition integrity (default true)",
"caption_sync_check": "boolean — if true, adjudicator checks caption timing alignment (default true)"
},
"overrides": {
"// any profile-level field can be overridden here for this creative": true
}
}
The model_tier field in adjudication_config maps to Overshoot model selection:
qwen3.5-9b for source and generated assessment. Fast, strong vision benchmarks.qwen3.5-27b for draft review. Best quality for final editorial judgment. Recommended for the draft_review preset.qwen3.5-4b. For high-volume triage only; not recommended for production quality gates.When creating a profile interactively, guide the user through these questions in this order. Do not present a form. Have a conversation.
After gathering answers, synthesize into the full profile schema. Present it back for confirmation before writing to disk.
A profile is valid when:
growth_scoring_weights values sum to approximately 1.0 (within 0.1 tolerance)platform_stackcreatives (warn but don't block if missing)anti_patterns has at least 2 entries (a show without limits has no identity)editorial_voice.forbidden_moves has at least 1 entryWhen a profile is modified:
schema_version patch number_changelog array entry with timestamp and description of what changed