Get the FREE Ultimate OpenClaw Setup Guide →

fmm

npx machina-cli add skill srobinson/helioy-plugins/fmm --openclaw
Files (1)
SKILL.md
2.6 KB

FMM — MCP-First Code Navigation

This codebase has FMM metadata available via MCP tools. Use them for instant, structured lookups instead of grep/read.

MCP Tools (ALWAYS USE THESE FIRST)

ToolUse CaseExample
fmm_read_symbol"Show me the code for X"fmm_read_symbol(name: "createPipeline")
fmm_lookup_export"Where is X defined?"fmm_lookup_export(name: "createPipeline")
fmm_file_outline"What's in this file?"fmm_file_outline(file: "src/core/index.ts")
fmm_list_exports"Find exports matching X"fmm_list_exports(pattern: "swarm")
fmm_dependency_graph"What depends on this file?"fmm_dependency_graph(file: "src/core/index.ts")
fmm_file_info"Quick file summary"fmm_file_info(file: "src/utils/helpers.ts")
fmm_searchMulti-criteria searchfmm_search(imports: "lodash", min_loc: 100)

Navigation Protocol

"Show me the code for X"

1. fmm_read_symbol(name: "X") → exact source + file path + line range — DONE

Replaces 3+ tool calls (search → find file → read file → locate symbol) with ONE.

"Where is X defined?"

1. fmm_lookup_export(name: "X") → file path + line range — DONE
2. Not found? → fmm_list_exports(pattern: "X") for fuzzy match
3. Still nothing? → fall back to Grep

"What's in this file?"

1. fmm_file_outline(file: "src/foo.ts") → every export with line ranges and sizes
2. Decide WHAT to read before reading anything

"What depends on this file?"

1. fmm_dependency_graph(file: "src/foo.ts") → upstream + downstream deps — DONE

Sidecar Fallback

If MCP tools are unavailable, .fmm sidecar files exist alongside source files:

file: src/core/pipeline.ts
fmm: v0.3
exports:
  createPipeline: [10, 45]
  PipelineConfig: [47, 52]
imports: [zod, lodash]
dependencies: [./engine, ./validators]
loc: 142

Line ranges enable surgical reads: Read(file, offset=10, limit=36).

Rules

  1. MCP tools are primary — always call fmm_* before grep/read
  2. fmm_read_symbol is your default — need to see code? One call, exact lines
  3. fmm_file_outline before reading — see the shape before deciding what to read
  4. Read source only when editing — MCP/sidecars tell you what you need for navigation
  5. Saves 88-97% of tokens compared to reading full source files

Source

git clone https://github.com/srobinson/helioy-plugins/blob/main/plugins/helioy-tools/skills/fmm/SKILL.mdView on GitHub

Overview

FMM provides MCP metadata for code navigation via tools like fmm_read_symbol and fmm_lookup_export. It enables instant, structured lookups that replace grep/read with O(1) access. When MCP tools are unavailable, a .fmm sidecar offers the same navigation cues.

How This Skill Works

These tools query MCP metadata to locate exact code ranges, file outlines, and dependency graphs. You typically call fmm_read_symbol for exact code, fmm_lookup_export for symbol definitions, and fmm_file_outline to understand a file's exports and sizes. The protocol returns file paths and line ranges to minimize full file reads.

When to Use It

  • When you need exact code for a symbol, use fmm_read_symbol
  • When you want to know where a symbol is defined, use fmm_lookup_export
  • Before opening a file, skim its contents with fmm_file_outline
  • To find exports matching a pattern, use fmm_list_exports
  • To map dependencies, run fmm_dependency_graph

Quick Start

  1. Step 1: fmm_read_symbol(name: 'createPipeline')
  2. Step 2: If not found, fmm_lookup_export(name: 'createPipeline')
  3. Step 3: Before editing, fmm_file_outline(file: 'src/core/index.ts')

Best Practices

  • Always invoke fmm_* tools before grep or read
  • Use fmm_read_symbol for exact lines instead of opening files
  • Use fmm_file_outline to decide what to read first
  • If MCP tools are down, rely on the .fmm sidecar or file info
  • Check dependencies with fmm_dependency_graph to understand relationships

Example Use Cases

  • Navigate to createPipeline quickly via fmm_lookup_export
  • Read the exact lines for PipelineConfig using fmm_read_symbol
  • List exports matching swarm with fmm_list_exports(pattern: 'swarm')
  • View a file outline before editing via fmm_file_outline(file: 'src/core/index.ts')
  • Map upstream/downstream with fmm_dependency_graph(file: 'src/core/index.ts')

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers