mcpbeat

Source Ingest

willoscar/source-ingest

| Fetch and normalize supported source-tutorial inputs into local, traceable text artifacts.

7k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
496
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill source-ingest

What comes with it

25 394 bytes besides the instruction
scripts/run.py

The instruction itself

11 sections, as written by the author

Source Ingest

Goal: normalize mixed source inputs into local tutorial-ready text while preserving provenance.

Inputs

  • sources/manifest.yml

Outputs

  • sources/index.jsonl
  • sources/provenance.jsonl

Supported kinds

  • webpage
  • pdf
  • markdown
  • repo
  • docs_site
  • video

Behavior

  • Accept local file paths or remote URLs from sources/manifest.yml.
  • For video, use transcript-first ingestion:
  • provided transcript_locator
  • Bilibili subtitles when available
  • otherwise fail clearly instead of pretending the watch page is usable text
  • Plain YouTube/Bilibili watch pages should not be modeled as kind: webpage.
  • Continue past optional-source failures and record warnings.
  • Fail closed when any source marked required: true cannot be ingested.

Script

Quick Start

  • uv run python .codex/skills/source-ingest/scripts/run.py --workspace <workspace>

All Options

  • --workspace <dir> (required)
  • --unit-id <U###>
  • --inputs <semicolon-separated>
  • --outputs <semicolon-separated>
  • --checkpoint <C#>

Examples

  • Ingest all listed sources:
  • uv run python .codex/skills/source-ingest/scripts/run.py --workspace <workspace>

Troubleshooting

Issue: repo or docs site ingests too much noise

Fix:

  • Narrow the manifest to the most relevant docs root or replace the source with a specific docs page.

How to use it

Copy the folder

Take willoscar/source-ingest from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.