This report uses real synthetic Markdown fixtures. Read .owledge/benchmark-kit/BENCHMARK_EXPLAINED.md before interpreting the scores.
Profiles tested: metadata_scan, owledge_context_pack, oracle. The final product verdict is at the end of this report and is based on the Owledge context-pack profile.
Baseline metadata_scan is the naive before-state. owledge_context_pack is the product behavior under test. oracle is the ideal reference ceiling.
| Metric | Baseline metadata_scan | Owledge context pack | Oracle reference |
|---|---|---|---|
| Context pollution | 0.7356 | 0.0856 | 0.0 |
| Privacy failures | 1 | 0 | 0 |
| Stale failures | 1 | 0 | 0 |
| Tokens per correct answer | 9269.5 | 1190.67 | 1113.17 |
| Verdict | Fail | Pass | Pass |
The benchmark injects private Markdown notes that look relevant to the question. A reliable context pack must exclude those notes, even when their wording appears useful.
Chart direction: lower pollution, duration, and token cost are better; higher tokens/sec is better. The standalone SVG is also written to .owledge/reports/generated/benchmark-kit/charts.svg.
| Total tokens | How much prompt and completion budget the run consumed. |
|---|---|
| Tokens per correct answer | The practical token cost of useful retrieval. |
| Context pollution | How much irrelevant, stale, private, or background context entered selected packs. |
| Privacy failures | Whether private trap notes entered selected context. This must stay at zero. |
| Stale failures | Whether superseded records entered selected context. |
| tokens/sec | Approximate local generation throughput when a local model is used. |
| Duration | End-to-end benchmark runtime for this run. |
| Status | Scenario | Profile | Model | Precision | Recall | Pollution | Total tokens | tokens/sec | Duration ms |
|---|---|---|---|---|---|---|---|---|---|
| Warn | needle | metadata_scan | gemma4:latest | 0.2 | 1.0 | 0.805 | 2741 | 73.2855 | 9689 |
| Pass | needle | owledge_context_pack | gemma4:latest | 1.0 | 1.0 | 0.0 | 796 | 73.8517 | 4935 |
| Pass | needle | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 796 | 74.6927 | 4867 |
| Warn | multi-hop | metadata_scan | gemma4:latest | 0.5 | 1.0 | 0.5056 | 3245 | 73.6169 | 10655 |
| Pass | multi-hop | owledge_context_pack | gemma4:latest | 1.0 | 1.0 | 0.0 | 2011 | 74.7 | 10283 |
| Pass | multi-hop | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 2011 | 74.3349 | 10270 |
| Warn | stale-conflict | metadata_scan | gemma4:latest | 0.2 | 1.0 | 0.8036 | 2824 | 73.8845 | 9944 |
| Pass | stale-conflict | owledge_context_pack | gemma4:latest | 1.0 | 1.0 | 0.0 | 763 | 75.1477 | 4348 |
| Pass | stale-conflict | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 763 | 74.3116 | 4359 |
| Fail | privacy-trap | metadata_scan | gemma4:latest | 0.2 | 1.0 | 0.8065 | 2618 | 73.6921 | 7816 |
| Pass | privacy-trap | owledge_context_pack | gemma4:latest | 1.0 | 1.0 | 0.0 | 873 | 74.4653 | 5989 |
| Pass | privacy-trap | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 873 | 74.6619 | 5946 |
| Warn | distractor-heavy | metadata_scan | gemma4:latest | 0.1111 | 1.0 | 0.8937 | 4202 | 72.4954 | 5827 |
| Warn | distractor-heavy | owledge_context_pack | gemma4:latest | 0.5 | 1.0 | 0.5137 | 1235 | 74.5103 | 5228 |
| Pass | distractor-heavy | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 770 | 74.8282 | 4553 |
| Warn | handoff-resume | metadata_scan | gemma4:latest | 0.4 | 1.0 | 0.5989 | 2909 | 74.0848 | 10894 |
| Pass | handoff-resume | owledge_context_pack | gemma4:latest | 1.0 | 1.0 | 0.0 | 1466 | 74.8395 | 7950 |
| Pass | handoff-resume | oracle | gemma4:latest | 1.0 | 1.0 | 0.0 | 1466 | 74.8529 | 7906 |
Fixture content is deterministic and synthetic. Local model timings vary by hardware, model quantization, Ollama version, and background load. The benchmark is designed to expose context pollution and handoff reliability, not to certify every real-world repository.
Fixture directory: .owledge/tmp/benchmark-kit/fixtures/20260629094140-seed42-small/small
Baseline: Baseline failed as expected: naive metadata scanning over-selected unsafe, stale, or noisy context.
Owledge: Owledge passed: the context-pack profile kept private and stale records out while staying inside the target pollution band.
Oracle: Oracle is the reference ceiling and should be treated as an ideal comparison point, not a product claim.
Conclusion: Owledge passed: the baseline profile over-selected unsafe or stale context, while the Owledge context-pack profile kept private and stale records out.