Tool · opencode · anomalyco
grep
What matters here2 of 3 invariants hold · 1 unverified
- Regex dialectRust regexsrclike 8 of 11
- Announces truncationinvariantholdssrcall 18 hold
- Agrees with readinvariantholdssrc6 of 7 hold
- Gitignoreyessrclike 8 of 18
The facts the registry marks decision-changing, with how the other implementations answered. An invariant may be shown as pass/fail; a design choice never is, however unusual it looks.
How this differs from most implementations
- Searches hidden filesyes, except .gitvs yes in 7 of 13
Derived by comparing every recorded value against the other implementations of the same capability. Differing is not a defect unless the row is marked an invariant.
Description, as the model sees it
Not recorded yet — the verbatim description has not been captured for this tool.
Registered schema
Not recorded yet — the schema as registered has not been captured for this tool.
Observed · Code search
compare all →| Fact | This tool | Across all implementations |
|---|---|---|
| Shape | 3 of 3 recorded | |
| What it searches | by-contentsrc | like 9 of 20by-name ×9 · both ×1 +1 |
| Tools per harness | two toolssrc | like 18 of 20no search tool ×1 · one tool ×1 |
| Search engine | bundled ripgrepsrc --no-config, so a user's RIPGREP_CONFIG_PATH cannot change what the agent sees. | like 6 of 19ripgrep ×2 · bundled fd ×1 +101 unverified |
| Query language | 1 of 2 recorded | |
| Regex dialect | Rust regexsrc No backreferences and no lookaround; such a pattern returns no matches rather than an error. | like 8 of 11varies by backend: Rust regex, git grep, POSIX, or JS RegExp ×1 · varies by backend: Rust regex, POSIX, or Python re ×1 +1 |
| Case sensitivity | ? | 6 others recordedsensitive, model can ask ×3 · always insensitive, not configurable ×2 +113 unverified |
| Result shape | 4 of 4 recorded | |
| Line numbers in results | Line N:src Grouped under a path: header, from rg --json. | like 3 of 11path:N: ×2 · line numbers, or paths only, or counts ×1 +5 |
| Result cap | 100 matchessrc | like 3 of 20100 files ×4 · 100 matches or 30KB ×2 +10 |
| Announces truncationinvariant | holdssrc "Found N matches (more matches available)" plus "(Results truncated. Consider using a more specific path or pattern.)". | all 18 hold1 unverified |
| How "no matches" reads | sentencesrc "No files found" — the same string the glob tool uses for an empty result. | like 16 of 17empty stdout ×13 unverified |
| Agreement with read | 1 of 2 recorded | |
| Search line N is read line Ninvariant | holdssrc Both are 1-indexed. | 6 of 7 holdfalse ×12 unverified |
| Search counts as having read | ? | 2 others recordedno read tracking at all ×1 · yes — matched files are recorded as partial reads ×19 unverified |
| Scope | 2 of 3 recorded | |
| Respects .gitignore | yessrc | like 8 of 18no, deliberately ×2 · yes, plus .qwenignore ×2 +52 unverified |
| Binary content never enters contextinvariant | ? | 2 of 3 holdtrue ×2 · false ×18 unverified |
| Ordering | 1 of 1 recorded | |
| Result ordering | ripgrep traversal ordersrc No --sort flag, so results arrive in whatever order the parallel walker produces. | like 5 of 16modification time, newest first ×5 · bounded discovery order; newest-first on request ×1 +54 unverified |