--- name: verify-multilang-support description: Instructs the Agent to verify the code-index-mcp server's multi-language support by sequentially using MCP tools on sample projects. --- # Verify Multi-Language Support ## Overview As an Agent, your goal is to verify that the `code-index-mcp` server can correctly index and search code across different programming languages. You will use the **MCP Tools** available to you (`set_project_path`, `refresh_index`, `search_code_advanced`) to interact with the sample projects located in `test/sample-projects`. ## Instructions 1. **Preparation**: - Locate the `test/sample-projects` directory. - Understand that you will need to iterate through specific subdirectories. 2. **Verification Loop**: For each language listed in the **Verification Targets** table below, perform the following steps **sequentially**: a. **Set Path**: Call `mcp_code-index_set_project_path` with the absolute path to the language's sample project. - *Example*: `.../test/sample-projects/python` b. **Index**: Call `mcp_code-index_refresh_index` to ensure the files are parsed. c. **Search & Verify**: Call `mcp_code-index_search_code_advanced` using the **Verification Query** from the table. d. **Deep Summary Check**: Call `mcp_code-index_get_file_summary` for the **Expected File Match**. - *Goal*: Verify that the summary JSON includes the expected symbols (classes/functions) in the `functions` or `classes` list. - *Pass Criteria*: The **Verification Query** symbol name must appear in the summary output. - **Smart Fallback**: If the summary implies the file is trivial (e.g., no symbols found), **select another non-trivial file** from the project (using `list_dir` to find larger files) and repeat the summary check on that new file. e. **Full Text Check**: If the summary check is ambiguous or fails, call `view_file` to read the actual file content. - *Goal*: Visually confirm that the symbol (e.g., `class UserManager`) is present in the code and is NOT commented out. f. **Check Results**: - If the search returns results AND the file summary (or manual check) confirms the symbol, mark as **PASS**. - Otherwise, mark as **FAIL**. 3. **Reporting**: - After checking all languages, generate a summary report of PASS/FAIL status. ## Verification Targets | Language | Relative Path | Verification Query | Expected File Match | | :--- | :--- | :--- | :--- | | **Python** | `python` | `class UserManager` | `UserManager.py` | | **Go** | `go` | `UserService` | `user_service.go` | | **Java** | `java/user-management` | `class UserManager` | `UserManager.java` | | **JavaScript** | `javascript/user-management` | `function` | `User.js` | | **TypeScript** | `typescript` | `interface PersonInterface` | `sample.ts` | | **C#** | `csharp/orders` | `class OrderService` | `OrderService.cs` | | **Kotlin** | `kotlin/notes-api` | `class NotesService` | `NotesService.kt` | | **Objective-C**| `objective-c` | `interface UserManager` | `UserManager.h` or `.m` | | **Zig** | `zig` | `fn main` | `main.zig` | | **Dart** | `dart` | `void main` | *(Expect FAIL - Empty Project)* | ## Tips - Use `set_project_path` carefully; it requires an absolute path. Start by finding the absolute path of `test/sample-projects`. - If a search fails, try a broader query or check `list_dir` to ensure the file exists.