Skip to content
Development
Command

/bootstrap

Generate API_REFERENCE.md from ida-domain source code

BOOST
From plugin
claude-marketplace
1221 skill1 agent1 command
Install
> /plugin marketplace add HexRaysSA/claude-marketplace

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/bootstrap

Context preview

What this command does when you run it.

Generate API_REFERENCE.md from ida-domain source code

Command definition

bootstrap.md
description: Generate API_REFERENCE.md from ida-domain source code
allowed-tools: Bash(find:*), Bash(grep:*), Bash(wc:*), Read, Write, Glob, Grep

Bootstrap: Generate API_REFERENCE.md

You are generating a **hand-written style** API quick reference for the IDA Domain skill.

**IMPORTANT - Path Resolution:** This skill can be installed in different locations. Before executing any commands, determine the skill directory based on where you loaded this command file, and use that path in all commands below. Replace `$SKILL_DIR` with the actual discovered path.

Common installation paths:

  • Project-specific: `<project>/.claude/skills/ida-domain-scripting`
  • Manual global: `~/.claude/skills/ida-domain-scripting`

Context

The ida-domain source code is checked out at: `$SKILL_DIR/ida-domain/`

Your Task

1. **Explore the ida-domain source code** in `$SKILL_DIR/ida-domain/ida_domain/` 2. **Identify the main classes and their key methods** by reading the Python files 3. **Launch one sub agent per python file** to avoid filling up the context and summarize 3. **Generate `API_REFERENCE.md`** in the skill root directory

Output Format (API_REFERENCE.md)

Follow this structure - similar to playwright's API_REFERENCE.md (practical, pattern-focused, ~500-800 lines max):

# IDA Domain Quick Reference

Quick reference for the IDA Domain API. For basic usage, see [SKILL.md](SKILL.md).

## Table of Contents
[Generate dynamically based on discovered entities]

## Database

### Database Properties
[table of properties discovered from database.py: db.module, db.path, db.architecture, etc.]

## [Entity Name]

### Iterating
[code example if the entity is iterable]

### Key Methods
[code examples for the most important methods]

### Properties
[table of properties if applicable]

... repeat for each entity discovered from database.py

## Enums

### [EnumName]
[table of enum values with descriptions]


```python
# Usage example
from ida_domain.xrefs import XrefType
if xref.type == XrefType.CALL_NEAR:
    print("This is a call")

... repeat for each enum discovered except hooks.py


## Guidelines

1. **Be practical** - Show how to DO things, not just what exists
2. **Use code examples** - Every section should have runnable code
3. **Document the gotchas** - Like `db.xrefs.to_ea()` not `get_xrefs_to()`
4. **Keep it concise** - 500-800 lines max, not 18,000 lines
5. **Focus on wrapped scripts** - Assume `db` is available (auto-wrapped mode)
6. **Include return types** - What does each method return?
7. **Group by use-case** - Not alphabetically by class

## Process

1. **Discover the API structure:**
   - Use Glob to find all .py files in `$SKILL_DIR/ida-domain/ida_domain/`
   - Read `database.py` first to find all `@property` methods that return entity handlers (e.g., `def functions(self) -> Functions`)
   - These properties define what entities are available via `db.*`

2. **For each entity handler discovered:**
   - Read the corresponding .py file
   - Extract class name, public methods, and their signatures
   - Note the docstrings for method descriptions
   - Identify common usage patterns

3. **Extract all Enums:**
   - Search all .py files for classes that inherit from `Enum` (e.g., `class XrefType(Enum)`)
   - Document each enum with its values
   - Show how to use them in code examples

4. **Generate API_REFERENCE.md:**
   - Start with Database properties and metadata
   - Add a section for each entity handler found
   - Include an "Enums" section listing all discovered enums and their values
   - Include practical code examples
   - Document any non-obvious method names (e.g., `to_ea()` vs `get_xrefs_to()`)

Start by exploring the source code structure - read `database.py` to discover what entities exist.
Read more
Ships withclaude-marketplace

Claude Code plugins and skills for Hex-Rays ecosystem.

Get the whole plugin