Skip to content

tscircuit/contribution-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

contribution-tracker

contributions.tscircuit.com ・ tscircuit.com ・ Contribution Overviews ・ Changelogs

Generates weekly contribution overviews for tscircuit contributors. Check out all the contribution overviews here You can find AI-generated monthly changelogs in the changelogs directory.

  • All PRs in the tscircuit org are scanned/summarized via an LLM
  • The LLM classifies each Diff/PR as into a set of attributes for scoring
  • All the PRs, summaries, and classifications are organized into charts and tables for the website

Want to run locally? See the Development Section

The current week is shown below. There are 4 major sections:

Current Week

Contribution Overview 2025-11-05

The current week is shown below. There are 4 major sections:

PRs by Repository

pie
    "tscircuit/tscircuit" : 6
    "tscircuit/tscircuit.com" : 2
    "tscircuit/eval" : 2
    "tscircuit/runframe" : 6
    "tscircuit/cli" : 6
    "tscircuit/core" : 1
    "tscircuit/contribution-tracker" : 2
    "tscircuit/copper-pour-solver" : 1
    "tscircuit/circuit-json-to-gerber" : 1
    "tscircuit/kicadts" : 4
    "tscircuit/kicad-to-circuit-json" : 2
Loading

Contributor Overview

Contributor 🐳 Major πŸ™ Minor 🐌 Tiny ⭐ Score Discussion Contributions
imrishabh18 4 2 0 ⭐⭐ 21 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
tscircuitbot 0 0 19 ⭐⭐ 12 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
ShiboSoftwareDev 1 1 0 ⭐ 8 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
Ayushjhawar8 1 0 1 ⭐ 5 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
Asymtode712 0 1 0 2 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
RaghavArora14 0 0 1 1 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
rushabhcodes 0 0 1 1 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž
ArnavK-09 0 0 1 1 0πŸ”Ή 0πŸ”Ά 0πŸ’Ž

Note: AI evaluates PRs and assigns 1-3 star ratings automatically. 4 and 5 star ratings require manual staff review.

Discussion Contribution Legend

  • πŸ”Ή Normal Comments: Basic participation with minimal effort
  • πŸ”Ά Great Informative Comments: Thoughtful participation that adds value
  • πŸ’Ž Incredible Comments: Exceptional participation with high-quality content

Review Table

Contributor Reviews Received Approvals Received Rejections Received Approvals Rejections PRs Opened PRs Merged Score Issues Created Bountied Issues Bountied Issue $
Quanta-Naut 2 0 1 0 0 1 0 0 0 0 0
imrishabh18 3 1 0 0 1 6 6 21 0 0 0
tscircuitbot 0 0 0 0 0 23 19 12 0 0 0
Asymtode712 5 1 0 0 0 2 1 2 0 0 0
seveibar 0 0 0 6 0 0 0 0 0 0 0
techmannih 0 0 0 0 0 0 0 0 0 0 0
RaghavArora14 1 1 0 0 0 1 1 1 0 0 0
ShiboSoftwareDev 2 2 0 2 0 2 2 8 0 0 0
rushabhcodes 1 1 0 0 0 1 1 1 0 0 0
ArnavK-09 1 1 0 0 0 1 1 1 0 0 0
Ayushjhawar8 4 1 0 0 0 2 2 5 0 0 0
nailoo 1 0 0 0 0 1 0 0 0 0 0

Top 7 Repositories by Contribution Points

pie
    "tscircuit/kicadts" : 12
    "tscircuit/runframe" : 9
    "tscircuit/kicad-to-circuit-json" : 8
    "tscircuit/tscircuit" : 6
    "tscircuit/cli" : 6
    "tscircuit/copper-pour-solver" : 4
    "tscircuit/tscircuit.com" : 2
Loading

Scoring & Sponsorship System

Overview

