mcissel/workfolio

AI Work

Projects built by directing AI agents, each shown with the pipeline behind it: who did which stage, and where I approved.draft

AI Influencers

Marisol, Ezra & Maureen

Three original AI personas, one per niche: relationships, health, wealth.

Creator and director: concept, personas, pipeline design and every approval gate.

  • Clip coming soon
    Marisol Vega 24. LA bartender. I see every first date Last call, babe. Make it count. Relationships
  • Clip coming soon
    Ezra Moss 99. Apples, bees and the Appalachian hills Easy does it. Good things take time. Health
  • AI-generated

    An AI-generated character, a 79-year-old ex-typist with a platinum-silver updo, cherry-red lipstick and a spiral pearl brooch, talks to camera. Captions are burned in.

    Maureen Pike 79. Ex-typist. Learned money from the paperwork up If they won't explain it, don't sign it. Wealth Transcript coming soon

Review dashboard

Screenshot to come
Private: Google sign-in, two allow-listed accounts. This is a capture, not a link.
  • The pipeline uploads scripts, videos and images; I approve or reject each one on a phone or laptop, and the decision lands as a comment on the matching GitLab issue.
  • Saving a review wakes the paused agent; a rejected clip is redone once using my note.
  • Hook rounds: I pick and edit the hooks the agent proposes, then send them back.
  • Daily numbers feed a day-30 stop rule: 2,000 followers and 15 sales for any one persona.

Dashboard built with

  • Cloudflare Workers
  • Hono
  • Cloudflare D1
  • Workers KV
  • Google sign-in
  • GitLab API

Objective

A studio of three original AI-generated personas, each with a fixed look and voice, and an agent-driven pipeline that turns ideas into reviewed, AI-labelled vertical video.draft

Notes

  • First end-to-end run on 2026-10-12 (Maureen): location, voice, Soul ID, then one talking, one narrated and one silent clip, finished with zooms and captions.

Tools used (pipeline)

9 stages · 5 agent · 4 me · 5 approval gates

  • Agent
  • Me
  • Approval gate

Across every stage

  • GitLab issues and labels hand out the work to agent sessions. Tools: GitLab issues
  • A spending-guard hook blocks off-plan models, and the cost is checked before every job; agents never buy credits. Tools: Spending guard hook
  • Masters go to Google Drive; the dashboard gets 720p review copies. Tools: Google Drive, ffmpeg
  1. Character bibles

    An agent researches competitors and writes each persona's canon: name, age, look anchors, voice, sign-off and guardrails.

    Agent. Tools: Claude Code

    Approval gate I lock the canon

  2. Look and voice kit

    Portrait, three-panel character sheet, four locations, a Soul ID trained on about 20 stills, a profile picture and a voice.

    In this project: Done for Maureen; Ezra and Marisol are in progress.

    Agent. Tools: Soul 2.0, Nano Banana Pro, Soul Location, Soul ID, Seed Audio TTS

    Approval gate I approve each asset

  3. Hooks and scripts

    A skill proposes 20 ranked hooks per round; the agent writes 15–30 s scripts, checks them against the claims guardrail and drafts a beat sheet.

    Agent. Tools: content-engine, short-form-director, Review dashboard

    Approval gate I pick the hooks

  4. Generate clips

    Each clip starts from an image made with the persona's Soul ID.

    • Talking 480p draft with the persona's voice as reference, finalised at 1080p after approval. Tools: Seedance 2.5
    • Narrated Sound off; the voice is laid on with ffmpeg. Tools: Kling 3.0
    • Silent, text-over About 10 s; text added in the edit. Tools: Kling 3.0 Turbo

    Agent. Tools: Higgsfield, ffmpeg, whisper

    Approval gate I review every draft

  5. Zooms and captions

    Persona-style emphasis zooms, then whisper-timed burned-in captions with the hook on top. The AIGC metadata tag is kept on every re-encode.

    Agent. Tools: zoom-moves, burn-captions, ffmpeg, whisper

  6. Review

    I approve or reject every item; the decision becomes an issue comment and wakes the paused agent.

    Me. Tools: Review dashboard, GitLab issues

  7. Publish with the AI label

    Ten videos per account, each with the platform's AI label switched on.

    Me, with an agent. Tools: Instagram, TikTok

  8. Measure and monetise

    Daily numbers on the stats page; the first persona to monetise gets a digital product.

    Me, with an agent. Tools: Review dashboard, digital-product, Stan Store

  9. Keep or kill

    Persona review on day 14; on day 30, keep a persona only if it reached 2,000 followers and 15 sales.

    Me. Tools: Review dashboard

    Approval gate Day-30 stop rule

