agentsclimarketplace

Batch process

Skill indranilbanerjee/contentforge/skills/batch-process

Open-source enterprise content production plugin — 21 skills, 13 agents, 11 quality gates, 29-pattern AI humanizer, fact-checker, real .docx output with C2PA signing (EU AI Act Article 50 ready). Installs on Claude Code, Cowork, Codex, Cursor, Copilot CLI, Antigravity. By Indranil Banerjee (indranil.in).

Install
npx -y skills add indranilbanerjee/contentforge --skill batch-process

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Process multiple content pieces through a prioritized, checkpointed queue with progress tracking and per-piece quality gates

SKILL.md

9.3 KB, as published. Nobody here has run it

Batch Content Processing

Process multiple content requirements through the ContentForge pipeline as a sequential, checkpointed queue with priority-based scheduling and event-driven progress tracking. Each piece runs the full 10-phase pipeline (plus Step 0.5) with all 10 quality gates — batch mode changes the intake, not the standards.

When to Use

Use /contentforge:batch-process when:

  • You have 2+ content pieces to produce
  • You want hands-off production of a whole queue (each piece needs a pre-set title — batch runs are non-interactive)
  • You need priority scheduling (urgent pieces first)
  • You want per-piece progress visibility and resumability
  • You're running agency-scale production (10-50+ pieces)

What This Command Does

  1. Intake Multiple Requirements — Read from the brand's tracking backend: local JSON (default), Google Sheets, Airtable, or a CSV file
  2. Build Execution Queue — Validate rows and sort by priority
  3. Sequential Orchestration — Run one full ContentForge pipeline per piece, in queue order; every phase of every piece is checkpointed, so an interrupted batch resumes where it stopped
  4. Progress Tracking — Status table redrawn after each piece/phase event (piece started, gate passed, piece finished)
  5. Error Handling — Automatic retry for transient failures (resuming from checkpoints), human escalation for persistent issues
  6. Completion Report — Summary of all pieces: APPROVED, review_required, failed, with quality scores and output locations

Required Inputs

Tracking backend (per brand, via tracking.backend in the brand profile — local is the default):

  • Local JSON — requirements managed by scripts/local-tracker.py
  • Google Sheets — sheet with columns: Requirement ID, Content Type, Title, Target Audience, Brand, Word Count Target, Priority (1-5), Status
  • Airtable — base with the same fields

CSV (alternative intake):

requirement_id,content_type,title,target_audience,brand,word_count,priority,status
REQ-001,article,AI in Healthcare,Healthcare CIOs,acmemed,2000,1,pending
REQ-002,blog,10 Tips for Remote Teams,HR Managers,techcorp,1500,3,pending

Note: the title column doubles as the --title bypass — batch pieces skip interactive title curation and use it verbatim.

How to Use

Basic Usage

/contentforge:batch-process

Prompt: "Where are your content requirements? (local queue / Google Sheet URL / Airtable / CSV)"

With Direct Sheet URL

/contentforge:batch-process https://docs.google.com/spreadsheets/d/ABC123/edit

With CSV Upload

/contentforge:batch-process batch-requirements.csv

What Happens

Step 1: Queue Building

  • Load all requirements from source
  • Validate each row (required fields, brand exists, content type supported, word count within the type's canonical range)
  • Sort by priority (1=highest, 5=lowest)
  • Display queue summary: total pieces, priority mix, execution order

Step 2: Sequential Execution

  • Run one ContentForge pipeline per piece, front-to-back
  • Each pipeline runs the full protocol from skills/contentforge/SKILL.md — Step 0 init, title bypass, phases 1–8 with orchestrator-verified gates, per-phase checkpoints
  • When one piece finishes (or is escalated), the next starts automatically

Step 3: Progress Table (event-driven)

Redrawn after each piece/phase event — not on a timer:

CONTENTFORGE BATCH — 2/5 complete | 1 review_required | 0 failed
─────────────────────────────────────────────────────────────
▶ REQ-003 | SEO Whitepaper       | Phase 4 (Validation)
✓ REQ-001 | AI in Healthcare     | APPROVED 8.4
✓ REQ-004 | FAQ Product Launch   | APPROVED 7.6
⚠ REQ-002 | Remote Teams Blog    | review_required (6.1)
· REQ-005 | Case Study Acme      | queued

Step 4: Completion Report

  • Total pieces processed
  • APPROVED count (reviewer composite ≥7.0, industry-adjusted, all dimension minimums met)
  • review_required count (5.0-6.9 after loop limits, or <5.0)
  • Failed count
  • Output locations: ~/Documents/ContentForge/{Brand}/ (+ Drive folder if configured)

Priority Scheduling

Priority Levels:

  • 1 (Urgent): Processed first, deadline-driven (e.g., press release for tomorrow)
  • 2 (High): Campaign-critical content
  • 3 (Normal): Standard blog posts, articles
  • 4 (Low): Evergreen content, no deadline
  • 5 (Backlog): Nice-to-have, filler content

Execution Model

  • Sequential, one piece at a time — no concurrent pipelines. Shared per-brand state, API rate limits, and context limits make in-session parallelism unsafe; resilience comes from per-phase checkpointing instead.
  • Each piece is fully independent (own checkpoint run directory, own quality gates)
  • If a piece's pipeline fails, it's retried once (resuming from its checkpoints); if it fails again, it's marked for human review and the queue continues

Error Handling

Transient Failures (Auto-Retry)

  • API rate limits → the inner pipeline backs off and retries
  • Network timeouts → retry
  • Source URL temporarily unavailable → Gate 2 re-sourcing loop handles it

Persistent Failures (Human Escalation)

  • Brand profile not found
  • Requirement validation fails (missing required fields)
  • Reviewer score below the approval threshold after loop limits (2 per edge, 5 total)
  • Two consecutive pipeline failures on the same piece

Success criteria are canonical: a piece is "completed" ONLY if the reviewer decision is APPROVED (composite ≥7.0 per config/scoring-thresholds.json). Scores of 5.0-6.9 are review_required — never silently marked complete.

Requirements

Backends

  • Local JSON (default) — no integrations required
  • Google Sheets + Drive — optional, for sheet intake and Drive delivery
  • Airtable — optional, for base intake and attachments

Brand Profiles

  • All brands referenced in requirements must have existing profiles
  • Use /contentforge:brand-setup to create missing brands before batch processing

Output Structure

Local (always):

~/Documents/ContentForge/
└── {Brand}/
    ├── REQ-001_AI-in-Healthcare_v1.0.docx
    ├── REQ-002_Remote-Teams-Blog_v1.0.docx
    └── batch-summary-report.txt

Google Drive (if configured):

ContentForge Output/
└── {batch_id}/
    ├── Completed/ ...
    ├── Review/ ...
    └── failed-requirements.csv (if any)

Resuming an Interrupted Batch

Batch state lives in the tracking backend plus each piece's checkpoint run directory — both on disk. If the session dies:

  1. Re-run /contentforge:batch-process — rows already completed/review_required/failed are skipped
  2. The in-flight piece resumes from its last gate-passed phase via its checkpoints (see commands/resume.md)
  3. Remaining pending rows queue normally

Troubleshooting

"Queue is empty"

  • Check the backend has rows with status=pending
  • Ensure the Sheet URL / base ID is correct and accessible

"Brand profile not found"

  • Run /contentforge:brand-setup for missing brands
  • Update the requirements source with correct brand names

"A piece is stuck in Phase X"

  • Likely an API rate limit; the inner pipeline auto-throttles and continues
  • If the session died, re-run the batch — the piece resumes from its checkpoint

Example Workflow

(SYNTHETIC EXAMPLE — fabricated for illustration; never reuse these numbers.)

Scenario: Agency needs 15 blog posts for 3 clients by end of week

  1. Prepare Requirements

    • 15 rows (local queue or Google Sheet)
    • Columns: ID, type=blog, title, audience, brand, word_count=1200, priority=2
  2. Run Batch Processing

    /contentforge:batch-process https://docs.google.com/spreadsheets/d/ABC123/edit
    
  3. Monitor Progress

    • Status table updates as each piece moves through its phases
  4. Review Outputs

    • 14/15 APPROVED (scores 7.4-9.1)
    • 1/15 review_required (6.2, citation issues) — feedback stored in its phase-7-review.json
  5. Quality Check

    • Spot-check 3 random pieces
    • Fix the one flagged for review
  6. Deliver to Clients

    • All approved pieces in ~/Documents/ContentForge/{Brand}/

Integration with Other Skills

  • Before Batch: /contentforge:brand-setup for new brands
  • During Batch: status table auto-updates on events
  • After Batch: use outputs directly or run /contentforge:content-refresh for updates

Limitations

  • Sequential execution — one pipeline at a time (throughput comes from checkpointed resume, not concurrency)
  • All pieces must use existing brand profiles (no on-the-fly creation)
  • Every requirement needs a title (batch runs are non-interactive)
  • Backends: local JSON (default), Google Sheets, or Airtable

Agent Used

  • Batch Orchestrator Agent — see agents/09-batch-orchestrator.md

Related Skills

  • /contentforge:brand-setup — Create brand profiles
  • /contentforge:content-refresh — Update existing content
  • /contentforge:cf-variants — A/B test variations

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.