Markdown Converter
Agent skill for markdown-converter
Context management tools for Claude Code - provides intelligent codebase mapping with Python, Rust, and C++ parsing, duplicate detection, and MCP-powered symbol queries. Use this skill when working with large codebases that need automated indexing and context management.
Sign in to like and favorite skills
This skill provides intelligent context management for large codebases through:
search_symbols and get_file_symbols tools⚡ DECISION TREE - Ask yourself BEFORE using Grep/Search/Bash:
Am I searching for code symbols (functions, classes, enums, structs, types)? ├─ YES → Use MCP tools (search_symbols / get_symbol_content / get_file_symbols) │ Example: Finding "enum InstructionData" → search_symbols("InstructionData") │ Example: Finding "Phi" variant → get_symbol_content("InstructionData") │ └─ NO → Am I searching for text/comments/strings/config values? └─ YES → Use Grep/Search Example: Finding string literals, documentation, JSON values
CRITICAL: Use repo-map tools as your FIRST approach when you need to:
search_symbolssearch_symbols or get_symbol_contentget_symbol_contentget_file_symbolssearch_symbols with patternsDo NOT use Grep or Bash for these tasks - the repo-map tools are:
When to use Grep instead:
Tool availability check: Before attempting to use MCP tools (mcp__plugin_context-daddy_repo-map__*), check if
.claude/repo-map.db exists:
/context-daddy:repo-map to generate it.Fallback order:
Inefficient approach (DON'T DO THIS):
grep -r "setup_model\|setup_instance" jax_spice/devices/*.py
Problems: Slow, error-prone pattern matching, gets interrupted on large codebases.
Efficient approach (DO THIS):
mcp__plugin_context-daddy_repo-map__search_symbols pattern: "setup_*"
Result: Instant list of all
setup_model, setup_instance, etc. with locations and signatures.
Inefficient approach (DON'T DO THIS):
find . -name "*.py" -exec grep -l "class.*Config" {} \;
Efficient approach (DO THIS):
mcp__plugin_context-daddy_repo-map__search_symbols pattern: "*Config*" kind: "class"
Then get the source:
mcp__plugin_context-daddy_repo-map__get_symbol_content name: "ConfigLoader"
Inefficient approach (DON'T DO THIS):
grep "^def " src/utils.py
Efficient approach (DO THIS):
mcp__plugin_context-daddy_repo-map__get_file_symbols file: "src/utils.py"
Result: Complete list of all functions/classes with signatures and docstrings.
User needs to check if it's
Phi or PhiNode in enum InstructionData.
Inefficient approach (DON'T DO THIS):
grep -n "enum InstructionData" openvaf-py/vendor/OpenVAF/openvaf/mir/src grep -n "Phi" openvaf-py/vendor/OpenVAF/openvaf/mir/src/instructions.rs
Problems: Multiple searches, manual parsing, easy to miss correct variant.
Efficient approach (DO THIS):
mcp__plugin_context-daddy_repo-map__search_symbols pattern: "InstructionData" mcp__plugin_context-daddy_repo-map__get_symbol_content name: "InstructionData"
Result: Complete enum with all variants visible, including
PhiNode(_).
IMPORTANT: If the user has just installed this plugin:
"I see you've installed the context-daddy plugin. The MCP server should auto-configure on restart. After restarting Claude Code, run
to verify the/mcpserver is loaded.repo-mapIf it doesn't load automatically, let me know and I can help troubleshoot using
."/context-daddy:setup-mcp
The MCP server auto-configures from the plugin manifest. Only if auto-config fails should you run
/context-daddy:setup-mcp for troubleshooting.
Note: Indexing is now handled by the MCP server itself (no PreToolUse hook needed).
Database Schema (.claude/repo-map.db):
symbols table columns: - name (TEXT): Symbol name (function/class/method name) - kind (TEXT): "function", "class", or "method" - signature (TEXT): Full function/method signature with parameters and type hints Examples: - "extract_symbols_from_python(file_path: Path, relative_to: Path) -> list[Symbol]" - "analyze_files(files: list[Path], extractor, language: str, root: Path)" - docstring (TEXT): First line of docstring or full docstring - file_path (TEXT): Relative path from project root - line_number (INTEGER): Start line (1-indexed) - end_line_number (INTEGER): End line (1-indexed) - parent (TEXT): For methods, the class name metadata table (v0.7.0+): - key (TEXT PRIMARY KEY): Metadata key - value (TEXT): Metadata value Keys: - 'status': 'idle' | 'indexing' | 'completed' | 'failed' - 'index_start_time': ISO8601 timestamp when indexing started - 'last_indexed': ISO8601 timestamp when last completed - 'symbol_count': Total symbols indexed (string) - 'error_message': Error message if status='failed'
Indexing Status and Auto-Wait (v0.7.0+):
Available MCP Tools:
mcp__plugin_context-daddy_repo-map__search_symbols - Search symbols by pattern (supports glob wildcards)
mcp__plugin_context-daddy_repo-map__get_file_symbols - Get all symbols in a specific file
mcp__plugin_context-daddy_repo-map__get_symbol_content - Get full source code of a symbol by exact name
mcp__plugin_context-daddy_repo-map__list_files - List all indexed files, optionally filtered by glob pattern
mcp__plugin_context-daddy_repo-map__reindex_repo_map - Trigger manual reindex
mcp__plugin_context-daddy_repo-map__repo_map_status - Check indexing status and staleness
mcp__plugin_context-daddy_repo-map__wait_for_index - Explicitly wait for indexing to complete
Fallback when MCP tools unavailable: Use sqlite3 directly on
.claude/repo-map.db:
# Search symbols sqlite3 .claude/repo-map.db "SELECT name, kind, signature, file_path, line_number FROM symbols WHERE name LIKE 'pattern%' LIMIT 20" # Get symbol with source sqlite3 .claude/repo-map.db "SELECT * FROM symbols WHERE name = 'function_name'" # Then read file_path lines line_number to end_line_number
/context-daddy:repo-map - Regenerate repository map/context-daddy:manifest - Refresh project manifest/context-daddy:learnings - Manage project learnings/context-daddy:status - Show plugin status| Language | Parser | File Extensions |
|---|---|---|
| Python | AST | |
| Rust | tree-sitter-rust | |
| C++ | tree-sitter-cpp | , , , , , |