• on_ticket
    • if sandbox
      • check_sandbox →
    • fetch_relevant_files
    • get_commit_history
    • post_process_snippets
    • ExternalSearcher.extract_summaries of any links mentioned in issue + replies
    • extract_relevant_docs / DocumentationSearcher: get in-repo docs
    • ContextPruning(HumanMessagePrompt()): chat pruning_prompt to get what context to prune
    • sweet_bot = SweepBot.from_system_message_content(HumanMessagePrompt())
    • bot.get_files_to_change()
      • if is python issue: chat extract_files_to_change_prompt
      • chat files_to_change_prompt
      • returns list of checks/creates/changes
    • bot.validate_sandbox(file change requests)
      • check_sandbox for some file →
    • validate_file_change_requests
      • validate_sandbox →
    • bot.generate_pull_request(): chat PR
    • create_pr_changes()
      • bot.change_files_in_github_iterator()
        • switch
          • handle_create_file_main()
            • chat create_file_prompt
          • handle_modify_file_main()
          • refactor
          • test
          • check
          • delete
          • rename
  • check_sandbox(file)
    • run_sandbox(file)
      • start container
        • clone if nec
        • update files based on request
        • for each, check it (i.e. lint/fmt)
  • HumanMessagePrompt: just dumps a bunch of context about relevant snippets, paths, history, repo tree, repo & issue metadata
  • prompts sequence
    • system prompt
    • pruning_prompt - what paths to keep (prune the rest), what dirs to expand
    • extract_files_to_change_prompt
    • files_to_change_prompt - what files to add/update, whether to use tools
    • in parallel: sandbox
    • draft PR
    • create_file_prompt
    • review_prompt
    • final_review_prompt
  • observations / ideas
    • doesn’t work in terms of the higher level approach for a lot of cases, not very impressive
    • doesn’t really work mechanically, often
    • no repeated iteration
    • no deep critiquing, but does review
    • no tree of thought
    • shallow
    • find relevant other similar calls to the used functions