# Verify Multilang Support

> Use when validating code-index-mcp language strategies, tree-sitter symbol extraction, called_by or import baselines, or sample projects under test/sample-projects after parser and indexing changes.

- Skill: `johnhuang316/verify-multilang-support` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add johnhuang316/verify-multilang-support`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnhuang316/verify-multilang-support/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: johnhuang316 (https://skillmd.com/u/johnhuang316)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/johnhuang316/verify-multilang-support

---


# Verify Multi-Language Support

## Overview

Verify search and deep indexing for every supported sample language. Non-empty
results are insufficient; summaries must match maintained baselines.

## When to Use

- A language strategy, tree-sitter query, symbol range, indexer, or sample changes.
- Search, summaries, symbol bodies, imports, or `called_by` may have regressed.

Run focused unit tests first when a specific failing strategy is known.

## Verification Loop

Use each row in **Targets**, resolving paths below `test/sample-projects`.

1. Call `set_project_path` with the sample project's absolute path.
2. Call `refresh_index`, then `build_deep_index`.
3. Run the query with `search_code_advanced` in literal mode.
4. Call `get_file_summary` for the preferred file, then read
   [the baselines](references/baselines.md) and compare:
   - exact `language`
   - `symbol_count` at or above the minimum
   - every expected function, method, class, import, and `called_by` relationship
5. Call `get_symbol_body`; require `status: success` and non-empty `code`.
6. Record `SEARCH`, `SUMMARY`, `SYMBOL_BODY`, and `FINAL`. Any failed assertion makes
   the language FAIL.

After the final target, restore `set_project_path` to the repository root and call
`refresh_index`.

## Targets

| Language | Relative path | Literal query | Expected symbol | Preferred file |
|---|---|---|---|---|
| Python | `python` | `class UserManager` | `cli` | `user_management/cli.py` |
| Go | `go/user-management` | `UserService` | `CreateUser` | `internal/services/user_service.go` |
| Java | `java/user-management` | `class UserManager` | `UserManager.createUser` | `src/main/java/com/example/usermanagement/services/UserManager.java` |
| JavaScript | `javascript/user-management` | `class UserService` | `UserService.createUser` | `src/services/UserService.js` |
| TypeScript | `typescript/user-management` | `class UserService` | `user` | `src/services/UserService.ts` |
| C# | `csharp/orders` | `class OrderService` | `Orders.Services.OrderService.Create` | `src/Orders/Services/OrderService.cs` |
| Kotlin | `kotlin/notes-api` | `class NotesService` | `NotesService.createNote` | `src/main/kotlin/com/example/notes/NotesService.kt` |
| Rust | `rust/conversation` | `struct Conversation` | `Conversation.append` | `src/conversation.rs` |
| Objective-C | `objective-c` | `interface UserManager` | `UserManager.addUser` | `UserManager.m` |
| Zig | `zig/code-index-example` | `fn main` | `main` | `src/main.zig` |

## Behavior Smoke Checks

After the language loop:

- Search `get.*Data` with regex disabled and confirm literal behavior.
- If regex is available, repeat with it enabled and confirm regex behavior.

Report these separately from the language table.

## Failure Triage

Report the failed check and actual versus expected value, then read the sample:

- If the sample legitimately changed, update `references/baselines.md`.
- Otherwise, treat it as an indexer or language-strategy regression.

Do not weaken or delete a baseline merely to make verification pass.

## Common Mistakes

- Using a stale or cross-project file path.
- Skipping deep indexing before inspecting summaries.
- Treating one search hit as full language support.
- Forgetting that Objective-C files sit directly under `objective-c/`.
- Leaving the MCP server pointed at a sample project after verification.

