CLI · RECIPES
Search recipes
Literal and lemma search
grep and ripgrep find strings that appear in the source. Finding 걷고, 걸어, and 걸었다 from the single lemma 걷다 therefore requires a manually enumerated regular expression.
kfind interprets the lemma and POS in the query, then compiles only licensed particles, endings, and irregular inflections. Use --literal for surface-string matching and the default inflection mode for lemma search.
rg '걷다|걷고|걸어|걸었다' docs src
kfind --pos verb 걷다 docs src
Korean verb inflections
To search every supported conjugation of a Korean verb in files, provide its verb POS and lemma. A 걷다 query derives 걷고, 걸어, and 걸었다 from the lexicon’s ㄷ-irregular class and ending rules instead of requiring a hard-coded surface list.
Start with bounded paths and inspect the results and provenance. Add the smart boundary and full-POS resources when internal-token candidates need structural verification.
kfind --pos verb --boundary smart 걷다 docs src
kfind --pos verb --boundary any --json 걷다 docs src
Analyzer and search engine
A morphological analyzer maps a sentence into tokens and lemmas. kfind starts from a target lemma, expands it into bounded surface forms, scans for file anchors, and verifies only the surrounding candidate.
The Rust implementation separates query compilation, matchers, and local verifiers instead of analyzing the entire corpus. Quality and cost are measured independently against the same gold cases and workloads.
Code search
For Korean comments and documentation near symbols, collect candidates with broad any and verify them again with smart. Use literal mode for exact identifiers.
kfind --pos verb --boundary any 변경하다 src
kfind --pos verb --boundary smart 변경하다 src
kfind --literal parse_query crates
Documentation audit
Use the default inflection mode when documents contain lemmas and inflected surfaces. Run separate literal queries for exact terminology checks.
kfind --pos noun 계약 docs README.md
kfind --literal contract-adjust docs site/src
Agent input
Feed agents JSON Lines from bounded paths. Do not remove source surface forms or collapse provenance in jq.
kfind --pos verb --boundary any --json 검증하다 crates/kfind-query | jq -c '{path, line, column, surface, atoms}'