setup-slipbox

Installation
SKILL.md

Setup Slipbox

Bold terms in this file are defined in GLOSSARY.md.

Every other skill in this family reads .slipbox/config.json before it writes anything, and fails fast with "run setup-slipbox first" if it's absent. This skill produces style-profile.json, humanize-checklist.json, the .slipbox/bin/slipbox CLI, and config.json — in that order — through the steps below: prerequisite check, explore, Section A (conventions + clip config), Section B (stated note preferences), humanizer workflow snapshot, CLI install, config write. Three of those outputs are built from fixed assets rather than composed fresh each run: assets/config.schema.json, assets/humanize-checklist.json, and assets/style-profile.schema.json. Re-running this skill on different vaults produces structurally consistent files, not just similarly-worded ones. config.json can also be edited after this first setup without re-running the whole interview, via the .slipbox/bin/slipbox config get/.slipbox/bin/slipbox config set CLI (see Done).

Prerequisite

This is the only place in the slipbox family that installs anything — every other skill that hits a missing dependency stops and points back here rather than installing it inline.

Run scripts/check-prereqs.sh and read its report. It checks python3 (the slipbox CLI's own runtime), youtube_transcript_api importability, defuddle presence on PATH (called directly, never via npx — see clip-resource/SKILL.md), and firecrawl's auth status — no database dependency exists anymore, so sqlite3 is not checked. The video-transcript check can be skipped entirely if the user has already said they have no interest in clipping video; otherwise check both by default.

The report distinguishes three states, not two: missing, present, and present-but-broken — on PATH yet failing to run. A broken install counts as missing and is reported with the failure text, so relay that text rather than telling the user the dependency is absent.

For each required dependency the report marks missing: stop, tell the user what it's needed for (youtube-transcript-api for clip-resource's Video path; defuddle for clip-resource's Article and News path), and ask explicitly before doing anything about it — never install without that per-dependency ask. If the user agrees, run scripts/install-prereqs.sh <dependency> for just that one dependency; it verifies the dependency is actually usable afterwards, so a nonzero exit means the install did not take — read its message to the user instead of continuing. If they'd rather install it themselves, tell them to re-run this skill once it's in place.

firecrawl is optional, not required — it's only ever used as clip-resource's fallback when a fetch is blocked by bot detection (e.g. some Medium articles); the skill family works fully without it for the large majority of sources. If the report shows it missing or unauthenticated, mention it once, in passing, without treating it as a blocker: offer to run scripts/install-prereqs.sh firecrawl if the binary itself is missing, and point the user at firecrawl config for authentication (this script never handles credentials) — then move on regardless of their answer.

TinyFish is also optional, checked separately from the three dependencies above and never through scripts/check-prereqs.sh. TinyFish is an MCP-based tool, not a CLI binary or Python library — there is no local install step for it the way there is for Defuddle, Firecrawl, or youtube-transcript-api, so this check is detect-and-report only. Check whether a TinyFish MCP tool is available in the current session. If it is, note it as available for clip-resource's Social fetch path. If it isn't, tell the user once, in passing, that TinyFish adds free fetching and the only path that can read Threads for Social clips, that it's connected outside this skill (an MCP server the user adds to their own harness, not something this script installs), and that Social clipping works fully on Firecrawl alone without it — then move on regardless.

Installs
18
First Seen
Jul 31, 2026