Skip to content

v0.5.13 — adaptive candidate recall for agent-grade context

Choose a tag to compare

@danielchen26 danielchen26 released this 11 May 04:04
· 66 commits to master since this release

skylakegrep 0.5.13 — adaptive candidate recall for agent-grade context

0.5.13 upgrades the retrieval architecture behind semantic and mixed
queries. The router still decides intent, but it no longer gets to be
the only gate deciding which files are visible. A bounded candidate
recall substrate now runs before the expensive cascade so agent calls get
better path coverage and more source evidence without dumping a whole
repository into the downstream LLM context.

All examples and benchmark tasks below are generic repository-maintenance
scenarios. No private prompts, filenames, folders, screenshots, or local
paths are included.

What changed

  • Added a generic candidate recall lane for semantic, lexical, and mixed
    queries. It combines independent, bounded signals from explicit
    --include scopes, indexed path tokens, indexed symbols, SQLite chunk
    text, and a small rg -il -F path pass.
  • Candidate recall is additive evidence, not a hard shortcut. It can
    surface likely files early, but the normal semantic scorer and reranker
    still decide final ordering.
  • --content and agent calls now receive a small per-file support pack
    when needed: related constants, symbol definitions, or assertion
    anchors from the same recalled file. brief / location output stays
    compact; standard gets compact support; full can read wider after
    the caller narrows scope.
  • The indexer now preserves meaningful module-level text, constants, and
    long string anchors that tree-sitter structural chunking can otherwise
    miss. This improves evidence coverage for agent-instruction files,
    tests, configuration modules, and documentation-like source files.
  • Candidate recall now participates in intent-aware merge priority:
    semantic and mixed queries can trust it as a peer evidence lane, while
    pure filename queries still prefer exact filename lookup first.
  • The public README, GitHub Pages homepage, benchmark page, CLI
    reference, JSON reference, and setup instructions now explain the
    information-depth ladder for LLM callers: bare lookup, --content,
    --detail full, --answer, --json, and --include.

Why it matters for LLM agents

Raw rg is a strong recall ceiling, but it gives an agent too much
unranked text. 0.5.13 is optimized for the context that a coding agent
actually consumes between reasoning steps:

Agent need Recommended command
Locate the file or concept skygrep "where is the project brief?"
Inspect snippets for the next step skygrep --content --detail standard "what does the migration plan say about rollback?"
Read deeply after narrowing scope skygrep --content --detail full --include "docs/migration-plan.md" "show the deployment steps"
Ask for a synthesized local answer skygrep --answer --content "summarize the retry policy"
Feed structured agent context skygrep --json --content --detail standard --include "src/**" "where is token refresh implemented?"

The important rule is: use the smallest depth that can answer the next
reasoning step. Agents should add --include whenever they already know
the relevant repo, folder, or file; scoped calls are faster and reduce
irrelevant cross-folder evidence.

Agent tool-context benchmark

The release gate runs benchmarks/agent_tool_depth_benchmark.py, a local
deterministic benchmark that simulates two tool-use policies:

  • skygrep-agent: one structured skygrep --json --content call per
    task.
  • rg-agent: multiple raw rg term searches per task, then line-window
    context.

The score is context-centric: path coverage, path precision, evidence
term coverage, tool-call budget, context-token budget, and latency. It
does not call remote Claude, GPT, or any cloud model.

Current 0.5.13 release-gate totals:

Metric skygrep-agent raw rg-agent Interpretation
Tasks × effort profiles 24 24 8 generic tasks across low / medium / high depth
Path coverage 81.9 % 100.0 % rg remains the recall ceiling
Path precision 34.9 % 12.2 % skygrep returns much less irrelevant path noise
Evidence coverage 79.2 % 92.7 % support packs close much of the evidence gap
Sufficiency score 80.8 % 97.1 % weighted 60 % path + 40 % evidence
Tool calls 24 147 skygrep used 6.12× fewer tool calls
Context tokens 56,424 2,129,655 skygrep emitted 37.74× less context
Sufficiency per 1k tokens 0.344 0.011 skygrep was 31.27× denser context

The honest reading: raw rg is still faster at producing a large dump,
and it is the recall ceiling when an agent can afford to inspect a huge
context blob. 0.5.13 is stronger when the downstream model needs compact,
ranked, sufficient context rather than an unfiltered repository slice.

Before vs after

Query shape Previous behavior 0.5.13 behavior
Semantic query whose answer is in a source constant or module-level instruction string Structural chunking could miss the anchor supplemental text chunks preserve it in the index
Agent asks for source evidence, not just a path Top chunk could identify the file but omit nearby proof bounded support pack adds related same-file anchors
Router classifies a query as semantic or mixed but cheap lexical/path evidence knows a likely file Cascade alone could miss or delay that file candidate recall adds it to the candidate pool before final ranking
Agent already knows the scope Scope could help filtering but not always recall explicit include recall votes scoped files into the pool
Human location query Could receive too much snippet support location-depth output stays compact; support packs are tied to content depth

Verification

  • Full local test suite: required before upload.
  • Targeted regression coverage: candidate recall lanes, lexical evidence
    selection, support-pack attachment, module-level text supplementation,
    include-scope recall, merge priority, and terminal UI layout.
  • Agent tool-context benchmark: required before upload, with the current
    totals above.
  • Source privacy scan: required before build.
  • Wheel/sdist privacy scan: required before upload.
  • Fresh install and local editable install: required after PyPI upload.

Compatibility

  • No CLI flag was removed.
  • JSON fields remain backwards compatible. Candidate-recall metadata is
    additive and optional.
  • Existing indexes are compatible, but rebuilding the index lets 0.5.13
    capture the new supplemental module-level text chunks.
  • Existing skygrep setup managed snippets auto-refresh inside their
    managed BEGIN/END block only; user-authored instructions outside that
    block are preserved.

Privacy note

This release uses only generic public examples and repository-maintenance
benchmark tasks. The release process blocks on source and distribution
privacy scans so no real user prompt, private filename, private folder
name, absolute local machine path, screenshot, document category, name,
or email is published.