tika-eval-compare

A comparison tool for Apache Tika, a program that extracts text and metadata from files. It compares results from two Tika builds across a collection of test files.

In plain words
What is it for?
Use it to compare a before-and-after Tika build, inspect extraction differences, and optionally create HTML, Excel, and Markdown reports.
Why use it?
It helps find regressions—changes that accidentally make software worse—in extracted content, character encoding, errors, or embedded documents.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/apache/tika/tika-eval-compare
Any agent
npx skills add apache/tika --skill tika-eval-compare
Clone the repo
git clone --depth 1 https://github.com/apache/tika

Made for: Claude Code, Codex.

Per session 50 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,037 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00050 $0.03037
Opus 5 $0.00025 $0.01519
Sonnet 5 $0.00010 $0.00607
Haiku 4.5 $0.00005 $0.00304

Measured 3d ago against content hash 08fe3f5a7717, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

tika-eval-compare scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (run-batch.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -o /tmp/tika-app-before.zip <snapshot-url>
.skills/devs/tika-eval-compare/SKILL.md · 256 lines

How it starts

The opening of the file, as written. The whole thing — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Local override: $TIKA_SKILLS_LOCAL/tika-eval-compare/LOCAL.md (default ~/.tika-skills), read after this file, wins on conflict.

tika-eval: Compare Before/After Extracts

Compare the output of two versions of Tika against a corpus of files to detect regressions in content extraction, encoding, exceptions, and embedded document handling.

Before You Start

Ask the user for:

  1. Working directory — where to put builds, extracts, eval db, and reports (<workdir> below). All artifacts go here.
  2. Number of threads (-n) — default is 2. Use -n 6 for faster runs when parse time comparison is not needed. When comparing parse times between A and B, use the same -n for both.
  3. Run reports? — whether to auto-generate the HTML/Excel reports and summary.md at the end (the -r flag on tika-eval Compare).

Prerequisites

  • Two tika-app builds (a "before" and an "after"), each as an unzipped zip archive containing tika-app-*.jar, lib/, and plugins/.
  • A corpus of input files (a directory tree).
  • tika-eval-app, built from tika-eval/tika-eval-app (use the zip). The bare target/tika-eval-app-*.jar is thin (no bundled deps) and dies with NoClassDefFoundError: ...GzipCompressorOutputStream (esp. with -r). Always run the jar from the unzipped target/*.zip dir, which carries its lib/.
  • Enable MD5 digesting in both configs so tika-eval can match embedded documents by content hash (not just index position). Add to the config JSON:
    "parse-context": {
      "commons-digester-factory": {
        "digests": [
          { "algorithm": "MD5" }
        ]
      }
    }
    
    Note: parse-context is a JSON object, not an array.

Read the full file on GitHub · 256 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 256 lines · 50 tokens per session scan A 08fe3f5a7717

Subscribe to this mod's changes

tika-eval-compare is a skill published in the GitHub repository apache/tika (4,028 stars, last pushed yesterday), licensed Apache-2.0. It adds 50 tokens to every session and 3,037 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

connector-review

Review an OpenMetadata connector against golden standards. Runs multi-agent analysis covering architecture, code quality, type safety, testing, and performance. When a PR number is given, automatically posts the quality summary to the PR description and a detailed review as a PR comment.

open-metadata/OpenMetadata · 55 tokens

connector-audit

Deep reliability audit for OpenMetadata connectors — runs 7 investigation prompts (metadata, errors, auth, lineage, scale, synthesis, implementation) against connector standards.

open-metadata/OpenMetadata · 35 tokens

playwright-validation

Use when validating UI changes in a branch require Playwright E2E testing. Reviews branch changes, validates UI with Playwright MCP, and adds missing test cases.

open-metadata/OpenMetadata · 37 tokens

pr-checklist

Use when opening or finalizing a GitHub PR for OpenMetadata. Walks through the repo PR template — linked issue, high-level design (for big PRs), unit/integration/Playwright tests + coverage, UI screen recording, and manual test steps — then drafts a fully-filled PR body and (optionally) creates the PR.

open-metadata/OpenMetadata · 73 tokens

test-locally

Build and deploy a full local OpenMetadata stack with Docker to test your connector in the UI. Handles code generation, build optimization, health checks, and guided testing.

open-metadata/OpenMetadata · 38 tokens

ui-checkstyle

Run the exact ESLint + Prettier + organize-imports sequence that CI's UI Checkstyle workflow runs — on just the files the PR changed — and fail the task if any file ends up with a diff. Invoke after authoring or modifying any .ts, .tsx, .js, .jsx, or .json file under openmetadata-ui/src/main/resources/ui/src/…

open-metadata/OpenMetadata · 122 tokens