Problem: Multiple functions expect next_steps as a list, but agents naturally want to provide strings.
Affected Functions:
create_snapshot(title, context, next_steps: list)in snapshots.pygenerate_snapshot_document(next_steps: List[str])in snapshot_templates.pycreate_seamless_handoff(next_steps: list)in snapshots.pycreate_snapshot_legacy(next_steps: list)in snapshots.py
User Requirement: Change to accept strings, let agents number them if they want.
Problem: Multiple functions with confusing signatures that don't match agent expectations.
Affected Functions:
generate_handoff_prompt_output(handoff_content: str)- only takes content, not parametersgenerate_handoff_prompt_only(work_completed: List[str], ...)- takes many parametersgenerate_agent_handoff_prompt_extended(task_description, snapshot_content, ...)- different signaturegenerate_session_end_prompt(task_description, brief_context)- minimal parameters
User Requirement: Rationalize to have intuitive signatures matching agent expectations.
Timestamp Functions:
get_current_timestamp()in git_operations.pyget_file_timestamp()in git_operations.pyget_precise_timestamp()in git_operations.py (mentioned in dev_tools)get_ntp_timestamp()in git_operations.py (mentioned in dev_tools)
Commit Functions:
quick_commit_push()in git_operations.pyquick_commit_push_wrapper()in hotkeys.py (wrapper around the above)quick_commit_and_push()in dev_tools.py (imports from git_operations)emergency_commit()in hotkeys.py (calls quick_commit_push)
Status Functions:
get_project_status()in hotkeys.pyget_workspace_status()in dev_tools.pyquick_status_check()in hotkeys.pydisplay_project_status()in hotkeys.pydisplay_workspace_status()in dev_tools.py
Memory Functions:
auto_commit_memory()in memory_manager.pycommit_to_memory_branch()in memory_manager.pycommit_memory_to_branch()mentioned in dev_tools guidelines
Problem: dev_tools.py has become a catch-all that imports from everywhere, encouraging duplication.
Current State:
- 1943 lines (way over 500 LOC target)
- Imports from: snapshots, hotkeys, checklist, git_operations, memory_manager, agent_prompts, dev_testing
- Contains many wrapper functions that just call other modules
- Agents will keep adding functions here instead of finding proper homes
Problem: I installed the CLI package, but agents should use tools directly.
Current Issues:
- Agent requirements.txt suggests agents need to install packages
- But agents should access source directly
- Unclear separation between CLI tools and agent tools
Functions that are just imports/wrappers (REMOVE):
create_development_snapshot()→ wrapper aroundsnapshots.create_snapshot()quick_commit_and_push()→ wrapper aroundgit_operations.quick_commit_push()get_workspace_status()→ wrapper aroundhotkeys.get_project_status()display_workspace_status()→ wrapper aroundhotkeys.display_project_status()test_all_tools()→ wrapper arounddev_testing.test_tooling()detect_current_environment()→ wrapper arounddev_testing.detect_environment()
Functions that should be moved to appropriate modules:
generate_handoff_prompt_output()→ move toagent_prompts.py(handoff functionality)generate_pr_description_output()→ move toagent_prompts.py(output formatting)provide_agor_feedback()→ move tofeedback_manager.py(feedback functionality)cleanup_agent_directories()→ move tomemory_manager.py(memory management)generate_session_end_prompt()→ move toagent_prompts.py(prompt generation)
Functions that are utility/formatting (consolidate into utils module):
process_content_for_codeblock()→ wrapper aroundagent_prompts.detick_content()apply_output_formatting()→ move to newoutput_formatting.pymodulegenerate_formatted_output()→ move to newoutput_formatting.pymodule
Documentation/reference functions (move to dedicated module):
get_available_functions_reference()→ move to newagent_reference.pymoduleget_agor_initialization_guide()→ move to newagent_reference.pymoduleget_snapshot_requirements()→ move to newagent_reference.pymoduledisplay_memory_architecture_info()→ move to newagent_reference.pymodule
Workflow functions (move to workflow module):
generate_workflow_prompt_template()→ move to newworkflow_templates.pymodulevalidate_agor_workflow_completion()→ move to newworkflow_templates.pymoduleget_workflow_optimization_tips()→ move to newworkflow_templates.pymodule
- Create
src/agor/tools/output_formatting.pyfor output formatting functions - Create
src/agor/tools/agent_reference.pyfor documentation/reference functions - Create
src/agor/tools/workflow_templates.pyfor workflow template functions
- Move handoff/prompt functions to
agent_prompts.py - Move feedback functions to
feedback_manager.py - Move memory cleanup functions to
memory_manager.py - Move formatting functions to
output_formatting.py - Move reference functions to
agent_reference.py - Move workflow functions to
workflow_templates.py
- Remove all wrapper functions that just call other modules
- Update imports across codebase to point directly to source modules
- Update documentation to reference correct modules
- Either leave dev_tools.py as an empty file with a deprecation notice
- Or remove it entirely and update all imports
- Update agent initialization to not reference dev_tools.py
- Update all documentation to reference correct modules
- Update agent initialization guides
- Update function reference documentation
- Test all imports work correctly
- dev_tools.py either empty or removed entirely
- Functions in their logical homes
- No more dumping ground for new functions
- Clear separation of concerns
- Modules stay under 500 LOC target
CLI Tools (Installed Package):
pyproject.tomldefines the CLI package withagor = "agor.main:app"requirements.txtcontains CLI dependencies (FastAPI, Typer, etc.)- Installed via
pip install agororpipx install agor - Used for:
agor bundle,agor init, etc. - command line operations - For: End users who want to bundle projects for ChatGPT
Agent Tools (Direct Source Access):
src/agor/tools/agent-requirements.txtcontains minimal agent dependencies- Only needs: pydantic, pydantic-settings, platformdirs, jinja2, httpx, tqdm
- Agents access tools directly from source:
sys.path.insert(0, 'src') - No installation required - just clone repo and import from source
- For: AI agents doing development work
I installed the CLI package (pip install -e .) when agents should:
- Clone the AGOR repo
- Create venv in AGOR directory (not project directory)
- Install only
agent-requirements.txt - Import directly from source with
sys.path.insert(0, 'src')
# For remote agents
cd /tmp && git clone https://github.com/jeremiah-k/agor.git && cd agor
python3 -m venv .venv && source .venv/bin/activate
pip install -r src/agor/tools/agent-requirements.txt
# For local agents (Augment)
# Add AGOR directory as source in Augment settings
# No installation needed - direct source access- CLI tools are for users bundling projects
- Agent tools are for AI agents doing development
- Different dependencies - CLI needs web framework, agents need minimal deps
- Different access patterns - CLI is installed globally, agents access source directly
- Prevents conflicts - agents don't pollute project environments with CLI deps
- Update all agent initialization guides to NOT install CLI package
- Clarify the separation in documentation
- Remove references to installing AGOR package for agents
- Emphasize direct source access for agents