Skip to content
Back to skills

Session Ingestion Scripting

ASecurity

Turn a recorded browser-session capture (screen + mic archive) into a context report, a timed transcript of the narration, and a TTS-ready script of the story the user told. Use when the user records a session and wants narration/script work for a video built from it.

  • 61 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
ai-agentspythongobash

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add Elumenotion/GuideAnts --skill session-ingestion-scripting --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Session Ingestion Scripting?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Session Ingestion Scripting
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/elumenotion-session-ingestion-scripting/badge)](https://www.skillsdirectory.com/skills/elumenotion-session-ingestion-scripting)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: session-ingestion-scripting
description: "Turn a recorded browser-session capture (screen + mic archive) into a context report, a timed transcript of the narration, and a TTS-ready script of the story the user told. Use when the user records a session and wants narration/script work for a video built from it."
metadata:
  guideants:
    enabled: true
    display_order: 45
    requires_toolsets: [sandbox]
---

# session-ingestion-scripting

Paths — fixed layout, do not probe or re-derive. The sandbox CWD is the
notebook's **output directory**. This skill's scripts live under
`Skills/<skill>/scripts/` relative to it, so run the commands in this file
exactly as written. Write every deliverable to the CWD with a **bare filename**
(e.g. `-o clip`, `-o scene.wav`): never prefix an output path with `Output/` —
the CWD *is* the output directory, so `Output/…` would create a nested
`Output/` folder.

First step of the video-production pipeline: take a `browser-session-capture`
session (a folder or `.zip`: `video.mp4`, `narration*.wav`, `index.json`,
`checkpoints/`, event JSONLs, verified `edit_map.json`) and produce

1. a **context report** (what was captured, what happened, which audio to use),
2. a **timed transcript** of the narration (delegated to
   `audiocpp-timed-transcript`), and
3. a **TTS-ready script** — the story the user told, in their words and order,
   cleaned for the TTS engine, with a full audit trail.

The scripting half is a **human-in-the-loop editing job**. The governing
contract is `references/tts-editor-brief.md` — read it before drafting and
treat it as binding. Its first rule: **when in doubt, ask; do not draft on a
guess.** The transcript does not define what the story is; the user does.

## Phase 1 — Ingest & report

```bash
python3 Skills/session-ingestion-scripting/scripts/session_report.py \
  <session-folder-or-zip> [-o report.md] [--json report.json]
```

- Stdlib only; read-only on session data. If given a `.zip`, pass
  `--extract-dir DIR` to unpack first (safe-extract: rejects path traversal).
- The report covers: identity/host/monitor/duration, media (video + narration
  candidates with sizes), verified compaction (`edit_map.json`), idle stats,
  checkpoint timeline (tab/URL/title/trigger), event kind counts, foreground
  window intervals, and which checkpoints carry text/screenshot/mhtml.
- Report the bottom line to the user in a few lines: what the session is, what
  the narration covers, which WAV to transcribe. Then ask the Phase-2 question.

## Phase 2 — Define the story (ask before drafting)

Before any transcript-dependent drafting, get the user's story definition. If
the session opener did not supply it, ask exactly this (and nothing else):

> In one paragraph: what is the story I told in this recording, and which
> parts of the transcript are part of it?

Rules from the brief: 1-3 questions max, numbered, at the end of a short
reply; wait for the answer; no "draft assuming X" moves. Log the answer as
decided — never re-ask it.

## Phase 3 — Transcribe the narration

Route to **audiocpp-timed-transcript** (`timed_transcribe.py`) on the
narration WAV the user confirms (usually `narration.compact.wav` — the
idle-compacted track that matches the compact video). Keep the outputs:
`.srt`, `.vtt`, `.json`, `.transcript.txt`, plus a derived clean paragraph
text. Quote the skill's evidence (engine status, segment/word counts, output
files) in the report to the user.

## Phase 4 — Draft the TTS script

Draft per `references/tts-editor-brief.md`:

- Output is ONE working `.md` file, e.g. `<topic>-tts-script.md` (in the CWD — no `Output/` prefix).
  Layout: `# TTS-READY` … `# END TTS-READY` spoken block, then **Removed**
  (verbatim, one-word reasons), **Kept beats**, **Corrections applied**.
- Permitted edits only: fillers, user-identified muttering, flagged
  navigation fumbles, user-confirmed ASR fixes, TTS hygiene. Never reorder,
  summarize, compress, or polish. No length, no structure, no production doc.
- Feedback rounds: edit the same file in place; log every correction.
- Before reporting a script (initial or revised), run:

```bash
python3 Skills/session-ingestion-scripting/scripts/verify_script.py \
  <script.md> \
  --removed "<phrase>" [--removed ...] \
  --beat "<phrase>" [--beat ...]
```

  It prints a JSON verdict (`open`, `blockers`, `warnings`, `evidence`:
  marker integrity, spoken word count, removed-phrases absent, kept-beats
  present). Fix blockers; quote the verdict in the reply.

## Out of scope

- TTS audio generation (next skill in this set; routes to audiocpp TTS).
- Video assembly, caption burn-in, thumbnails, publishing.
- Any editorial decision about the story — that belongs to the user.

## References

- `references/tts-editor-brief.md` — the binding editor contract (ask-first,
  voice preservation, permitted edits, file discipline, anti-patterns).
- `references/session-archive.md` — anatomy of a `browser-session-capture`
  session folder and which files matter for each phase.

## Reporting

End with: the report path, transcript evidence (engine status + counts), the
current script file name (unambiguously), and the `verify_script.py` verdict.
If blocked, quote the blocker evidence. No scene tables, no length options,
no "suggested next steps" about content the user did not ask for.

Files in this skill

  • SKILL.md5.3 KB
  • references/session-archive.md2.8 KB
  • references/tts-editor-brief.md8.3 KB
  • scripts/session_report.py13.3 KB
  • scripts/verify_script.py3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.