Make Technical Debt Visible, Make Open Source Collaboration Easier
ไธญๆๆๆกฃ ย |ย Quick Start ย |ย Tech Stack ย |ย Contributing
As a beginner, have you ever found an open source project that interests you, but struggled to figure out what you could contribute? Where to start?
As an open source project maintainer, have you ever felt overwhelmed by the flood of PRs and Issues, unsure how to prioritize tasks and manage technical debt?
TideScope is inspired by star maps. By scanning GitHub repositories for Issues, PRs, and TODO comments in code, combined with LLM-powered intelligent analysis to extract required skills and difficulty assessments, it generates an intuitive Technical Debt StarMap. Each task appears as a star, distributed in a polar coordinate system by importance from center to edge, with related PR-Issue pairs forming constellation-like visual clusters.
Through this innovative visualization approach, we aim to help:
- ๐ฑ New contributors quickly find tasks matching their skill level
- ๐ฏ Project maintainers gain a clear overview of technical debt at a glance
- ๐ค Team collaboration become more efficient, transparent, and organized
- Ranking-Based Golden Angle Spiral Layout - Mathematically optimized distribution algorithm ensures uniform node placement
- Force-Directed Anti-Overlap Mechanism - Intelligent repulsion algorithm prevents node collisions, keeping the chart clear
- Constellation-Style Clustering - PRs and Issues automatically form tight constellation groups, intuitively showing relationships
- Gradient Glow Effects - Modern visual design optimized for dark themes
- LLM Skill Extraction - Automatically analyzes required tech stacks and skill points for each task
- Multi-Dimensional Scoring - Comprehensive assessment of priority, difficulty, impact scope, and risk level
- Smart Recommendations - Generates targeted implementation suggestions for each task
- Automatic Context - Automatically fetches project README as analysis background
- One-Click Scanning - Supports both local code and remote GitHub repositories
- Flexible Configuration - YAML config files for easy customization of scan rules
- Dual Interface - Web UI + CLI command line to meet different use cases
Example using SurfSense project