PRs are analyzed by AI and assigned a star rating (1-3 stars). 4 and 5 star ratings can only be manually assigned by staff. Weekly scores use 2^(starRating - 1) per PR (capped at 12 PRs per rating), plus review/discussion points.

Weekly Score β†’ Star String

Score Range Star String Count Value
0-3 (empty) 0 stars
4-10 ⭐ 1 star
11-30 ⭐⭐ 2 stars
31-50 ⭐⭐⭐ 3 stars
51-75 πŸ‘‘ 1 crown
76-100 πŸ‘‘πŸ‘‘ 2 crowns
101+ πŸ‘‘πŸ‘‘πŸ‘‘ 3 crowns

Crowns count as 3 stars for sponsorship.

Monthly Sponsorship Calculation

The sponsorship system calculates monthly payments based on your weekly star counts over the complete weeks in that month (typically 4-5 weeks, Wednesday-Tuesday format).

Step 1: Collect Weekly Stars

  • All complete weeks in the month are analyzed
  • Each week's star string is converted to a numeric count (⭐ = 1 star, ⭐⭐⭐ = 3 stars)
  • Example: [2, 2, 2, 1, 0] means 2 stars in week 1, 2 stars in week 2, etc.

Step 2: Calculate Metrics

  • Median stars: The median value of all weekly star counts
  • Min stars: The minimum weekly star count
  • Max stars: The maximum weekly star count
  • High score: The maximum raw weekly score (0-100+ range from the scoring table) from any week in the month

Step 3: Determine Base Amount The sponsorship amount is calculated based on these metrics (checked in order):

Condition Base Amount
minStarCount >= 3 $500
medianStars >= 3 $450
medianStars >= 2.5 $300
medianStars >= 2 $200
medianStars >= 1.5 $100
medianStars >= 1 $75
maxStarCount >= 2 $25
maxStarCount >= 1 $15
highScore >= 3 (and all stars = 0) $5
Maintainer Level Monthly Bonus
Level 1 $200
Level 2 $350
Level 3 $500

Final Amount = Base Amount + Maintainer Bonus

Changes by Repository

