Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

AOSSIE-Org/PullRequestDashboard

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AOSSIE Project stability status

 

Static Badge

Telegram Badge    X (formerly Twitter) Badge    Discord Badge    LinkedIn Badge    Youtube Badge

OpenSSF Scorecard

Best Practices


AOSSIE Pull Request Dashboard

Local-First Merge Analysis & Conflict Resolution Dashboard

Pull Request Dashboard (PR Dashboard) is a core module in the AOSSIE Skills Ecosystem. It is a local-first analysis tool designed to help project maintainers review incoming pull requests, identify semantic conflicts, analyze architectural gaps, and determine optimal merge sequences.

By querying the GitHub API via the GitHub CLI (gh), fetching PR diffs and automated AI Bot Reviewer (e.g., CodeRabbit, Devin) walkthrough summaries, loading codebase context (context.md), embedding and clustering PRs with SentenceTransformer using all-MiniLM-L6-v2 in grouping.py, and calling local Ollama models for deeper group and isolated-PR analyses, the tool generates a visual Conflict Directed Acyclic Graph (DAG) detailing merge reasoning and post-merge impacts.


🏗️ Role in the Skills Ecosystem

The PR Dashboard acts as the primary code quality and merge analysis layer for maintainers:

flowchart TD
    %% Nodes
    SC["<b><font color='#F59E0B'>Skills Context</font></b><br><br>Skills Core (Shared Org wide skills)<br>per-repo skills (AGENTS.md + skills/ directory)"]
    Contributors["Contributors"]
    Maintainers["Maintainers"]
    
    SB["<b><font color='#F59E0B'>Skill Bot</font></b> (Discord Assistant)<br><br>Answers contributor questions<br>using asked question-oriented project skills ➔ LLM fallback"]
    PD["<b><font color='#F59E0B'>PR Dashboard</font></b> (Merge Analysis)<br><br>Clusters PRs semantically, injects skills & communication(e.g. Discord) context.<br>Extracts PR changes briefly & open questions for maintainers to review.<br>Prepares Conflict DAG with merge reasoning & post-merge impact."]
    SU["<b><font color='#F59E0B'>Skill Updater</font></b> (Knowledge Evolution)<br><br>Collects all logs from different components.<br>Updates relevant repo-skills by asking maintainers or admins<br>to review and approve generated updates."]

    %% Edges
    %% Contributor Flow
    Contributors -- "Ask Questions in Discord" --> SB
    SC -- "Powers answers" --> SB
    SB -- "If gaps found, send logs for maintainers<br>to answer and update project skill via updater." --> SU

    %% Maintainer Flow
    Maintainers -- "Reviews PRs<br>with" --> PD
    SC -- "Powers reasoning" --> PD
    PD -- "If gaps found, send logs for maintainers<br>to answer and update those project skills via updater." --> SU

    %% Feedback Loop & Sync
    Maintainers -- "Collects communication platform (e.g. Discord) discussions, filters important<br>topics by giving that repo-skills context, and sends suggested updates to maintainers<br>to reformat or modify as needed (maintainer approve)" --> SU
    SU -- "PR Skill Updater bot opens PR for gap skills and<br>recently merged PR context (maintainers approve)" --> SC

    %% Style Classes
    classDef yellowBox fill:#1E293B,stroke:#F59E0B,stroke-width:2px,color:#F8FAFC;
    classDef purpleBox fill:#1E293B,stroke:#8B5CF6,stroke-width:2px,color:#F8FAFC;
    
    class SC,SB,PD,SU yellowBox;
    class Contributors,Maintainers purpleBox;
Loading
  1. Pull Request Fetching: The dashboard connects to GitHub via gh to retrieve open/closed PRs, modified files, and AI Bot Reviewer (e.g., CodeRabbit, Devin) summaries.
  2. Context-Grounded Reasoning: It reads the local repository context (context.md) and the global/per-repo skills from the Skills Core to evaluate PRs against the project rules.
  3. DAG Generation: It renders an interactive Conflict DAG illustrating PR dependency relationships, suggested merge sequences, and post-merge impact.
  4. Gap Logging: If the dashboard identifies any architectural gaps or changes not covered in the current skills context, it logs them to gap_log.json to be consumed by the Skill Updater.

