agentleFS
LazyIsEfficientLazyIsEfficient/agentic-os/.claude/skills/content-pipeline/SKILL.md

content-pipeline

Skill17 starsChanged 24 days agoMITView on GitHub

Non-interactive content-production toolkit: mine quotable moments from podcast RSS feeds and meeting notes, discover clip-worthy moments in video transcripts, repurpose long-form source into platform-native drafts (X, LinkedIn, YouTube Shorts, newsletter), and batch-score/gate those drafts before publish. Use when asked to "mine quotes from this podcast", "find clips in this video", "repurpose this into a thread / LinkedIn post / Short", "turn this transcript into posts", "extract viral moments", or "gate this batch of drafts". Runs Python scripts end to end. For interactive expert-panel scoring of a single artifact see content-ops.

  • Reads credentials
  • Installs packages

17 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All scripts read/write a data directory (default ./data/, override with CONTENT_OPS_DATA_DIR).

    line 37

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Content Pipeline

Script-driven content production: ingest raw source, repurpose it into platform-native drafts, and gate the drafts before publish. All steps are non-interactive Python; chain them or run any stage standalone.

quote-mining ─┐
              ├─► content atoms ─► content-transform ─► drafts ─► quality-scorer ─► quality-gate ─► publish
editorial-brain ┘                       │
                          (optional in-loop expert panel from content-ops)

Setup

pip install -r requirements.txt      # anthropic, feedparser
cp .env.example .env                 # set ANTHROPIC_API_KEY; configure optional feeds/voice

All scripts read/write a data directory (default ./data/, override with CONTENT_OPS_DATA_DIR). Each stage writes a *-latest.json the next stage picks up.

Stages

  1. Ingest — quote mining. Scan podcast RSS feeds + local meeting notes for quotable, contrarian, viral-worthy moments; emit scored candidates.
    python scripts/quote-mining-engine.py --days 90 --top 50 --min-score 60 \
      --feeds config/feeds.json --notes-dir ./notes/ --speaker "Name"
    Feeds come from --feeds <json>, QUOTE_MINING_FEEDS_FILE, or inline QUOTE_MINING_FEEDS. See config/feeds.example.json.
  2. Ingest — editorial brain. Two-pass LLM clip discovery on a video transcript: pass 1 finds candidate hook→build→payoff moments, pass 2 deep-scores each on hook/build/payoff/clean-cut (0–100). Only clips at/above --min-score (default 90) are cut. Needs ANTHROPIC_API_KEY; video cutting needs yt-dlp + ffmpeg (see requirements.txt).
    python scripts/editorial-brain.py --url "https://youtube.com/watch?v=..." --max-clips 5
    python scripts/editorial-brain.py --vtt file.vtt --video-id ID --skip-cut   # analysis only
  3. Transform. Repurpose long-form "content atoms" into platform-native drafts — X threads/posts, LinkedIn posts, YouTube Short scripts, newsletter sections. LLM mode is default; --template-only runs without the API. The optional in-loop expert panel (--no-expert-panel to disable) reuses content-ops's experts/ and scoring-rubrics/content-quality.md — see Cross-skill dependency below.
    python scripts/content-transform.py --atoms atoms.json --top-n 10
    python scripts/content-transform.py --atoms atoms.json --template-only
  4. Score (batch, heuristic). Score a batch of drafts on five dimensions — voice similarity, specificity, AI-slop penalty, length appropriateness, engagement potential — and emit pass/fail per draft. No LLM; purely heuristic and fast. Default threshold 60; tune weights via --init-weights then edit data/quality-scorer-weights.json.
    python scripts/content-quality-scorer.py --input drafts.json --verbose
    python scripts/content-quality-scorer.py --threshold 75 --input drafts.json
  5. Gate (publish filter). CI-style gate that runs the scorer and filters drafts below threshold; nothing publishes without passing. --conservative passes everything but annotates quality flags instead of dropping.
    python scripts/content-quality-gate.py --input drafts.json --threshold 75

Input formats

Content atoms (transform input):

{ "atoms": [ { "id": "atom-001", "content": "Long-form source…", "tags": ["AI"], "platforms_missing": ["x","linkedin"], "repurpose_score": 8 } ] }

Drafts (scorer/gate input):

{ "drafts": [ { "id": "draft-001", "platform": "x", "draft": "Content text…" } ] }

Cross-skill dependency

content-transform.py's optional in-loop expert panel does not duplicate the rubric — it reads the sibling content-ops skill's experts/ panels and scoring-rubrics/content-quality.md. The path resolves to ../content-ops/ by default; override with CONTENT_OPS_SKILL_DIR if the skills live elsewhere. content-ops remains the single source of truth for panel definitions.

Related skills

  • content-ops — interactive expert-panel scorer; the canonical quality gate for a single artifact, and the source of the panels this pipeline reuses in content-transform
  • autoresearch — pre-launch variant generation + multi-round optimization for conversion copy

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.