🐌 Tiny Contributions (6)
PR # Impact Contributor Description
#1269 🐌 Tiny tscircuitbot Automated package update
#1268 🐌 Tiny tscircuitbot Automated package update
#1267 🐌 Tiny tscircuitbot Automated package update
#1266 🐌 Tiny tscircuitbot Automated package update
#1265 🐌 Tiny tscircuitbot Automated package update
#1264 🐌 Tiny tscircuitbot Updates the tscircuitcli package from version 0.1.443 to 0.1.444 and the tscircuitrunframe package from version 0.0.1206 to 0.0.1207 in package.json
🐌 Tiny Contributions (2)
PR # Impact Contributor Description
#1951 🐌 Tiny tscircuitbot Updates the tscircuiteval package version from 0.0.451 to 0.0.452
#1952 🐌 Tiny ArnavK-09 Fixes the proxy URL used in the import dialog to ensure correct API calls are made.
🐌 Tiny Contributions (2)
PR # Impact Contributor Description
#1460 🐌 Tiny tscircuitbot Automated package update
#1459 🐌 Tiny tscircuitbot Automated package update
PR # Impact Rating Contributor Description
#1673 🐳 Major ⭐⭐⭐ Ayushjhawar8 Fixes the natural sorting of filenames in the file selector component to ensure proper order when displaying files.
🐌 Tiny Contributions (5)
PR # Impact Contributor Description
#1683 🐌 Tiny tscircuitbot Updates the package version from 0.0.1208 to 0.0.1209 in package.json
#1682 🐌 Tiny tscircuitbot Updates the tscircuiteval package to version 0.0.452 in the package.json file.
#1681 🐌 Tiny tscircuitbot Automated package update
#1680 🐌 Tiny tscircuitbot Updates the package version from 0.0.1206 to 0.0.1207 in package.json
#1672 🐌 Tiny Ayushjhawar8 img width1021 height277 altimage srchttps:github.comuser-attachmentsassets4430e588-fc3e-4519-be92-f22a44b67fa2
🐌 Tiny Contributions (6)
PR # Impact Contributor Description
#840 🐌 Tiny tscircuitbot Automated package update
#839 🐌 Tiny tscircuitbot Updates the tscircuitrunframe package from version 0.0.1208 to 0.0.1209
#838 🐌 Tiny tscircuitbot Automated package update
#837 🐌 Tiny tscircuitbot Automated package update
#836 🐌 Tiny tscircuitbot Automated package update
#835 🐌 Tiny tscircuitbot Updates the tscircuitrunframe package from version 0.0.1206 to 0.0.1207
PR # Impact Rating Contributor Description
#1617 πŸ™ Minor ⭐⭐ Asymtode712 Implements pcbStyle inheritance for kicad: footprints by passing the resolved pcbStyle to footprintLibraryMap functions, enabling override of silkscreen font size and other style properties.
🐌 Tiny Contributions (2)
PR # Impact Contributor Description
#259 🐌 Tiny RaghavArora14 Adds GitHub username and Discord ID for user RaghavArora14 in users.json
#258 🐌 Tiny rushabhcodes Adds the Discord ID and GitHub username of the user rushabhcodes to the users.json file.
PR # Impact Rating Contributor Description
#2 🐳 Major ⭐⭐⭐ ShiboSoftwareDev This pull request implements the core logic for the copper pour solver. It introduces a complete pipeline that takes a circuit-json input and generates B-Rep shapes for the copper pour regions. Key changes include: Copper Pour Solver Implementation: The CopperPourPipelineSolver is built out to process obstacles, perform boolean geometry operations using flatten-js, and generate final B-Rep shapes. Circuit JSON Conversion: A new function convertCircuitJsonToInputProblem is added to translate standard circuit-json elements (pads, traces, holes) into the solvers internal InputProblem format. Comprehensive Testing: A suite of snapshot tests has been added, rendering the output of the solver to SVG for multiple circuit configurations to visually validate the results. Type Definitions: Updated libtypes.ts to support various pad shapes (rect, circle, trace) and define the solvers input and output structures. Dependency Updates: Added flatten-jscore for geometric calculations and circuit-to-svg for test rendering.
PR # Impact Rating Contributor Description
#62 πŸ™ Minor ⭐⭐ ShiboSoftwareDev Adds a boolean property, covered_with_solder_mask, to copper pour elements, allowing for solder mask-free regions when set to false.
PR # Impact Rating Contributor Description
#18 🐳 Major ⭐⭐⭐ imrishabh18 Add new classes for graphical elements: GrCircle, GrRect, and Group, including properties for locked state and UUID.
#19 🐳 Major ⭐⭐⭐ imrishabh18 Adds GrPoly class for polygon representation and enhances GrText class to support render_cache functionality.
#20 πŸ™ Minor ⭐⭐ imrishabh18 Adds support for the fill token in PadPrimitiveGrPoly, allowing it to accept a string value for fill properties.
#21 πŸ™ Minor ⭐⭐ imrishabh18 Adds graphicPolys and graphicRects to the KicadPcb type for enhanced graphical representation.
PR # Impact Rating Contributor Description
#20 🐳 Major ⭐⭐⭐ imrishabh18 This pull request introduces the ViaGridBoard feature, which processes filled rectangles on copper layers and creates corresponding SMT pads in the PCB design. It enhances the PCB graphics processing capabilities by adding support for gr_rect elements, ensuring that filled rectangles are correctly interpreted and represented in the output JSON format. Additionally, it updates the kicadts dependency to a newer version and includes new test snapshots and assets for the ViaGridBoard functionality.
#21 🐳 Major ⭐⭐⭐ imrishabh18 Adds support for parsing filled polygons from KiCad and converting them into pcb_smtpad shapes in the Circuit JSON format.

Changes by Contributor

