Skip to content
Agentmart
Submit a tool

interview-tightener

Tighten an interview by 20-30% without losing meaning.

Skill by explicit09

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/explicit09-interview-tightener

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Tighten an interview by 20-30% without losing meaning. Removes filler, dead air, and tangents while preserving editorial spine.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/interview-tightener

What's inside

Skill name
interview-tightener
Description
Tighten an interview by 20-30% without losing meaning. Removes filler, dead air, and tangents while preserving editorial spine.
License
Apache-2.0
Instructions
143 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (2)

  • SKILL.md
  • dead_air_filter.py · scripts/

SKILL.md (first lines)

# Interview tightener

You are tightening an existing interview. The goal is **20-30%
shorter**, with the editorial spine intact and the pacing
noticeably crisper. You do this by removing three things, in order
of priority:

1. **Dead air** > 1.0s (use the audio-energy index)
2. **Filler clusters** (um/uh/repeated false-starts)
3. **Production/meta-direction chatter** ("you can just say...",
   restart/setup talk, planning the next question, instructions about
   how to answer)
4. **Low-score tangents** (`find_beat(kind="tangent", min_score < 0.5)`)

Don't cut content for length alone. If the source is 60 minutes of
gold, the tightened version is 60 minutes. The 20-30% target is a
ceiling, not a quota.

## The 4-step playbook

### 1. Map the cuts

Call `bash` with the `dead_air_filter.py` script bundled with this
skill (resolved against the absolute path the L2 load returned —
typically `<skill-root>/scripts/dead_air_filter.py`):

```bash
python3 <skill-root>/scripts/dead_air_filter.py \
  /tmp/montage-real/yt-test/index/audio-energy/raw/<asset>.json
```

It returns a JSON list of `{start_s, end_s, duration_s, reason}`
trim candidates. Reasons: `dead_air`, `filler_cluster`. Sort by
duration desc — the longest cuts give the most return-per-edit.

If topic, gaze, shot, or frame-quality sidecars exist, use them as veto
signals before cutting: preserve topic-boundary pauses, direct-address
moments, sharp close-ups, and motion-heavy shots unless the transcript
confirms they are dead time. Montage's wider index corpus is useful here
because pacing is not just silence math.

### 2. Add tangent candidates

```
find_beat(kind="tangent")
```

Filter to score < 0.5. For each, call `inspect_moment` and check the
`dependencies` field. If the tangent is a dependency for a later
high-score beat, **don't cut it** — it's setup. Otherwise add it to
the cut list.

Also scan editorial-moments/topic/transcript around the same ranges for
in-interview production chatter. If someone stops the interview to plan
the intro, coach an answer, discuss whether to restart, or talk about
recording structure, add that range to the cut list even if it is spoken
content rather than silence. Verify the surrounding question and answer
still connect after the removal.

### 3. Apply the cuts

Sort all cuts by start_s ascending. Apply them via `apply_edl` with
`Trim Clip` ops anchored by `transcript_snippet` (the snippet from
the cut's surrounding transcript) OR by `clip_uuid` (look up via
`view_timeline`). Commit them in batches of ~5 ops per `apply_edl`
call so a single bad anchor doesn't roll back the whole batch.

After every batch, call `view_timeline` and report:

```
Cut batch 3/8: -47s of dead air, -12s of filler.
Running total: removed 4m 18s (8.2% of original).
```

### 4. Render + report

Once the cut list is exhausted, ask the user to confirm the timeline is
ready for final render unless they already gave explicit render approval
in the same turn. Then render `scope="timeline"`, poll until done, and
ask the user to review the finished output before treating it as
deliverable. Final report:

```
Tightened from 47:30 to 36:18 (-23.6%).
Removed:
  - 4m 12s dead air (54 cuts)
  - 1m 48s filler clusters (37 cuts)
  - 5m 12s low-score tangents (3 cuts)
```

## Editorial conventions

- **Floor on dead-air detection**: 1.0s. Below that you're cutting
  natural breath rhythm.
- **Filler cluster definition**: 2+ filler tokens within 1s of each
  other. Single ums in clean speech are kept.
- **Don't cross speaker boundaries** with a single trim. Each cut
  should land entirely within one speaker's turn.
- **Preserve laughter** — it's social glue. Even if it reads as
  "dead air" by RMS, audio-energy's `is_laugh` flag (when the
  indexer populates it) is your override.
- **Trim is one-way**: `Trim Clip` only narrows. Use `Untrim Clip`
  if you need to widen back. Mistakes are recoverable.

## When NOT to use this skill

- The interview already feels tight. Run `view_episode` and look at
  `mean_segment_s` — anything < 8s suggests the speaker is already
  pacy, and there's not 30% to cut without damaging meaning.
- The asset is < 5 minutes. Cut-pacing matters less than the
  individual edit decisions; the tightener's batch approach is
  overkill.

## You are done when...

Persist until ALL of these are true. A "20% tightened" report with
half the cuts un-applied is a lie — finish the cut list before
handing back.

From explicit09/montage, Apache-2.0.

More from explicit09/montage

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 7, 2026 (4 months ago)
Last release
Jun 10, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from explicit09

Cite this page

interview-tightener skill. Agent Mart. https://agentmart.dev/skills/explicit09-interview-tightener (last updated 2026-10-24)