Use this skill whenever the user wants semantic code intelligence through the Weaver CLI, especially for fetching definitions, fetching symbol cards, checking capability support, inspecting daemon state, or performing language-aware renames. Trigger even when the user does not mention Weaver by name if they want IDE-like code navigation or semantic refactors from the terminal.
Weaver gives you semantic code operations through a CLI and daemon. Use it when plain text search is too lossy, when the user wants structured JSON about code relationships, or when a rename should go through language-aware tooling instead of raw text edits.
weaver in PATH..rs), Python (.py), and TypeScript
(.ts/.tsx).observe get-definition and observe get-card. Do not route reference
lookup, call-graph, or diagnostics requests to Weaver here; use fallback
tooling instead.weaver --output json unless the user explicitly wants human-readable
terminal output.observe commands before act commands.act command, inspect the routing output, review the diff, and run
the project's validators.observe commands, for example
file:///abs/path/to/file.rs.LINE:COL values for --position.observe get-definitionobserve get-cardact refactor --refactoring renameweaver --capabilities.weaver daemon status
weaver daemon start
You usually do not need daemon start because domain commands auto-start it,
but daemon status is a useful probe when diagnosing failures.
weaver --output json observe get-definition \
--uri file:///abs/path/to/file.rs \
--position 42:17
Expect an array of locations, each with uri, line, and column.
weaver --output json observe get-card \
--uri file:///abs/path/to/file.rs \
--position 42:17 \
--detail structure
Detail levels:
minimal — identity onlysignature — callable surfacestructure — default, good general viewsemantic — adds hover and type data when LSP is availablefull — richest available payload, though it may still degrade gracefullyStart with structure. Escalate to semantic or full only when the extra
detail will change the answer.
Note that the request position uses 1-indexed LINE:COL, but successful card
responses report range.start and range.end as 0-based half-open offsets.
weaver --output json act refactor \
--refactoring rename \
--file src/main.rs \
new_name=better_name \
offset=123
Notes:
--file is workspace-relative.offset is a 0-based UTF-8 byte offset, not LINE:COL.CapabilityResolution record before the final status;
inspect it when routing matters.get-definition for "where is this defined?"get-card for a compact semantic brief on a symbol.act refactor rename only for deliberate symbol changes with a clear
target location.If Weaver reports an unsupported language, missing capability, or another structured refusal:
When you use --output json, extract the actionable parts for the user instead
of pasting raw payloads unless they asked for the full JSON. Focus on:
User: "Use Weaver to find the definition of the symbol at
src/lib.rs:42:17."
Agent flow:
src/lib.rs.weaver --output json observe get-definition ....User: "Give me a semantic summary of the function at src/handler.py:18:5."
Agent flow:
observe get-card --detail structure.--detail semantic only if hover or type data matters.User: "Rename the symbol at byte offset 123 in src/main.py to
build_index with Weaver."
Agent flow:
act refactor --refactoring rename --file src/main.py new_name=build_index offset=123.