Loading...
Loading...
Verify that a lintro tool implementation is complete and follows all project standards. Use after adding a new tool to lintro.
npx skill4agent add lgtm-hq/ai-skills lintro-verify/lintro-verify tsclintro/tools/definitions/<tool>.py@register_toollintro.plugins.registryBaseToolPluginToolDefinitionnamedescriptionfile_patterns["*.ts", "*.tsx"]tool_typeToolTypecan_fixnative_configs["tsconfig.json"]version_command["tsc", "--version"]prioritycheck()fix()NotImplementedErrorcan_fix=Falselintro/parsers/<tool>/__init__.py<tool>_parser.py<tool>_issue.pyto_display_row()lintro/enums/tool_name.pyToolNamelintro/_tool_versions.pylintro/tools/core/version_checking.pyget_install_hints()npm view <tool> versionbrew info <tool>lintro/_tool_versions.pypackage.jsonmin_versionlintro/tools/manifest.jsonrenovate.json_tool_versions.pypackage.json_tool_versions.pymin_version_tool_versions.pyTOOL_COMMANDSlintro/cli_utils/commands/doctor.pylintro doctorlintro/tools/core/command_builders.py<tool> --helpset_options()--tool-optionslintro check . --tools <tool> --tool-options "<tool>:option=value"<tool> --initlintro/utils/native_parsers.pynative_configs--tool-optionstests/unit/tools/<tool>/test_options.pytest_execution.pytests/unit/parsers/test_<tool>_parser.pyto_display_row()tests/integration/tools/test_<tool>_integration.pypytest.mark.skipiftest_definition_attributestest_definition_file_patternstest_check_file_with_issuestest_check_clean_filetest_check_empty_directorytest_set_optionstest_samples/tools/<language>/<tool>/<tool>_violations.<ext><tool>_clean.<ext><tool> <violations_file>tsc --version && \/usr/local/bin/_tool_versions.pytools_to_verify# Unit tests
uv run pytest tests/unit/tools/<tool>/ tests/unit/parsers/test_<tool>_parser.py -v
# Integration tests (requires tool installed)
uv run pytest tests/integration/tools/test_<tool>_integration.py -v
# Test on sample files
uv run lintro check test_samples/tools/<language>/<tool>/ --tools <tool>
# Verify tool appears in list
uv run lintro list-tools | grep <tool>
# Full lint check
uv run lintro chk
# Full test suite
uv run pytest tests/ -v# Check all version sources are aligned (replace <tool> with actual name)
echo "=== _tool_versions.py ===" && grep "<tool>" lintro/_tool_versions.py
echo "=== manifest.json ===" && grep -A3 '"<tool>"' lintro/tools/manifest.json
echo "=== package.json ===" && grep "<tool>" package.json
echo "=== Plugin min_version ===" && grep "min_version" lintro/tools/definitions/<tool>.py
echo "=== Renovate manager ===" && grep -A5 '"<tool>"' renovate.json | head -10
echo "=== Doctor TOOL_COMMANDS ===" && grep "<tool>" lintro/cli_utils/commands/doctor.py# Compare native CLI options against lintro implementation
<tool> --help
# Check version currency
npm view <tool> version # for npm packages
brew info <tool> # for Homebrew packages
pip index versions <tool> # for Python packages
# Test that tool-options actually work (should not error)
uv run lintro check test_samples/ --tools <tool> --tool-options "<tool>:timeout=60"
# Test each documented option (replace with actual options)
uv run lintro check . --tools <tool> --tool-options "<tool>:option_name=value"
# Generate default config to understand structure
<tool> --init # if available--tool-options<tool> --help--tool-options_tool_versions.pypackage.jsonmin_versionrenovate.json## Tool Review: <tool_name>
### Status: PASS / FAIL / PARTIAL
### Checklist Summary
- Core Implementation: X/Y items
- Documentation: X/Y items
- Tests: X/Y items
- CI/Docker: X/Y items
- User Experience: X/Y items
### Missing Items
1. [item description]
2. [item description]
### Recommendations
1. [recommendation]
2. [recommendation]