Mental Model
The chain
Section titled “The chain”The main fsuite workflow is a straight line from territory scout to surgical edit:
fsuite → fs / ftree / fls → fsearch | fcontent → fmap → fread → fcase → fedit / fwrite → fmetricsGuide Unified / Scout / LS Narrowing Bridge Read Preserve Mutate MeasureThree specialists orbit the main stack:
fbash— Bash replacement with token-budgeting, command classification, and session statefprobe— Binary / bundle inspection + patching when normal reads failfreplay— Derivation chain replay for deterministic reruns
The discipline
Section titled “The discipline”- Scout once. Run
ftree --snapshotto establish territory. Don’t rediscover the repo unless the target changes. - Let
fsroute. It auto-classifies your query and picks the right narrowing tool. One call beats three. - Map before reading.
fmapextracts the symbol skeleton. You’ll know what’s there before you read a single line. - Read exactly, never approximately.
fread --symbol NAMEreads one function by name.fread --lines 120:150reads an exact range. Don’t read whole files. - Preserve investigation state. Open
fcase initat the start of non-trivial work. Close withfcase resolve. Checkfcase findbefore starting new work — a past you may already have the answer. - Edit surgically.
fedit --linesis the fastest mode when you have numbers fromfread.fedit --function_namescopes by symbol without needing huge unique context strings. - Never edit blind. Always inspect context with
freadbefore callingfedit. - Measure.
fmetricstells you which chains worked and predicts the best next step for any project.
Why this order matters
Section titled “Why this order matters”Every tool in the chain is bounded — capped output, ranked results, structured JSON available. If you run them in order, each tool narrows the work for the next one, and by the time you reach fedit you are acting on an exact line range or exact symbol. Zero ambiguity. Zero failed context matches. Zero 10,000-line grep dumps.
If you skip the chain and reach for fcontent as your first search, you’ll get what grep gives you — a flood — and you’ll waste tokens re-narrowing by hand. That’s the mistake the chain is built to prevent.