tunacode-cli 0.0.72__tar.gz → 0.0.75__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 tunacode-cli might be problematic. Click here for more details.
- tunacode_cli-0.0.75/.claude/commands/context-engineer/QA.md +106 -0
- tunacode_cli-0.0.75/.claude/commands/context-engineer/documentation-synthesis.md +114 -0
- tunacode_cli-0.0.75/.claude/commands/context-engineer/execute.md +176 -0
- tunacode_cli-0.0.75/.claude/commands/context-engineer/plan.md +112 -0
- tunacode_cli-0.0.75/.claude/commands/context-engineer/research.md +148 -0
- tunacode_cli-0.0.75/.github/workflows/publish.yml +80 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/PKG-INFO +1 -1
- tunacode_cli-0.0.75/documentation/configuration/environment-variables.md +195 -0
- tunacode_cli-0.0.75/documentation/configuration/tunacode-json-example.md +125 -0
- tunacode_cli-0.0.75/documentation/configuration/tunacode.json.example +37 -0
- tunacode_cli-0.0.75/documentation/tests/README.md +55 -0
- tunacode_cli-0.0.75/documentation/tests/characterization-testing.md +142 -0
- tunacode_cli-0.0.75/documentation/tests/mocking-strategies.md +340 -0
- tunacode_cli-0.0.75/documentation/tests/troubleshooting.md +219 -0
- tunacode_cli-0.0.75/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +504 -0
- tunacode_cli-0.0.75/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +451 -0
- tunacode_cli-0.0.75/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +461 -0
- tunacode_cli-0.0.75/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +399 -0
- tunacode_cli-0.0.75/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +222 -0
- tunacode_cli-0.0.75/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +126 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/pyproject.toml +2 -2
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl.py +2 -1
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/constants.py +1 -1
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/agent_config.py +7 -4
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/agent_helpers.py +1 -1
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/node_processor.py +35 -3
- tunacode_cli-0.0.75/src/tunacode/core/agents/agent_components/response_state.py +116 -0
- tunacode_cli-0.0.75/src/tunacode/core/agents/agent_components/state_transition.py +116 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/task_completion.py +10 -6
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/main.py +4 -4
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/prompts/system.md +11 -1
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/types.py +9 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_main.py +1 -1
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_prompt_changes_validation.py +1 -1
- tunacode_cli-0.0.72/.claude/settings.local.json +0 -50
- tunacode_cli-0.0.72/.taskmaster/CLAUDE.md +0 -417
- tunacode_cli-0.0.72/.taskmaster/config.json +0 -35
- tunacode_cli-0.0.72/.taskmaster/docs/prd.txt +0 -322
- tunacode_cli-0.0.72/.taskmaster/state.json +0 -6
- tunacode_cli-0.0.72/.taskmaster/tasks/task_001.txt +0 -14
- tunacode_cli-0.0.72/.taskmaster/tasks/task_002.txt +0 -11
- tunacode_cli-0.0.72/.taskmaster/tasks/task_003.txt +0 -11
- tunacode_cli-0.0.72/.taskmaster/tasks/task_004.txt +0 -11
- tunacode_cli-0.0.72/.taskmaster/tasks/task_005.txt +0 -11
- tunacode_cli-0.0.72/.taskmaster/tasks/task_006.txt +0 -54
- tunacode_cli-0.0.72/.taskmaster/tasks/tasks.json +0 -369
- tunacode_cli-0.0.72/.taskmaster/templates/example_prd.txt +0 -47
- tunacode_cli-0.0.72/CHANGELOG.md +0 -65
- tunacode_cli-0.0.72/planner.md +0 -29
- tunacode_cli-0.0.72/scripts/publish_to_pip.sh +0 -146
- tunacode_cli-0.0.72/src/tunacode/core/agents/agent_components/response_state.py +0 -13
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/MEMORY_ANCHOR_SPEC.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/NEXT_PR_RULES.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/antipattern-sniffer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/bug-context-analyzer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/code-synthesis-analyzer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/codebase-analyzer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/codebase-locator.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/context-synthesis.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/documentation-synthesis-qa.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/expert-debugger.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/phased-task-processor.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/prompt-engineer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/rapid-code-synthesis-qa.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/agents/tech-docs-maintainer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/anchors.json +0 -0
- {tunacode_cli-0.0.72/.claude/commands/context-engineer → tunacode_cli-0.0.75/.claude/commands/CE}/QA.md +0 -0
- {tunacode_cli-0.0.72/.claude/commands/context-engineer → tunacode_cli-0.0.75/.claude/commands/CE}/documentation-synthesis.md +0 -0
- {tunacode_cli-0.0.72/.claude/commands/context-engineer → tunacode_cli-0.0.75/.claude/commands/CE}/execute.md +0 -0
- {tunacode_cli-0.0.72/.claude/commands/context-engineer → tunacode_cli-0.0.75/.claude/commands/CE}/plan.md +0 -0
- {tunacode_cli-0.0.72/.claude/commands/context-engineer → tunacode_cli-0.0.75/.claude/commands/CE}/research.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/deploy.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/github-issue.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/phaser.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/smart-git.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/smells.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/work.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/commands/workflow.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/delta/2025-01-05-baseline.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/delta/fix-text-alignment-layout-task3.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/delta/task4_ui_formatting_fix.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/delta/v0.0.53_to_v0.0.54.diff +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/always-on-display-implementation.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/cli-json-recovery-incident.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/directory-caching-optimization.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/hatch-commands.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/model-updates-2025.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/onboarding-improvements.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/openai_tool_calling_evaluation.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/phase5-prompt-injection-system.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/slash-commands.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/uv-hatch-setup.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/development/uv-installer-updates.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/metadata/components.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/metadata/hotspots.txt +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/patterns/json_retry_implementation.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/qa/fix-agent-errors.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/qa/fix-publish-script.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/qa/fix-runtime-warnings.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/active/task_json_retry_implementation_summary_2025-07-24_13-05-40.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/active/task_standardize_ui_formatting_patterns_2025-07-23_20-43-28.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/default/spinner-enhancement-2025-08-07.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/esc-investigation/scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/phase5-recovery/scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/tech-docs-maintainer/scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_slash_command_system_implementation_2025-08-14_034024_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/code-synthesis-analyzer.lock +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/default.lock +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/esc-investigation.lock +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/phase5-recovery.lock +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/tech-docs-maintainer.lock +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/tech-docs-maintainer.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.claude/test_suite_issues_resolved.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.github/pull_request_template.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.github/scripts/check_file_size.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.github/workflows/lint.yml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.gitignore +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/.pre-commit-config.yaml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/CLAUDE.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/LICENSE +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/MANIFEST.in +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/TUNACODE.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/assets/tunacode_example.png +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/agent-inspo.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/how-tunacode-agent-works.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/main-agent-architecture.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/swepmini-example.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/agent/tunacode-tool-system.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/changelog/CHANGELOG.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75/documentation/configuration}/.env.example +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/configuration/config-file-example.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/configuration/local-models.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/configuration/logging-configuration.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/codebase-hygiene.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/command-system-architecture.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/creating-custom-commands.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/hatch-build-system.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/performance-optimizations.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/development/prompt-principles.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/ui/ui-architecture.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/user/commands.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/user/getting-started.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/documentation/user/tools.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/pytest.ini +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/check-file-length.sh +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/download_ripgrep.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/install_linux.sh +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/playwright_cache.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/setup_dev_env.sh +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/startup_timer.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/uninstall.sh +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/utils/vulture_whitelist.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/scripts/verify_dev_env.sh +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/base.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/debug.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/development.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/model.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/plan.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/system.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/template.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/todo.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/registry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/command.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/loader.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/processor.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/types.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/validator.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/template_shortcut.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/main.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/command_parser.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/output_display.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/configuration/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/configuration/defaults.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/configuration/models.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/configuration/settings.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/context.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/agents/utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/background/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/background/manager.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/code_index.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/llm/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/logging/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/logging/config.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/logging/formatters.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/logging/handlers.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/logging/logger.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/agent_setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/base.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/config_setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/coordinator.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/environment_setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/git_safety_setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/setup/template_setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/state.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/core/tool_handler.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/exceptions.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/prompts/system.md.bak +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/py.typed +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/services/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/services/mcp.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/setup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/templates/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/templates/loader.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/base.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/bash.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/exit_plan_mode.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/glob.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/file_filter.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/search_result.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/list_dir.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/present_plan.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/read_file.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/run_command.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/schema_assembler.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/todo.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/update_file.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/write_file.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tools/xml_helper.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tutorial/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tutorial/content.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tutorial/manager.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/tutorial/steps.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/completers.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/console.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/constants.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/decorators.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/input.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/keybindings.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/lexers.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/logging_compat.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/model_selector.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/output.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/panels.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/prompt_manager.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/tool_descriptions.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/tool_ui.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/ui/validators.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/api_key_validation.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/bm25.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/diff_utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/file_utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/import_cache.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/json_utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/message_utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/models_registry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/retry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/ripgrep.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/security.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/system.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/text_utils.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/token_counter.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/src/tunacode/utils/user_configuration.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/conftest.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/test_agent_creation.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/test_process_node.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/test_process_request.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/agent/test_tool_message_patching.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/background/test_background_edge_cases.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/background/test_cleanup.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_cancellation.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_creation.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_execution.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_cache_management.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_file_scanning.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_index_building.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_search_operations.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/commands/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/commands/test_init_command.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/conftest.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/README.md +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/__init__.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_acceptance.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_integration.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_loading.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/context/test_tunacode_logging.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_command_parsing.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_error_handling.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_input_handling.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_multiline_input.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_output_display_logic.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_repl_initialization.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/repl/test_session_flow.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/services/test_error_recovery.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/services/test_llm_routing.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/services/test_mcp_integration.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/services/test_service_lifecycle.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_agent_tracking.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_message_history.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_permissions.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_session_management.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_state_initialization.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/state/test_user_config.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_commands.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_grep.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_repl.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_async_ui.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_console_output.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_diff_display.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_prompt_rendering.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_spinner_messages.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/ui/test_tool_confirmations.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/utils/test_expand_file_refs.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/utils/test_file_operations.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/utils/test_git_commands.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/utils/test_token_counting.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/conftest.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_agent_output_formatting.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_command_parser_retry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_completion_detection.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_glob_phase3.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_json_concatenation_recovery.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_json_retry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_logging_config.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_onboarding_features.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_phase2_type_hints.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_plan_mode.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_prompt_injection.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_security.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_slash_commands_comprehensive.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_slash_commands_functional.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_slash_commands_integration.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_slash_commands_isolated.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_spinner_updates.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/test_tool_batching_retry.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tests/unit/test_constants_enums.py +0 -0
- {tunacode_cli-0.0.72 → tunacode_cli-0.0.75}/tools/emoji_cleaner.py +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: View, Bash(git:*), Bash(grep:*), Bash(jq:*), Bash(python:*), Bash(pytest:*), Bash(coverage:*), Bash(mypy:*), Bash(trivy:*), Bash(hadolint:*), Bash(dive:*), Bash(npm:*), Bash(lighthouse:*), Bash(kubectl:*), Bash(helm:*), Bash(curl:*), Bash(gh:*)
|
|
3
|
+
description: READ-ONLY QA focused FIRST on code-logic correctness of recent changes. Outlines issues/smells/antipatterns and risks. NO CODING, NO EDITS, NO FIXES.
|
|
4
|
+
writes-to: memory-bank/QA/
|
|
5
|
+
hard-guards:
|
|
6
|
+
- Do not modify source files
|
|
7
|
+
- Do not create commits/branches/PRs
|
|
8
|
+
- Do not run formatters/linters in write mode
|
|
9
|
+
- Produce findings & recommendations ONLY (outline, not code)
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# QA (Read-Only) — Code Logic First
|
|
13
|
+
|
|
14
|
+
Run a post-execution QA review for: $ARGUMENTS (topic OR path to plan/report)
|
|
15
|
+
|
|
16
|
+
## Initial Prompt (to user)
|
|
17
|
+
"I'm starting a **read-only** QA review focused on the **code logic of recent changes**. I will outline potential logic issues, smells/anti-patterns, and security concerns. **No coding or fixes will be performed.** Please provide a topic or the path to the plan/report under memory-bank/execute/."
|
|
18
|
+
|
|
19
|
+
## Strict Ordering
|
|
20
|
+
1) Locate artifacts → 2) Build change set (commit range & diff) → 3) Code-logic review (primary) → 4) Tests & contracts review → 5) Secondary scans (optional, read-only) → 6) Synthesize findings → 7) Save QA report
|
|
21
|
+
|
|
22
|
+
## Step 1 — Locate Inputs
|
|
23
|
+
- Resolve target by $ARGUMENTS:
|
|
24
|
+
- If path given: use it.
|
|
25
|
+
- If topic: select newest matching under `memory-bank/plan/` and `memory-bank/execute/`.
|
|
26
|
+
- Read FULLY (no offsets):
|
|
27
|
+
- Plan: `memory-bank/plan/...`
|
|
28
|
+
- Execution Log: `memory-bank/execute/*_log.md` (if exists)
|
|
29
|
+
- Execution Report: `memory-bank/execute/*_report.md` (if exists)
|
|
30
|
+
|
|
31
|
+
## Step 2 — Build the Change Set (read-only)
|
|
32
|
+
- Determine commit range:
|
|
33
|
+
- Start: from plan/log (`start_commit`) if available; else last tagged release or previous commit.
|
|
34
|
+
- End: current HEAD (or end_commit in report).
|
|
35
|
+
- Capture diffs:
|
|
36
|
+
- !`git diff --name-status <start>..<end>`
|
|
37
|
+
- !`git diff --stat <start>..<end>`
|
|
38
|
+
- !`git log --oneline <start>..<end>`
|
|
39
|
+
- Extract changed files (focus on src/ and tests/), group by module/package.
|
|
40
|
+
- For each changed file:
|
|
41
|
+
- !`git diff <start>..<end> -- <file>` (context for evidence referencing only)
|
|
42
|
+
|
|
43
|
+
## Step 3 — Code-Logic Review (PRIMARY)
|
|
44
|
+
Evaluate only the changed areas, emphasizing control/data flow correctness.
|
|
45
|
+
|
|
46
|
+
Checklist (apply per module/file/function changed):
|
|
47
|
+
- **Inputs & Preconditions**: validation, type assumptions, null/empty, boundary values.
|
|
48
|
+
- **Control Flow**: branching completeness, unreachable paths, fall-through, early returns.
|
|
49
|
+
- **Data Flow**: invariant preservation, mutation scope, shared state leakage, aliasing risks.
|
|
50
|
+
- **State & Transactions**: idempotency, atomicity, rollback behavior, race/concurrency hazards.
|
|
51
|
+
- **Error Handling**: specific exceptions vs broad catches, retry/backoff, dead-letter paths.
|
|
52
|
+
- **Contracts**: pre/post-conditions, schema compatibility (request/response, DTOs), versioning.
|
|
53
|
+
- **Time/Locale**: timezones, monotonic clocks, DST, parsing/formatting stability.
|
|
54
|
+
- **Resource Hygiene**: file/conn lifecycle, timeouts, cancellation propagation.
|
|
55
|
+
- **Edge Cases**: empty sets, max sizes, pagination, partial failure scenarios.
|
|
56
|
+
- **Public Surface**: backward compatibility, OpenAPI/types alignment.
|
|
57
|
+
|
|
58
|
+
## Step 4 — Tests & Contracts (READ-ONLY)
|
|
59
|
+
- Map **each changed public function/endpoint** to test coverage:
|
|
60
|
+
- !`pytest -q` (read result), !`coverage run -m pytest && coverage report --format=markdown`
|
|
61
|
+
- Identify **missing cases**: error branches, boundary conditions, property invariants, mutation tests.
|
|
62
|
+
- Contract/API checks (if applicable):
|
|
63
|
+
- OpenAPI/JSON schema drift vs implementations.
|
|
64
|
+
- Client compatibility (breaking field/enum changes).
|
|
65
|
+
|
|
66
|
+
## Step 5 — Secondary Scans (Optional, Read-Only)
|
|
67
|
+
- Static/security summaries (no write/auto-fix):
|
|
68
|
+
- `mypy` (report only), `bandit -r . -q || true`, `pip-audit` / `npm audit --json | jq`.
|
|
69
|
+
- Container & deploy context (if relevant): `hadolint`, `trivy`, `dive` summaries.
|
|
70
|
+
- Web (if staged): brief Lighthouse JSON summary for **regressions** only.
|
|
71
|
+
|
|
72
|
+
## Step 6 — Write QA Report
|
|
73
|
+
Create `memory-bank/QA/YYYY-MM-DD_HH-MM-SS_<topic>_qa.md` with:
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
title: "<topic> – QA Report (Code Logic First)"
|
|
77
|
+
phase: QA
|
|
78
|
+
date: "{{timestamp}}"
|
|
79
|
+
owner: "{{agent_or_user}}"
|
|
80
|
+
sources:
|
|
81
|
+
plan: "memory-bank/plan/<file>.md"
|
|
82
|
+
execution_log: "memory-bank/execute/<logfile>.md"
|
|
83
|
+
execution_report: "memory-bank/execute/<reportfile>.md"
|
|
84
|
+
commit_range: "<start>..<end>"
|
|
85
|
+
policy: "READ-ONLY QA — NO CODING OR CHANGES"
|
|
86
|
+
scope: "Changed code only (logic-first), plus impacted contracts/tests"
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 0. Summary Verdict
|
|
90
|
+
- Overall: ✅ Accept | ⚠️ Accept w/ Conditions | ❌ Reject
|
|
91
|
+
- Top logic risks (3–5 bullets)
|
|
92
|
+
- Required follow-ups (non-prescriptive)
|
|
93
|
+
|
|
94
|
+
## 1. Change Summary (What changed)
|
|
95
|
+
- Commit range: <start>..<end>
|
|
96
|
+
- Diffstat: <files/insertions/deletions>
|
|
97
|
+
- Modules touched:
|
|
98
|
+
- `<pkg/module>` — files changed: n (list)
|
|
99
|
+
- User-visible behavior changes (from plan/report): bullets
|
|
100
|
+
|
|
101
|
+
## 2. Code-Logic Findings (by severity)
|
|
102
|
+
> Each item includes **Evidence (file:lines, commit)**, **Impact**, **Likelihood**, **Suggested Remediation (outline only)**, **Owner**, **Due-by**.
|
|
103
|
+
|
|
104
|
+
### Critical
|
|
105
|
+
- [CR-1] <title> — Evidence: `<file>#Lx-Ly` (commit `<sha>`), Impact: …, Likelihood: …
|
|
106
|
+
### High
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: View, Bash(git:*), Bash(jq:*), Bash(curl:*), Bash(gh:*), Bash(python:*), Bash(npm:*), Bash(kubectl:*), Bash(helm:*)
|
|
3
|
+
description: Synthesizes final documentation from Research → Plan → Execute → QA. Produces a clean developer-facing doc with context, decisions, and next steps.
|
|
4
|
+
writes-to: memory-bank/documentation
|
|
5
|
+
hard-guards:
|
|
6
|
+
- Do not modify or rewrite research/plan/execute/QA artifacts
|
|
7
|
+
- Produce a new synthesis doc only
|
|
8
|
+
- No coding, fixes, or commits
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Documentation Synthesis (Final)
|
|
12
|
+
|
|
13
|
+
Create synthesized documentation for: $ARGUMENTS
|
|
14
|
+
(topic OR path to QA report)
|
|
15
|
+
|
|
16
|
+
## Initial Prompt
|
|
17
|
+
"I'm creating a **final documentation synthesis** that integrates Research, Plan, Execution, and QA. This is meant to prep the next developer to continue the work smoothly."
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 1 — Locate Inputs
|
|
22
|
+
- If `$ARGUMENTS` is a topic: find the newest chain in memory-bank (`research/`, `plan/`, `execute/`, `QA/`).
|
|
23
|
+
- If `$ARGUMENTS` is a path to QA report: trace its linked plan, log, report, and research.
|
|
24
|
+
- Always read FULLY (no offsets):
|
|
25
|
+
- Research doc
|
|
26
|
+
- Plan doc
|
|
27
|
+
- Execution Log
|
|
28
|
+
- Execution Report
|
|
29
|
+
- QA Report
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Step 2 — Extract Metadata
|
|
34
|
+
- Topic, dates, owners from each doc.
|
|
35
|
+
- Commit ranges (from plan + execute).
|
|
36
|
+
- Verdict (from QA).
|
|
37
|
+
- Key tags, milestones, decisions.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 3 — Write Synthesis Doc
|
|
42
|
+
Create `memory-bank/documentation/YYYY-MM-DD_HH-MM-SS_<topic>_synthesis.md`:
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
---
|
|
46
|
+
title: "<topic> – Documentation Synthesis"
|
|
47
|
+
phase: Documentation
|
|
48
|
+
date: "{{timestamp}}"
|
|
49
|
+
owner: "{{agent_or_user}}"
|
|
50
|
+
sources:
|
|
51
|
+
research: "memory-bank/research/<file>.md"
|
|
52
|
+
plan: "memory-bank/plan/<file>.md"
|
|
53
|
+
execute_log: "memory-bank/execute/<log>.md"
|
|
54
|
+
execute_report: "memory-bank/execute/<report>.md"
|
|
55
|
+
qa: "memory-bank/QA/<file>.md"
|
|
56
|
+
commit_range: "<start>..<end>"
|
|
57
|
+
verdict: "<QA verdict>"
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
# Documentation Synthesis – <topic>
|
|
61
|
+
|
|
62
|
+
## 0. Executive Summary
|
|
63
|
+
- One-paragraph overview of what was done and why
|
|
64
|
+
- QA verdict + top risks
|
|
65
|
+
- Next action for future dev
|
|
66
|
+
|
|
67
|
+
## 1. Context & Research
|
|
68
|
+
- Problem statement (from research)
|
|
69
|
+
- Key findings & gaps identified
|
|
70
|
+
- Linked references (permalinks, docs)
|
|
71
|
+
|
|
72
|
+
## 2. Plan Highlights
|
|
73
|
+
- Scope & assumptions
|
|
74
|
+
- Major milestones
|
|
75
|
+
- Deliverables & acceptance criteria
|
|
76
|
+
- Risks & mitigations
|
|
77
|
+
|
|
78
|
+
## 3. Execution Summary
|
|
79
|
+
- Commit range: `<start>..<end>`
|
|
80
|
+
- Work done by milestone
|
|
81
|
+
- Key tests, builds, deployments
|
|
82
|
+
- Deviations from plan (if any)
|
|
83
|
+
- Success criteria achieved vs missed
|
|
84
|
+
|
|
85
|
+
## 4. QA Findings
|
|
86
|
+
- Overall verdict: ✅ / ⚠️ / ❌
|
|
87
|
+
- Critical/high issues summary
|
|
88
|
+
- Smells & anti-patterns observed
|
|
89
|
+
- Ship conditions (if ⚠️)
|
|
90
|
+
|
|
91
|
+
## 5. Lessons Learned
|
|
92
|
+
- What worked well
|
|
93
|
+
- What caused friction
|
|
94
|
+
- Reusable patterns / gotchas
|
|
95
|
+
|
|
96
|
+
## 6. Next Steps for Developers
|
|
97
|
+
- Open follow-ups / tech debt
|
|
98
|
+
- Areas needing re-review
|
|
99
|
+
- Suggested tasks for next cycle
|
|
100
|
+
- Monitoring/observability items to watch
|
|
101
|
+
|
|
102
|
+
## 7. References
|
|
103
|
+
- Direct links to all artifacts
|
|
104
|
+
- GitHub permalinks (commits, files)
|
|
105
|
+
- Tickets/Issues
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
DEPLOY 3 paralel SUBAGENTS at most or one IF needed you can also you 1 or 2 use you best judgment
|
|
109
|
+
|
|
110
|
+
- codebase-analyzer to outline your code changes in relation to the codebase
|
|
111
|
+
|
|
112
|
+
- antipattern-sniffer any new code MUST be evaluted by this subagent
|
|
113
|
+
|
|
114
|
+
- context-synthesis a agent to gather context as needed
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Edit, View, Bash(git:*), Bash(python:*), Bash(pytest:*), Bash(mypy:*), Bash(black:*), Bash(coverage:*), Bash(mutmut:*), Bash(docker:*), Bash(trivy:*), Bash(hadolint:*), Bash(dive:*), Bash(npm:*), Bash(kubectl:*), Bash(helm:*), Bash(lighthouse:*), Bash(jq:*), Bash(curl:*), Bash(gh:*)
|
|
3
|
+
description: Executes a plan with gated checks, atomic commits, build/package/deploy, full validation, and immutable execution logs
|
|
4
|
+
writes-to: memory-bank/execute/
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Execute Plan
|
|
8
|
+
|
|
9
|
+
Execute the implementation according to: $ARGUMENTS (path to a Plan doc)
|
|
10
|
+
|
|
11
|
+
## Initial Setup (prompt)
|
|
12
|
+
"I'm ready to execute. Please provide the path to the Plan document in memory-bank/plan/."
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Strict Ordering
|
|
17
|
+
1) Read plan FULLY → 2) Pre-flight checks → 3) Implement by tasks → 4) Validate gates → 5) Package/Deploy → 6) Post-deploy verification → 7) Persist log
|
|
18
|
+
|
|
19
|
+
## Step 1 — Read Plan & Lock Context
|
|
20
|
+
- Read FULL `memory-bank/plan/<file>.md`.
|
|
21
|
+
- Extract: milestones, tasks (IDs), acceptance tests, gates, rollout, success metrics.
|
|
22
|
+
|
|
23
|
+
## Step 2 — Pre-Flight Snapshot
|
|
24
|
+
Record into execution log header:
|
|
25
|
+
- Active branch: !`git branch --show-current`
|
|
26
|
+
- ROLL BACK POINT: YOU MUST CREATE A GIT COMIMT WITH A ROLLBACK POINT.
|
|
27
|
+
|
|
28
|
+
Create `memory-bank/execute/YYYY-MM-DD_HH-MM-SS_<topic>.md`:
|
|
29
|
+
|
|
30
|
+
You MUST keep this SINGULAR documen in synch as you work
|
|
31
|
+
|
|
32
|
+
DO NOT MAKE MULTIPLE DOCUMENT WILL BE YOUR LOG FOR THE EXCUTION
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
title: "<topic> – Execution Log"
|
|
36
|
+
phase: Execute
|
|
37
|
+
date: "{{timestamp}}"
|
|
38
|
+
owner: "{{agent_or_user}}"
|
|
39
|
+
plan_path: "memory-bank/plan/<file>.md"
|
|
40
|
+
start_commit: "<short_sha>"
|
|
41
|
+
env: {target: "local|staging|prod", notes: ""}
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Pre-Flight Checks
|
|
45
|
+
- DoR satisfied?
|
|
46
|
+
- Access/secrets present?
|
|
47
|
+
- Fixtures/data ready?
|
|
48
|
+
- If any **NO** → abort and append **Blockers** section.
|
|
49
|
+
|
|
50
|
+
## Step 3 — Task-By-Task Implementation (Atomic)
|
|
51
|
+
For each Task (in plan order):
|
|
52
|
+
1. Create/confirm rollback
|
|
53
|
+
2. Implement minimal slice aligned with acceptance tests
|
|
54
|
+
3. Run local quality bar
|
|
55
|
+
4. Commit atomic change with Task ID in message
|
|
56
|
+
5. Update **Execution Log** with:
|
|
57
|
+
- Files touched, commands, outputs (trimmed), coverage deltas, notes
|
|
58
|
+
|
|
59
|
+
## Step 4 — Quality Gates (Enforced)
|
|
60
|
+
- Gate C (Pre-merge):
|
|
61
|
+
- Tests pass
|
|
62
|
+
- Coverage ≥ plan threshold (e.g., 90%+ new/changed lines)
|
|
63
|
+
- Type checks clean
|
|
64
|
+
- Linters OK
|
|
65
|
+
|
|
66
|
+
- If any gate FAILS → record failure + remediation then dont roll back just stop and ask the user for next steps
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## Step 5 — Permalinks & Artifacts
|
|
71
|
+
- If commits pushed:
|
|
72
|
+
- !`gh repo view --json owner,name`
|
|
73
|
+
- Attach permalinks to PRs/commits and to artifacts (build logs, coverage HTML)
|
|
74
|
+
- Persist artifact pointers in **Execution Log**.
|
|
75
|
+
|
|
76
|
+
## Execution Log Template (append as you go)
|
|
77
|
+
### Task <ID> – <Summary>
|
|
78
|
+
- Commit: `<short_sha>`
|
|
79
|
+
- Commands:
|
|
80
|
+
- `<cmd>` → `<trimmed output>`
|
|
81
|
+
- Tests/coverage:
|
|
82
|
+
- `<result>`
|
|
83
|
+
- Notes/decisions:
|
|
84
|
+
- `<why>`
|
|
85
|
+
|
|
86
|
+
### Gate Results
|
|
87
|
+
- Gate C: pass/fail + evidence
|
|
88
|
+
- Security: pass/fail + evidence
|
|
89
|
+
- Perf/PWA (if applicable): metrics
|
|
90
|
+
|
|
91
|
+
### Deployment Notes
|
|
92
|
+
- Staging → Prod timestamps
|
|
93
|
+
- Smoke/E2E results
|
|
94
|
+
- SLO/SLA snapshot
|
|
95
|
+
|
|
96
|
+
### Post-Deploy Verification
|
|
97
|
+
- Error rates, latencies, dashboards screenshots/links
|
|
98
|
+
- On-call runbook links
|
|
99
|
+
|
|
100
|
+
### Follow-ups
|
|
101
|
+
- TODOs, tech debt, docs to update
|
|
102
|
+
|
|
103
|
+
## Success Criteria (auto-check)
|
|
104
|
+
- All planned gates passed
|
|
105
|
+
- Rollout completed or rollback clean
|
|
106
|
+
- KPIs/SLOs within thresholds
|
|
107
|
+
- Execution log saved to `memory-bank/execute/` and linked back to Plan
|
|
108
|
+
|
|
109
|
+
# Execution Report – <topic>
|
|
110
|
+
|
|
111
|
+
**Date:** {{date}}
|
|
112
|
+
**Plan Source:** <plan file>
|
|
113
|
+
**Execution Log:** <log file>
|
|
114
|
+
|
|
115
|
+
## Overview
|
|
116
|
+
- Environment: local|staging|prod
|
|
117
|
+
- Start commit: <sha>
|
|
118
|
+
- End commit: <sha>
|
|
119
|
+
- Duration: Xh Ym
|
|
120
|
+
- Branch: <branch>
|
|
121
|
+
- Release: <tag|helm release>
|
|
122
|
+
|
|
123
|
+
## Outcomes
|
|
124
|
+
- Tasks attempted: N
|
|
125
|
+
- Tasks completed: N
|
|
126
|
+
- Rollbacks: Y/N
|
|
127
|
+
- Final status: ✅ Success | ❌ Failure
|
|
128
|
+
|
|
129
|
+
## Gate Results
|
|
130
|
+
- Tests: pass/fail summary
|
|
131
|
+
- Coverage: X% (target Y%)
|
|
132
|
+
- Type checks: pass/fail
|
|
133
|
+
- Security scans: # issues
|
|
134
|
+
- Perf/PWA scores: numbers
|
|
135
|
+
|
|
136
|
+
## Issues & Resolutions
|
|
137
|
+
- <task ID> – <issue> → <fix>
|
|
138
|
+
- <task ID> – <issue> → <rollback>
|
|
139
|
+
|
|
140
|
+
## Deployment Notes
|
|
141
|
+
- Staging deploy: success/fail
|
|
142
|
+
- Prod deploy: success/fail
|
|
143
|
+
- Smoke/E2E results
|
|
144
|
+
- Observability checks
|
|
145
|
+
|
|
146
|
+
## Success Criteria
|
|
147
|
+
- Which criteria met vs missed
|
|
148
|
+
|
|
149
|
+
## Next Steps
|
|
150
|
+
- Follow-ups, tech debt, docs to update
|
|
151
|
+
|
|
152
|
+
## References
|
|
153
|
+
- Plan doc
|
|
154
|
+
- Execution log
|
|
155
|
+
- GitHub permalinks
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
CLEARLY SUMMARIZE WHA YOU DID AND TOUCHED
|
|
159
|
+
|
|
160
|
+
YOU ARE CODING AS YOU UPDATE THIS DOCUMENT
|
|
161
|
+
|
|
162
|
+
SAVE THE DOCUMENT YOU MUST SAVE IN THE CORRECT FORMAT FOR THE NEXT DEV
|
|
163
|
+
|
|
164
|
+
ALWAYS FOLLOW BEST PRACTISES
|
|
165
|
+
|
|
166
|
+
THIS IS THE MOST IMPORTANT PART OF THIS PROMPT:MAKE THE DOCUMENT AND UPDATE AS YOU WORK.
|
|
167
|
+
|
|
168
|
+
AFTER THE WORK IS DONE
|
|
169
|
+
|
|
170
|
+
DEPLOY 3 SUBAGENTS at most
|
|
171
|
+
|
|
172
|
+
- codebase-analyzer to outline your code changes in relation to the codebase
|
|
173
|
+
|
|
174
|
+
- antipattern-sniffer any new code MUST be evaluted by this subagent
|
|
175
|
+
|
|
176
|
+
- context-synthesis a agent to gather context as needed
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Edit, View, Bash(git:*), Bash(python:*), Bash(pytest:*), Bash(mypy:*), Bash(black:*), Bash(npm:*), Bash(jq:*)
|
|
3
|
+
description: Generates a concrete implementation plan from a research doc, with milestones, tasks, gates, risks, DoD/DoR, and acceptance tests
|
|
4
|
+
writes-to: memory-bank/plan/
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan From Research
|
|
8
|
+
|
|
9
|
+
Create an execution-ready implementation plan for: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Initial Setup (prompt)
|
|
12
|
+
"I'm ready to plan the work. Please provide either the path to the research document in memory-bank/research/ or a short topic to find it."
|
|
13
|
+
|
|
14
|
+
## Strict Ordering
|
|
15
|
+
1) Read research doc FULLY → 2) Validate freshness → 3) Plan milestones/tasks → 4) Define gates/criteria → 5) Persist plan
|
|
16
|
+
|
|
17
|
+
## Step 1 — Input & Context
|
|
18
|
+
- If path provided: Read FULL file (no offsets) from `memory-bank/research/`.
|
|
19
|
+
- If topic provided: grep/select the latest `memory-bank/research/*topic*.md` and read FULLY.
|
|
20
|
+
- Extract: scope, constraints, key files, unresolved questions, suggested solutions, references.
|
|
21
|
+
|
|
22
|
+
## Step 2 — Freshness & Diff Check
|
|
23
|
+
- Capture current git state:
|
|
24
|
+
- !`git rev-parse --short HEAD`
|
|
25
|
+
- !`git status --porcelain`
|
|
26
|
+
- If code changed since research doc commit:
|
|
27
|
+
- Append **"Drift Detected"** note and mark items requiring re-verification.
|
|
28
|
+
|
|
29
|
+
## Step 3 — Planning Decomposition
|
|
30
|
+
Create `memory-bank/plan/YYYY-MM-DD_HH-MM-SS_<topic>.md` with this exact structure:
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
title: "<topic> – Plan"
|
|
34
|
+
phase: Plan
|
|
35
|
+
date: "{{timestamp}}"
|
|
36
|
+
owner: "{{agent_or_user}}"
|
|
37
|
+
parent_research: "memory-bank/research/<file>.md"
|
|
38
|
+
git_commit_at_plan: "<short_sha>"
|
|
39
|
+
tags: [plan, <topic>]
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Goal
|
|
43
|
+
- Crisp statement of outcomes and non-goals.
|
|
44
|
+
- MOST IMPORTANT SETANCE IN THIS PROMPT: WE MUST CLARIFY THE SINGULAR GOAL AND FOCUS ON EXCUTION.
|
|
45
|
+
|
|
46
|
+
## Scope & Assumptions
|
|
47
|
+
- In / Out of scope
|
|
48
|
+
- Explicit assumptions & constraints
|
|
49
|
+
|
|
50
|
+
## Deliverables (DoD)
|
|
51
|
+
- Artifacts with measurable acceptance criteria (tests, docs, endpoints, CLIs, dashboards).
|
|
52
|
+
|
|
53
|
+
## Readiness (DoR)
|
|
54
|
+
- Preconditions, data, access, envs, fixtures required to start.
|
|
55
|
+
|
|
56
|
+
## Milestones
|
|
57
|
+
- M1: Architecture & skeleton
|
|
58
|
+
- M2: Core feature(s)
|
|
59
|
+
- M3: Tests & hardening
|
|
60
|
+
- M4: Packaging & deploy
|
|
61
|
+
- M5: Observability & docs
|
|
62
|
+
|
|
63
|
+
## Work Breakdown (Tasks)
|
|
64
|
+
- Task ID, summary, owner, estimate, dependencies, target milestone
|
|
65
|
+
- For each task: **Acceptance Tests** (bullet list), **Files/Interfaces** touched
|
|
66
|
+
|
|
67
|
+
## Risks & Mitigations
|
|
68
|
+
- Risk → Impact → Likelihood → Mitigation → Trigger
|
|
69
|
+
|
|
70
|
+
## Test Strategy
|
|
71
|
+
- Unit/Property/Mutation
|
|
72
|
+
- Integration/Contract
|
|
73
|
+
- E2E/Smoke/Perf (thresholds)
|
|
74
|
+
|
|
75
|
+
## Security & Compliance
|
|
76
|
+
- Secret handling, authZ/authN, threat model notes, scans to run
|
|
77
|
+
|
|
78
|
+
## Observability
|
|
79
|
+
- Metrics, logs, traces to emit; dashboards to add/modify
|
|
80
|
+
|
|
81
|
+
## Rollout Plan
|
|
82
|
+
- Env order, migration steps, feature flags, rollback triggers
|
|
83
|
+
|
|
84
|
+
## Validation Gates
|
|
85
|
+
- Gate A (Design sign-off)
|
|
86
|
+
- Gate B (Test plan sign-off)
|
|
87
|
+
- Gate C (Pre-merge quality bar)
|
|
88
|
+
- Gate D (Pre-deploy checks)
|
|
89
|
+
|
|
90
|
+
## Success Metrics
|
|
91
|
+
- KPIs / SLOs, error budgets, perf ceilings
|
|
92
|
+
|
|
93
|
+
## References
|
|
94
|
+
- Research doc sections, GitHub permalinks, tickets
|
|
95
|
+
|
|
96
|
+
## Agents
|
|
97
|
+
|
|
98
|
+
- you can deploy maxium TWO subagents
|
|
99
|
+
- context-synthesis subagent
|
|
100
|
+
- codebase-analyzer subagent
|
|
101
|
+
|
|
102
|
+
## Final Gate
|
|
103
|
+
- Output a short summary with: plan path, milestones count, gates, and next command hint: `/execute "<plan_path>"`
|
|
104
|
+
|
|
105
|
+
- this mustbe be a singualr focused plan, we cna have ONE other option in the same document but in general we MUST have a singular focused plan on execution.
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
DO NOT CODE YOU WILL BE PUNISHED FOR CODING
|
|
109
|
+
|
|
110
|
+
SAVE THE DOCUMENT YOU MUST SAVE IN THE CORRECT FORMAT FOR THE NEXT DEV
|
|
111
|
+
|
|
112
|
+
ALWAYS FOLLOW BEST PRACTISES
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Research Codebase
|
|
2
|
+
|
|
3
|
+
You are tasked with conducting comprehensive research across the codebase to answer user questions by spawning parallel sub-agents and synthesizing their findings. All research documents must be stored in the `memory-bank/research/` directory, following the YAML frontmatter and content structure below.
|
|
4
|
+
|
|
5
|
+
## Initial Setup:
|
|
6
|
+
|
|
7
|
+
When this command is invoked, respond with:
|
|
8
|
+
```
|
|
9
|
+
I'm ready to research the codebase. Please provide your research question or area of interest, and I'll analyze it thoroughly by exploring relevant components and connections.
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Then wait for the user's research query.
|
|
13
|
+
|
|
14
|
+
## Steps to follow after receiving the research query:
|
|
15
|
+
|
|
16
|
+
1. **Read any directly mentioned files first:**
|
|
17
|
+
- If the user mentions specific files (tickets, docs, JSON), read them FULLY first
|
|
18
|
+
- **IMPORTANT**: Use the Read tool WITHOUT limit/offset parameters to read entire files
|
|
19
|
+
- **CRITICAL**: Read these files yourself in the main context before spawning any sub-tasks
|
|
20
|
+
- This ensures you have full context before decomposing the research
|
|
21
|
+
|
|
22
|
+
2. **Analyze and decompose the research question:**
|
|
23
|
+
- Break down the user's query into composable research areas
|
|
24
|
+
- Take time to ultrathink about the underlying patterns, connections, and architectural implications the user might be seeking
|
|
25
|
+
- Identify specific components, patterns, or concepts to investigate
|
|
26
|
+
- Create a research plan using TodoWrite to track all subtasks
|
|
27
|
+
- Consider which directories, files, or architectural patterns are relevant
|
|
28
|
+
|
|
29
|
+
3. **Spawn parallel sub-agent tasks for comprehensive research:**
|
|
30
|
+
- Strictly limit to a maximum of 3 Task agents per research query. You may not spawn more than two sub-agents for any research query, regardless of the number of aspects or subtasks. This is a hard limit.
|
|
31
|
+
- Only reference files and resources that are part of the current codebase or workspace. Do not reference or include any files, tickets, or resources that are external or not present in this workspace.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
YOU MUST DEPLOY THESE 3 IN PARELLEL
|
|
35
|
+
YOU WILL BE PUNISHED FOR NOT DEPLOYING SUBAGENT
|
|
36
|
+
|
|
37
|
+
**For codebase research:**
|
|
38
|
+
- Use the **codebase-locator** agent to find WHERE files and components live
|
|
39
|
+
- Use the **codebase-analyzer** agent to understand HOW specific code works
|
|
40
|
+
- Use the **context-synthesis** agent to find context as needed
|
|
41
|
+
|
|
42
|
+
The key is to use these agents intelligently:
|
|
43
|
+
- Start with locator agents to find what exists
|
|
44
|
+
- Then use analyzer agents on the most promising findings
|
|
45
|
+
- Run agents in parallel only if they are searching for different things, and never exceed two concurrent sub-agents.
|
|
46
|
+
- Each agent knows its job - just tell it what you're looking for
|
|
47
|
+
- Don't write detailed prompts about HOW to search - the agents already know
|
|
48
|
+
|
|
49
|
+
4. **Wait for all sub-agents to complete and synthesize findings:**
|
|
50
|
+
- IMPORTANT: Wait for ALL sub-agent tasks to complete before proceeding
|
|
51
|
+
- Compile all sub-agent results (both codebase and thoughts findings)
|
|
52
|
+
- Prioritize live codebase findings as primary source of truth
|
|
53
|
+
- Use thoughts/ findings as supplementary historical context
|
|
54
|
+
- Connect findings across different components
|
|
55
|
+
- Include specific file paths and line numbers for reference
|
|
56
|
+
- Verify all thoughts/ paths are correct (e.g., thoughts/allison/ not thoughts/shared/ for personal files)
|
|
57
|
+
- Highlight patterns, connections, and architectural decisions
|
|
58
|
+
- Answer the user's specific questions with concrete evidence
|
|
59
|
+
|
|
60
|
+
5. **Gather metadata for the research document:**
|
|
61
|
+
- Filename: `memory-bank/research/YYYY-MM-DD_HH-MM-SS_topic.md`
|
|
62
|
+
|
|
63
|
+
6. **Generate research document:**
|
|
64
|
+
- Use the metadata gathered in step 4
|
|
65
|
+
- Structure the document in the following format and store in `memory-bank/research/`:
|
|
66
|
+
```markdown
|
|
67
|
+
# Research – <TASK_NAME>
|
|
68
|
+
**Date:** {{date}}
|
|
69
|
+
**Owner:** {{agent or user}}
|
|
70
|
+
**Phase:** Research
|
|
71
|
+
|
|
72
|
+
## Goal
|
|
73
|
+
Summarize all *existing knowledge* before any new work.
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
- Additional Search:
|
|
77
|
+
- `grep -ri "<term>" .claude/`
|
|
78
|
+
|
|
79
|
+
## Findings
|
|
80
|
+
- Relevant files & why they matter:
|
|
81
|
+
- `<file>` → `<reason>`
|
|
82
|
+
- `<file>` → `<reason>`
|
|
83
|
+
|
|
84
|
+
## Key Patterns / Solutions Found
|
|
85
|
+
- `<pattern>`: short description, relevance
|
|
86
|
+
|
|
87
|
+
## Knowledge Gaps
|
|
88
|
+
- Missing context or details for next phase
|
|
89
|
+
|
|
90
|
+
## References
|
|
91
|
+
- Links or filenames for full review
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
7. **Add GitHub permalinks (if applicable):**
|
|
95
|
+
- Check if on main branch or if commit is pushed: `git branch --show-current` and `git status`
|
|
96
|
+
- If on main/master or pushed, generate GitHub permalinks:
|
|
97
|
+
- Get repo info: `gh repo view --json owner,name`
|
|
98
|
+
- Create permalinks: `https://github.com/{owner}/{repo}/blob/{commit}/{file}#L{line}`
|
|
99
|
+
- Replace local file references with permalinks in the document
|
|
100
|
+
- For research documents, update references to use `memory-bank/research/` paths where applicable.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
9. **Handle follow-up questions:**
|
|
105
|
+
- If the user has follow-up questions, append to the same research document
|
|
106
|
+
- Update the frontmatter fields `last_updated` and `last_updated_by` to reflect the update
|
|
107
|
+
- Add `last_updated_note: "Added follow-up research for [brief description]"` to frontmatter
|
|
108
|
+
- Add a new section: `## Follow-up Research [timestamp]`
|
|
109
|
+
- Spawn new sub-agents as needed for additional investigation
|
|
110
|
+
- Continue updating the document and syncing
|
|
111
|
+
|
|
112
|
+
## Important notes:
|
|
113
|
+
- Always use parallel Task agents to maximize efficiency and minimize context usage
|
|
114
|
+
- Always run fresh codebase research - never rely solely on existing research documents
|
|
115
|
+
- The thoughts/ directory provides historical context to supplement live findings
|
|
116
|
+
- Focus on finding concrete file paths and line numbers for developer reference
|
|
117
|
+
- Research documents should be self-contained with all necessary context
|
|
118
|
+
- Each sub-agent prompt should be specific and focused on read-only operations
|
|
119
|
+
- Consider cross-component connections and architectural patterns
|
|
120
|
+
- Include temporal context (when the research was conducted)
|
|
121
|
+
- Link to GitHub when possible for permanent references
|
|
122
|
+
- Keep the main agent focused on synthesis, not deep file reading
|
|
123
|
+
- Encourage sub-agents to find examples and usage patterns, not just definitions
|
|
124
|
+
- Explore all of thoughts/ directory, not just research subdirectory
|
|
125
|
+
- **File reading**: Always read mentioned files FULLY (no limit/offset) before spawning sub-tasks
|
|
126
|
+
- **Critical ordering**: Follow the numbered steps exactly
|
|
127
|
+
- ALWAYS read mentioned files first before spawning sub-tasks (step 1)
|
|
128
|
+
- ALWAYS wait for all sub-agents to complete before synthesizing (step 4)
|
|
129
|
+
- ALWAYS gather metadata before writing the document (step 5 before step 6)
|
|
130
|
+
- NEVER write the research document with placeholder values
|
|
131
|
+
- **Path handling**: The thoughts/searchable/ directory contains hard links for searching
|
|
132
|
+
- Always document paths by removing ONLY "searchable/" - preserve all other subdirectories
|
|
133
|
+
|
|
134
|
+
- NEVER change allison/ to shared/ or vice versa - preserve the exact directory structure
|
|
135
|
+
- This ensures paths are correct for editing and navigation
|
|
136
|
+
- **Frontmatter consistency**:
|
|
137
|
+
- Always include frontmatter at the beginning of research documents
|
|
138
|
+
- Keep frontmatter fields consistent across all research documents
|
|
139
|
+
- Update frontmatter when adding follow-up research
|
|
140
|
+
- Use snake_case for multi-word field names (e.g., `last_updated`, `git_commit`)
|
|
141
|
+
- Tags should be relevant to the research topic and components studied
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
DO NOT CODE YOU WILL BE PUNISHED FOR CODING
|
|
145
|
+
|
|
146
|
+
SAVE THE DOCUMENT YOU MUST SAVE IN THE CORRECT FORMAT FOR THE NEXT DEV
|
|
147
|
+
|
|
148
|
+
ALWAYS FOLLOW BEST PRACTISES
|