Website Audits & Rebuilds

A local HVAC repair company

Audit and rebuild, prepared as an unsolicited pitch. Not yet live on the business's domain.

Home page on a phone

Before
Old home page, first phone screen (blurred)
First tap-to-call link: 9,832 px down the page
After
Rebuilt home page, first phone screen (blurred)
Call button 714 px down, inside the first screen

Objective

A faster website for a local HVAC repair company, built around one job: getting homeowners, mostly on phones, to call.draft

Results

9,832 pxBefore10,927 px714 pxAfter7,081 px844 px
Lighthouse 12.8.2, home page, mobile unless noted. Lab runs by one tester (home mobile is the median of 3), not field data. Slow 4G = Chrome slow 4G with 4× CPU throttling.
BeforeAfter
First tap-to-call link on a 390×844 phone 9,832 px 714 px
Performance score 60 100
Accessibility score 85 100
Best practices score 71 100
Page weight 6,337 KiB 216 KiB
Requests 94 11
First content, slow 4G 4.7 s 0.9 s
Speed Index, slow 4G 6.0 s 1.5 s
Largest content, fast connection 1.6 s 0.2 s
Layout shift (CLS) 0.066 0.000
Desktop performance score 72 100

Tools used (pipeline)

12 stages · 4 agent · 6 script · 2 me · 5 approval gates

  • Agent
  • Script
  • Me
  • Approval gate
  1. Brief and hard rules

    Three hard rules: use everything on the current site, no made-up facts, restated facts kept exact.

    Me, with an agent. Tools: Claude Code, 4 design skills

  2. Crawl

    Every page and image of the old site saved; a script parses the page-builder HTML into JSON per region.

    In this project: 9 pages and 38 images saved.

    Script, with an agent. Tools: extract.py

  3. Content inventory

    A facts table with the exact source text for each fact, and a rights call on every image.

    Agent. Tools: Claude Code

    Approval gate I review it

  4. Reviews

    Real Google reviews captured and parsed word for word; a short list is picked.

    In this project: 89 reviews captured; 10 picked.

    Script. Tools: parse_reviews.py

    Approval gate I approve the picks

  5. Strategy brief

    One offer, one audience, one action.

    Agent. Tools: landing-page-design

    Approval gate I approve it

  6. Design directions

    Three HTML mockups; the chosen one becomes the whole site.

    Agent. Tools: Claude Code

    Approval gate I pick one of three

  7. Build

    A data-driven generator renders the static site from JSON files.

    In this project: Logo cut from 194 KB to 13 KB as WebP.

    Script. Tools: build.py, Phosphor icons

  8. Client safety

    Nothing is connected to the client's analytics, email, DNS or forms before an explicit OK.

    Me

ShowHide stages 9 to 12
  1. Measure

    Old vs new Lighthouse runs, phone-width checks in headless Chrome and a heuristic review; a script writes the summary from the raw results.

    Script, with an agent. Tools: Lighthouse 12.8.2, Headless Chrome (CDP), measurements.py, heuristic-evaluation

  2. Audit deck

    A scroll-story deck in which every number traces to a generated file.

    Agent. Tools: GSAP, Lenis

    Approval gate I direct the edits

  3. Fact audit gate

    The build fails if any number, phone, email or web address on the new site is missing from the crawl.

    Script. Tools: fact_audit.py

  4. Deploy

    A push to main deploys a noindex preview.

    Script. Tools: GitLab issues, Cloudflare Pages