🐌 Tiny Contributions (19)
PR # Impact Description
#1269 🐌 Tiny Automated package update
#1268 🐌 Tiny Automated package update
#1267 🐌 Tiny Automated package update
#1266 🐌 Tiny Automated package update
#1265 🐌 Tiny Automated package update
#1264 🐌 Tiny Updates the tscircuitcli package from version 0.1.443 to 0.1.444 and the tscircuitrunframe package from version 0.0.1206 to 0.0.1207 in package.json
#1951 🐌 Tiny Updates the tscircuiteval package version from 0.0.451 to 0.0.452
#1460 🐌 Tiny Automated package update
#1459 🐌 Tiny Automated package update
#1683 🐌 Tiny Updates the package version from 0.0.1208 to 0.0.1209 in package.json
#1682 🐌 Tiny Updates the tscircuiteval package to version 0.0.452 in the package.json file.
#1681 🐌 Tiny Automated package update
#1680 🐌 Tiny Updates the package version from 0.0.1206 to 0.0.1207 in package.json
#840 🐌 Tiny Automated package update
#839 🐌 Tiny Updates the tscircuitrunframe package from version 0.0.1208 to 0.0.1209
#838 🐌 Tiny Automated package update
#837 🐌 Tiny Automated package update
#836 🐌 Tiny Automated package update
#835 🐌 Tiny Updates the tscircuitrunframe package from version 0.0.1206 to 0.0.1207
PRs # Impact Rating Description
#1617 πŸ™ Minor ⭐⭐ Implements pcbStyle inheritance for kicad: footprints by passing the resolved pcbStyle to footprintLibraryMap functions, enabling override of silkscreen font size and other style properties.
🐌 Tiny Contributions (1)
PR # Impact Description
#259 🐌 Tiny Adds GitHub username and Discord ID for user RaghavArora14 in users.json
🐌 Tiny Contributions (1)
PR # Impact Description
#258 🐌 Tiny Adds the Discord ID and GitHub username of the user rushabhcodes to the users.json file.
PRs # Impact Rating Description
#2 🐳 Major ⭐⭐⭐ This pull request implements the core logic for the copper pour solver. It introduces a complete pipeline that takes a circuit-json input and generates B-Rep shapes for the copper pour regions. Key changes include: Copper Pour Solver Implementation: The CopperPourPipelineSolver is built out to process obstacles, perform boolean geometry operations using flatten-js, and generate final B-Rep shapes. Circuit JSON Conversion: A new function convertCircuitJsonToInputProblem is added to translate standard circuit-json elements (pads, traces, holes) into the solvers internal InputProblem format. Comprehensive Testing: A suite of snapshot tests has been added, rendering the output of the solver to SVG for multiple circuit configurations to visually validate the results. Type Definitions: Updated libtypes.ts to support various pad shapes (rect, circle, trace) and define the solvers input and output structures. Dependency Updates: Added flatten-jscore for geometric calculations and circuit-to-svg for test rendering.
#62 πŸ™ Minor ⭐⭐ Adds a boolean property, covered_with_solder_mask, to copper pour elements, allowing for solder mask-free regions when set to false.
🐌 Tiny Contributions (1)
PR # Impact Description
#1952 🐌 Tiny Fixes the proxy URL used in the import dialog to ensure correct API calls are made.
PRs # Impact Rating Description
#1673 🐳 Major ⭐⭐⭐ Fixes the natural sorting of filenames in the file selector component to ensure proper order when displaying files.
🐌 Tiny Contributions (1)
PR # Impact Description
#1672 🐌 Tiny img width1021 height277 altimage srchttps:github.comuser-attachmentsassets4430e588-fc3e-4519-be92-f22a44b67fa2
PRs # Impact Rating Description
#18 🐳 Major ⭐⭐⭐ Add new classes for graphical elements: GrCircle, GrRect, and Group, including properties for locked state and UUID.
#19 🐳 Major ⭐⭐⭐ Adds GrPoly class for polygon representation and enhances GrText class to support render_cache functionality.
#20 🐳 Major ⭐⭐⭐ This pull request introduces the ViaGridBoard feature, which processes filled rectangles on copper layers and creates corresponding SMT pads in the PCB design. It enhances the PCB graphics processing capabilities by adding support for gr_rect elements, ensuring that filled rectangles are correctly interpreted and represented in the output JSON format. Additionally, it updates the kicadts dependency to a newer version and includes new test snapshots and assets for the ViaGridBoard functionality.
#21 🐳 Major ⭐⭐⭐ Adds support for parsing filled polygons from KiCad and converting them into pcb_smtpad shapes in the Circuit JSON format.
#20 πŸ™ Minor ⭐⭐ Adds support for the fill token in PadPrimitiveGrPoly, allowing it to accept a string value for fill properties.
#21 πŸ™ Minor ⭐⭐ Adds graphicPolys and graphicRects to the KicadPcb type for enhanced graphical representation.

