Use when reviewing PRs in multilanguage repositories. Routes reviews to appropriate language checkers. Trigger with /review-multilang [PR_NUMBER].
npx claudepluginhub emasoft/emasoft-plugins --plugin emasoft-integrator-agentThis skill uses the workspace's default tool permissions.
Modern repositories often contain code in multiple programming languages. A single repository might have:
README.mdreferences/cross-platform-testing-part1-multi-os.mdreferences/cross-platform-testing-part2-ci-matrix.mdreferences/cross-platform-testing-part3-test-skips.mdreferences/cross-platform-testing-part4-docker.mdreferences/cross-platform-testing.mdreferences/go-review-patterns-part1-style.mdreferences/go-review-patterns-part2-errors.mdreferences/go-review-patterns-part3-packages.mdreferences/go-review-patterns-part4-testing.mdreferences/go-review-patterns-part5-linting.mdreferences/go-review-patterns.mdreferences/javascript-review-patterns-part1-style-types-modules.mdreferences/javascript-review-patterns-part2-testing-linting.mdreferences/javascript-review-patterns.mdreferences/language-detection-part1-extensions-shebang.mdreferences/language-detection-part2-gitattributes-algorithm.mdreferences/language-detection-part3-mixed-language.mdreferences/language-detection.mdreferences/op-compile-multilang-review.mdAnalyzes pull requests via git diffs, detects issues like secrets, SQL injection, debug statements, code smells, and generates quality reports/checklists for TypeScript, JavaScript, Python, Go, Swift, Kotlin.
Reviews GitHub PRs: fetches diff via gh CLI, runs repo-specific checks, launches 3 parallel agents for correctness/conventions/efficiency, validates findings, drafts review.
Reviews pull requests across description, ticket, code changes, scans, and unit tests using parallel subagents. Supports GitHub via gh CLI, GitLab via glab, and git diff fallback.
Share bugs, ideas, or general feedback.
Modern repositories often contain code in multiple programming languages. A single repository might have:
Reviewing PRs in such repositories requires understanding which languages are affected and applying the appropriate review standards for each.
gh) installed and authenticated| Output Type | Format | Description |
|---|---|---|
| Language Detection Report | JSON | List of detected languages with file counts and lines changed per language |
| Linter Recommendations | JSON | Recommended linters, install commands, and run commands for each detected language |
| Review Summary | Markdown | Comprehensive review findings organized by language with cross-language impact analysis |
| Linter Results | Text/JSON | Aggregated output from all language-specific linters (ruff, ESLint, clippy, etc.) |
eia_detect_pr_languages.py to identify all programming languages affected by the PReia_get_language_linters.py to obtain the appropriate linters and their commands for each languageUse this skill when:
For detailed language detection methods, see language-detection.md:
See python-review-patterns.md:
See javascript-review-patterns.md:
See cross-platform-testing.md:
START: New PR to review
|
v
[1] Run eia_detect_pr_languages.py to identify languages
|
v
[2] For each detected language:
|
+---> Is it Python? ---> Read python-review-patterns.md, run ruff + mypy
|
+---> Is it JavaScript/TypeScript? ---> Read javascript-review-patterns.md, run ESLint
|
+---> Is it Rust? ---> Read rust-review-patterns.md, run cargo clippy
|
+---> Is it Go? ---> Read go-review-patterns.md, run go vet + staticcheck
|
+---> Is it Bash/Shell? ---> Read shell-review-patterns.md, run ShellCheck
|
v
[3] Check for cross-language interfaces:
|
+---> API contracts between services? ---> Verify schema compatibility
|
+---> FFI boundaries? ---> Check type mappings and safety
|
+---> Shared configuration? ---> Ensure consistency
|
v
[4] Check for platform-specific code:
|
+---> Multiple OS targets? ---> Read cross-platform-testing.md
|
v
[5] Run eia_get_language_linters.py for each language to get linter commands
|
v
[6] Execute all linters and compile results
|
v
[7] Write review summary with findings per language
|
v
END
Detects programming languages in a PR's changed files.
Usage:
# Detect languages in PR #123
python scripts/eia_detect_pr_languages.py --repo owner/repo --pr 123
# Detect languages in local diff
python scripts/eia_detect_pr_languages.py --diff-file changes.diff
Output: JSON with language breakdown and file counts.
Returns recommended linters and commands for a given language.
Usage:
# Get linters for Python
python scripts/eia_get_language_linters.py --language python
# Get linters for multiple languages
python scripts/eia_get_language_linters.py --languages python,javascript,rust
Output: JSON with linter names, install commands, and run commands.
When reviewing a PR in a multilanguage repository:
# Step 1: Detect languages in the PR
python scripts/eia_detect_pr_languages.py --repo myorg/myrepo --pr 456
# Example output:
# {
# "languages": {
# "python": {"files": 12, "lines_changed": 450},
# "typescript": {"files": 5, "lines_changed": 200},
# "bash": {"files": 2, "lines_changed": 50}
# },
# "primary_language": "python"
# }
# Step 2: Get linters for detected languages
python scripts/eia_get_language_linters.py --languages python,typescript,bash
# Example output:
# {
# "python": {
# "linters": ["ruff", "mypy"],
# "commands": {
# "ruff": "ruff check .",
# "mypy": "mypy --strict ."
# }
# },
# ...
# }
# Step 3: Read the appropriate review patterns for each language
# Step 4: Run linters and compile results
# Step 5: Write comprehensive review
# Detect languages in PR
python scripts/eia_detect_pr_languages.py --repo myorg/myrepo --pr 456
# Output: {"languages": {"python": {"files": 12}, "typescript": {"files": 5}}}
# Get recommended linters
python scripts/eia_get_language_linters.py --languages python,typescript
# Output: {"python": {"linters": ["ruff", "mypy"]}, "typescript": {"linters": ["eslint"]}}
# Run linters for each language
ruff check src/python/
eslint src/typescript/
# Detect languages
python scripts/eia_detect_pr_languages.py --repo myorg/myrepo --pr 789
# If both Python (backend) and TypeScript (frontend) changed,
# verify API contracts are consistent between them
# Check OpenAPI/JSON schema compatibility
Solution: Check .gitattributes for linguist overrides. Some files may be marked with linguist-language or linguist-detectable=false.
Solution: Ensure the linter is installed. Use eia_get_language_linters.py to get install commands.
Solution: For legacy codebases, consider using --fix flags where available (ruff --fix, eslint --fix) and reviewing the automated fixes.
Solution: Read cross-platform-testing.md section 7.3 for platform-specific skip annotations.
Copy this checklist and track your progress: