<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Git Inspector</title>
    <link>https://rfvasile.github.io/git-inspector/process/</link>
    <description>Recent content on Git Inspector</description>
    <image>
      <title>Git Inspector</title>
      <url>https://rfvasile.github.io/git-inspector/process/images/papermod-cover.png</url>
      <link>https://rfvasile.github.io/git-inspector/process/images/papermod-cover.png</link>
    </image>
    <generator>Hugo -- 0.146.0</generator>
    <language>en</language>
    <lastBuildDate>Mon, 21 Apr 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://rfvasile.github.io/git-inspector/process/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sprint 5 Overview: Report Completion and Project Finalization</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint5/overview/</link>
      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint5/overview/</guid>
      <description>Final sprint focusing on project report completion, documentation, testing, and visualization analysis</description>
    </item>
    <item>
      <title>Sprint 4 Overview: Performance Optimization, Visualization, and Documentation</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint4/overview/</link>
      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint4/overview/</guid>
      <description>Fourth sprint focusing on performance optimization, visualization features, and comprehensive documentation</description>
    </item>
    <item>
      <title>Sprint 3 Overview: Search Features, Chat Interface, and UI Implementation</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint3/overview/</link>
      <pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint3/overview/</guid>
      <description>Third sprint focusing on natural language code search, chat interface, and responsive UI implementation</description>
    </item>
    <item>
      <title>Sprint 2 Overview: Design Patterns and Indexing</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint2/overview/</link>
      <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint2/overview/</guid>
      <description>Second sprint focusing on design patterns and code indexing</description>
    </item>
    <item>
      <title>Sprint 1 Overview: Project Infrastructure Setup</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint1/overview/</link>
      <pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint1/overview/</guid>
      <description>First sprint focusing on establishing project foundations, development environment, and CI/CD pipelines</description>
    </item>
    <item>
      <title>Sprint 4 Backlog: Performance, Visualization, and Documentation</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint4/sprint_backlog/</link>
      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint4/sprint_backlog/</guid>
      <description>Detailed breakdown of tasks and user stories for Sprint 4&amp;#39;s performance optimization, visualization features, and documentation</description>
    </item>
    <item>
      <title>Sprint 5 Backlog: Report</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint5/sprint_backlog/</link>
      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint5/sprint_backlog/</guid>
      <description>Detailed breakdown of tasks and user stories for Sprint 5&amp;#39;s testing, visualization features, and analysis</description>
    </item>
    <item>
      <title>Sprint 3 Backlog: Search and Chat Interface</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint3/sprint_backlog/</link>
      <pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint3/sprint_backlog/</guid>
      <description>Detailed breakdown of tasks and user stories for Sprint 3&amp;#39;s search functionality and chat interface</description>
    </item>
    <item>
      <title>Sprint 2 Backlog: Design Patterns and Indexing</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint2/sprint_backlog/</link>
      <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint2/sprint_backlog/</guid>
      <description>Detailed breakdown of tasks and user stories for Sprint 2&amp;#39;s design patterns and indexing phase</description>
    </item>
    <item>
      <title>Sprint 1 Backlog: Infrastructure Tasks</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/sprint1/sprint_backlog/</link>
      <pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/sprint1/sprint_backlog/</guid>
      <description>Detailed breakdown of tasks and user stories for Sprint 1&amp;#39;s infrastructure setup phase</description>
    </item>
    <item>
      <title>Product Backlog</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/product_backlog/</link>
      <pubDate>Sun, 30 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/product_backlog/</guid>
      <description>The product backlog consisting of a high-level overview of the requirements.</description>
    </item>
    <item>
      <title>Requirements Engineering</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/requirements/</link>
      <pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/requirements/</guid>
      <description>Defining the requirements for the Git Inspector project</description>
    </item>
    <item>
      <title>User Interfaces</title>
      <link>https://rfvasile.github.io/git-inspector/process/docs/user-interfaces/</link>
      <pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/docs/user-interfaces/</guid>
      <description>Defining the user interfaces for the Git Inspector project</description>
    </item>
    <item>
      <title></title>
      <link>https://rfvasile.github.io/git-inspector/process/static/product-backlog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/static/product-backlog/</guid>
      <description>&lt;style&gt;
/* Override the global style for this page only */
.custom_table_style th:last-child {
  width: auto !important;
}
&lt;/style&gt;
&lt;!-- trunk-ignore-all(markdownlint/MD041) --&gt;
&lt;h1 id=&#34;project-tasks&#34;&gt;Project Tasks&lt;/h1&gt;
&lt;!-- markdownlint-disable MD041 MD033 MD056 --&gt;
&lt;p&gt;&lt;em&gt;Based on the &lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/static/requirement-specifications/&#34;&gt;Requirements Specifications&lt;/a&gt; document.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The project was divided into 5 separate sprints, each with its focus described below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;





&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/docs/sprint1/sprint_backlog#task-board&#34; &gt;Sprint 1&lt;/a&gt;: project setup&lt;/li&gt;
&lt;li&gt;





&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/docs/sprint2/sprint_backlog#task-board&#34; &gt;Sprint 2&lt;/a&gt;: design patterns and indexing&lt;/li&gt;
&lt;li&gt;





&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/docs/sprint3/sprint_backlog#task-board&#34; &gt;Sprint 3&lt;/a&gt;: search and chat interface&lt;/li&gt;
&lt;li&gt;





&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/docs/sprint4/sprint_backlog#task-board&#34; &gt;Sprint 4&lt;/a&gt;: performance, visualization and documentation&lt;/li&gt;
&lt;li&gt;





&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/docs/sprint5/sprint_backlog#task-board&#34; &gt;Sprint 5&lt;/a&gt;: final report and presentation&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&#34;display: table;&#34;&gt;
    
