ワンクリックで
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 ページを確認してインストールできます。
SOC 職業分類に基づく
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
| 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