Repository Owners

Repository Codeowners
builder seveibar
pcb-viewer seveibar, ShiboSoftwareDev
footprints-old seveibar
footprinter seveibar, techmannih
3d-viewer ShiboSoftwareDev
winterspec seveibar, ShiboSoftwareDev
jscad-electronics seveibar, techmannih, ShiboSoftwareDev, anas-sarkez
circuit-to-svg imrishabh18
schematic-symbols seveibar, imrishabh18, techmannih
circuit-json-to-gerber seveibar, ShiboSoftwareDev
tscircuit.com seveibar, imrishabh18
issue-roulette Anshgrover23
sparkfun-boards ShiboSoftwareDev, Abse2001, MustafaMulla29, Anshgrover23, techmannih
schematic-corpus Abse2001
common seveibar, Abse2001

Repositories by Owner

User Repo
seveibar builder
pcb-viewer
footprints-old
footprinter
winterspec
jscad-electronics
schematic-symbols
circuit-json-to-gerber
tscircuit.com
common
ShiboSoftwareDev pcb-viewer
3d-viewer
winterspec
jscad-electronics
circuit-json-to-gerber
sparkfun-boards
techmannih footprinter
jscad-electronics
schematic-symbols
sparkfun-boards
anas-sarkez jscad-electronics
imrishabh18 circuit-to-svg
schematic-symbols
tscircuit.com
Anshgrover23 issue-roulette
sparkfun-boards
Abse2001 sparkfun-boards
schematic-corpus
common
MustafaMulla29 sparkfun-boards

Development

Prerequisites

  • Bun runtime
  • .env file with required API keys:
    GITHUB_TOKEN=your_github_token
    OPENAI_API_KEY=your_openai_api_key
    DISCORD_TOKEN=your_discord_token (optional, for Discord integration)
    SLACK_BOT_TOKEN=your_slack_token (optional, for Slack integration)
    

Available Scripts

Core Generation Scripts

  • bun run generate:weekly - Generate current week's contribution overview
  • bun run generate:monthly - Generate current month's contribution overview
  • bun run generate:changelog - Generate monthly changelog from PRs

Analysis & Testing

  • bun run analyze-pr - Analyze a single PR (interactive prompt)
  • bun run test:github - Test GitHub API integration

Notifications & Sync

  • bun run notifications:issues - Send notifications for new issues
  • bun run notifications:pr - Send notifications for new PRs
  • bun run sync:discord - Sync contributor roles with Discord

Data Export

  • bun run export:sponsorship - Generate sponsorship data CSV

Development

  • bun run dev - Start development server for web UI
  • bun run build - Build for production
  • bun run format - Format code with Biome

Usage Examples

# Generate this week's contribution overview
bun run generate:weekly

# Generate current month's overview
bun run generate:monthly

# Analyze a specific PR
bun run analyze-pr

# Test your GitHub token setup
bun run test:github

About

Generate a contribution summary for your projects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published