Jess Post-Recording Workflow Spec
internal prototype · canonical JSON + Dreamborn Forge HTML
internal generated
post-recording-workflow-spec · supabase_json

Jess Post-Recording Workflow Spec

Recovered approved CCOS design for Jess after recording: transcript analysis, content generation, Mahesh handoff, publish date/title decisions, guest kit, production tracking, and approval summary.

Planning Surface

Use this to decide what happens next.

Status

draft

Agent Handoff
Start Here

Recovered approved CCOS design for Jess after recording: transcript analysis, content generation, Mahesh handoff, publish date/title decisions, guest kit, production tracking, and approval summary.

Completion Evidence

No explicit evidence field yet. Require tests, screenshots, linked PRs, or reviewed outputs before marking complete.

Artifact Shape
  • title: Jess Post-Recording Workflow Spec
  • source: atlas-codex
  • status: draft
  • project: Jess Podcast Coordinator
  • summary: Recovered approved CCOS design for Jess after recording: transcript analysis, content generation, Mahesh handoff, publish date/title decisions, guest kit, production tracking, and approval summary.
  • version: 2
  • updated at: 2026-05-08T19:25:35.095Z
  • revision note: Added graphics ownership split across Jess, Mahesh, Rosa, Mia, and Jan/human design.
Source Body

Full legacy body rendered for humans

Jess Post-Recording Workflow Spec

Source

Recovered from archived CCOS design document:

  • /Users/justinking/Vaults/Projects/_archive/ccos/docs/superpowers/specs/2026-04-09-jess-podcast-operator-design.md
  • Status in source: Approved for implementation

This is the fuller Jess design beyond the daily V1 pipeline checker.

Architecture Pattern

Jess was designed as a phase-handler agent with dual triggers:

  • messages from Claire/agent_messages
  • daily scheduled scan at 8:15am

Original planned handlers:

  • intake_handler.py
  • pre_production_handler.py
  • ready_to_record_handler.py
  • recorded_handler.py
  • in_production_handler.py
  • ready_for_approval_handler.py
  • content_generator.py

Post-Recording Trigger

The main post-recording trigger is a routed message:

episode_recorded with payload:

{
  "episode_id": "...",
  "transcript_path": "...",
  "riverside_url": "..."
}

This can originate from Justin telling Claire something like:

Recorded [guest]. Transcript: [path]. Riverside: [url]

Recorded Handler: Stage 1

Runs immediately when the episode is recorded.

Actions:

1. Read transcript from the configured transcript/vault path.

2. Analyze transcript to extract:

  • best_quotes
  • topics_tags
  • clip_timestamps

3. Update the episode record with:

  • riverside_url
  • best_quotes
  • topics_tags
  • clip_timestamps

4. Generate content assets:

  • blog_justin: Justin POV article
  • blog_guest: guest bylined article in guest's voice
  • social_linkedin_justin: Justin LinkedIn post
  • social_linkedin_guest: guest LinkedIn post
  • teleprompter_intro: intro recording script
  • youtube_metadata: 5-7 title options, description, tags, status pending_title_selection
  • buzzsprout_description: show notes, 150-200 words

5. Save all outputs as episode asset records.

6. Create a 30-minute Google Calendar event for Justin: Record teleprompter intro — {Guest Name}.

7. Post internal Slack announcement to global/team channel.

8. Message Mahesh in video channel with:

  • Riverside link
  • episode Drive folder link
  • Finished Videos subfolder link
  • clip requests from clip_timestamps
  • naming convention: {Speaker} - {description}.mp4

9. Ask Justin to pick publish date from recommended options:

  • recording date + 3 weeks
  • first available Tuesday/Thursday
  • never double-booking

10. Ask Justin to pick a title from 5-7 title options.

11. Advance status to in_production.

Recorded Handler: Stage 2, Publish Date Approved

Trigger: publish_date_approved message from Claire.

Actions:

1. Set episodes.publish_date.

2. Finalize Justin and guest social posts with the real publish date.

3. Build guest_content_kit containing:

  • guest bylined article
  • guest LinkedIn post
  • posting calendar with real dates

4. Save updated assets.

5. Create Gmail draft for guest content kit delivery email.

6. Set guest_kit_sent_at metadata date.

7. Log Justin's social posts into content calendar/content ideas where available.

8. Notify Justin that guest kit draft is ready.

Recorded Handler: Stage 3, Title Selected

Trigger: title_selected message from Claire or podcast status review.

Actions:

1. Update episodes.title.

2. Update the youtube_metadata asset with selected title.

3. Generate images through the podcast thumbnail/image pipeline:

  • YouTube thumbnails
  • quote cards
  • carousels / episode images

4. Save image paths/URLs as episode assets.

5. Update guest content kit with selected images.

6. Notify Justin that images are ready for review.

In-Production Handler

