2026-05-21
GitLink
Contributor Growth System
I need to build the Contributor Growth System for "Sub-Problem 3: Build an End-to-End Automated Workflow".
At first, I thought about vibing a frontend project that would automatically fetch contribution data (gitlink-health) at intervals and build it. The AI suggested putting the contribution leaderboard directly into a Markdown file.
Let's analyze the pros and cons of these two presentation forms:
- Markdown
- Pros: Simple, can be tracked by version control
- Cons: The presentation may not be as flashy?
- Web page
- Pros: Rich presentation format
- Cons: Complex, long build time, cannot preserve historical data?
Should we keep historical data? I think we should. Although we could later read the full dataset and reconstruct the leaderboard for each period, some awards may require human intervention and cannot be solved purely by logic.
Decided: only use Markdown format for now.
I think we should implement both and give users more choices.
The specific workflow should be like this:
- Set up a pipeline on the GitLink platform and specify the target repository
- Run the gitlink-health analysis Skill to obtain metadata from the target repository
- Analyze the metadata to generate ranking data
- Based on the ranking data:
- Generate a web page
- Generate a Markdown file
Let me outline the logic: Get data → Analyze data → Leaderboard → Award badges
The steps for data acquisition and analysis are fine and already implemented in gitlink-health.
How to analyze the data?
- Hardcoded SQL queries
- AI + Skill-generated SQL queries
Since gitlink-health already uses AI to generate SQL queries, why not use AI here as well?
Going back to the effect of gitlink-health, it’s from a project perspective, not an individual perspective, so it doesn’t actually generate individual rankings.
Therefore, we can create a gitlink-growth Skill that reuses gitlink-health’s data collection scripts and database table design, and generates its own SQL queries to produce the leaderboard.
Automatic Issue Triage
While thinking about the above task, I realized that we cannot achieve fine-grained individual ranking — for example, who contributed most in which area. This could be solved through tags and assignments on PRs and Issues.
So, let’s build this Skill first: automatic triage, tagging, and assignment of responsible persons.
What is the core of this task? I think it’s matching.
- Matching PRs/Issues with tags
- Matching tasks with assignees
How to do it? GitHub has a purely logic-based labeler, which is very simple:
- The developer defines file path patterns and corresponding tags.
- When a PR modifies files in a specific path, it automatically gets the relevant tag. For example, modifying code under
frontend/automatically gets a "frontend" tag.
How does the Agent Skill work?
- The repository admin also needs to define a rule file.
- A PR is raised → triggers the pipeline → the pipeline calls the Agent Skill → tags are applied.
- The Agent uses gitlink-cli to get the modified file paths in the PR, identifies the changed modules → applies tags, identifies the task type → assigns to a person.