This trio serves as a valuable source for AI coding assistants. These elements, mainly written in natural language, provide insights that can’t be deduced directly from the code itself. Here’s what they can help illuminate: 1. Business logic: They help in understanding the reasons behind code changes. This includes the business needs or user requirements that the code is meant to address. These can be found most commonly in the issue description 2. Technical reasoning for specific changes: mostly found in commit messages, engineers describe the reasoning behind a technical implementation that is not explicitly written anywhere else. 3. Code functionality and code changes: Commits and PRs create a multi-layered view of the codebase: not only the most recent status of the code, but also how it was built - layer by layer. This gives a clear picture of the code's evolution, which sometimes accounts for things to avoid (as we had tried them and then had to change), or the initial idea behind an implementation. 1. Business logic: They help in understanding the reasons behind code changes. This includes the business needs or user requirements that the code is meant to address. These can be found most commonly in the issue description 2. Technical reasoning for specific changes: mostly found in commit messages, engineers describe the reasoning behind a technical implementation that is not explicitly written anywhere else. 3. Code functionality and code changes: Commits and PRs create a multi-layered view of the codebase: not only the most recent status of the code, but also how it was built - layer by layer. This gives a clear picture of the code's evolution, which sometimes accounts for things to avoid (as we had tried them and then had to change), or the initial idea behind an implementation. Although these contextual sources theoretically offer great value, utilizing them effectively does present some challenges. Hurdles include determining the relevance that corresponds to the specific context or problem at hand. Additionally, the information provided in these sources might be outdated or inaccurate, and would require a process to validate current relevance — and this is a challenge in and of itself. To be explicit - if we feed the AI assistant with outdated textual information, the AI assistant is liable to regard it as true and accurate, generating erroneous and misleading answers.