lattice-search
Search and navigate The Fold's skill lattice using meta-tooling. Use for finding functions, exploring dependencies, type-aware queries, and cross-reference analysis. Invoke when searching for capabilities, exploring the codebase structure, or finding how functions relate.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Lattice Search Skill
Overview
The Fold's lattice is a DAG of verified skills with comprehensive meta-tooling for discovery and navigation. This skill provides search, inspection, and cross-reference capabilities.
Use lattice search for:
- Finding functions by name, description, or type signature
- Exploring skill dependencies and dependents
- Understanding what a skill exports
- Tracing call graphs (what calls what)
- Discovering capabilities you didn't know existed
Quick Reference
| Command | Purpose | Example |
|---|---|---|
lf |
Full-text search (BM25 ranked) | (lf "matrix decomposition") |
lfe |
Exact symbol lookup | (lfe 'vec3) |
lfp |
Prefix search | (lfp 'matrix) |
lfs |
Substring search | (lfs 'c2d) |
li |
Skill description | (li 'linalg) |
le |
List exports | (le 'linalg) |
lm |
List modules | (lm 'linalg) |
ld |
Dependencies (what it needs) | (ld 'physics/diff) |
lu |
Dependents (what uses it) | (lu 'linalg) |
lxu |
Callers (what calls this) | (lxu 'matrix-rows) |
lxc |
Callees (what this calls) | (lxc 'floyd-warshall) |
ls |
Lattice statistics | (ls) |
Instructions
Basic Search
# Full-text search - finds functions, skills, descriptions
./fold "(lf \"parser combinator\")"
# Exact symbol lookup (falls back to substring if not found)
./fold "(lfe 'maybe-bind)"
# Prefix search - finds all symbols starting with prefix
./fold "(lfp 'matrix)" # matrix-*, matrix-multiply, etc.
# Substring search - finds symbols containing substring
./fold "(lfs 'zoh)" # finds c2d-zoh, d2c-zoh, etc.
# Autocomplete suggestions
./fold "(lattice-complete \"mat\")"
Type-Aware Search (Hoogle-style)
# Find functions with type in signature
./fold "(lf-type \"Monad\")"
# Find functions that take a specific type as input
./fold "(lf-input \"Matrix\")"
# Find functions that return a specific type
./fold "(lf-output \"Maybe\")"
Cross-Reference Queries
# Build the cross-reference cache first (only needed once per session)
./fold -s dev "(build-xref-cache!)"
# What functions call this?
./fold -s dev "(lxu 'matrix-rows)"
# What does this function call?
./fold -s dev "(lxc 'floyd-warshall)"
# All transitive callers
./fold -s dev "(xref-callers-transitive 'fn)"
# Most-called functions (hot spots)
./fold -s dev "(xref-most-called 10)"
DAG Navigation
# What does this skill depend on?
./fold "(ld 'physics/diff)"
# What skills use this one?
./fold "(lu 'linalg)"
# Find path between skills
./fold "(lattice-path 'physics/diff 'linalg)"
# Tier 0 skills (foundational, no deps)
./fold "(lattice-roots)"
# Skills with no dependents (leaves)
./fold "(lattice-leaves)"
# Most-depended-on skills (hubs)
./fold "(lattice-hubs)"
Inspection
# Full skill description
./fold "(li 'linalg)"
# List all exports from a skill
./fold "(le 'linalg)"
# List modules with descriptions
./fold "(lm 'linalg)"
# One-line summary of all skills
./fold "(lattice-summary)"
# Structured data for programmatic use
./fold "(lattice-info 'linalg)"
Analytics & Health
# Lattice statistics
./fold "(ls)"
# Health check (missing deps, cycles)
./fold "(lh)"
# Metadata coverage report
./fold "(lattice-coverage-pretty)"
# Print full DAG structure
./fold "(lattice-graph)"
Manifest Auditing
# Find missing/phantom exports in a skill
./fold "(audit-skill-pretty 'fp)"
# List exports to add to manifest
./fold "(suggest-missing 'fp)"
Search Best Practices
-
Start broad, then narrow: Use
(lf "concept")first, then(lfe 'symbol)for exact matches -
Use substring for partial names: If you know part of a name (like
c2d), use(lfs 'c2d) - Try multiple query variations: Function might be named differently than expected
-
Check skill exports: Use
(le 'skill-name)to see what a skill actually exports -
Not all functions are exported: Use
(audit-skill 'name)to find functions in source but missing from manifests
Examples
Example 1: Finding Matrix Operations
# Start with full-text search
./fold "(lf \"matrix multiplication\")"
# Found 'linalg' skill, check its exports
./fold "(le 'linalg)"
# Get module list to understand structure
./fold "(lm 'linalg)"
Example 2: Exploring a Function's Usage
# Who calls matrix-transpose?
./fold -s dev "(build-xref-cache!)"
./fold -s dev "(lxu 'matrix-transpose)"
# What does the main caller depend on?
./fold -s dev "(lxc 'the-caller-function)"
Example 3: Finding Control System Functions
# Don't know exact name, try substring
./fold "(lfs 'c2d)"
# Returns: c2d-zoh, c2d-tustin, etc.
# Get full info on the skill
./fold "(li 'fp)"
./fold "(le 'fp)"
Example 4: Discovering Capabilities
# What can I do with parsers?
./fold "(lf \"parser\")"
# What monads are available?
./fold "(lf-type \"Monad\")"
# What data structures exist?
./fold "(li 'data)"
./fold "(le 'data)"
Lattice Structure
| Tier | Skills | Purpose |
|---|---|---|
| 0 | linalg, data, algebra, random | Foundational (no lattice deps) |
| 1 | numeric, geometry, autodiff, fp, query, dsl, info, number-theory, meta | Intermediate |
| 2+ | physics/diff, physics/classical, tiles, sim, automata, pipeline | Advanced |
Module Locations
| Component | Path |
|---|---|
| Knowledge Graph | lattice/meta/kg.ss |
| BM25 Search | lattice/meta/bm25.ss |
| Search API | lattice/meta/search.ss |
| Type Search | lattice/meta/type-search.ss |
| Cross-Reference | lattice/meta/xref.ss |
| DAG Navigation | lattice/meta/dag.ss |
| Inspection | lattice/meta/inspect.ss |
| Unified Entry | lattice/meta/meta.ss |
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!