Prepare Batch for Ingestion

SkillFiles & storage

Stage source files into library/raw/, converting non-markdown formats via markitdown (PDF/DOCX/PPTX/XLSX/HTML/CSV) or pandoc (TeX/EPUB/RST/ORG). Adds provenance frontmatter. No agent dispatch.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Prepare Batch for Ingestion skill

What this skill tells your AI

The instructions your AI receives, as published by stevegjones/ai-first-sdlc-practices in plugins/sdlc-knowledge-base/skills/kb-prepare-batch/SKILL.md and read by ahel’s review.

Stage source files into library/raw/, converting non-markdown formats. First stage of the two-stage batch workflow: prepare (this skill) then ingest (kb-ingest-batch). No agent invoked.

Arguments

ArgumentDescription
files...Source file paths
--from <manifest>File with one path per line
--copyLeave source files in place (default)
--moveMove source files into raw/
--overwriteAllow re-conversion of already-staged files
--force-markitdownUse markitdown for all files
--force-pandocUse pandoc for all files

Format routing

ExtensionConverter
.mdPass-through
.pdf, .docx, .pptx, .xlsx, .html, .csvmarkitdown
.tex, .epub, .rst, .orgpandoc
Anything elseError per file; rest of batch continues

Preflight

  1. Check markitdown --help — warn if absent
  2. Check pandoc --version — warn if absent
  3. If only .md files: proceed without converters

Steps

1. Resolve configuration

Read CLAUDE.md [Knowledge Base] section to extract library_path (default library/). Target is <library_path>/raw/.

2. Run kb_prepare_batch.py

python3 -c "
import sys, os, importlib.util
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT', '')
SCRIPTS = os.path.join(PLUGIN_ROOT, 'scripts')
INIT = os.path.join(SCRIPTS, '__init__.py')
if os.path.isfile(INIT) and 'sdlc_knowledge_base_scripts' not in sys.modules:
    spec = importlib.util.spec_from_file_location(
        'sdlc_knowledge_base_scripts', INIT,
        submodule_search_locations=[SCRIPTS])
    if spec and spec.loader:
        mod = importlib.util.module_from_spec(spec)
        sys.modules['sdlc_knowledge_base_scripts'] = mod
        spec.loader.exec_module(mod)
from sdlc_knowledge_base_scripts.kb_prepare_batch import main
args = ['--target-dir', '<raw_dir>']
# Add --copy or --move (default: --copy)
# Add source file paths
# Add --from <manifest> if passed
# Add --overwrite if passed
# Add --force-markitdown or --force-pandoc if passed
sys.exit(main(args))
"

3. Report results

Batch preparation complete:
  Staged:  12
  Skipped:  0
  Failed:   1

Issues:
  - presentation.key: unsupported extension '.key'

Next steps

/sdlc-knowledge-base:kb-ingest-batch

Signals

GitHub stars
41
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
kb-prepare-batch
Source
github.com/stevegjones/ai-first-sdlc-practices