fd-codenav
Skill0 starsChanged 23 days agoMITView on GitHub
How FlowDeck explores code and measures blast radius. Use when mapping a codebase, finding the callers or dependents of a file or symbol, or checking which files a change affects. LSP first, then Grep, Glob and Read, with Explore for broad sweeps.
In this repository32 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- api-designSkill
- arch-constraint-guardSkill
- backend-patternsSkill
- clean-architectureSkill
- codebase-mappingSkill
- context-budgetSkill
- cqrsSkill
- ddd-architectureSkill
- debug-flowSkill
- dependency-auditSkill
- django-patternsSkill
- django-tddSkill
- event-driven-architectureSkill
- fd-mapSkill
- frontend-patternSkill
- git-releaseSkill
- git-workflowSkill
- golang-patternsSkill
- hexagonal-architectureSkill
- java-patternsSkill
- layered-architectureSkill
- performance-profilingSkill
- postgres-patternsSkill
- python-patternsSkill
- refactor-guideSkill
- research-firstSkill
- rust-patternsSkill
- saga-architectureSkill
- security-scanSkill
- tdd-workflowSkill
- test-gap-detectorSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Use the cheapest tool that answers the question.
- Distinctive: line 17
Check LSP once per task, on one representative file.
- Very specific: line 30
Read only the lines you need.
- Very specific: line 40
Import patterns for the Grep fallback: JS/TS from '…', require('…'), import('…').
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Code navigation
Use the cheapest tool that answers the question. Do not shell out to grep, find or cat when Grep, Glob and Read exist.
Order of tools
LSP, when a code-intelligence plugin is active for the language: definition, references, call hierarchy, implementations, document symbols, workspace symbol search.- Grep, Glob, Read otherwise.
Exploresubagent for broad sweeps across independent areas. It is read-only and does not see CLAUDE.md, so put every fact it needs in the prompt. Ask forquick,mediumorvery thorough.
Check LSP once per task, on one representative file. If the call errors or reports no server, switch to Grep for the rest of the task and say so in your output. Do not retry.
What to use for what
| Question | LSP | Fallback |
| Where is symbol X defined | definition | Grep class X|function X|def X|fn X|type X, scoped by type or glob |
| Who uses X | references, call hierarchy | Grep \bX\b, output_mode: files_with_matches first |
| What does this file expose | document symbols | Read the first ~60 lines, then Grep the export or definition keywords |
| What implements interface X | implementations | Grep implements X|: X\b|impl X |
| Find a symbol by name | workspace symbol search | Grep, then Glob for file names |
| What is in this big file | document symbols, then Read offset/limit | Grep -n for the section, then Read a window |
Read only the lines you need. Use Grep files_with_matches or count before content, and set head_limit on content searches.
Blast radius for a set of files
- For each file, list its exported or public symbols (LSP document symbols, else Grep the export keywords). Cap at 15 symbols per file, exported first.
- Find the references to each symbol (LSP references, else Grep
\bsymbol\b). Collect the distinct referencing files. - Grep once per file for its module path and file name. This catches config, docs, build files, string-based and dynamic imports that LSP does not see.
- Glob for the matching test files (
*.test.*,*_test.*,test_*,*.spec.*,tests/) and note which referencing files are tests. - Report: dependents not already in the affected set, which affected files have no test file, and which task pairs share a file.
Import patterns for the Grep fallback: JS/TS from '…', require('…'), import('…'); Python import x, from x import; Go the import path string; Rust use, mod; Java import and the fully qualified name.
What to record
State the source in the artifact: Source: LSP or Source: Grep (text-based; misses dynamic imports and generated code). If you capped symbols or stopped early, say so.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