&lt;table class=&#34;custom_table_style&#34;&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;ID&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Priority&lt;/th&gt;
          &lt;th&gt;Related Requirements&lt;/th&gt;
          &lt;th&gt;Status&lt;/th&gt;
          &lt;th&gt;Sprint (click)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I1&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Build Configuration&lt;/strong&gt; &lt;br&gt;- Initialize SBT project with Scala 3.6.4&lt;br&gt;- Configure assembly plugin for JAR creation&lt;br&gt;- Set up test environment with ScalaTest&lt;br&gt;- Configure code coverage &amp;amp; documentation&lt;/td&gt;
          &lt;td&gt;HIGHEST&lt;/td&gt;
          &lt;td&gt;IR1, IR4, NFR1&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I2&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Code Quality Tools&lt;/strong&gt; &lt;br&gt;- Set up Scalafmt with formatting rules&lt;br&gt;- Implement Wartremover for code analysis&lt;br&gt;- Configure Scalafix and semantic DB&lt;br&gt;- Set up Trunk and Gemini bot&lt;/td&gt;
          &lt;td&gt;HIGH&lt;/td&gt;
          &lt;td&gt;IR1, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I3&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Git Workflow&lt;/strong&gt; &lt;br&gt;- Implement git hooks system&lt;br&gt;- Set up semantic release system&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;NFR1, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I4&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Project Infrastructure&lt;/strong&gt; &lt;br&gt;- Set up logging infrastructure&lt;br&gt;- Configure CI/CD pipeline&lt;br&gt;- Define high-level architecture&lt;/td&gt;
          &lt;td&gt;HIGHEST&lt;/td&gt;
          &lt;td&gt;IR4, NFR1, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I5&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Core Domain Model&lt;/strong&gt; &lt;br&gt;- Design repository data model&lt;br&gt;- Design initial API contracts&lt;br&gt;- Generate API documentation&lt;/td&gt;
          &lt;td&gt;HIGH&lt;/td&gt;
          &lt;td&gt;IR1, IR4, FR2.1&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;, &lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint5/sprint_backlog#task-board&#34;&gt;S5&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;I6&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Basic Git Operations&lt;/strong&gt; &lt;br&gt;- Implement repository loading&lt;br&gt;- Extract repository metadata&lt;br&gt;- Create error handling&lt;/td&gt;
          &lt;td&gt;HIGH&lt;/td&gt;
          &lt;td&gt;FR1.1, FR2.1, NFR3&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint1/sprint_backlog#task-board&#34;&gt;S1&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Foundation&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;F1&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Layered Architecture Implementation&lt;/strong&gt; &lt;br&gt;- Implement modules from architecture diagram&lt;br&gt;- Apply design patterns from lectures (dependency injection, layered architecture, strategy, factory, etc)&lt;/td&gt;
          &lt;td&gt;HIGHEST&lt;/td&gt;
          &lt;td&gt;IR4, IR1&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint2/sprint_backlog#task-board&#34;&gt;S2&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;F2&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Repository Input and Processing&lt;/strong&gt; &lt;br&gt;- Accept/validate Git repository URLs&lt;br&gt;- Fetch repository contents&lt;br&gt;- Support file type filtering&lt;/td&gt;
          &lt;td&gt;HIGHEST&lt;/td&gt;
          &lt;td&gt;FR1.1, FR2.1, NFR3, BR1, NFR1&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint2/sprint_backlog#task-board&#34;&gt;S2&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;F3&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Code Indexing System&lt;/strong&gt; &lt;br&gt;- Process code into searchable representations&lt;br&gt;- Generate/store code embeddings&lt;br&gt;- Integrate with Langchain4J for vector storage&lt;/td&gt;
          &lt;td&gt;HIGHEST&lt;/td&gt;
          &lt;td&gt;FR2.2, FR2.3, IR2, IR3, BR2, NFR1&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint2/sprint_backlog#task-board&#34;&gt;S2&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Core Value&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;C1&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Natural Language Code Search&lt;/strong&gt; &lt;br&gt;- Enable semantic search across codebase&lt;br&gt;- Support language/extension filtering&lt;br&gt;- Display relevant results with context&lt;/td&gt;
          &lt;td&gt;HIGH&lt;/td&gt;
          &lt;td&gt;FR1.2, FR1.4, FR1.3, FR1.5, BR1, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint3/sprint_backlog#task-board&#34;&gt;S3&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;C2&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Code Understanding Chat Interface&lt;/strong&gt; &lt;br&gt;- Provide chat interface for code questions&lt;br&gt;- Retrieve relevant code context for queries&lt;br&gt;- Generate context-aware responses&lt;/td&gt;
          &lt;td&gt;HIGH&lt;/td&gt;
          &lt;td&gt;FR1.6, FR1.5, FR2.4, BR2, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint3/sprint_backlog#task-board&#34;&gt;S3&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Additional&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E1&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;User Interface Implementation&lt;/strong&gt; &lt;br&gt;- Create intuitive frontend for all functionality&lt;br&gt;- Support Scala.js and Python (Gradio) interfaces&lt;br&gt;- Ensure responsive and accessible design&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;NFR2, IR1, NFR3&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint3/sprint_backlog#task-board&#34;&gt;S3&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E2&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Performance Optimization&lt;/strong&gt; &lt;br&gt;- Optimize repository lookup speed&lt;br&gt;- Implement caching/reuse of embeddings&lt;br&gt;- Ensure responsive search/chat experience&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;NFR1, FR2.2, FR2.3, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint4/sprint_backlog#task-board&#34;&gt;S4&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E3&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Security Implementation&lt;/strong&gt; &lt;br&gt;- Sanitize user inputs&lt;br&gt;- Secure Restful API&lt;br&gt;- Secure data storage&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;NFR3, FR2.3&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint4/sprint_backlog#task-board&#34;&gt;S4&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E4&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Testing and Quality Assurance&lt;/strong&gt; &lt;br&gt;- Implement comprehensive testing strategy&lt;br&gt;- Define quality metrics (see requirements document)&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;IR1, NFR1, NFR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint4/sprint_backlog#task-board&#34;&gt;S4&lt;/a&gt;, &lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint5/sprint_backlog#task-board&#34;&gt;S5&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E5&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Visualization and Analysis&lt;/strong&gt; &lt;br&gt;- Visualize code embeddings for quality analysis&lt;br&gt;- Provide metrics on search effectiveness&lt;br&gt;- Generate insights for documentation&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;IR5, FR1.2, BR2&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint5/sprint_backlog#task-board&#34;&gt;S5&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;E6&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Documentation and Reporting&lt;/strong&gt; &lt;br&gt;- Create user documentation&lt;br&gt;- Generate project report&lt;br&gt;- Document architecture and design decisions&lt;/td&gt;
          &lt;td&gt;MEDIUM&lt;/td&gt;
          &lt;td&gt;NFR2, IR4&lt;/td&gt;
          &lt;td&gt;✓&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/git-inspector//process/docs/sprint5/sprint_backlog#task-board&#34;&gt;S5&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;style&gt;
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight){
   
  background-color: transparent;
  border-radius: 6px;
  border: 1px solid black;
  outline: 2px solid black;
  overflow-x: auto;
  table-layout: fixed;
  word-break: break-all;
  font-size: 12px;
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight){
  outline: 2px solid rgb(54, 156, 95);
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) thead{
  background-color: #545d7b8a;
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) thead{
  background-color: rgb(62, 62, 62);
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) tr,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) th{
  border-bottom: unset;
  border: 1px solid black,
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:hover,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:focus{
  background-color: rgba(67, 166, 86, 0.8);
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:hover,
.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:focus{
  background-color: rgb(0, 0, 0, 0.7);
}
&lt;/style&gt;

&lt;/div&gt; 

&lt;h1 id=&#34;traceability-matrix&#34;&gt;Traceability Matrix&lt;/h1&gt;
&lt;p&gt;The following table shows evidence for the requirements in the &lt;a href=&#34;https://rfvasile.github.io/git-inspector/process/static/requirement-specifications/&#34;&gt;Requirements Specifications&lt;/a&gt; document.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://rfvasile.github.io/git-inspector/process/static/requirement-specifications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/static/requirement-specifications/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Code Search Productivity (BR1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: Enable developers to efficiently search and understand code within Git repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: Developers spend significant time searching through codebases, and improving this process directly impacts productivity.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; At least 85\% of test users report improved workflow efficiency in post-usage surveys (SUS).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Average query-to-result time under 10 seconds for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Ensure integration with common development workflows. This can be done using Gradio interfaces.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Focus on search result quality and relevance (i.e. analyze the effectiveness of the generated embeddings).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.5 (Context)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Improving Code Understanding (BR2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: Improve developer productivity by facilitating code search/understanding workflows.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: Understanding existing code is often more time-consuming than writing new code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Code explanations rated as &amp;#34;accurate and helpful&amp;#34; by at least 70\% of test users (SUS).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement contextual code explanations (i.e. use separate models that understand code and natural language).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Provide relationship visualization between embedding by using a 2D visualization tool.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Prioritize speed and accuracy in responses by allowing the users to select any open source model.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.4 (LLM integration)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR2 (Usability)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR4 (Visualization)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Repository URL Input Interface (FR1.1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can specify a Git repository URL to inspect its code, so that I can access and analyze specific codebases I&amp;#39;m interested in.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: The system needs a secure and user-friendly way to fetch Git repository URLs.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; The acceptance tests parse valid GitHub URLs successfully.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Error feedback displayed within 2 seconds of validation failure.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; URL validation completes within half a second for all inputs.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement URL validation and display clear feedback in case of parsing errors.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.1 (Repository Cloning)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR3 (Security)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Code Search Using Markdown (FR1.2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can search for code using keywords or natural language, so that I can quickly find relevant code sections without manually browsing through files.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: This allows users to search for code using natural language, making it easier to find relevant code sections.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Search results return in under 2 seconds for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Language filtering correctly categorizes at least 95\% of code files.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use embedding model to convert natural language queries to vectors.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Support filtering by language, content type and extension.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.3 (Vector Database)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Search Results Display System (FR1.3)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can view the search results with code snippets and links to the original files in the repository, so that I can efficiently evaluate search results and navigate to the full context when needed.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 95\% of users can correctly identify file locations from the display assessed via the SUS survey.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Code snippets maintain proper indentation and formatting (Python, Scala frontend).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Display code snippets with syntax highlighting (Python).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Show file path and location information.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.5 (Context)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR2 (Usability)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Code Search using Code Embeddings (FR1.4)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can filter search results by programming language, so that I can focus on code written in languages relevant to my current task.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: Developers often need to restrict searches to specific languages or file types.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Language detection accuracy &amp;gt;95\% across all common programming languages (see partser impl.).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Multiple simultaneous filters function correctly in 100\% as assessed by the acceptance tests.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Detect and classify programming languages during indexing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Create efficient language metadata for fast filtering.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Support multiple simultaneous language filters.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Include language identification in UI.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.3 (Search Results)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Code Context Visualization (FR1.5)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can view the context around a code snippet in the search results, so that I can better understand how the code fits into the broader implementation.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: This allows users to view the context around a code snippet in the search results, making it easier to understand how the code fits into the broader implementation.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Fetching a repository loads within 5 seconds for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 90\% of users report sufficient context for understanding code purpose (SUS)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Display the entire code being indexed in the search results.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; When answering questions, display relevant snippets from the codebase.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Allow the user to switch between the full text and retrieved snippets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.3 (Search Results)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR2 (Usability)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model with Past Chat History (FR1.6)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a user, I can ask code-related questions via chat, and the chat history is preserved, so that I can have a continuous conversation with the system.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: This allows users to have a continuous conversation with the system, making it easier to understand how the code fits into the broader implementation.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Context-aware responses remain relevant for at least 2 consecutive related questions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Chat history can be cleared by regenerating the index.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Maintain chat history within session scope.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Structure LLM prompts to include chat history and retrieved code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.4 (LLM Integration)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.3 (Vector Database)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR2 (Usability)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Repository Cloning and Management (FR2.1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a developer, I need the system to fetch and clone Git repositories from provided URLs, so that I can work with up-to-date code without performing these operations manually.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: This allows developers to work with up-to-date code without performing these operations manually.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Predetermined repositories clone successfully within 30 seconds.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; UI remains responsive (no blocking) during 100\% of cloning operations.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Invalid repository URLs are handled gracefully.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use Uithub for extracting the repository code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement caching mechanism for previously cloned repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Add repository verification to ensure valid Git URLs.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR3 (Security)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Vector Database Generation for RAG (FR2.2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a developer, I need the system to index the code of the fetched repositories, so that I can perform fast and accurate searches across the entire codebase.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; The clusters generated by the embeddings are well defined, suggesting successful embedding generation.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Metadata correctly captures language and file type.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use Qdrant for caching code embeddings.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Utilize metadata to enhance search results relevance.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Semantic Search (FR2.3)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a developer, I need the system to use a vector database to store code embeddings, so that I can perform semantic searches that understand code context beyond simple keyword matching.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Queries complete in less than 300ms for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Vector similarity scores correctly correlate with semantic relevance as determined by the cluster analysis.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Configure Qdrant collection schema for code embeddings.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use metadata for filtering specific file types.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; IR2 (Qdrant)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;LLM Integration for Natural Language Queries (FR2.4)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: As a developer, I need the system to integrate with an LLM to process natural language queries, so that I can interact with the codebase using plain English rather than specialized query syntax.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Ollama integration successfully handles queries within tests without errors.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement prompt engineering techniques to guide responses (i.e. conditional RAG, search by file type).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Design context management for large repositories (limit the amount of tokens being processed).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat Functionality)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR3 (Security)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;System Performance Optimization (NFR1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system will index code for targeted repositories within 10 seconds on the specified hardware.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Success Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Search queries return results in under 40 seconds for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Embedding generation completes in under 30 seconds for the predetermined repositories.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Chat responses for simple search (without code context) arrives within 20 seconds for all tests.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Embeddings are stored in the Qdrant vector database.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; The embeddings for retrieving chunks are generated using Ollama.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.1 (Repository Cloning)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;System Usability Testing (NFR2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should achieve a System Usability Scale (SUS) score of 70+ based on at least 5 target users.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: This ensures that the system is usable, as evaluated by a group of users.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; First-time users find the interface easy to use without assistance in &amp;gt;70\% of cases (SUS)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 80\% of users rate UI intuitiveness as &amp;#34;good&amp;#34; or &amp;#34;excellent&amp;#34; (SUS)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement clean, intuitive UI. Rely on established UX design patterns by using Gradio components.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.3 (Search Results)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.5 (Context)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User Interface Security (NFR3)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should sanitize user search query inputs to prevent Cross-Site Scripting (XSS) attacks.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 100\% of malformed/malicious URLs rejected before processing
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validate repository URLs against known valid patterns.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Test against standard Github URLs.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.1 (Repository Input)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.2 (Search)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Embedding Visualization Requirement (NFR4)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: A 2D visualization tool will display code embeddings to help analyze and improve indexing and search.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Visualization correctly clusters similar code types.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Report analysis identifies strategies for improving search quality.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement dimension reduction techniques (t-SNE, UMAP) for 2D visualization.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Used to make informed decisions about the search quality.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.3 (Vector Database)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scala Implementation Requirement (IR1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should be implemented in Scala, following functional programming principles.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Success Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Scala tools are used to ensure consisent.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Functional programming patterns are used to ensure consistent code quality.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use appropriate abstraction mechanisms (strategies, factories, memoization, etc.)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement error handling using functional approaches (Try, Option)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.2 (Code Indexing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.3 (Vector Database)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.4 (LLM Integration)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qdrant Vector Database Requirement (IR2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should use Qdrant as the vector database for code embeddings.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: Qdrant provides efficient vector search capabilities with filtering options needed for code search.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Validation Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Qdrant client wrapper handles all required vector operations.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Collection schemas designed for code embeddings and text embeddings.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement the AIServices wrapper around the Qdrant module. Configure distance metrics.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.3 (Vector Database)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ollama Integration Requirement (IR3)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should integrate with Ollama for LLM functionalities.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Rationale: Ollama provides locally-hosted LLM models, yielding good privacy and reduced latency.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Success Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; The application successfully communicates with Ollama.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implementation Considerations:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Implement the AIServices wrapper around the Ollama module.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Use prompt templates optimized for code understanding.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Related Requirements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR1.6 (Chat)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; FR2.4 (LLM Integration)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; NFR1 (Performance)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Layered Architecture (IR4)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Choice: The system should follow a layered architecture approach, ensuring better modularity.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Success Criteria:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; All components separated into Presentation, Application, Domain, and Infrastructure layers.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; The separation is assessed via ArchUnit tests.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://rfvasile.github.io/git-inspector/process/static/requirements/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/static/requirements/</guid>
      <description>&lt;table class=&#34;custom_table_style&#34;&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Req ID&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;BR1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Allow users to efficiently search and understand code within Git repositories.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;BR2&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Improve developer productivity by facilitating code search/understanding workflows.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can specify a Git repository URL to inspect its code.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.2&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can search for code using keywords or natural language queries.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can view the search results with code snippets and links to the original files in the repository.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.4&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can filter search results by programming language.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.5&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can view the context around a code snippet in the search results.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR1.6&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a user, I can ask code-related questions via chat, and the chat history is preserved.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR2.1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a developer, I need the system to fetch and clone Git repositories from provided URLs.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR2.2&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a developer, I need the system to index the code of the fetched repositories, to generate fast responses.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR2.3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a developer, I need the system to use a vector database to store code embeddings for semantic search.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;FR2.4&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;As a developer, I need the system to integrate with an LLM to process natural language queries.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NFR1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system will index code for targeted repositories within 10 seconds on the specified hardware.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NFR2&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should achieve a System Usability Scale (SUS) score of 70+ based on at least 5 target users.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NFR3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should sanitize user search query inputs to prevent Cross-Site Scripting (XSS) attacks.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NFR4&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;A 2D visualization tool will display code embeddings to help analyze and improve indexing and search.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;IR1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should be implemented in Scala, following functional programming principles.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;IR2&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should use Qdrant as the vector database for code embeddings.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;IR3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should integrate with Ollama for LLM functionalities.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;IR4&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;The system should follow a layered architecture approach, ensuring better modularity.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;style&gt;
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight){
   
  background-color: transparent;
  border-radius: 6px;
  border: 1px solid black;
  outline: 2px solid black;
  overflow-x: auto;
  table-layout: fixed;
  word-break: break-all;
  font-size: 12px;
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight){
  outline: 2px solid rgb(54, 156, 95);
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) thead{
  background-color: #545d7b8a;
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) thead{
  background-color: rgb(62, 62, 62);
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) tr,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) th{
  border-bottom: unset;
  border: 1px solid black,
}

.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:hover,
.post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:focus{
  background-color: rgba(67, 166, 86, 0.8);
}

.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:hover,
.dark .post-content table:not(.lntable .highlighttable,.highlight table,.gist .highlight) td:focus{
  background-color: rgb(0, 0, 0, 0.7);
}
&lt;/style&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://rfvasile.github.io/git-inspector/process/static/traceability-matrix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rfvasile.github.io/git-inspector/process/static/traceability-matrix/</guid>
      <description>&lt;!-- markdownlint-disable MD033 --&gt;
&lt;table style=&#34;display: table;&#34;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Requirement&lt;/th&gt;
      &lt;th&gt;Design element&lt;/th&gt;
      &lt;th&gt;Implementation Evidence&lt;/th&gt;
      &lt;th&gt;Done&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;BR1: Search Productivity&lt;/td&gt;
      &lt;td&gt;Project-wide&lt;/td&gt;
      &lt;td&gt;BusinessRequirementsSuite.scala&lt;br&gt;SUS Questionnaire&lt;br&gt;Embedding Diagrams&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;BR2: Improve Code Understanding&lt;/td&gt;
      &lt;td&gt;Project-wide&lt;/td&gt;
      &lt;td&gt;createTextEmbeddingModel&lt;br&gt;createCodeEmbeddingModel&lt;br&gt;Python/Scala Frontend&lt;br&gt;SUS Questionnaire&lt;br&gt;Embedding Diagrams&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.1: Repository URL Input Interface&lt;/td&gt;
      &lt;td&gt;GithubWrapperService.scala&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.2: Code Search Using Markdown&lt;/td&gt;
      &lt;td&gt;QdrantEmbeddingStore.scala&lt;br&gt;GithubWrapperService.scala&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.3: Search Results Display System&lt;/td&gt;
      &lt;td&gt;Scala frontend&lt;br&gt;Python frontend&lt;/td&gt;
      &lt;td&gt;SUS Questionnaire&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.4: Code Search using Code&lt;/td&gt;
      &lt;td&gt;QdrantEmbeddingStore.scala&lt;br&gt;GithubWrapperService.scala&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓ (see related FR1.2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.5: Code Context Visualization&lt;/td&gt;
      &lt;td&gt;Scala frontend&lt;br&gt;Python frontend&lt;br&gt;RepositoryWithLanguages&lt;br&gt;GithubWrapperService&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;br&gt;SUS Questionnaire&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR1.6: Model with Past Chat History&lt;/td&gt;
      &lt;td&gt;Pipeline.scala&lt;br&gt;RAGComponentFactory.scala&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR2.1: Repository Cloning&lt;/td&gt;
      &lt;td&gt;GithubWrapperService.scala&lt;br&gt;FetchingService.scala&lt;/td&gt;
      &lt;td&gt;SystemFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR2.2: Vector Database Generation&lt;/td&gt;
      &lt;td&gt;IngestorService.scala&lt;br&gt;CacheService.scala&lt;br&gt;QdrantEmbeddingStore.scala&lt;/td&gt;
      &lt;td&gt;SystemFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR2.3: Vector Database Implementation&lt;/td&gt;
      &lt;td&gt;QdrantEmbeddingStore.scala&lt;br&gt;GithubWrapperService.scala&lt;/td&gt;
      &lt;td&gt;UserFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;FR2.4: LLM Integration for Code&lt;/td&gt;
      &lt;td&gt;QueryRoutingStrategy.scala&lt;br&gt;QueryFilterService.scala&lt;br&gt;ChatService.scala&lt;/td&gt;
      &lt;td&gt;SystemFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;NFR1: Performance Optimization&lt;/td&gt;
      &lt;td&gt;ChatService.scala&lt;br&gt;CacheService.scala&lt;br&gt;IngestorService.scala&lt;br&gt;GithubWrapperService.scala&lt;/td&gt;
      &lt;td&gt;NonFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;NFR2: System Usability Optimization&lt;/td&gt;
      &lt;td&gt;GithubWrapperService.scala&lt;br&gt;Scala frontend&lt;br&gt;Python frontend&lt;/td&gt;
      &lt;td&gt;NonFunctionalRequirementsSuite&lt;br&gt;SUS Questionnaire&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;NFR3: User Interface Security&lt;/td&gt;
      &lt;td&gt;Scala frontend&lt;br&gt;Python frontend&lt;/td&gt;
      &lt;td&gt;NonFunctionalRequirementsSuite&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;NFR4: Embedding Visualization&lt;/td&gt;
      &lt;td&gt;IngestorService.scala&lt;/td&gt;
      &lt;td&gt;Final Report&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;IR1: Scala Implementation (declarative programming)&lt;/td&gt;
      &lt;td&gt;Project-wide&lt;/td&gt;
      &lt;td&gt;Adherence to the Gemini style guide&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;IR2: Qdrant Vector Database&lt;/td&gt;
      &lt;td&gt;IngestorService.scala&lt;br&gt;ComponentFactory.scala&lt;/td&gt;
      &lt;td&gt;application.conf&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;IR3: Ollama Integration&lt;/td&gt;
      &lt;td&gt;QueryRoutingStrategy.scala&lt;br&gt;QueryFilterService.scala&lt;br&gt;ChatService.scala&lt;/td&gt;
      &lt;td&gt;application.conf&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;IR4: Layered Architecture&lt;/td&gt;
      &lt;td&gt;Project-wide&lt;/td&gt;
      &lt;td&gt;ArchUnit tests&lt;/td&gt;
      &lt;td&gt;✓&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</description>
    </item>
  </channel>
</rss>
