tree-sitter-analyzer 1.9.2__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.

Files changed (318) hide show
  1. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.gitignore +13 -0
  2. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.pre-commit-config.yaml +32 -23
  3. tree_sitter_analyzer-1.9.3/.roo/commands/openspec-apply.md +20 -0
  4. tree_sitter_analyzer-1.9.3/.roo/commands/openspec-archive.md +24 -0
  5. tree_sitter_analyzer-1.9.3/.roo/commands/openspec-proposal.md +24 -0
  6. tree_sitter_analyzer-1.9.3/.roo/mcp.json +112 -0
  7. tree_sitter_analyzer-1.9.3/.roo/rules/code-quality-standards.md +150 -0
  8. tree_sitter_analyzer-1.9.3/.roo/rules/coding-checklist.md +185 -0
  9. tree_sitter_analyzer-1.9.3/.roo/rules/project-best-practices.md +349 -0
  10. tree_sitter_analyzer-1.9.3/.roo/rules/roo-feedback-system.md +203 -0
  11. tree_sitter_analyzer-1.9.3/.roo/rules/specify-rules.md +71 -0
  12. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/check-prerequisites.ps1 +13 -13
  13. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/common.ps1 +10 -10
  14. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/create-new-feature.ps1 +5 -5
  15. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/setup-plan.ps1 +4 -4
  16. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/scripts/powershell/update-agent-context.ps1 +22 -22
  17. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/CHANGELOG.md +35 -0
  18. tree_sitter_analyzer-1.9.3/CHANGE_MANAGEMENT_GUIDE.md +83 -0
  19. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/PKG-INFO +70 -30
  20. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/README.md +68 -29
  21. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/README_ja.md +83 -41
  22. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/README_zh.md +79 -41
  23. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/build_standalone.py +4 -4
  24. tree_sitter_analyzer-1.9.3/compatibility_test/MCP_DIRECT_EXECUTION_TECHNICAL_BACKGROUND.md +303 -0
  25. tree_sitter_analyzer-1.9.3/compatibility_test/README.md +282 -0
  26. tree_sitter_analyzer-1.9.3/compatibility_test/config/comparison_config.json +21 -0
  27. tree_sitter_analyzer-1.9.3/compatibility_test/manual_test_guide.md +348 -0
  28. tree_sitter_analyzer-1.9.3/compatibility_test/mcp_compatibility_test.py +329 -0
  29. tree_sitter_analyzer-1.9.3/compatibility_test/reports/.gitkeep +0 -0
  30. tree_sitter_analyzer-1.9.3/compatibility_test/results/.gitkeep +0 -0
  31. tree_sitter_analyzer-1.9.3/compatibility_test/scripts/analyze_differences.py +694 -0
  32. tree_sitter_analyzer-1.9.3/compatibility_test/scripts/run_compatibility_test.py +702 -0
  33. tree_sitter_analyzer-1.9.3/compatibility_test/templates/comparison_report_template.md +133 -0
  34. tree_sitter_analyzer-1.9.3/compatibility_test/templates/mcp_settings.json.template +50 -0
  35. tree_sitter_analyzer-1.9.3/compatibility_test/test_cases.json +175 -0
  36. tree_sitter_analyzer-1.9.3/compatibility_test/troubleshooting_guide.md +337 -0
  37. tree_sitter_analyzer-1.9.3/compatibility_test/utils/__init__.py +17 -0
  38. tree_sitter_analyzer-1.9.3/compatibility_test/utils/cache_manager.py +240 -0
  39. tree_sitter_analyzer-1.9.3/compatibility_test/utils/cache_reporter.py +453 -0
  40. tree_sitter_analyzer-1.9.3/compatibility_test/utils/smart_json_comparator.py +121 -0
  41. tree_sitter_analyzer-1.9.3/compatibility_test/v1.6.1.1_test_cases.md +453 -0
  42. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/coverage.json +1 -1
  43. tree_sitter_analyzer-1.9.3/docs/SMART_JSON_COMPARISON_SYSTEM.md +23 -0
  44. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/debugging_guide.md +3 -3
  45. tree_sitter_analyzer-1.9.3/docs/developer_guide.md +73 -0
  46. tree_sitter_analyzer-1.9.3/docs/ja/README.md +372 -0
  47. 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
  48. 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
  49. tree_sitter_analyzer-1.9.3/docs/ja/project-management/02_WBS.md +451 -0
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. tree_sitter_analyzer-1.9.3/docs/ja/specifications/04_CLI/344/273/225/346/247/230.md +894 -0
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. tree_sitter_analyzer-1.9.3/docs/mcp_compatibility_test_standard.md +332 -0
  65. tree_sitter_analyzer-1.9.3/docs/pre-commit-setup.md +259 -0
  66. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/troubleshooting_guide.md +7 -7
  67. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/ComprehensiveTypeScript.ts +26 -26
  68. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/ReactTypeScriptComponent.tsx +33 -33
  69. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/TypeScriptDeclarations.d.ts +1 -1
  70. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/comprehensive_sample.css +41 -41
  71. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/comprehensive_sample.html +45 -45
  72. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/llm_code_checker.py +13 -13
  73. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/pyproject.toml +6 -3
  74. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/pytest.ini +1 -1
  75. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/run_regression_tests.py +5 -3
  76. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/run_phase7_integration_tests.py +13 -9
  77. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/start_mcp_server.py +5 -5
  78. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/test_fixes.py +7 -7
  79. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/__init__.py +1 -1
  80. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/api.py +10 -6
  81. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/argument_validator.py +1 -1
  82. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +3 -6
  83. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/query_command.py +3 -1
  84. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/table_command.py +3 -3
  85. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/constants.py +5 -3
  86. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/analysis_engine.py +1 -1
  87. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/cache_service.py +1 -1
  88. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/engine.py +1 -1
  89. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query.py +0 -2
  90. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/exceptions.py +1 -1
  91. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/file_handler.py +6 -6
  92. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/base_formatter.py +1 -1
  93. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/html_formatter.py +24 -14
  94. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/javascript_formatter.py +28 -21
  95. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/language_formatter_factory.py +7 -4
  96. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/markdown_formatter.py +4 -4
  97. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/python_formatter.py +4 -4
  98. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/typescript_formatter.py +1 -1
  99. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +4 -2
  100. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/mcp_server.py +10 -10
  101. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/language_detector.py +30 -5
  102. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/language_loader.py +46 -26
  103. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/css_plugin.py +6 -6
  104. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/html_plugin.py +12 -8
  105. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/java_plugin.py +307 -520
  106. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/javascript_plugin.py +22 -78
  107. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/markdown_plugin.py +277 -297
  108. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/python_plugin.py +47 -85
  109. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/typescript_plugin.py +48 -123
  110. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +14 -8
  111. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/server.py +38 -23
  112. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +10 -7
  113. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +51 -7
  114. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +11 -7
  115. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +8 -6
  116. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +6 -6
  117. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +18 -9
  118. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +13 -8
  119. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/file_output_manager.py +8 -3
  120. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +24 -12
  121. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +2 -2
  122. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/models.py +16 -0
  123. tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/mypy_current_errors.txt +2 -0
  124. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/base.py +66 -0
  125. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/java.py +1 -1
  126. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/javascript.py +3 -8
  127. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/markdown.py +1 -1
  128. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/python.py +2 -2
  129. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/boundary_manager.py +2 -5
  130. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/regex_checker.py +2 -2
  131. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/security/validator.py +5 -1
  132. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/table_formatter.py +4 -4
  133. tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/utils/__init__.py +54 -0
  134. tree_sitter_analyzer-1.9.2/tree_sitter_analyzer/utils.py → tree_sitter_analyzer-1.9.3/tree_sitter_analyzer/utils/logging.py +2 -2
  135. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/utils/tree_sitter_compat.py +2 -2
  136. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/upload_interactive.py +6 -6
  137. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/upload_to_pypi.py +3 -2
  138. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/uv.lock +1232 -1192
  139. tree_sitter_analyzer-1.9.2/.roo/rules/specify-rules.md +0 -24
  140. tree_sitter_analyzer-1.9.2/ASYNC_ARCHITECTURE_DESIGN.md +0 -449
  141. tree_sitter_analyzer-1.9.2/CLI_ARCHITECTURE_REDESIGN.md +0 -296
  142. tree_sitter_analyzer-1.9.2/CLI_COMMAND_BUG_FIX_SPECIFICATION.md +0 -177
  143. tree_sitter_analyzer-1.9.2/IMPLEMENTATION_GUIDELINES.md +0 -800
  144. tree_sitter_analyzer-1.9.2/docs/analysis/README.md +0 -45
  145. tree_sitter_analyzer-1.9.2/docs/analysis/project_metrics_2025-10-16.md +0 -248
  146. tree_sitter_analyzer-1.9.2/docs/analysis/speckit_analysis_2025-10-16.md +0 -367
  147. tree_sitter_analyzer-1.9.2/docs/analysis/technical_debt_analysis_2025-10-16.md +0 -111
  148. tree_sitter_analyzer-1.9.2/docs/developer_guide.md +0 -2012
  149. tree_sitter_analyzer-1.9.2/docs/test_fixes/suppress_output_mock_fix_2025-10-16.md +0 -90
  150. tree_sitter_analyzer-1.9.2/project_scale_evaluation_report.md +0 -248
  151. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/DEPLOYMENT_GUIDE.md +0 -423
  152. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/DOCUMENTATION_INDEX.md +0 -243
  153. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/ERROR_HANDLING_SPECIFICATION.md +0 -382
  154. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/GLOSSARY.md +0 -115
  155. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/PERFORMANCE_BENCHMARKS.md +0 -240
  156. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/README.md +0 -124
  157. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/checklists/requirements.md +0 -38
  158. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/contracts/mcp-resources-api.json +0 -585
  159. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/contracts/mcp-tools-api.json +0 -981
  160. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/data-model.md +0 -231
  161. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/implementation_status.md +0 -117
  162. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/plan.md +0 -257
  163. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/quickstart.md +0 -385
  164. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/research.md +0 -232
  165. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/resources/mcp_resources_specification.md +0 -479
  166. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/spec.md +0 -152
  167. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tasks.md +0 -482
  168. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/test_environment_status.md +0 -161
  169. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/analyze_code_structure_specification.md +0 -431
  170. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/check_code_scale_specification.md +0 -333
  171. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/extract_code_section_specification.md +0 -262
  172. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/find_and_grep_specification.md +0 -424
  173. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/list_files_specification.md +0 -416
  174. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/query_code_specification.md +0 -296
  175. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/search_content_specification.md +0 -601
  176. tree_sitter_analyzer-1.9.2/specs/001-mcp-tree-sitter/tools/set_project_path_specification.md +0 -270
  177. tree_sitter_analyzer-1.9.2/specs/002-language-abstraction-spec.md +0 -146
  178. tree_sitter_analyzer-1.9.2/specs/003-html-css-support-spec.md +0 -267
  179. tree_sitter_analyzer-1.9.2/specs/004-formatter-extension-spec.md +0 -139
  180. tree_sitter_analyzer-1.9.2/specs/005-implementation-plan.md +0 -119
  181. tree_sitter_analyzer-1.9.2/tree_sitter_analyzer/utils/__init__.py +0 -143
  182. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.gitattributes +0 -0
  183. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.kiro/steering/product.md +0 -0
  184. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.kiro/steering/structure.md +0 -0
  185. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.kiro/steering/tech.md +0 -0
  186. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.pre-commit-hooks.yaml +0 -0
  187. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/AGENTS.md +0 -0
  188. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/release.md +0 -0
  189. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.analyze.md +0 -0
  190. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.checklist.md +0 -0
  191. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.clarify.md +0 -0
  192. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.constitution.md +0 -0
  193. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.implement.md +0 -0
  194. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.plan.md +0 -0
  195. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.specify.md +0 -0
  196. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/commands/speckit.tasks.md +0 -0
  197. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/release.md +0 -0
  198. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.analyze.md +0 -0
  199. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.checklist.md +0 -0
  200. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.clarify.md +0 -0
  201. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.constitution.md +0 -0
  202. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.implement.md +0 -0
  203. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.plan.md +0 -0
  204. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.specify.md +0 -0
  205. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.roo/docs/speckit.tasks.md +0 -0
  206. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/checklists/requirements.md +0 -0
  207. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/completion-report-template.md +0 -0
  208. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/completion-report.md +0 -0
  209. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/contracts/query-service-api.md +0 -0
  210. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/data-model.md +0 -0
  211. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/implementation-guidelines-part2.md +0 -0
  212. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/implementation-guidelines.md +0 -0
  213. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/plan.md +0 -0
  214. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/progress-management-final.md +0 -0
  215. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/progress-management.md +0 -0
  216. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/project-overview.md +0 -0
  217. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/quickstart.md +0 -0
  218. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/research.md +0 -0
  219. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/spec.md +0 -0
  220. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/async-query-service-fix/tasks.md +0 -0
  221. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/memory/constitution.md +0 -0
  222. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/templates/agent-file-template.md +0 -0
  223. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/templates/checklist-template.md +0 -0
  224. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/templates/plan-template.md +0 -0
  225. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/templates/spec-template.md +0 -0
  226. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/.specify/templates/tasks-template.md +0 -0
  227. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/GITFLOW.md +0 -0
  228. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/GITFLOW_ja.md +0 -0
  229. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/GITFLOW_zh.md +0 -0
  230. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/check_quality.py +0 -0
  231. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/collect_project_metrics.py +0 -0
  232. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/debug_async_test.py +0 -0
  233. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/CONTRIBUTING.md +0 -0
  234. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/api/data_models.md +0 -0
  235. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/api/formatter_registry.md +0 -0
  236. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/api/mcp_tools_specification.md +0 -0
  237. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/docs/file_output_manager_factory_implementation.md +0 -0
  238. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/BigService.java +0 -0
  239. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/BigService.json +0 -0
  240. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/BigService.summary.json +0 -0
  241. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/JavaDocTest.java +0 -0
  242. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/ModernJavaScript.js +0 -0
  243. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/MultiClass.java +0 -0
  244. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/ReactComponent.jsx +0 -0
  245. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/Sample.java +0 -0
  246. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/cache_demo.py +0 -0
  247. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/calculate_token_comparison.py +0 -0
  248. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/css_analysis_demo.py +0 -0
  249. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/file_output_demo.py +0 -0
  250. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/file_output_factory_demo.py +0 -0
  251. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/html_analysis_demo.py +0 -0
  252. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/javascript_analysis_demo.py +0 -0
  253. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/project_root_demo.py +0 -0
  254. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/sample.py +0 -0
  255. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/security_demo.py +0 -0
  256. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/security_integration_demo.py +0 -0
  257. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/smart_cache_demo.py +0 -0
  258. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/suppress_output_demo.py +0 -0
  259. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/test_markdown.md +0 -0
  260. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/examples/total_only_optimization_demo.py +0 -0
  261. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/pypirc_example.txt +0 -0
  262. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/README.md +0 -0
  263. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/gitflow_helper.py +0 -0
  264. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/gitflow_release_automation.py +0 -0
  265. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/sync_version.py +0 -0
  266. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/sync_version_minimal.py +0 -0
  267. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/scripts/update_readme_stats.py +0 -0
  268. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/test_emergency_fix.py +0 -0
  269. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/test_output.txt +0 -0
  270. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/__main__.py +0 -0
  271. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
  272. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
  273. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
  274. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
  275. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
  276. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +0 -0
  277. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -0
  278. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
  279. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/search_content_cli.py +0 -0
  280. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
  281. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
  282. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
  283. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/cli_main.py +0 -0
  284. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/__init__.py +0 -0
  285. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/parser.py +0 -0
  286. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
  287. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/core/query_service.py +0 -0
  288. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
  289. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
  290. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
  291. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/formatter_registry.py +0 -0
  292. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
  293. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
  294. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
  295. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
  296. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
  297. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
  298. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
  299. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
  300. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
  301. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
  302. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
  303. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
  304. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
  305. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
  306. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
  307. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/file_output_factory.py +0 -0
  308. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
  309. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/output_manager.py +0 -0
  310. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
  311. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
  312. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/project_detector.py +0 -0
  313. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
  314. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/css.py +0 -0
  315. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/html.py +0 -0
  316. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
  317. {tree_sitter_analyzer-1.9.2 → tree_sitter_analyzer-1.9.3}/tree_sitter_analyzer/query_loader.py +0 -0
  318. {tree_sitter_analyzer-1.9.2 → 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 (optional, can be slow)
67
- - repo: local
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
- name: mypy
71
- entry: uv run mypy
72
- language: system
73
- types: [python]
74
- args: [--no-error-summary, --show-error-codes]
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
- # Custom quality check
79
- - repo: local
72
+ # Documentation checks
73
+ - repo: https://github.com/pycqa/pydocstyle
74
+ rev: 6.3.0
80
75
  hooks:
81
- - id: quality-check
82
- name: Tree-sitter Analyzer Quality Check
83
- entry: uv run python check_quality.py --new-code-only
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+)でも適切な応答時間