🚀 Key Features

  • Semantic PR Clustering: Attributes semantic PR embedding and clustering to SentenceTransformer using all-MiniLM-L6-v2 in grouping.py, while local Ollama models are responsible for deeper group and isolated-PR analyses.
  • Conflict DAG Visualization: Renders an interactive HTML report (conflicts_tree.html) detailing overlapping file conflicts, recommended merge sequences, and post-merge architectural impacts.
  • Isolated PR Filtering: Identifies non-conflicting, independent PRs and lists them in isolated_prs.html for immediate, safe merging.
  • Local-First Analysis: Executes all clustering, evaluation, and DAG reasoning locally through Ollama, ensuring data privacy with zero external API costs.
  • Feedback Loop Gap Signaling: Emits gap events for the Skill Updater pipeline when developer PRs introduce architectural changes that are not documented in the skills.

💻 Tech Stack

  • CLI Integration: GitHub CLI (gh)
  • Embeddings & Clustering: sentence-transformers (all-MiniLM-L6-v2)
  • Local Model Server: Ollama (qwen2.5:7b / llama3)
  • Programming Language: Python 3.10+
  • Report Rendering: HTML5, Vanilla CSS, Tailwind CSS

🔗 Repository Links

  1. Skills Core Repository
  2. Interactive Simulation (Live Demo: demo)
  3. Skill Bot Assistant
  4. Skill Updater Pipeline

🏁 Getting Started

Prerequisites

  • Python 3.10+
  • Ollama installed and running on your local machine.
  • GitHub CLI (gh) installed and authenticated with your GitHub account:
    gh auth login

Installation & Run

1. Clone the Repository

git clone https://github.com/AOSSIE-Org/PullRequestDashboard.git
cd PullRequestDashboard

2. Set Up Virtual Environment & Dependencies

Windows (PowerShell):

python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt

macOS / Linux:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

3. Setup Context File

Ensure you have a context.md file detailing the repository architecture inside the dashboard folder (a default context file for MiniChain is provided as context.md).

4. Configuration

All configuration settings are defined at the top of each script file—no .env file is required.

  • github.py — Set the target repository:

    REPO = "StabilityNexus/MiniChain"  # ← Change to your repository
  • grouping.py — Tune the clustering sensitivity:

    THRESHOLD = 0.55   # Lower value = more groups, higher value = fewer but tighter groups
    MIN_SIZE  = 2      # Minimum PRs needed to form a conflict group
  • ollama.py — Choose the local LLM model:

    OLLAMA_MODEL = "qwen2.5:7b"  # Specify the Ollama model to use
  • Switch to Production Mode (Open PRs) in github.py:

    By default, the dashboard runs on recent closed PRs for testing. Switch to open PRs for production:

    # Comment out the test line, and uncomment the production line:
    # prs = gh(f"repos/{REPO}/pulls?state=closed&per_page=10&sort=updated&direction=desc")
    return gh_paginate(f"repos/{REPO}/pulls?state=open&per_page=100")

5. Run the Dashboard

Execute the entry point script:

python main.py

The script will fetch the PRs, cluster them, generate the reports, and automatically open them in your default web browser:

  • conflicts_tree.html (Conflict DAG & merge sequencing)
  • isolated_prs.html (Independent, ready-to-merge PRs)

🗺️ Roadmap & Future Enhancements

The long-term development of Pull Request Dashboard is divided into several milestones outlined in the roadmap.md.


🛡️ Key Design Principles

  1. Context-Grounded: Always evaluate PRs against the project description, architectural rules, and Skills Core.
  2. Merge Safety First: Prioritize highlighting overlapping modifications and architectural conflict risks.
  3. Local-First: Keep codebase analysis, clustering, and reasoning offline using local Ollama models.
  4. Actionable Recommendations: Every conflict group must present a suggested merge order with clear reasoning.

🙌 Contributing

⭐ Don't forget to star this repository if you find it useful! ⭐

Thank you for considering contributing to this project! Contributions are highly appreciated and welcomed. To ensure smooth collaboration, please refer to our Contribution Guidelines.


✨ Maintainers


📍 License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.


💪 Thanks To All Contributors

Thanks a lot for spending your time helping TODO grow. Keep rocking 🥂

Contributors

© 2026 AOSSIE

About

Local merge analysis dashboard that clusters PRs semantically and generates interactive dependency conflict DAGs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.