StarMap Features:
- ๐ฏ Important tasks in the center circle, priority decreases outward
- ๐ Golden lines connect related PRs and Issues, forming "constellations"
- ๐ Hover for details: title, skills, difficulty, recommendations
- ๐จ Glow effects and animations enhance visual experience
- ๐ Golden angle spiral distribution, nodes evenly fill the entire space
Intelligent analysis example
Assessment Content:
- ๐ Priority: Auto-calculated (based on labels, update time, relevance)
- ๐ Required Skills: LLM auto-extraction (e.g., Docker, Authentication, Database, Backend)
- ๐ Difficulty: Smart assessment (1-5 scale)
- ๐ก Recommendations: Specific implementation steps and considerations
- ๐ Related: Auto-identify related PRs and discussions
TideScope provides two core systems to meet different needs:
Core Value: Lower the barrier to open source contribution, help beginners quickly find suitable tasks
-
๐ Project Health Dashboard
- Real-time health score (0-100)
- Project activity trend analysis
- Open Issues and PR statistics
-
๐๏ธ AI-Powered Task Badges
- Auto-generate beautiful SVG badges
- Display task title, difficulty, required skills
- One-click jump to GitHub Issue
-
๐ฑ Beginner-Friendly Task List
- Filter Issues suitable for beginners
- Categorized by difficulty and skills
- Includes detailed implementation suggestions
-
๐ Auto-Generate CONTRIBUTING.md
- AI analyzes project to generate contribution guide
- Includes health metrics, recommended tasks, skill distribution
- Beautiful Markdown format, GitHub-ready
Workflow:
GitHub API โ Data Fetch โ LLM/Rule Analysis โ SVG Generation โ Markdown Rendering
Core Components:
-
analyzer/smart_analyzer.py- Smart Analyzer- Automatically choose LLM or rule-based analysis
- Extract required skills from Issues
- Assess task difficulty and priority
-
utils/hero_badge_generator.py- Hero Badge Generator- Generate project health panel
- Create recommended task badges
- Support multiple themes and sizes
-
scripts/generate_contributing.py- Documentation Generator- Auto-generate CONTRIBUTING.md
- Integrate health, tasks, and skill information
- Support custom templates
Output Files:
badges/
โโโ CONTRIBUTING.md # AI-generated contribution guide
โโโ README.md # Project README snippet
โโโ PREVIEW.html # Local preview page
โโโ assets/
โโโ hero_badge.svg # Project hero badge
โโโ health_panel.svg # Health panel
โโโ recommended_task.svg # Recommended task badge
โโโ beginner_task_*.svg # Beginner task badges
- โ Open Source Maintainers: One-click professional contribution guide
- โ New Contributors: Quickly understand project health and recommended tasks
- โ Team Collaboration: Unified task priority and skill requirements
Core Value: Visualize technical debt as a starry sky, making management intuitive and engaging
-
Polar Coordinate Layout
- Based on Golden Angle Spiral (137.5ยฐ)
- Important tasks in center, priority decreases outward
- Node size reflects impact scope
-
Constellation-Style Clustering
- PRs and Issues connected by golden lines forming "constellations"
- Auto-identify relationships between related tasks
- Visualize project module division
-
Interactive Exploration
- Hover to view task details (title, skills, difficulty, recommendations)
- Click to jump to GitHub
- Support zoom and pan
-
Multi-Dimensional Analysis
- Color-coded by difficulty (green-orange-red)
- Categorized by status (Open/Closed/Merged)
- Skill tag visualization
Workflow:
GitHub API โ Scan Issues/PRs โ LLM Analysis โ Coordinate Calculation โ ECharts Rendering
Core Components:
-
scanner/github/client.py- GitHub Data Fetcher- Batch fetch Issues and PRs
- Handle pagination and rate limits
- Caching mechanism to reduce API calls
-
analyzer/builder.py- Analysis Engine- Multi-dimensional scoring (priority, difficulty, impact)
- LLM skill extraction and recommendation generation
- Relationship identification
-
analyzer/star_map.py- StarMap Coordinate Algorithm- Golden angle spiral layout
- Square root radius mapping
- Force-directed anti-overlap optimization
-
web/src/pages/StarMapPage.tsx- Frontend Visualization- ECharts polar coordinate chart
- Interactive nodes and connections
- Responsive design
Output Files:
reports/
โโโ tidescope-raw.json # Raw scan data
โโโ tidescope-report.json # Analysis report (with coordinates)
- โ Project Maintainers: Global view of technical debt management
- โ Team Leads: Identify critical paths and bottlenecks
- โ Product Managers: Understand dev resource allocation
- โ Developers: Find interesting modules and tasks
| Technology | Version | Purpose |
|---|---|---|
| Python | 3.8+ | Core programming language |
| Pydantic | 2.x | Data validation and modeling |
| HTTPX | Latest | Async HTTP client (GitHub API) |
| PyYAML | Latest | Configuration file parsing |
| python-dotenv | Latest | Environment variable management |
| FastAPI | Latest | REST API framework (Optional, for Web UI) |
| Typer | Latest | Advanced CLI tool (Optional) |
| Technology | Version | Purpose |
|---|---|---|
| React | 18 | Modern UI framework |
| TypeScript | Latest | Type-safe development |
| Apache ECharts | 5.x | Data visualization (polar charts) |
| Ant Design | 5.x | UI component library |
| Vite | 5.x | Fast build tool |
| Provider | Model | Notes |
|---|---|---|
| Deepseek | deepseek-chat | Recommended: Cost-effective, relaxed rate limits |
| OpenAI | gpt-4o-mini | Alternative: Powerful, higher cost |
LLM Analysis Content:
- Extract required skills (e.g., React, TypeScript, Docker)
- Assess difficulty (1-5 scale)
- Generate implementation recommendations
Fallback Strategy:
- Automatically uses rule-based analysis when no API key
- System works in any configuration
# Golden Angle Spiral Layout
GOLDEN_ANGLE = 137.5 # degrees
angle = i * GOLDEN_ANGLE
radius = sqrt(i / total_count) * max_radius
# Polar to Cartesian conversion
x = radius * cos(angle)
y = radius * sin(angle)Features:
- ๐ Golden Angle Spiral (137.5ยฐ) - Nature's optimal distribution
- ๐ Square Root Radius - Solves sparse outer ring problem
- ๐ Force-Directed Optimization - Prevents node overlap
- ๐ Constellation Linking - PR-Issue auto-connection
# Multi-dimensional scoring
priority_score = (
label_weight * 0.4 + # Label importance
activity_score * 0.3 + # Activity level
age_factor * 0.2 + # Creation time
relation_count * 0.1 # Relationship count
)Scoring Dimensions:
- ๐ท๏ธ Label weight (bug > feature > enhancement)
- ๐ Activity (recent updates, comments)
- โฐ Age factor (freshness decay)
- ๐ Relationships (PR count, references)
- Python 3.8+
- GitHub Personal Access Token (for fetching repository data)
- LLM API Key (Optional, for AI-powered analysis)
git clone https://github.com/unitagain/TideScope.git
cd TideScope/TideScope-mainpip install -r requirements.txtCreate a .env file or set environment variables:
# Required: GitHub Token
GITHUB_TOKEN=ghp_your_github_token_here
# Optional: LLM API (for AI analysis)
DEEPSEEK_API_KEY=sk-your-deepseek-key
# Or
OPENAI_API_KEY=sk-your-openai-keyGet GitHub Token: Visit GitHub Settings โ Developer settings โ Personal access tokens
About LLM API:
- ๐ข Recommended: Deepseek - Cost-effective, fully compatible with OpenAI API
- ๐ต OpenAI - Powerful features, higher cost
- โช Skip LLM - Still works with rule-based analysis
Edit config.yaml to set the repository to analyze:
repository:
owner: "MODSetter" # GitHub username or organization
name: "SurfSense" # Repository name
analysis:
use_llm: false # Whether to use LLM (requires API Key)
max_issues: 100 # Maximum issues to analyzeTideScope provides an interactive CLI interface for easy usage:
python tidescope.pyYou'll see:
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโโโโ โโโโโโโโโ โโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโ
โโโ โโโโโโ โโโโโโโโโ โโโโโโโโโโโ โโโ โโโโโโโโโโ โโโโโโ
โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ
โโโ โโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโ โโโโโโโ โโโ โโโโโโโโ
๐ AI-Powered Technical Debt Analyzer v2.0 ๐
๐ What would you like to generate?
1๏ธโฃ Star Map (Technical Debt Visualization)
2๏ธโฃ Badge System (AI-Powered Contributor Guide)
3๏ธโฃ Both (Complete Analysis)
0๏ธโฃ Exit
๐ Select an option (0-3):
1๏ธโฃ Star Map
- Generates technical debt visualization JSON report
- Output:
reports/tidescope-raw.jsonandtidescope-report.json - Purpose: Analyze technical debt distribution
2๏ธโฃ Badge System
- Generates AI-powered contributor guide
- Output:
badges/CONTRIBUTING.mdand SVG badge files - Purpose: Help new contributors get started quickly
3๏ธโฃ Both
- Run both Star Map and Badge System
- Complete project analysis
Prerequisites:
- Node.js 16+ installed
- StarMap report generated (Option 1 or 3)
Steps:
# 1. Install frontend dependencies (first time only)
cd web
npm install
# 2. Start backend API (new terminal)
cd ..
python -m api.main
# 3. Start frontend dev server (new terminal)
cd web
npm run devVisit: http://localhost:5173
You'll see:
- ๐ StarMap Visualization: Polar coordinate distribution of technical debt
- ๐ฏ Task Details: Click nodes for detailed information
- ๐ Relationship Analysis: Lines connecting PRs and Issues
- ๐ Statistics Panel: Project health and trends
We warmly welcome all forms of contributions! Whether you:
- ๐ Found a bug
- ๐ก Have a new feature idea
- ๐ Want to improve documentation
- ๐จ Optimize UI/UX
- ๐งช Add test cases
You can participate in TideScope's development!
-
๐ฌ Discuss Your Idea First
- Before submitting code, please create an Issue
- Describe your idea, problem encountered, or improvement suggestions
- Wait for project maintainers to respond and discuss feasibility
-
โ Start Development After Being Assigned
- After the Issue discussion is approved, maintainers will assign the Issue to you
- This indicates you can start implementing the feature or fix
- Avoids duplicate work and ensures work has a clear direction
-
๐ง Fork and Create Branch
# Fork this repository to your account # Then clone your fork git clone https://github.com/unitagain/TideScope.git cd TideScope/TideScope-main # Create feature branch git checkout -b feature/your-feature-name # Or fix branch git checkout -b fix/bug-description
-
๐ป Develop
- Follow existing code style
- Add necessary comments and documentation
- Ensure code runs correctly
-
โ Test Your Changes
# Backend tests python -m pytest # (Test cases to be added) # Frontend tests cd web npm run build # Ensure successful build
-
๐ค Submit Pull Request
git add . git commit -m "feat: added xxx feature" # or git commit -m "fix: fixed xxx issue" git push origin feature/your-feature-name
Then create a Pull Request on GitHub:
- Clearly describe what you did
- Link related Issue (use
Fixes #123) - If there are UI changes, attach screenshots
-
๐ Code Review and Merge
- Maintainers will review your code
- May suggest some modifications
- Once approved, your PR will be merged! ๐
Please use semantic commit messages:
feat: new featurefix: bug fixdocs: documentation updatestyle: code format (no functional impact)refactor: refactoring (no functional change)perf: performance optimizationtest: add testschore: build/tool related
Examples:
feat: add task filtering by difficulty
fix: fix StarMap node overlap issue
docs: update Chinese README installation instructions- ๐ก Small Commits: Break features into small, testable parts
- ๐ Sync Docs: Keep code and documentation in sync
- ๐ฏ Stay Focused: One PR should do one thing
- ๐ค Active Communication: Feel free to discuss in Issues
TideScope is currently in early stages, and we have many exciting plans:
- ๐ Online Service: Provide a website where users simply input a GitHub repository URL to generate StarMaps online
- โก Real-time Analysis: No local installation needed, view results directly in browser
- ๐ Shareable Links: Generate shareable StarMap links for easy team collaboration
- ๐ Historical Records: Track changes in project technical debt over time
Technical Approach:
- Backend: Cloud functions + message queue to process scan tasks
- Frontend: Static deployment, dynamic data loading
- Storage: GitHub repository data caching to avoid repeated requests
In addition to the StarMap, we plan to add:
-
Timeline View
- X-axis for time, Y-axis for priority
- Show creation, update, close times of Issues/PRs
- Identify long-standing unaddressed technical debt
-
Relationship Network Graph
- Show connections between Issues, PRs, and contributors
- Identify core contributors and key nodes
- Discover potential collaboration opportunities
-
Skill Radar Chart
- Visualize distribution of required skills in the project
- Help new contributors understand what to learn
- Identify team skill gaps
-
Health Dashboard
- Technical debt volume trends
- Issue response time
- PR merge speed
- Contributor activity
- Smart Recommendations: Recommend suitable tasks based on user skills and experience
- Auto-Assignment: AI-assisted Issue assignment to appropriate developers
- Risk Alerts: Identify high-risk, long-standing technical debt
- GitHub App: One-click installation, automatic repository data sync
- Slack/Discord Bot: Team notifications and quick queries
- VS Code Extension: View project StarMap within IDE
- CI/CD Integration: Auto-assess technical debt impact in PRs
๐ Become the Standard Tool for Open Source Collaboration
- Help developers worldwide participate in open source projects more efficiently
- Lower the barrier to open source contributions
- Make technical debt management intuitive and fun
๐ก We Need Your Participation!
Achieving these goals requires community strength. Whether you're skilled in:
- Frontend development (React, ECharts)
- Backend development (Python, FastAPI)
- Algorithm optimization (visualization layouts)
- UI/UX design
- Documentation writing
- Test case development
You're welcome to join us!
Let's create better open source collaboration tools together! ๐
TideScope-main/
โโโ tidescope.py # ๐ฏ Interactive CLI main entry
โโโ generate_badges.py # ๐จ Badge generation CLI tool
โโโ config.yaml # โ๏ธ Project configuration file
โ
โโโ analyzer/ # ๐ง Analysis Engine
โ โโโ smart_analyzer.py # Smart analyzer (LLM/Rule switching)
โ โโโ builder.py # Report builder
โ โโโ llm_client.py # LLM API client (Deepseek/OpenAI support)
โ โโโ models.py # Data models (DebtItem, AnalysisReport)
โ โโโ rules.py # Rule-based scoring engine
โ โโโ star_map.py # StarMap coordinate calculation (Golden Angle Spiral)
โ
โโโ scanner/ # ๐ Data Scanner
โ โโโ github/
โ โ โโโ client.py # GitHub API client
โ โ โโโ __init__.py # Data fetch interface
โ โโโ code/ # Code TODO scanner
โ โ โโโ todo_scanner.py
โ โโโ models.py # Scan data models
โ โโโ runner.py # Scan orchestration
โ โโโ config_loader.py # Configuration loader
โ
โโโ utils/ # ๐ ๏ธ Utilities
โ โโโ github_helper.py # GitHub data fetching
โ โโโ hero_badge_generator.py # Hero badge generation
โ โโโ analysis_panel_generator.py # Analysis panel generation
โ โโโ svg_badge_generator.py # SVG badge utilities
โ โโโ task_badge_generator.py # Task badge generation
โ โโโ cache_manager.py # Cache management
โ
โโโ scripts/ # ๐ Script Tools
โ โโโ generate_contributing.py # CONTRIBUTING.md generator
โ
โโโ api/ # ๐ REST API
โ โโโ main.py # FastAPI application (for Web UI)
โ
โโโ cli/ # ๐ป Traditional CLI Tool
โ โโโ main.py # Typer CLI (advanced usage)
โ
โโโ web/ # ๐จ Frontend Application
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โ โโโ Logo.tsx # Logo component
โ โ โ โโโ AppLayout.tsx
โ โ โโโ pages/
โ โ โ โโโ StarMapPage.tsx # StarMap visualization page
โ โ โโโ main.tsx # Entry file
โ โโโ public/ # Static assets
โ โโโ logo-option-1.svg
โ โโโ favicon.svg
โ
โโโ config/ # ๐ Configuration Templates (legacy)
โโโ tidescope.config.yaml
| File | Purpose | Key Features |
|---|---|---|
tidescope.py |
CLI main entry | Interactive menu, generate StarMap/Badges |
generate_badges.py |
Badge generation tool | Direct CLI badge generation |
config.yaml |
Configuration file | Repository info, analysis settings, LLM config |
analyzer/smart_analyzer.py |
Smart analysis | Auto-select LLM or rule-based analysis |
analyzer/builder.py |
Report building | Integrate scan data, generate analysis report |
scanner/github/client.py |
GitHub fetching | Get Issues/PRs, handle rate limits |
utils/hero_badge_generator.py |
Badge generation | Generate health, recommended task SVGs |
scripts/generate_contributing.py |
Doc generation | Auto-generate CONTRIBUTING.md |
This project is licensed under the MIT License.
- Thanks to all developers who contributed to TideScope
- Logo design inspired by Vercel, Next.js, Tailwind CSS
- StarMap layout algorithm references nature's golden angle spiral distribution
- Thanks to the ECharts team for their powerful visualization library
- ๐ง Email: [1467673018@qq.com]
- ๐ฌ Discussions: GitHub Discussions
- ๐ Issues: GitHub Issues
If TideScope helps you, please give us a โญ Star!
Let's make open source collaboration better together!
Made with โค๏ธ and โ by TideScope Team