Trigger: daily scan of episode with status = in_production.

Actions:

1. Check the video/production Slack channel for Mahesh messages containing a Drive link for this episode.

2. Check Finished Videos subfolder for uploaded finished files.

3. Check Shorts subfolder for uploaded clips.

4. For each clip found:

  • register as episode_asset with asset_type short_clip
  • match clip to clip timestamp description
  • update Justin social or guest content kit with the clip reference

5. If publish date is within 7 days and guest kit exists/sent:

  • create Gmail draft reminding guest about the episode/content kit
  • notify Justin that reminder draft is ready

6. If Mahesh delivery link/files are present:

  • update episode drive/video URL
  • generate kb_entry asset from transcript/topics
  • advance status to ready_for_approval
  • notify Justin episode is ready for approval

Ready For Approval Handler

Trigger: daily scan of episode with status = ready_for_approval.

Actions:

1. Query all episode assets and group by type/status.

2. Post a summary for Justin listing:

  • approved assets
  • pending assets
  • missing assets

3. Do not repost more than once per day.

4. Do not advance automatically.

Publishing remains a Justin/explicit action. After publish, Justin tells Claire published [guest]; Claire routes episode_published to Jess, and Jess updates status.

Content Asset Types

Recovered planned asset types:

  • blog_justin
  • blog_guest
  • social_linkedin_justin
  • social_linkedin_guest
  • guest_content_kit
  • teleprompter_intro
  • youtube_metadata
  • buzzsprout_description
  • kb_entry
  • short_clip
  • thumbnail
  • quote_card
  • carousel
  • justin_prep_pack
  • teleprompter_questions

Approval Model

External-facing messages are drafts, not autonomous sends:

  • welcome email: Gmail draft + notification
  • nudge email: Gmail draft + notification
  • guest content kit email: Gmail draft + notification
  • guest reminder email: Gmail draft + notification

Internal messages can be sent directly:

  • Slack to Mahesh / video channel
  • Slack to Justin/team channels

Key decisions require Justin:

  • publish date
  • episode title
  • final publishing
  • external sends unless explicit auto-send permission is later granted

Relationship To Mia

Mia's archived podcast processor handled transcript-to-content primitives, especially:

  • short-form LinkedIn summary post
  • quote card brief
  • source tracking by podcast episode
  • skip if transcript does not classify as the target depth signal

New Jess should either hand transcript-content generation to Mia or reuse Mia's processor as a content service. Jess remains the lifecycle operator; Mia remains content generation/review support.

Modernization Notes

The recovered design references old OpenBrain/B2BEA-Brain split and CCOS Gateway proxy tools. In the RedKey rebuild, preserve the workflow but re-map tools and storage to current canonical systems after Phase 0 discovery.

Graphics Ownership Addendum

Recovered sources separate coordination from production.

Jess

Jess owns the episode lifecycle and coordinates graphics. She should create the graphics jobs, attach source material, track outputs, store asset IDs/URLs, and include finished graphics in the guest content kit and approval summary. Jess is not the primary designer.

Mahesh

Mahesh owns video-specific production in Slack: video design, finished videos, shorts, and video visual assets. Jess sends Mahesh the Riverside link, episode Drive folder, Finished Videos folder, and clip requests with naming guidance. Jess then watches Finished Videos and Shorts folders for completed files.

Rosa

Rosa is the scalable B2BEA visual asset platform. For podcast episodes, Rosa should generate branded still graphics from templates: guest cards, YouTube thumbnails, Justin promo images, episode quote cards, carousels/stat cards where relevant, and guest-pack visual assets. Rosa generates variants and stores permanent URLs.

Mia

Mia contributes content inputs for graphics, especially quote-card briefs and short-form social copy from transcripts. Mia is not the visual renderer; her outputs feed Rosa or a human designer.

Jan / Human Designer

Jan or another designer owns new template design or human design review when the template system is insufficient. Rosa fills approved templates; she does not replace new creative direction.

Podcast Graphic Types

Minimum post-recording graphics/jobs to track as episode assets:

  • guest card
  • YouTube thumbnail
  • Justin promo image
  • episode quote card
  • LinkedIn carousel or stat card when the episode supports it
  • guest content kit graphics
  • short video clips and cover/preview assets from Mahesh

Jess should surface all graphics in the ready-for-approval summary and guest content kit.

Structured Payload

Machine-readable source fields

title

Jess Post-Recording Workflow Spec

source

atlas-codex

status

draft

project

Jess Podcast Coordinator

summary

Recovered approved CCOS design for Jess after recording: transcript analysis, content generation, Mahesh handoff, publish date/title decisions, guest kit, production tracking, and approval summary.

version

2

updated at

2026-05-08T19:25:35.095Z

revision note

Added graphics ownership split across Jess, Mahesh, Rosa, Mia, and Jan/human design.