Intake

July 3, 2026 ยท View on GitHub

The intake layer turns source material into plain text before the readiness gate scores it. It should extract text, not decide whether the source deserves a skill.

Supported Inputs

InputStatusNotes
Local .txtSupportedRead as UTF-8 text
Local .md / .markdownSupportedPreserves Markdown structure
Local .html / .htmSupportedRemoves script, style, head, nav, and footer content
Local .epubSupportedReads package metadata and spine XHTML chapters
Remote http / https HTMLSupportedFetches one URL and applies the HTML cleaner
Remote http / https textSupportedFetches one URL and reads text content
SRT / VTT transcriptsSupported through clean-transcriptClean first, then analyze the Markdown output
Audio filesSupported through transcribe-audio when a Whisper-compatible CLI is installedTranscribe first, then clean and analyze

URL Usage

source-to-skill analyze https://example.com/article
source-to-skill build https://example.com/article --level auto --out out

URL intake is intentionally modest. It fetches a single URL with a normal user agent and uses the same conservative HTML cleaner as local HTML files.

EPUB Usage

source-to-skill analyze path/to/book.epub
source-to-skill build path/to/book.epub --level auto --out out

EPUB intake reads META-INF/container.xml, the OPF package file, metadata title, and spine XHTML chapters. It does not attempt DRM removal or publisher-specific layout reconstruction.

Not Yet Supported

  • multi-page crawling
  • JavaScript-rendered extraction
  • login-gated pages
  • PDF parsing

Those should be added as intake plugins that normalize sources into text before the readiness gate runs.