Repository navigation
Releases: dorkitude/skimmer
Release list
skimmer v0.1.106
Changed
- macOS binaries (universal and per-architecture) are signed with a
Developer ID certificate and notarized by Apple, so they run without a
Gatekeeper warning however they're downloaded, not only through Homebrew.
skimmer v0.1.105
Added
- Best practices, from hands-on runs and the evals: a README section (with
measurements for code search, web pages, long docs, search results and
unanswerable goals) and a short guide inskimmer --help, so agents pick
the right flags for each kind of search. The "For agents" snippet uses them.
skimmer v0.1.104
Changed
- Homebrew installs skimmer as a cask holding the release's prebuilt binary,
not a formula built from source. On macOS Tahoe Homebrew refuses any
source build without the Xcode Command Line Tools, so
brew install dorkitude/tap/skimmerfailed on Macs without them. The cask
needs neither Go nor the Command Line Tools, and it clears macOS's
quarantine flag so the unnotarized binary runs without a warning. If you
installed the formula, switch once:
brew uninstall skimmer && brew install dorkitude/tap/skimmer.
Added
- A universal macOS binary in every release (
skimmer_X_darwin_all.tar.gz,
Apple Silicon and Intel in one file), which the cask installs. The
per-architecture macOS, Linux and Windows builds are unchanged.
skimmer v0.1.103
In answer to the review in #3.
Changed
- The default model is pinned to
jev-1.14.0, the model the evals measured,
instead of thejev-latestalias (which points atjev-1.13.0).--model,
SKIMMER_MODELand a prompt'smodel:still choose another. - The stderr summary and
skim --json("model") name the model that
answered. The summary also counts unjudged chunks. - The batch planner charges a chunk's text once, or twice only when a prompt
pastes it with{{.Text}}, and measures the prompt itself without
subtracting text it no longer contains. Batches with large--chunk-chars
now hold up to about twice as many chunks.
Added
--injection-checkforskimandfilter: a second yes/no question per
chunk or item, in the same requests, drops ones that try to steer the
reader (listed asflaggedin--json). Measured: planted lines kept
1–6% of the time instead of 18–20%, 0 flags in 5,439 clean judgments,
about 25% more input tokens; in documents with a planted line it cost 3–4
of 66 goals, by dropping answers next to the line. A filter, not a security boundary.
The prompt isinjection_check/DEFAULT.md.- Prompt frontmatter takes
criteria(trueandfalsetext), sent as the
Noul's criteria. - Evals: a frozen dev/holdout split, a pre-registration, near-miss negative
goals, span-based scoring that holds across chunk sizes and shifts, one
live runner (evalskim) and an offline report (evalreport: Wilson
intervals, exact McNemar, a BM25 baseline, cross-draw flips, injection).
Results inevals/skimmer/0.1.103/results.md. - A label audit by a second model family (
gpt-6-astraviacodex exec,
evals/cmd/labelaudit): it agrees with all v1 gold, distractor and
near-miss labels and 13 of 14 confusables, but only 12 of 36 v2 labels,
and every skimmer miss falls on a disputed v2 label.evalreport -agreed
re-scores on agreed goals only; no decision changes.
Fixed
- Injection eval chunks now map through the planted insertion to their
original-document spans, including chunks containing only part of the line.
Repaired the saved spans offline without changing model probabilities:
the check loses 3–4 complete goals of 66 per planted-line run, previously
hidden by missing spans. Updated the results and README. - The chunk-size sweep scored near-duplicate goals by chunk id, which names
different text at other sizes. Re-scored by span, smaller chunks do not
lose discrimination; the 0.1.101 claim is withdrawn. - Eval claims corrected in place: headline counts now carry n and intervals;
the 0.7 threshold advice is withdrawn (it loses 8 of 42 held-out goals);
the 0.1.102 prompt change measured 14.5% fewer tokens with no measurable
recall difference, not "19% fewer, equal-or-better at every rank".
skimmer v0.1.102
Changed
- Built-in
skimandfilterprompts no longer paste the goal or the chunk
or item text into each question. Every chunk is sent once, in the request
state, and each question points at it by id. Measured on the frozen
goals-v2 eval (pinnedjev-1.14.0, 2 draws): 19% fewer input tokens per
goal, equal-or-better recall at every rank and better all-modes coverage
(0.750 vs 0.722). Seeevals/variants/README.md. Custom prompts using
{{.Text}}still work, but send the text twice.
Evals
This release ships the eval suite: a 12-document public corpus with
attributions (including three mutually-confusable arXiv RAG papers and the
System One paper itself), a gold-by-construction goal set authored and
blind-audited across two model families, a live harness running the real
pipeline against a pinned Jev model with every per-chunk probability
archived, and eval history foldered by skimmer version. Measured:
recall 1.000 on find-the-fact goals, distractor leakage 0.000, robust to
boundary shifts; threshold 0.5 conservative (0.7 keeps 30% fewer chunks at
identical recall); mode drops real on collect goals and fixed in part by
the state-pointer prompt. See evals/.
skimmer v0.1.100
First release of skimmer 🎉: skim pages, files, and lists with Jev and keep only what helps with your goal.
skimmer skim: URLs, files, directories,grep/rgoutput, or stdin → only the helpful chunks, with file chunks cited aspath:start-end(10% chunk overlap by default)skimmer filter: JSON arrays, JSON Lines, or plain lines → only the helpful items, in the same formatskimmer auth: store your key once in~/.config/skimmer; env vars,.env, and credential-injecting proxies work tooskimmer prompts: built-in default prompts, plus your own overrides
Install: brew install dorkitude/tap/skimmer · scoop install dorkitude/skimmer · apt (see README) · go install github.com/dorkitude/skimmer@v0.1.100