tree-sitter-analyzer 1.6.1.2__tar.gz → 1.6.1.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.6.1.3/.roo/commands/openspec-apply.md +20 -0
- tree_sitter_analyzer-1.6.1.3/.roo/commands/openspec-archive.md +24 -0
- tree_sitter_analyzer-1.6.1.3/.roo/commands/openspec-proposal.md +24 -0
- tree_sitter_analyzer-1.6.1.3/.roo/rules/search-best-practices.md +250 -0
- tree_sitter_analyzer-1.6.1.3/AGENTS.md +18 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/CHANGELOG.md +60 -0
- tree_sitter_analyzer-1.6.1.3/CLINE.md +18 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/PKG-INFO +5 -5
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/README.md +3 -3
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/README_ja.md +3 -3
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/README_zh.md +3 -3
- tree_sitter_analyzer-1.6.1.3/docs/logger_duplication_fix_ja.md +385 -0
- tree_sitter_analyzer-1.6.1.3/docs/mcp_fd_rg_design.md +222 -0
- tree_sitter_analyzer-1.6.1.3/openspec/AGENTS.md +454 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-logger-duplication-unified/design.md +342 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-logger-duplication-unified/proposal.md +178 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-logger-duplication-unified/specs/logging-management/spec.md +212 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-logger-duplication-unified/tasks.md +199 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-search-content-parameters/proposal.md +27 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-search-content-parameters/specs/mcp-tools/spec.md +150 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-25-fix-search-content-parameters/tasks.md +69 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-27-add-llm-guidance-to-search-content/design.md +263 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-27-add-llm-guidance-to-search-content/proposal.md +64 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-27-add-llm-guidance-to-search-content/specs/llm-guidance/spec.md +197 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-27-add-llm-guidance-to-search-content/specs/mcp-tools/spec.md +187 -0
- tree_sitter_analyzer-1.6.1.3/openspec/changes/archive/2025-10-27-add-llm-guidance-to-search-content/tasks.md +161 -0
- tree_sitter_analyzer-1.6.1.3/openspec/project.md +73 -0
- tree_sitter_analyzer-1.6.1.3/openspec/specs/llm-guidance/spec.md +201 -0
- tree_sitter_analyzer-1.6.1.3/openspec/specs/logging-management/spec.md +184 -0
- tree_sitter_analyzer-1.6.1.3/openspec/specs/mcp-tools/spec.md +340 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/pyproject.toml +5 -5
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/start_mcp_server.py +1 -1
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/query.py +11 -9
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/query_service.py +10 -13
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/languages/python_plugin.py +51 -27
- tree_sitter_analyzer-1.6.1.3/tree_sitter_analyzer/logging_manager.py +361 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/server.py +1 -1
- tree_sitter_analyzer-1.6.1.3/tree_sitter_analyzer/mcp/tools/output_format_validator.py +147 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +41 -8
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/file_output_manager.py +74 -1
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/search_cache.py +9 -0
- tree_sitter_analyzer-1.6.1.3/tree_sitter_analyzer/utils.py +287 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/uv.lock +43 -34
- tree_sitter_analyzer-1.6.1.2/docs/mcp_fd_rg_design.md +0 -90
- tree_sitter_analyzer-1.6.1.2/tree_sitter_analyzer/utils.py +0 -452
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.gitignore +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/AGENTS.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/release.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/commands/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/release.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/docs/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/.roo/rules/specify-rules.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/FILE_OUTPUT_FEATURE_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/PYTHON_SUPPORT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/coverage.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/ModernJavaScript.js +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/ReactComponent.jsx +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/file_output_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/javascript_analysis_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_python_support.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-CLI-01_structure_analysis_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-CLI-02_query_code_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-CLI-03_help_command_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-MCP-01_analyze_code_structure_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-MCP-02_query_code_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/BC-MCP-03_check_code_scale_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/INT-LOG-01_combined_variables_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/INT-LOG-02_log_content_verification_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/INT-LOG-03_performance_impact_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/INT-LOG-04_logger_level_separation_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-01_default_behavior_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-02_file_log_enablement_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-03_custom_directory_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-04_debug_level_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-05_info_level_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-06_warning_level_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-07_error_level_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-08_invalid_level_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/LOG-CTL-09_no_permission_complete.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/analyze_logs.ps1 +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/performance_test.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/run_test.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_int_log_01.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_int_log_02.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_int_log_04.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_log_ctl_05.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_log_ctl_06.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_log_ctl_07.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_log_ctl_08.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_log_ctl_09.bat +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/test_result_template.json +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/test_results/v1.6.1.1_test_cases.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/training/README.md +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/search_content_cli.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/javascript_formatter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/language_loader.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.6.1.2 → tree_sitter_analyzer-1.6.1.3}/upload_to_pypi.py +0 -0
|
@@ -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,250 @@
|
|
|
1
|
+
# Tree-Sitter Analyzer: Search Content Best Practices
|
|
2
|
+
|
|
3
|
+
## Token-Efficient Search Strategies
|
|
4
|
+
|
|
5
|
+
### 📋 Overview
|
|
6
|
+
The `search_content` tool offers multiple output formats optimized for different token usage scenarios. Understanding the efficiency hierarchy is crucial for effective LLM usage.
|
|
7
|
+
|
|
8
|
+
### 🎯 Recommended Workflow (Most Efficient Approach)
|
|
9
|
+
|
|
10
|
+
#### Stage 1: Count Validation (~10 tokens)
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"query": "function",
|
|
14
|
+
"roots": ["src/"],
|
|
15
|
+
"total_only": true
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
**Use when:** You need to quickly check if matches exist or validate query effectiveness.
|
|
19
|
+
**Result:** Single integer (e.g., `42`)
|
|
20
|
+
|
|
21
|
+
#### Stage 2: File Distribution Analysis (~50-200 tokens)
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"query": "function",
|
|
25
|
+
"roots": ["src/"],
|
|
26
|
+
"count_only_matches": true
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
**Use when:** You need to understand match distribution across files.
|
|
30
|
+
**Result:** Object with file-level counts
|
|
31
|
+
|
|
32
|
+
#### Stage 3: Initial Investigation (~500-2000 tokens)
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"query": "function",
|
|
36
|
+
"roots": ["src/"],
|
|
37
|
+
"summary_only": true
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
**Use when:** You need sample matches and overview for pattern validation.
|
|
41
|
+
**Result:** Condensed summary with top files and sample matches
|
|
42
|
+
|
|
43
|
+
#### Stage 4: Context-Aware Review (~2000-10000 tokens)
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"query": "function",
|
|
47
|
+
"roots": ["src/"],
|
|
48
|
+
"group_by_file": true
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
**Use when:** You need organized results for detailed analysis.
|
|
52
|
+
**Result:** Matches grouped by file, eliminating path duplication
|
|
53
|
+
|
|
54
|
+
#### Stage 5: Full Detail Analysis (~2000-50000+ tokens)
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"query": "function",
|
|
58
|
+
"roots": ["src/"]
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
**Use when:** You need complete match details for specific content review.
|
|
62
|
+
**Result:** Full match results with all context
|
|
63
|
+
|
|
64
|
+
### 💡 Token Efficiency Comparison
|
|
65
|
+
|
|
66
|
+
| Format | Token Range | Best Use Case | Priority |
|
|
67
|
+
|--------|------------|---------------|----------|
|
|
68
|
+
| `total_only` | ~10 tokens | Count validation, existence checks | 🥇 Highest |
|
|
69
|
+
| `count_only_matches` | ~50-200 tokens | File distribution analysis | 🥈 High |
|
|
70
|
+
| `summary_only` | ~500-2000 tokens | Initial investigation, scope confirmation | 🥉 Medium |
|
|
71
|
+
| `group_by_file` | ~2000-10000 tokens | Context-aware detailed review | 🔸 Low |
|
|
72
|
+
| `optimize_paths` | 10-30% reduction | Path compression for deep structures | 🔹 Enhancement |
|
|
73
|
+
| Full results | ~2000-50000+ tokens | Complete content analysis | 🔻 Last resort |
|
|
74
|
+
|
|
75
|
+
### ⚠️ Output Format Selection Guidelines
|
|
76
|
+
|
|
77
|
+
#### Mutually Exclusive Parameters
|
|
78
|
+
Only ONE of these can be `true` at a time:
|
|
79
|
+
- `total_only`
|
|
80
|
+
- `count_only_matches`
|
|
81
|
+
- `summary_only`
|
|
82
|
+
- `group_by_file`
|
|
83
|
+
- `optimize_paths`
|
|
84
|
+
|
|
85
|
+
#### Common Combinations That Cause Errors
|
|
86
|
+
```json
|
|
87
|
+
// ❌ WRONG: Multiple output formats
|
|
88
|
+
{
|
|
89
|
+
"query": "test",
|
|
90
|
+
"roots": ["src/"],
|
|
91
|
+
"total_only": true,
|
|
92
|
+
"summary_only": true
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// ✅ CORRECT: Single output format
|
|
96
|
+
{
|
|
97
|
+
"query": "test",
|
|
98
|
+
"roots": ["src/"],
|
|
99
|
+
"total_only": true
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 🚨 Common Mistakes and Solutions
|
|
104
|
+
|
|
105
|
+
#### Mistake 1: Starting with Full Results
|
|
106
|
+
**Problem:** Requesting full results without understanding scope
|
|
107
|
+
```json
|
|
108
|
+
// ❌ Inefficient - could return 50000+ tokens
|
|
109
|
+
{
|
|
110
|
+
"query": "function",
|
|
111
|
+
"roots": ["."]
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Solution:** Start with count validation
|
|
116
|
+
```json
|
|
117
|
+
// ✅ Efficient - 10 tokens to check scope
|
|
118
|
+
{
|
|
119
|
+
"query": "function",
|
|
120
|
+
"roots": ["."],
|
|
121
|
+
"total_only": true
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### Mistake 2: Combining Incompatible Parameters
|
|
126
|
+
**Problem:** Using multiple output format parameters
|
|
127
|
+
```json
|
|
128
|
+
// ❌ Will cause validation error
|
|
129
|
+
{
|
|
130
|
+
"query": "test",
|
|
131
|
+
"roots": ["src/"],
|
|
132
|
+
"count_only_matches": true,
|
|
133
|
+
"group_by_file": true
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Solution:** Choose the most appropriate single format
|
|
138
|
+
```json
|
|
139
|
+
// ✅ For file distribution analysis
|
|
140
|
+
{
|
|
141
|
+
"query": "test",
|
|
142
|
+
"roots": ["src/"],
|
|
143
|
+
"count_only_matches": true
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// ✅ For detailed grouped results
|
|
147
|
+
{
|
|
148
|
+
"query": "test",
|
|
149
|
+
"roots": ["src/"],
|
|
150
|
+
"group_by_file": true
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### Mistake 3: Ignoring Token Limits
|
|
155
|
+
**Problem:** Requesting detailed results in large codebases without bounds
|
|
156
|
+
**Solution:** Use progressive disclosure:
|
|
157
|
+
1. `total_only` to check if results are manageable
|
|
158
|
+
2. `summary_only` if count is reasonable (< 1000 matches)
|
|
159
|
+
3. `group_by_file` if summary looks useful
|
|
160
|
+
4. Full results only for specific, targeted analysis
|
|
161
|
+
|
|
162
|
+
### 📊 Advanced Optimization Strategies
|
|
163
|
+
|
|
164
|
+
#### Path Optimization for Deep Directories
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"query": "component",
|
|
168
|
+
"roots": ["frontend/src/components/"],
|
|
169
|
+
"optimize_paths": true
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
**Use when:** Working with deeply nested directory structures to reduce path token overhead.
|
|
173
|
+
|
|
174
|
+
#### Context-Aware Searching
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"query": "TODO",
|
|
178
|
+
"roots": ["src/"],
|
|
179
|
+
"context_before": 2,
|
|
180
|
+
"context_after": 1,
|
|
181
|
+
"summary_only": true
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
**Use when:** You need surrounding context but want to limit token usage.
|
|
185
|
+
|
|
186
|
+
#### Targeted File Type Searches
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"query": "class.*Component",
|
|
190
|
+
"roots": ["src/"],
|
|
191
|
+
"include_globs": ["*.tsx", "*.jsx"],
|
|
192
|
+
"count_only_matches": true
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
**Use when:** Searching specific file types to reduce noise and improve efficiency.
|
|
196
|
+
|
|
197
|
+
### 🔄 Progressive Disclosure Pattern
|
|
198
|
+
|
|
199
|
+
For unknown codebases or queries, follow this pattern:
|
|
200
|
+
|
|
201
|
+
1. **Discovery:** `total_only=true` (10 tokens)
|
|
202
|
+
2. **Distribution:** `count_only_matches=true` (50-200 tokens)
|
|
203
|
+
3. **Sampling:** `summary_only=true` (500-2000 tokens)
|
|
204
|
+
4. **Detailed Review:** `group_by_file=true` (2000-10000 tokens)
|
|
205
|
+
5. **Full Analysis:** Default format (2000-50000+ tokens)
|
|
206
|
+
|
|
207
|
+
This approach ensures you never accidentally consume excessive tokens while still getting the information you need.
|
|
208
|
+
|
|
209
|
+
### 🎲 Example Scenarios
|
|
210
|
+
|
|
211
|
+
#### Scenario 1: Bug Investigation
|
|
212
|
+
```bash
|
|
213
|
+
# Step 1: Check if error pattern exists
|
|
214
|
+
total_only=true → 15 matches found
|
|
215
|
+
|
|
216
|
+
# Step 2: See which files are affected
|
|
217
|
+
count_only_matches=true → errors in 3 files
|
|
218
|
+
|
|
219
|
+
# Step 3: Get sample of error patterns
|
|
220
|
+
summary_only=true → shows typical error patterns
|
|
221
|
+
|
|
222
|
+
# Step 4: Detailed review of specific files
|
|
223
|
+
group_by_file=true → organized view of all errors
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
#### Scenario 2: Code Review
|
|
227
|
+
```bash
|
|
228
|
+
# Step 1: Count TODO comments
|
|
229
|
+
total_only=true → 47 TODOs found
|
|
230
|
+
|
|
231
|
+
# Step 2: Distribution across files
|
|
232
|
+
count_only_matches=true → TODOs spread across 12 files
|
|
233
|
+
|
|
234
|
+
# Step 3: Sample of TODO types
|
|
235
|
+
summary_only=true → shows priority levels and types
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Scenario 3: Refactoring Planning
|
|
239
|
+
```bash
|
|
240
|
+
# Step 1: Find usage of deprecated function
|
|
241
|
+
total_only=true → 156 usages found
|
|
242
|
+
|
|
243
|
+
# Step 2: Check file distribution
|
|
244
|
+
count_only_matches=true → used in 23 files
|
|
245
|
+
|
|
246
|
+
# Step 3: See usage patterns
|
|
247
|
+
summary_only=true → shows common usage patterns
|
|
248
|
+
|
|
249
|
+
# Step 4: Full analysis for refactoring
|
|
250
|
+
group_by_file=true → detailed view for systematic refactoring
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- OPENSPEC:START -->
|
|
2
|
+
# OpenSpec Instructions
|
|
3
|
+
|
|
4
|
+
These instructions are for AI assistants working in this project.
|
|
5
|
+
|
|
6
|
+
Always open `@/openspec/AGENTS.md` when the request:
|
|
7
|
+
- Mentions planning or proposals (words like proposal, spec, change, plan)
|
|
8
|
+
- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
|
|
9
|
+
- Sounds ambiguous and you need the authoritative spec before coding
|
|
10
|
+
|
|
11
|
+
Use `@/openspec/AGENTS.md` to learn:
|
|
12
|
+
- How to create and apply change proposals
|
|
13
|
+
- Spec format and conventions
|
|
14
|
+
- Project structure and guidelines
|
|
15
|
+
|
|
16
|
+
Keep this managed block so 'openspec update' can refresh the instructions.
|
|
17
|
+
|
|
18
|
+
<!-- OPENSPEC:END -->
|
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.6.1.3] - 2025-10-27
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **🎯 LLM Guidance Enhancement**: Revolutionary token-efficient search guidance for search_content MCP tool
|
|
7
|
+
- **Token Efficiency Guide**: Comprehensive guidance in tool description with visual markers (⚠️🎯💡)
|
|
8
|
+
- **Progressive Workflow**: Step-by-step efficiency guidance (total_only → summary_only → detailed)
|
|
9
|
+
- **Token Cost Comparison**: Clear token estimates and efficiency rankings for each output format
|
|
10
|
+
- **Parameter Optimization**: Enhanced parameter descriptions with efficiency markers and recommendations
|
|
11
|
+
- **Mutually Exclusive Warning**: Clear guidance on parameter combinations to prevent conflicts
|
|
12
|
+
|
|
13
|
+
- **🌐 Multilingual Error Messages**: Enhanced error handling with automatic language detection
|
|
14
|
+
- **Language Detection**: Automatic English/Japanese error message selection
|
|
15
|
+
- **Efficiency Guidance**: Error messages include token efficiency recommendations
|
|
16
|
+
- **Usage Examples**: Comprehensive usage examples in error messages
|
|
17
|
+
- **Visual Formatting**: Emoji-based formatting for enhanced readability
|
|
18
|
+
|
|
19
|
+
- **📋 Comprehensive Testing**: Enhanced test coverage for LLM guidance features
|
|
20
|
+
- **LLM Guidance Tests**: 10 new tests validating tool definition structure and guidance completeness
|
|
21
|
+
- **Description Quality Tests**: 11 new tests ensuring description quality and actionability
|
|
22
|
+
- **Multilingual Tests**: 9 new tests for multilingual error message functionality
|
|
23
|
+
- **Integration Tests**: Enhanced existing tests with multilingual error validation
|
|
24
|
+
|
|
25
|
+
- **📚 Documentation & Best Practices**: Comprehensive guidance documentation
|
|
26
|
+
- **Token-Efficient Strategies**: New README section with progressive disclosure patterns
|
|
27
|
+
- **Best Practices Guide**: Created `.roo/rules/search-best-practices.md` with comprehensive usage patterns
|
|
28
|
+
- **MCP Design Updates**: Enhanced MCP tools design documentation with LLM guidance considerations
|
|
29
|
+
- **User Setup Guides**: Updated MCP setup documentation with efficiency recommendations
|
|
30
|
+
|
|
31
|
+
### Enhanced
|
|
32
|
+
- **🔧 Tool Definition Quality**:
|
|
33
|
+
- Description size optimized to ~252 tokens (efficient yet comprehensive)
|
|
34
|
+
- Visual formatting with Unicode markers for enhanced LLM comprehension
|
|
35
|
+
- Structured sections with clear hierarchy and actionable guidance
|
|
36
|
+
- Comprehensive parameter descriptions with usage scenarios
|
|
37
|
+
|
|
38
|
+
- **🧪 Quality Assurance**:
|
|
39
|
+
- OpenSpec validation successful with strict compliance
|
|
40
|
+
- All 44 tests passing with comprehensive coverage
|
|
41
|
+
- Backward compatibility maintained for all existing functionality
|
|
42
|
+
- Performance impact negligible (<5ms overhead)
|
|
43
|
+
|
|
44
|
+
### Technical Details
|
|
45
|
+
- **Files Enhanced**: `search_content_tool.py`, `output_format_validator.py`
|
|
46
|
+
- **New Test Files**: `test_llm_guidance_compliance.py`, `test_search_content_description.py`
|
|
47
|
+
- **Documentation Updates**: README.md, MCP design docs, user setup guides
|
|
48
|
+
- **Quality Metrics**: Zero breaking changes, full backward compatibility
|
|
49
|
+
- **OpenSpec Compliance**: Strict validation passed for change specification
|
|
50
|
+
|
|
51
|
+
### Impact
|
|
52
|
+
This release transforms the search_content tool into a **self-teaching, token-efficient interface** that automatically guides LLMs toward optimal usage patterns. Users no longer need extensive Roo rules to achieve efficient search workflows - the tool itself provides comprehensive guidance for token optimization and proper usage patterns.
|
|
53
|
+
|
|
54
|
+
**Key Benefits:**
|
|
55
|
+
- 🎯 **Automatic LLM Guidance**: Tools teach proper usage without external documentation
|
|
56
|
+
- 💡 **Token Efficiency**: Progressive disclosure reduces token consumption by up to 99%
|
|
57
|
+
- 🌐 **International Support**: Multilingual error messages enhance global accessibility
|
|
58
|
+
- 📈 **Quality Assurance**: Enterprise-grade testing and validation
|
|
59
|
+
- 🔄 **Zero Breaking Changes**: Full backward compatibility maintained
|
|
60
|
+
|
|
61
|
+
This implementation serves as a model for future MCP tool enhancements, demonstrating how tools can be self-documenting and LLM-optimized while maintaining professional quality standards.
|
|
62
|
+
|
|
3
63
|
## [1.6.1.2] - 2025-10-19
|
|
4
64
|
|
|
5
65
|
### Fixed
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- OPENSPEC:START -->
|
|
2
|
+
# OpenSpec Instructions
|
|
3
|
+
|
|
4
|
+
These instructions are for AI assistants working in this project.
|
|
5
|
+
|
|
6
|
+
Always open `@/openspec/AGENTS.md` when the request:
|
|
7
|
+
- Mentions planning or proposals (words like proposal, spec, change, plan)
|
|
8
|
+
- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
|
|
9
|
+
- Sounds ambiguous and you need the authoritative spec before coding
|
|
10
|
+
|
|
11
|
+
Use `@/openspec/AGENTS.md` to learn:
|
|
12
|
+
- How to create and apply change proposals
|
|
13
|
+
- Spec format and conventions
|
|
14
|
+
- Project structure and guidelines
|
|
15
|
+
|
|
16
|
+
Keep this managed block so 'openspec update' can refresh the instructions.
|
|
17
|
+
|
|
18
|
+
<!-- OPENSPEC:END -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 1.6.1.
|
|
3
|
+
Version: 1.6.1.3
|
|
4
4
|
Summary: Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture
|
|
5
5
|
Project-URL: Homepage, https://github.com/aimasteracc/tree-sitter-analyzer
|
|
6
6
|
Project-URL: Documentation, https://github.com/aimasteracc/tree-sitter-analyzer#readme
|
|
@@ -38,7 +38,7 @@ Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4
|
|
|
38
38
|
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5
|
|
39
39
|
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1
|
|
40
40
|
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.6
|
|
41
|
-
Requires-Dist: tree-sitter
|
|
41
|
+
Requires-Dist: tree-sitter>=0.25.0
|
|
42
42
|
Provides-Extra: all
|
|
43
43
|
Requires-Dist: anyio>=4.0.0; extra == 'all'
|
|
44
44
|
Requires-Dist: black>=24.0.0; extra == 'all'
|
|
@@ -165,11 +165,11 @@ Description-Content-Type: text/markdown
|
|
|
165
165
|
|
|
166
166
|
[](https://python.org)
|
|
167
167
|
[](LICENSE)
|
|
168
|
-
[](#quality-assurance)
|
|
169
169
|
[](#quality-assurance)
|
|
170
170
|
[](#quality-assurance)
|
|
171
171
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
172
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
173
173
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
174
174
|
|
|
175
175
|
## 🚀 Enterprise-Grade Code Analysis Tool for the AI Era
|
|
@@ -784,7 +784,7 @@ uv run pytest tests/test_mcp_server_initialization.py -v
|
|
|
784
784
|
**Verification Environment:**
|
|
785
785
|
- Operating Systems: Windows 10, macOS, Linux
|
|
786
786
|
- Python Version: 3.10+
|
|
787
|
-
- Project Version: tree-sitter-analyzer v1.6.1.
|
|
787
|
+
- Project Version: tree-sitter-analyzer v1.6.1.3
|
|
788
788
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
789
789
|
|
|
790
790
|
---
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#quality-assurance)
|
|
8
8
|
[](#quality-assurance)
|
|
9
9
|
[](#quality-assurance)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
|
|
14
14
|
## 🚀 Enterprise-Grade Code Analysis Tool for the AI Era
|
|
@@ -623,7 +623,7 @@ uv run pytest tests/test_mcp_server_initialization.py -v
|
|
|
623
623
|
**Verification Environment:**
|
|
624
624
|
- Operating Systems: Windows 10, macOS, Linux
|
|
625
625
|
- Python Version: 3.10+
|
|
626
|
-
- Project Version: tree-sitter-analyzer v1.6.1.
|
|
626
|
+
- Project Version: tree-sitter-analyzer v1.6.1.3
|
|
627
627
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
628
628
|
|
|
629
629
|
---
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#品質保証)
|
|
8
8
|
[](#品質保証)
|
|
9
9
|
[](#品質保証)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
|
|
14
14
|
## 🚀 AI時代のエンタープライズグレードコード解析ツール
|
|
@@ -623,7 +623,7 @@ uv run pytest tests/test_mcp_server_initialization.py -v
|
|
|
623
623
|
**検証環境:**
|
|
624
624
|
- オペレーティングシステム:Windows 10、macOS、Linux
|
|
625
625
|
- Pythonバージョン:3.10+
|
|
626
|
-
- プロジェクトバージョン:tree-sitter-analyzer v1.6.1.
|
|
626
|
+
- プロジェクトバージョン:tree-sitter-analyzer v1.6.1.3
|
|
627
627
|
- テストファイル:BigService.java(1419行)、sample.py(256行)、MultiClass.java(54行)
|
|
628
628
|
|
|
629
629
|
---
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#质量保证)
|
|
8
8
|
[](#质量保证)
|
|
9
9
|
[](#质量保证)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
|
|
14
14
|
## 🚀 AI时代的企业级代码分析工具
|
|
@@ -747,7 +747,7 @@ uv run pytest tests/test_mcp_server_initialization.py -v
|
|
|
747
747
|
**验证环境:**
|
|
748
748
|
- 操作系统:Windows 10、macOS、Linux
|
|
749
749
|
- Python版本:3.10+
|
|
750
|
-
- 项目版本:tree-sitter-analyzer v1.6.1.
|
|
750
|
+
- 项目版本:tree-sitter-analyzer v1.6.1.3
|
|
751
751
|
- 测试文件:BigService.java (1419行)、sample.py (256行)、MultiClass.java (54行)
|
|
752
752
|
|
|
753
753
|
---
|