tree-sitter-analyzer 1.9.1__tar.gz → 1.9.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tree-sitter-analyzer might be problematic. Click here for more details.
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.gitignore +13 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.pre-commit-config.yaml +32 -23
- tree_sitter_analyzer-1.9.3/.roo/commands/openspec-apply.md +20 -0
- tree_sitter_analyzer-1.9.3/.roo/commands/openspec-archive.md +24 -0
- tree_sitter_analyzer-1.9.3/.roo/commands/openspec-proposal.md +24 -0
- tree_sitter_analyzer-1.9.3/.roo/mcp.json +112 -0
- tree_sitter_analyzer-1.9.3/.roo/rules/code-quality-standards.md +150 -0
- tree_sitter_analyzer-1.9.3/.roo/rules/coding-checklist.md +185 -0
- tree_sitter_analyzer-1.9.3/.roo/rules/project-best-practices.md +349 -0
- tree_sitter_analyzer-1.9.3/.roo/rules/roo-feedback-system.md +203 -0
- tree_sitter_analyzer-1.9.3/.roo/rules/specify-rules.md +71 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/check-prerequisites.ps1 +13 -13
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/common.ps1 +10 -10
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/create-new-feature.ps1 +5 -5
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/setup-plan.ps1 +4 -4
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/update-agent-context.ps1 +22 -22
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/CHANGELOG.md +54 -0
- tree_sitter_analyzer-1.9.3/CHANGE_MANAGEMENT_GUIDE.md +83 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/PKG-INFO +70 -30
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/README.md +68 -29
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/README_ja.md +84 -42
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/README_zh.md +80 -42
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/build_standalone.py +4 -4
- tree_sitter_analyzer-1.9.3/compatibility_test/MCP_DIRECT_EXECUTION_TECHNICAL_BACKGROUND.md +303 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/README.md +282 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/config/comparison_config.json +21 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/manual_test_guide.md +348 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/mcp_compatibility_test.py +329 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/reports/.gitkeep +0 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/results/.gitkeep +0 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/scripts/analyze_differences.py +694 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/scripts/run_compatibility_test.py +702 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/templates/comparison_report_template.md +133 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/templates/mcp_settings.json.template +50 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/test_cases.json +175 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/troubleshooting_guide.md +337 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/utils/__init__.py +17 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/utils/cache_manager.py +240 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/utils/cache_reporter.py +453 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/utils/smart_json_comparator.py +121 -0
- tree_sitter_analyzer-1.9.3/compatibility_test/v1.6.1.1_test_cases.md +453 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/coverage.json +1 -1
- tree_sitter_analyzer-1.9.3/docs/SMART_JSON_COMPARISON_SYSTEM.md +23 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/debugging_guide.md +3 -3
- tree_sitter_analyzer-1.9.3/docs/developer_guide.md +73 -0
- tree_sitter_analyzer-1.9.3/docs/ja/README.md +372 -0
- tree_sitter_analyzer-1.9.3/docs/ja/project-management/00_/343/203/227/343/203/255/343/202/270/343/202/247/343/202/257/343/203/210/346/206/262/347/253/240.md +160 -0
- tree_sitter_analyzer-1.9.3/docs/ja/project-management/01_/343/202/271/343/202/263/343/203/274/343/203/227/345/256/232/347/276/251/346/233/270.md +319 -0
- tree_sitter_analyzer-1.9.3/docs/ja/project-management/02_WBS.md +451 -0
- tree_sitter_analyzer-1.9.3/docs/ja/project-management/03_/345/223/201/350/263/252/347/256/241/347/220/206/350/250/210/347/224/273.md +431 -0
- tree_sitter_analyzer-1.9.3/docs/ja/project-management/05_/345/244/211/346/233/264/347/256/241/347/220/206/346/226/271/351/207/235.md +560 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/01_/343/202/267/343/202/271/343/203/206/343/203/240/346/246/202/350/246/201.md +395 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/02_/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210.md +991 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/03_MCP/347/265/261/345/220/210/344/273/225/346/247/230.md +907 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/04_CLI/344/273/225/346/247/230.md +894 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/05_/343/202/263/343/202/242/350/247/243/346/236/220/343/202/250/343/203/263/343/202/270/343/203/263/344/273/225/346/247/230.md +646 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/06_/350/250/200/350/252/236/343/203/227/343/203/251/343/202/260/343/202/244/343/203/263/344/273/225/346/247/230.md +790 -0
- tree_sitter_analyzer-1.9.3/docs/ja/specifications/07_/343/202/273/343/202/255/343/203/245/343/203/252/343/203/206/343/202/243/344/273/225/346/247/230.md +457 -0
- tree_sitter_analyzer-1.9.3/docs/ja/test-management/00_/343/203/206/343/202/271/343/203/210/346/210/246/347/225/245.md +537 -0
- tree_sitter_analyzer-1.9.3/docs/ja/test-management/01_/343/203/206/343/202/271/343/203/210/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247.md +501 -0
- tree_sitter_analyzer-1.9.3/docs/ja/test-management/03_/343/203/206/343/202/271/343/203/210/345/256/237/346/226/275/350/250/230/351/214/262.md +403 -0
- tree_sitter_analyzer-1.9.3/docs/ja/test-management/04_/345/223/201/350/263/252/343/203/241/343/203/210/343/203/252/343/202/257/343/202/271.md +343 -0
- tree_sitter_analyzer-1.9.3/docs/ja/user-guides/00_/343/202/257/343/202/244/343/203/203/343/202/257/343/202/271/343/202/277/343/203/274/343/203/210/343/202/254/343/202/244/343/203/211.md +597 -0
- tree_sitter_analyzer-1.9.3/docs/mcp_compatibility_test_standard.md +332 -0
- tree_sitter_analyzer-1.9.3/docs/pre-commit-setup.md +259 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/troubleshooting_guide.md +7 -7
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/ComprehensiveTypeScript.ts +26 -26
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/ReactTypeScriptComponent.tsx +33 -33
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/TypeScriptDeclarations.d.ts +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/comprehensive_sample.css +41 -41
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/comprehensive_sample.html +45 -45
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/llm_code_checker.py +13 -13
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/pyproject.toml +6 -3
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/pytest.ini +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/run_regression_tests.py +5 -3
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/run_phase7_integration_tests.py +13 -9
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/start_mcp_server.py +5 -5
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/test_fixes.py +7 -7
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/api.py +10 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/argument_validator.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +3 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/query_command.py +3 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/table_command.py +3 -3
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/constants.py +5 -3
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/analysis_engine.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/cache_service.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/engine.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query.py +0 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/exceptions.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/file_handler.py +6 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/base_formatter.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/html_formatter.py +24 -14
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/javascript_formatter.py +28 -21
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/language_formatter_factory.py +7 -4
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/markdown_formatter.py +4 -4
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/python_formatter.py +4 -4
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/typescript_formatter.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +4 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/mcp_server.py +10 -10
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/language_detector.py +30 -5
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/language_loader.py +46 -26
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/css_plugin.py +6 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/html_plugin.py +12 -8
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/java_plugin.py +307 -520
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/javascript_plugin.py +22 -78
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/markdown_plugin.py +277 -297
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/python_plugin.py +47 -85
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/typescript_plugin.py +48 -123
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +14 -8
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/server.py +38 -23
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +10 -7
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +51 -7
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +15 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +8 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +6 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +48 -19
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +13 -8
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/file_output_manager.py +8 -3
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +24 -12
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +2 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/models.py +16 -0
- tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/mypy_current_errors.txt +2 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/base.py +66 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/java.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/javascript.py +3 -8
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/markdown.py +1 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/python.py +2 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/boundary_manager.py +2 -5
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/regex_checker.py +2 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/validator.py +5 -1
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/table_formatter.py +4 -4
- tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/utils/__init__.py +54 -0
- tree_sitter_analyzer-1.9.1/tree_sitter_analyzer/utils.py → tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/utils/logging.py +2 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/utils/tree_sitter_compat.py +2 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/upload_interactive.py +6 -6
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/upload_to_pypi.py +3 -2
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/uv.lock +1232 -1192
- tree_sitter_analyzer-1.9.1/.roo/rules/specify-rules.md +0 -24
- tree_sitter_analyzer-1.9.1/ASYNC_ARCHITECTURE_DESIGN.md +0 -449
- tree_sitter_analyzer-1.9.1/CLI_ARCHITECTURE_REDESIGN.md +0 -296
- tree_sitter_analyzer-1.9.1/CLI_COMMAND_BUG_FIX_SPECIFICATION.md +0 -177
- tree_sitter_analyzer-1.9.1/IMPLEMENTATION_GUIDELINES.md +0 -800
- tree_sitter_analyzer-1.9.1/docs/analysis/README.md +0 -45
- tree_sitter_analyzer-1.9.1/docs/analysis/project_metrics_2025-10-16.md +0 -248
- tree_sitter_analyzer-1.9.1/docs/analysis/speckit_analysis_2025-10-16.md +0 -367
- tree_sitter_analyzer-1.9.1/docs/analysis/technical_debt_analysis_2025-10-16.md +0 -111
- tree_sitter_analyzer-1.9.1/docs/developer_guide.md +0 -2012
- tree_sitter_analyzer-1.9.1/docs/test_fixes/suppress_output_mock_fix_2025-10-16.md +0 -90
- tree_sitter_analyzer-1.9.1/project_scale_evaluation_report.md +0 -248
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/DEPLOYMENT_GUIDE.md +0 -423
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/DOCUMENTATION_INDEX.md +0 -243
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/ERROR_HANDLING_SPECIFICATION.md +0 -382
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/GLOSSARY.md +0 -115
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/PERFORMANCE_BENCHMARKS.md +0 -240
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/README.md +0 -124
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/checklists/requirements.md +0 -38
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/contracts/mcp-resources-api.json +0 -585
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/contracts/mcp-tools-api.json +0 -981
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/data-model.md +0 -231
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/implementation_status.md +0 -117
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/plan.md +0 -257
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/quickstart.md +0 -385
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/research.md +0 -232
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/resources/mcp_resources_specification.md +0 -479
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/spec.md +0 -152
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tasks.md +0 -482
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/test_environment_status.md +0 -161
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/analyze_code_structure_specification.md +0 -431
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/check_code_scale_specification.md +0 -333
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/extract_code_section_specification.md +0 -262
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/find_and_grep_specification.md +0 -424
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/list_files_specification.md +0 -416
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/query_code_specification.md +0 -296
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/search_content_specification.md +0 -601
- tree_sitter_analyzer-1.9.1/specs/001-mcp-tree-sitter/tools/set_project_path_specification.md +0 -270
- tree_sitter_analyzer-1.9.1/specs/002-language-abstraction-spec.md +0 -146
- tree_sitter_analyzer-1.9.1/specs/003-html-css-support-spec.md +0 -267
- tree_sitter_analyzer-1.9.1/specs/004-formatter-extension-spec.md +0 -139
- tree_sitter_analyzer-1.9.1/specs/005-implementation-plan.md +0 -119
- tree_sitter_analyzer-1.9.1/tree_sitter_analyzer/utils/__init__.py +0 -143
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/AGENTS.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/release.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/release.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/checklists/requirements.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/completion-report-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/completion-report.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/contracts/query-service-api.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/data-model.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/implementation-guidelines-part2.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/implementation-guidelines.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/plan.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/progress-management-final.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/progress-management.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/project-overview.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/quickstart.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/research.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/spec.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/tasks.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/memory/constitution.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/templates/agent-file-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/templates/checklist-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/templates/plan-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/templates/spec-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/.specify/templates/tasks-template.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/collect_project_metrics.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/debug_async_test.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/api/data_models.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/api/formatter_registry.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/api/mcp_tools_specification.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/docs/file_output_manager_factory_implementation.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/ModernJavaScript.js +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/ReactComponent.jsx +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/css_analysis_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/file_output_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/file_output_factory_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/html_analysis_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/javascript_analysis_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/suppress_output_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/test_markdown.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/scripts/update_readme_stats.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/test_emergency_fix.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/test_output.txt +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/search_content_cli.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/formatter_registry.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/file_output_factory.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/css.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/html.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.9.1 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/__init__.py +0 -0
|
@@ -286,3 +286,16 @@ local_settings.py
|
|
|
286
286
|
|
|
287
287
|
# Compiled tree-sitter parsers
|
|
288
288
|
parsers/
|
|
289
|
+
|
|
290
|
+
# Compatibility test results (keep directory structure, ignore content)
|
|
291
|
+
compatibility_test/results/*/
|
|
292
|
+
compatibility_test/reports/*.md
|
|
293
|
+
!compatibility_test/results/.gitkeep
|
|
294
|
+
!compatibility_test/reports/.gitkeep
|
|
295
|
+
|
|
296
|
+
# Normalized comparison files
|
|
297
|
+
.analysis-*-normalized/
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
# Integration test reports
|
|
301
|
+
phase7_integration_report.json
|
|
@@ -36,11 +36,6 @@ repos:
|
|
|
36
36
|
- id: check-case-conflict
|
|
37
37
|
- id: mixed-line-ending
|
|
38
38
|
args: [--fix=lf]
|
|
39
|
-
|
|
40
|
-
# Python-specific checks
|
|
41
|
-
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
42
|
-
rev: v5.0.0
|
|
43
|
-
hooks:
|
|
44
39
|
- id: check-ast
|
|
45
40
|
- id: check-builtin-literals
|
|
46
41
|
- id: check-docstring-first
|
|
@@ -53,8 +48,8 @@ repos:
|
|
|
53
48
|
rev: 1.7.10
|
|
54
49
|
hooks:
|
|
55
50
|
- id: bandit
|
|
56
|
-
args: [-r, tree_sitter_analyzer/]
|
|
57
51
|
exclude: ^tests/
|
|
52
|
+
args: [--format, json]
|
|
58
53
|
|
|
59
54
|
# Import sorting
|
|
60
55
|
- repo: https://github.com/pycqa/isort
|
|
@@ -63,29 +58,43 @@ repos:
|
|
|
63
58
|
- id: isort
|
|
64
59
|
args: [--profile, black, --line-length, "88"]
|
|
65
60
|
|
|
66
|
-
# Type checking
|
|
67
|
-
- repo:
|
|
61
|
+
# Type checking
|
|
62
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
63
|
+
rev: v1.18.2
|
|
68
64
|
hooks:
|
|
69
65
|
- id: mypy
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
pass_filenames: false
|
|
76
|
-
stages: [manual] # Only run when explicitly requested
|
|
66
|
+
args: [--ignore-missing-imports, --no-error-summary, --show-error-codes, --explicit-package-bases]
|
|
67
|
+
exclude: ^(examples/|scripts/|compatibility_test/|collect_project_metrics\.py|test_emergency_fix\.py|debug_async_test\.py|run_regression_tests\.py)
|
|
68
|
+
additional_dependencies: [
|
|
69
|
+
types-psutil>=5.9.0,
|
|
70
|
+
]
|
|
77
71
|
|
|
78
|
-
#
|
|
79
|
-
- repo:
|
|
72
|
+
# Documentation checks
|
|
73
|
+
- repo: https://github.com/pycqa/pydocstyle
|
|
74
|
+
rev: 6.3.0
|
|
80
75
|
hooks:
|
|
81
|
-
- id:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
language: system
|
|
85
|
-
pass_filenames: false
|
|
86
|
-
stages: [pre-push] # Only run on push
|
|
76
|
+
- id: pydocstyle
|
|
77
|
+
args: [--convention=google, --add-ignore=D100,D101,D102,D103,D104,D105,D107]
|
|
78
|
+
exclude: ^(tests/|examples/)
|
|
87
79
|
|
|
80
|
+
# Python modernization
|
|
81
|
+
- repo: https://github.com/asottile/pyupgrade
|
|
82
|
+
rev: v3.19.0
|
|
83
|
+
hooks:
|
|
84
|
+
- id: pyupgrade
|
|
85
|
+
args: [--py310-plus]
|
|
88
86
|
|
|
87
|
+
# Additional linting
|
|
88
|
+
- repo: https://github.com/PyCQA/flake8
|
|
89
|
+
rev: 7.1.1
|
|
90
|
+
hooks:
|
|
91
|
+
- id: flake8
|
|
92
|
+
args: [--max-line-length=88, --extend-ignore=E203,W503,E501]
|
|
93
|
+
additional_dependencies: [
|
|
94
|
+
flake8-bugbear,
|
|
95
|
+
flake8-comprehensions,
|
|
96
|
+
flake8-simplify,
|
|
97
|
+
]
|
|
89
98
|
|
|
90
99
|
# Configuration
|
|
91
100
|
default_stages: [pre-commit]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# OpenSpec: Apply
|
|
2
|
+
|
|
3
|
+
Implement an approved OpenSpec change and keep tasks in sync.
|
|
4
|
+
<!-- OPENSPEC:START -->
|
|
5
|
+
**Guardrails**
|
|
6
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
7
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
8
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
9
|
+
|
|
10
|
+
**Steps**
|
|
11
|
+
Track these steps as TODOs and complete them one by one.
|
|
12
|
+
1. Read `changes/<id>/proposal.md`, `design.md` (if present), and `tasks.md` to confirm scope and acceptance criteria.
|
|
13
|
+
2. Work through tasks sequentially, keeping edits minimal and focused on the requested change.
|
|
14
|
+
3. Confirm completion before updating statuses—make sure every item in `tasks.md` is finished.
|
|
15
|
+
4. Update the checklist after all work is done so each task is marked `- [x]` and reflects reality.
|
|
16
|
+
5. Reference `openspec list` or `openspec show <item>` when additional context is required.
|
|
17
|
+
|
|
18
|
+
**Reference**
|
|
19
|
+
- Use `openspec show <id> --json --deltas-only` if you need additional context from the proposal while implementing.
|
|
20
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# OpenSpec: Archive
|
|
2
|
+
|
|
3
|
+
Archive a deployed OpenSpec change and update specs.
|
|
4
|
+
<!-- OPENSPEC:START -->
|
|
5
|
+
**Guardrails**
|
|
6
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
7
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
8
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
9
|
+
|
|
10
|
+
**Steps**
|
|
11
|
+
1. Determine the change ID to archive:
|
|
12
|
+
- If this prompt already includes a specific change ID (for example inside a `<ChangeId>` block populated by slash-command arguments), use that value after trimming whitespace.
|
|
13
|
+
- If the conversation references a change loosely (for example by title or summary), run `openspec list` to surface likely IDs, share the relevant candidates, and confirm which one the user intends.
|
|
14
|
+
- Otherwise, review the conversation, run `openspec list`, and ask the user which change to archive; wait for a confirmed change ID before proceeding.
|
|
15
|
+
- If you still cannot identify a single change ID, stop and tell the user you cannot archive anything yet.
|
|
16
|
+
2. Validate the change ID by running `openspec list` (or `openspec show <id>`) and stop if the change is missing, already archived, or otherwise not ready to archive.
|
|
17
|
+
3. Run `openspec archive <id> --yes` so the CLI moves the change and applies spec updates without prompts (use `--skip-specs` only for tooling-only work).
|
|
18
|
+
4. Review the command output to confirm the target specs were updated and the change landed in `changes/archive/`.
|
|
19
|
+
5. Validate with `openspec validate --strict` and inspect with `openspec show <id>` if anything looks off.
|
|
20
|
+
|
|
21
|
+
**Reference**
|
|
22
|
+
- Use `openspec list` to confirm change IDs before archiving.
|
|
23
|
+
- Inspect refreshed specs with `openspec list --specs` and address any validation issues before handing off.
|
|
24
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# OpenSpec: Proposal
|
|
2
|
+
|
|
3
|
+
Scaffold a new OpenSpec change and validate strictly.
|
|
4
|
+
<!-- OPENSPEC:START -->
|
|
5
|
+
**Guardrails**
|
|
6
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
7
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
8
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
9
|
+
- Identify any vague or ambiguous details and ask the necessary follow-up questions before editing files.
|
|
10
|
+
|
|
11
|
+
**Steps**
|
|
12
|
+
1. Review `openspec/project.md`, run `openspec list` and `openspec list --specs`, and inspect related code or docs (e.g., via `rg`/`ls`) to ground the proposal in current behaviour; note any gaps that require clarification.
|
|
13
|
+
2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `openspec/changes/<id>/`.
|
|
14
|
+
3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing.
|
|
15
|
+
4. Capture architectural reasoning in `design.md` when the solution spans multiple systems, introduces new patterns, or demands trade-off discussion before committing to specs.
|
|
16
|
+
5. Draft spec deltas in `changes/<id>/specs/<capability>/spec.md` (one folder per capability) using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement and cross-reference related capabilities when relevant.
|
|
17
|
+
6. Draft `tasks.md` as an ordered list of small, verifiable work items that deliver user-visible progress, include validation (tests, tooling), and highlight dependencies or parallelizable work.
|
|
18
|
+
7. Validate with `openspec validate <id> --strict` and resolve every issue before sharing the proposal.
|
|
19
|
+
|
|
20
|
+
**Reference**
|
|
21
|
+
- Use `openspec show <id> --json --deltas-only` or `openspec show <spec> --type spec` to inspect details when validation fails.
|
|
22
|
+
- Search existing requirements with `rg -n "Requirement:|Scenario:" openspec/specs` before writing new ones.
|
|
23
|
+
- Explore the codebase with `rg <keyword>`, `ls`, or direct file reads so proposals align with current implementation realities.
|
|
24
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"tree-sitter-analyzer-local": {
|
|
4
|
+
"command": "uv",
|
|
5
|
+
"args": [
|
|
6
|
+
"run",
|
|
7
|
+
"--directory",
|
|
8
|
+
"C:/git-private/tree-sitter-analyzer",
|
|
9
|
+
"python",
|
|
10
|
+
"-m",
|
|
11
|
+
"tree_sitter_analyzer.mcp.server"
|
|
12
|
+
],
|
|
13
|
+
"env": {
|
|
14
|
+
"TREE_SITTER_PROJECT_ROOT": "C:/git-private/tree-sitter-analyzer",
|
|
15
|
+
"TREE_SITTER_OUTPUT_PATH": "C:/git-public/tree-sitter-analyzer/.analysis",
|
|
16
|
+
"TREE_SITTER_ANALYZER_ENABLE_FILE_LOG": "true",
|
|
17
|
+
"TREE_SITTER_ANALYZER_LOG_DIR": "C:/git-private/tree-sitter-analyzer/.analysis",
|
|
18
|
+
"TREE_SITTER_ANALYZER_LOG_LEVEL": "DEBUG"
|
|
19
|
+
},
|
|
20
|
+
"alwaysAllow": [
|
|
21
|
+
"check_code_scale",
|
|
22
|
+
"extract_code_section",
|
|
23
|
+
"set_project_path",
|
|
24
|
+
"query_code",
|
|
25
|
+
"analyze_code_structure",
|
|
26
|
+
"list_files",
|
|
27
|
+
"find_and_grep"
|
|
28
|
+
],
|
|
29
|
+
"timeout": 3600,
|
|
30
|
+
"disabled": true
|
|
31
|
+
},
|
|
32
|
+
"tree-sitter-analyzer-bc-test": {
|
|
33
|
+
"command": "uv",
|
|
34
|
+
"args": [
|
|
35
|
+
"run",
|
|
36
|
+
"--directory",
|
|
37
|
+
"C:/git-private/tree-sitter-analyzer",
|
|
38
|
+
"python",
|
|
39
|
+
"-m",
|
|
40
|
+
"tree_sitter_analyzer.mcp.server"
|
|
41
|
+
],
|
|
42
|
+
"env": {
|
|
43
|
+
"TREE_SITTER_PROJECT_ROOT": "C:/git-private/tree-sitter-analyzer",
|
|
44
|
+
"TREE_SITTER_OUTPUT_PATH": "C:/git-private/tree-sitter-analyzer/.analysis-bc-test"
|
|
45
|
+
},
|
|
46
|
+
"alwaysAllow": [
|
|
47
|
+
"check_code_scale",
|
|
48
|
+
"extract_code_section",
|
|
49
|
+
"set_project_path",
|
|
50
|
+
"query_code",
|
|
51
|
+
"analyze_code_structure",
|
|
52
|
+
"list_files",
|
|
53
|
+
"find_and_grep",
|
|
54
|
+
"search_content"
|
|
55
|
+
],
|
|
56
|
+
"timeout": 3600,
|
|
57
|
+
"disabled": true
|
|
58
|
+
},
|
|
59
|
+
"tree-sitter-analyzer-1.6.1.2": {
|
|
60
|
+
"command": "uv",
|
|
61
|
+
"args": [
|
|
62
|
+
"run",
|
|
63
|
+
"--with",
|
|
64
|
+
"tree-sitter-analyzer[mcp]==1.6.1.2",
|
|
65
|
+
"python",
|
|
66
|
+
"-m",
|
|
67
|
+
"tree_sitter_analyzer.mcp.server"
|
|
68
|
+
],
|
|
69
|
+
"env": {
|
|
70
|
+
"TREE_SITTER_PROJECT_ROOT": "C:/git-private/tree-sitter-analyzer",
|
|
71
|
+
"TREE_SITTER_OUTPUT_PATH": "C:/git-private/tree-sitter-analyzer/.analysis-1.6.1.2"
|
|
72
|
+
},
|
|
73
|
+
"alwaysAllow": [
|
|
74
|
+
"analyze_code_structure",
|
|
75
|
+
"query_code",
|
|
76
|
+
"check_code_scale",
|
|
77
|
+
"extract_code_section",
|
|
78
|
+
"set_project_path",
|
|
79
|
+
"list_files",
|
|
80
|
+
"search_content"
|
|
81
|
+
],
|
|
82
|
+
"timeout": 3600,
|
|
83
|
+
"disabled": true
|
|
84
|
+
},
|
|
85
|
+
"tree-sitter-analyzer-1.9.2": {
|
|
86
|
+
"command": "uv",
|
|
87
|
+
"args": [
|
|
88
|
+
"run",
|
|
89
|
+
"--with",
|
|
90
|
+
"tree-sitter-analyzer[mcp]==1.9.2",
|
|
91
|
+
"python",
|
|
92
|
+
"-m",
|
|
93
|
+
"tree_sitter_analyzer.mcp.server"
|
|
94
|
+
],
|
|
95
|
+
"env": {
|
|
96
|
+
"TREE_SITTER_PROJECT_ROOT": "C:/git-private/tree-sitter-analyzer",
|
|
97
|
+
"TREE_SITTER_OUTPUT_PATH": "C:/git-private/tree-sitter-analyzer/.analysis-1.9.2"
|
|
98
|
+
},
|
|
99
|
+
"alwaysAllow": [
|
|
100
|
+
"analyze_code_structure",
|
|
101
|
+
"query_code",
|
|
102
|
+
"check_code_scale",
|
|
103
|
+
"set_project_path",
|
|
104
|
+
"list_files",
|
|
105
|
+
"find_and_grep",
|
|
106
|
+
"search_content"
|
|
107
|
+
],
|
|
108
|
+
"timeout": 3600,
|
|
109
|
+
"disabled": true
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Tree-sitter Analyzer コード品質基準
|
|
2
|
+
|
|
3
|
+
このファイルは`.pre-commit-config.yaml`の設定に基づき、Roo Codeが高品質なソースコードを作成するための包括的なガイドラインです。
|
|
4
|
+
|
|
5
|
+
## コードフォーマット規則
|
|
6
|
+
|
|
7
|
+
### Black フォーマッター
|
|
8
|
+
- **行長制限**: 88文字
|
|
9
|
+
- **Python バージョン**: Python 3.10+
|
|
10
|
+
- **適用範囲**: 全ての`.py`ファイル
|
|
11
|
+
|
|
12
|
+
### Ruff フォーマッター
|
|
13
|
+
- **自動修正**: 有効(`--fix`オプション)
|
|
14
|
+
- **エラー時終了**: 修正時も終了コード非ゼロ
|
|
15
|
+
- **フォーマット**: ruff-format併用
|
|
16
|
+
|
|
17
|
+
## リンティング規則
|
|
18
|
+
|
|
19
|
+
### Ruff
|
|
20
|
+
- 自動修正可能な問題は自動で修正
|
|
21
|
+
- 修正後もエラーチェックを継続
|
|
22
|
+
|
|
23
|
+
### Flake8
|
|
24
|
+
- **行長制限**: 88文字
|
|
25
|
+
- **無視するエラー**: E203, W503, E501
|
|
26
|
+
- **追加プラグイン**:
|
|
27
|
+
- flake8-bugbear: バグの可能性があるコードパターンを検出
|
|
28
|
+
- flake8-comprehensions: リスト内包表記の改善提案
|
|
29
|
+
- flake8-simplify: コードの簡素化提案
|
|
30
|
+
|
|
31
|
+
## 型チェック規則
|
|
32
|
+
|
|
33
|
+
### MyPy
|
|
34
|
+
- **設定**:
|
|
35
|
+
- `--ignore-missing-imports`: 外部ライブラリの型情報不足を無視
|
|
36
|
+
- `--no-error-summary`: エラーサマリーを非表示
|
|
37
|
+
- `--show-error-codes`: エラーコードを表示
|
|
38
|
+
- `--explicit-package-bases`: パッケージベースを明示
|
|
39
|
+
- **除外ディレクトリ**: examples/, scripts/, compatibility_test/
|
|
40
|
+
- **追加依存関係**: types-psutil>=5.9.0
|
|
41
|
+
|
|
42
|
+
## インポート整理規則
|
|
43
|
+
|
|
44
|
+
### isort
|
|
45
|
+
- **プロファイル**: black互換
|
|
46
|
+
- **行長**: 88文字
|
|
47
|
+
- **ソート順序**: 標準ライブラリ → サードパーティ → ローカル
|
|
48
|
+
|
|
49
|
+
## セキュリティ規則
|
|
50
|
+
|
|
51
|
+
### Bandit
|
|
52
|
+
- **フォーマット**: JSON出力
|
|
53
|
+
- **除外**: tests/ディレクトリ
|
|
54
|
+
- **チェック項目**: セキュリティ脆弱性の検出
|
|
55
|
+
|
|
56
|
+
## ドキュメント規則
|
|
57
|
+
|
|
58
|
+
### pydocstyle
|
|
59
|
+
- **規約**: Google スタイル
|
|
60
|
+
- **無視するエラー**: D100,D101,D102,D103,D104,D105,D107
|
|
61
|
+
- **除外**: tests/, examples/
|
|
62
|
+
- **必須**: パブリックモジュール、クラス、関数にはdocstring
|
|
63
|
+
|
|
64
|
+
## Python近代化規則
|
|
65
|
+
|
|
66
|
+
### pyupgrade
|
|
67
|
+
- **対象バージョン**: Python 3.10+
|
|
68
|
+
- **自動更新**: 古い構文を新しい構文に自動変換
|
|
69
|
+
|
|
70
|
+
## ファイル品質規則
|
|
71
|
+
|
|
72
|
+
### 基本チェック
|
|
73
|
+
- **末尾空白**: 削除(.mdファイルは除外)
|
|
74
|
+
- **ファイル末尾**: 改行で終了(.mdファイルは除外)
|
|
75
|
+
- **YAML/JSON/TOML**: 構文チェック
|
|
76
|
+
- **マージコンフリクト**: 検出
|
|
77
|
+
- **大きなファイル**: 1MB以上は警告
|
|
78
|
+
- **ケース競合**: ファイル名の大文字小文字競合検出
|
|
79
|
+
- **改行コード**: LF統一
|
|
80
|
+
- **AST**: Python構文チェック
|
|
81
|
+
- **ビルトインリテラル**: 適切な使用チェック
|
|
82
|
+
- **docstring位置**: 関数/クラス定義直後に配置
|
|
83
|
+
- **デバッグ文**: print(), pdb等の削除
|
|
84
|
+
- **テストファイル命名**: pytest形式(test_*.py)
|
|
85
|
+
|
|
86
|
+
## コーディングベストプラクティス
|
|
87
|
+
|
|
88
|
+
### 命名規則
|
|
89
|
+
- **関数・変数**: snake_case
|
|
90
|
+
- **クラス**: PascalCase
|
|
91
|
+
- **定数**: UPPER_SNAKE_CASE
|
|
92
|
+
- **プライベート**: 先頭アンダースコア(_private)
|
|
93
|
+
|
|
94
|
+
### 型ヒント
|
|
95
|
+
- 全ての関数にtype hintsを追加
|
|
96
|
+
- 戻り値の型を明示
|
|
97
|
+
- 複雑な型はtyping モジュールを使用
|
|
98
|
+
|
|
99
|
+
### エラーハンドリング
|
|
100
|
+
- 具体的な例外クラスを使用
|
|
101
|
+
- 適切なログ出力
|
|
102
|
+
- リソースの適切なクリーンアップ
|
|
103
|
+
|
|
104
|
+
### 非同期プログラミング
|
|
105
|
+
- asyncio使用時は適切なawait
|
|
106
|
+
- コンテキストマネージャーの活用
|
|
107
|
+
- リソースリークの防止
|
|
108
|
+
|
|
109
|
+
### パフォーマンス
|
|
110
|
+
- 不要なループの回避
|
|
111
|
+
- 適切なデータ構造の選択
|
|
112
|
+
- メモリ効率の考慮
|
|
113
|
+
|
|
114
|
+
## プロジェクト固有ルール
|
|
115
|
+
|
|
116
|
+
### Tree-sitter関連
|
|
117
|
+
- tree-sitterクエリは適切にテスト
|
|
118
|
+
- 言語サポートの一貫性維持
|
|
119
|
+
- パーサーエラーの適切な処理
|
|
120
|
+
|
|
121
|
+
### MCP (Model Context Protocol)
|
|
122
|
+
- 非同期処理の適切な実装
|
|
123
|
+
- エラーレスポンスの標準化
|
|
124
|
+
- リソース管理の徹底
|
|
125
|
+
|
|
126
|
+
### テスト
|
|
127
|
+
- 各機能に対応するテストを作成
|
|
128
|
+
- エッジケースのテスト
|
|
129
|
+
- モックの適切な使用
|
|
130
|
+
- テストカバレッジ80%以上を目標
|
|
131
|
+
|
|
132
|
+
## 品質チェックコマンド
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# 基本的な品質チェック
|
|
136
|
+
uv run pre-commit run --all-files
|
|
137
|
+
|
|
138
|
+
# 個別チェック
|
|
139
|
+
uv run black --check --line-length=88 .
|
|
140
|
+
uv run ruff check .
|
|
141
|
+
uv run mypy tree_sitter_analyzer/
|
|
142
|
+
uv run pytest tests/
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 継続的改善
|
|
146
|
+
|
|
147
|
+
- 定期的なルール見直し
|
|
148
|
+
- 新しいツールの評価・導入
|
|
149
|
+
- チーム内でのベストプラクティス共有
|
|
150
|
+
- パフォーマンス指標の監視
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Roo Code 実装チェックリスト
|
|
2
|
+
|
|
3
|
+
このファイルは、Roo Codeがソースコードを作成・修正する際の実践的なチェックリストです。
|
|
4
|
+
|
|
5
|
+
## 🚀 コード作成前チェック
|
|
6
|
+
|
|
7
|
+
### プロジェクト理解
|
|
8
|
+
- [ ] プロジェクトの目的と要件を理解している
|
|
9
|
+
- [ ] 既存のアーキテクチャパターンを把握している
|
|
10
|
+
- [ ] 関連する既存コードを確認している
|
|
11
|
+
- [ ] 影響範囲を特定している
|
|
12
|
+
|
|
13
|
+
### 設計確認
|
|
14
|
+
- [ ] 適切なモジュール・クラス構造を計画している
|
|
15
|
+
- [ ] 依存関係を最小限に抑えている
|
|
16
|
+
- [ ] 単一責任原則を遵守している
|
|
17
|
+
- [ ] 拡張性を考慮している
|
|
18
|
+
|
|
19
|
+
## 📝 コード実装チェック
|
|
20
|
+
|
|
21
|
+
### 基本品質
|
|
22
|
+
- [ ] **型ヒント**: 全ての関数・メソッドに型ヒントを追加
|
|
23
|
+
- [ ] **docstring**: パブリックAPIにGoogle形式のdocstringを記述
|
|
24
|
+
- [ ] **命名規則**: snake_case(関数・変数)、PascalCase(クラス)を使用
|
|
25
|
+
- [ ] **行長制限**: 88文字以内に収める
|
|
26
|
+
|
|
27
|
+
### エラーハンドリング
|
|
28
|
+
- [ ] 適切な例外クラスを使用している
|
|
29
|
+
- [ ] try-except文で具体的な例外をキャッチしている
|
|
30
|
+
- [ ] エラーメッセージが分かりやすい
|
|
31
|
+
- [ ] ログ出力が適切に設定されている
|
|
32
|
+
|
|
33
|
+
### 非同期処理(該当する場合)
|
|
34
|
+
- [ ] `async/await`を正しく使用している
|
|
35
|
+
- [ ] リソースの適切なクリーンアップを実装している
|
|
36
|
+
- [ ] デッドロックやレースコンディションを回避している
|
|
37
|
+
- [ ] セマフォやロックを適切に使用している
|
|
38
|
+
|
|
39
|
+
### セキュリティ
|
|
40
|
+
- [ ] ファイルパスの検証を実装している
|
|
41
|
+
- [ ] 入力値のサニタイゼーションを行っている
|
|
42
|
+
- [ ] 機密情報をログに出力していない
|
|
43
|
+
- [ ] SQLインジェクション等の脆弱性を回避している
|
|
44
|
+
|
|
45
|
+
## 🧪 テスト実装チェック
|
|
46
|
+
|
|
47
|
+
### テストカバレッジ
|
|
48
|
+
- [ ] 正常ケースのテストを作成している
|
|
49
|
+
- [ ] 異常ケース・エッジケースのテストを作成している
|
|
50
|
+
- [ ] モックを適切に使用している
|
|
51
|
+
- [ ] テストが独立して実行可能である
|
|
52
|
+
|
|
53
|
+
### テスト品質
|
|
54
|
+
- [ ] テスト名が分かりやすい
|
|
55
|
+
- [ ] Arrange-Act-Assertパターンを使用している
|
|
56
|
+
- [ ] テストデータが適切に管理されている
|
|
57
|
+
- [ ] 非同期テストで`@pytest.mark.asyncio`を使用している
|
|
58
|
+
|
|
59
|
+
## 🔧 コード品質チェック
|
|
60
|
+
|
|
61
|
+
### フォーマット・リンティング
|
|
62
|
+
- [ ] Blackフォーマッターを適用している
|
|
63
|
+
- [ ] Ruffリンターでエラーがない
|
|
64
|
+
- [ ] isortでインポートが整理されている
|
|
65
|
+
- [ ] MyPyで型チェックが通る
|
|
66
|
+
|
|
67
|
+
### セキュリティ・品質
|
|
68
|
+
- [ ] Banditでセキュリティチェックが通る
|
|
69
|
+
- [ ] pydocstyleでドキュメント品質が確保されている
|
|
70
|
+
- [ ] pyupgradeで最新のPython構文を使用している
|
|
71
|
+
- [ ] デバッグ文(print, pdb等)を削除している
|
|
72
|
+
|
|
73
|
+
## 📚 プロジェクト固有チェック
|
|
74
|
+
|
|
75
|
+
### Tree-sitter関連
|
|
76
|
+
- [ ] パーサーエラーの適切な処理を実装している
|
|
77
|
+
- [ ] 言語サポートの一貫性を維持している
|
|
78
|
+
- [ ] クエリの最適化を考慮している
|
|
79
|
+
- [ ] メモリ効率を考慮している
|
|
80
|
+
|
|
81
|
+
### MCP (Model Context Protocol)
|
|
82
|
+
- [ ] 非同期処理を正しく実装している
|
|
83
|
+
- [ ] エラーレスポンスを標準化している
|
|
84
|
+
- [ ] リソース管理を徹底している
|
|
85
|
+
- [ ] セキュリティ要件を満たしている
|
|
86
|
+
|
|
87
|
+
## 🚀 コード完成後チェック
|
|
88
|
+
|
|
89
|
+
### 最終確認
|
|
90
|
+
- [ ] 全てのテストが通る
|
|
91
|
+
- [ ] pre-commitフックが通る
|
|
92
|
+
- [ ] ドキュメントが更新されている
|
|
93
|
+
- [ ] 変更ログが記録されている
|
|
94
|
+
|
|
95
|
+
### パフォーマンス
|
|
96
|
+
- [ ] 大きなファイルでの動作を確認している
|
|
97
|
+
- [ ] メモリ使用量が適切である
|
|
98
|
+
- [ ] 処理時間が許容範囲内である
|
|
99
|
+
- [ ] キャッシュが適切に機能している
|
|
100
|
+
|
|
101
|
+
## 🔄 継続的改善
|
|
102
|
+
|
|
103
|
+
### コードレビュー観点
|
|
104
|
+
- [ ] 可読性が高い
|
|
105
|
+
- [ ] 保守性が高い
|
|
106
|
+
- [ ] 再利用性がある
|
|
107
|
+
- [ ] 拡張性がある
|
|
108
|
+
|
|
109
|
+
### 品質指標
|
|
110
|
+
- [ ] テストカバレッジ80%以上
|
|
111
|
+
- [ ] 複雑度が適切な範囲内
|
|
112
|
+
- [ ] 依存関係が最小限
|
|
113
|
+
- [ ] パフォーマンスが要件を満たす
|
|
114
|
+
|
|
115
|
+
## 📋 クイックリファレンス
|
|
116
|
+
|
|
117
|
+
### よく使用する型ヒント
|
|
118
|
+
```python
|
|
119
|
+
from typing import Dict, List, Optional, Union, Any, Callable, AsyncIterator
|
|
120
|
+
from pathlib import Path
|
|
121
|
+
import asyncio
|
|
122
|
+
|
|
123
|
+
# 基本的な関数
|
|
124
|
+
async def process_file(
|
|
125
|
+
file_path: Path,
|
|
126
|
+
options: Optional[Dict[str, Any]] = None
|
|
127
|
+
) -> Dict[str, Any]:
|
|
128
|
+
pass
|
|
129
|
+
|
|
130
|
+
# ジェネレーター
|
|
131
|
+
async def stream_results() -> AsyncIterator[Dict[str, Any]]:
|
|
132
|
+
pass
|
|
133
|
+
|
|
134
|
+
# コールバック
|
|
135
|
+
def callback_func(
|
|
136
|
+
result: Dict[str, Any],
|
|
137
|
+
callback: Optional[Callable[[str], None]] = None
|
|
138
|
+
) -> None:
|
|
139
|
+
pass
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### エラーハンドリングパターン
|
|
143
|
+
```python
|
|
144
|
+
try:
|
|
145
|
+
result = await risky_operation()
|
|
146
|
+
except SpecificError as e:
|
|
147
|
+
logger.error(f"Specific error occurred: {e}")
|
|
148
|
+
raise CustomError(f"Operation failed: {e}") from e
|
|
149
|
+
except Exception as e:
|
|
150
|
+
logger.error(f"Unexpected error: {e}")
|
|
151
|
+
raise
|
|
152
|
+
finally:
|
|
153
|
+
await cleanup_resources()
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 非同期リソース管理
|
|
157
|
+
```python
|
|
158
|
+
async with managed_resource() as resource:
|
|
159
|
+
result = await resource.process()
|
|
160
|
+
return result
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### テストパターン
|
|
164
|
+
```python
|
|
165
|
+
@pytest.mark.asyncio
|
|
166
|
+
async def test_function_success():
|
|
167
|
+
# Arrange
|
|
168
|
+
input_data = create_test_data()
|
|
169
|
+
|
|
170
|
+
# Act
|
|
171
|
+
result = await function_under_test(input_data)
|
|
172
|
+
|
|
173
|
+
# Assert
|
|
174
|
+
assert result is not None
|
|
175
|
+
assert result["status"] == "success"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## 🎯 品質目標
|
|
179
|
+
|
|
180
|
+
- **コードカバレッジ**: 80%以上
|
|
181
|
+
- **型チェック**: MyPyエラーゼロ
|
|
182
|
+
- **リンティング**: Ruff/Flake8エラーゼロ
|
|
183
|
+
- **セキュリティ**: Bandit警告ゼロ
|
|
184
|
+
- **ドキュメント**: パブリックAPI 100%カバー
|
|
185
|
+
- **パフォーマンス**: 大きなファイル(1MB+)でも適切な応答時間
|