Change or diagnose Xberg's core extraction orchestration, cache semantics, extractor fallback, post-processing, concurrency defaults, or format-wide quality invariants. Load for pipeline work, not a single parser's syntax.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.ai-rulez/skills/extraction-pipeline-patterns/SKILL.mdFormat detection → extractor routing → post-processing, across 106 formats / 140 file extensions
The full-registry counts are verified against published claims by
scripts/sync_supported_counts.py verify. Runtime SUPPORTED_FORMAT_COUNT and
SUPPORTED_EXTENSION_COUNT values are derived from the full static FORMATS registry.
crates/xberg/src/core/pipeline/ — orchestration (mod.rs, cache.rs, execution.rs,
features.rs, format.rs, initialization.rs, page_markers.rs)crates/xberg/src/core/mime.rs, core/formats.rs — detection and the FORMATS registrycrates/xberg/src/extractors/ — one module per format, each implementing
InternalDocumentExtractorcrates/xberg/src/extraction/ — shared parsing/rendering helpers used by those extractorscrates/xberg/src/core/config/, core/config_validation/ — both directories, not filesEXT_TO_MIME, or from bytes via
detect_mime_type_from_bytes; validate against SUPPORTED_MIME_TYPES.priority() extractor registered for that MIME.InternalDocument.core::pipeline::run_pipeline(doc, config) (async) or
run_pipeline_sync (WASM) runs validators, quality processing, chunking and hooks, and
returns ExtractedDocument. Every extraction path goes through it.extractors/{docx,pptx,ppt,doc,excel,odt,odp,hwp,hwpx,wordperfect}.rs and extractors/iwork/.extractors/{markdown,text,rst,orgmode,asciidoc,typst}.rs and extractors/{rtf,djot_format}/.extractors/{bibtex,jupyter,docbook,fictionbook}.rs and extractors/{latex,jats,epub}/.extractors/pdf/.extractors/ and extraction/.extractors/ and extraction/html/.extractors/ and extraction/email.rs.extractors/archive.rs and extraction/archive/.extractors/.is_encrypted in metadata rather than erroring out.config.force_ocr and config.force_ocr_pages force it.SecurityLimits.The cross-extractor fallback chain runs only for UnsupportedFormat and Plugin errors as
defined by is_extractor_fallback_eligible. Parsing, IO, OCR, and validation errors abort the
chain. A successful fallback records an extractor-fallback processing warning.
<cache_version_tag>-<content_hash>-<config_hash>, never path-based.
The tag comes only from CARGO_PKG_VERSION and CACHE_SCHEMA_VERSION in
cache/version.rs; it is not a build fingerprint.CACHE_SCHEMA_VERSION. For A/B or revert
checks, bump the schema or disable the cache so the experiment cannot replay the control.core/config/concurrency.rs::resolve_thread_budget.core/io.rs::read_file_async currently reads the whole file with tokio::fs::read; there
is no AsyncRead extraction surface. Treat streaming as an open gap.crates/xberg/src/plugins/. Registry selection is by priority(), highest wins — not by
registration order. Register above 50 to override a built-in. See
plugin-architecture-patterns.
All features live in crates/xberg/Cargo.toml; there is no FEATURE_MATRIX.md.
| Group | Features |
|---|---|
| OCR | ocr, ocr-wasm, paddle-ocr, paddle-ocr-tract, sceptre-ocr, candle-vlm-ocr |
| Formats | pdf, office, excel, html, xml, email, archives, and format-specific flags |
| AI/ML | embeddings, static-embeddings, layout, keywords, language detection, and NER flags |
| Server | api (Axum), mcp, otel, prometheus, tokio-runtime |
| Aggregates | formats, analysis, services, full, and platform target groups |
Bindings are separate crates, not features of crates/xberg. The one mutually-exclusive pair
is ort-bundled / ort-dynamic. WASM excludes ORT-backed embeddings, but does carry
ocr-wasm, keywords and static-embeddings. Full detail in feature-flag-policy.
run_pipeline / run_pipeline_sync.priority() for a MIME
type.SecurityLimits to user content — archive size, compression ratio, file count, nesting depth.Test the changed format categories and both success and failure paths. No coverage percentage
is an enforced contract. The format headline test is the enforced count; update its constants
and listed copy together with FORMATS. Use benchmark-workflow for performance or quality
claims and test-corpus for bucket-backed fixtures.
FORMATS registry and how to add a format04336bd
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.