跪拜 Guibai
← All articles
AI Programming

A Maintainer Built a Multi-Platform Issue Triage Tool Without Opening an Editor

By 有来技术 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

A single-file, zero-dependency dashboard that aggregates and triages Issues across Gitee, GitHub, and AtomGit solves a real fragmentation problem for maintainers who mirror repositories across Chinese and global platforms. The prompt-engineering tactics—locking down boundaries, providing formulas instead of vague instructions, and using screenshot-driven feedback—are directly transferable to any developer using AI coding agents to build internal tools.

Summary

Managing Issues across three platforms for 20+ repositories became untenable, so a maintainer built an "Open Source Clinic" dashboard entirely through conversational AI prompts. The tool pulls open Issues from Gitee, GitHub, and AtomGit into a single triage view, prioritizing them with a formula that weights issue type, freeze days, and reply count. Closed Issues are clustered and mined for answers, automatically generating FAQ entries from comment threads. A five-dimensional health score for each repository, calculated from Star trends, push recency, and Issue backlog, gives evaluators a quick vitality check. The entire 2,700-line tool is a single HTML file with zero dependencies, built over a dozen prompt iterations without writing a line of code or CSS.

Takeaways
Open Issues from Gitee, GitHub, and AtomGit are aggregated into one table and auto-prioritized using a formula: freeze days × type weight (Bug/Deployment 3.0, Compatibility/Performance 2.5, Feature Request 1.0, Discussion 0.5) × 1.5 if zero replies.
Closed Issues are clustered by title keywords and mined for answers; Gitee's "rejected" Issues are kept because they often capture usage misunderstandings that make the best FAQ material.
An 18-repository health score combines Star scale, Star growth rate, days since last push, Issue backlog, and repository age; Star trends grow from localStorage snapshots when no API token is present.
Chinese text hot-keyword extraction uses bigram tokenization as a zero-dependency workaround since the language lacks natural word boundaries.
Gitee's free API has an undocumented rate limit that triggers 403s; the tool degrades gracefully by embedding offline demo snapshots and defaulting health checks to AtomGit.
AtomGit's API uses a v5 style with an /api prefix in the host, unlike GitHub's v3 style; AI will confidently hallucinate the wrong endpoint if not explicitly corrected.
Six UI rules prevent the "AI generic look": low-saturation backgrounds with one accent color, frosted glass only on the sticky header, an 8px grid for all spacing, shadows only on hover, animated core metrics (max 3 types), and font-size levels spaced at least 1.5x apart.
The entire tool is a single HTML file with no external dependencies, built through roughly a dozen prompt iterations using TRAE Work's GLM-5.3 model at half the cost of comparable models.
Conclusions

Giving AI a formula ("freeze days × type weight × 1.5 if zero replies") produces a precise implementation; asking for "smart prioritization" produces an algorithm that is almost always unusable. This is a broadly applicable prompt-engineering rule.

Explicitly stating what NOT to do ("pure front-end," "no dependencies") is as important as stating requirements. Without these negative constraints, AI coding agents default to adding build toolchains and back-ends.

The feedback loop of screenshot → red circle → one sentence proved more efficient than writing code or CSS directly, and the AI agent verified its own changes in a browser. This shifts the developer's role from writer to reviewer.

Gitee's undocumented rate limiting and AtomGit's subtly different API structure are exactly the kind of platform-specific friction that makes cross-platform open-source maintenance painful and that AI agents, left unchecked, will confidently gloss over.

Embedding real Issue data as offline demo snapshots directly into the HTML is a pragmatic fallback that turns an API dependency into a graceful degradation, not a broken tool.

Concepts & terms
Bigram Tokenization for Chinese
A technique for segmenting Chinese text without a dictionary or NLP library. Since Chinese has no spaces between words, a sliding window of two characters (bigrams) is run across the text; high-frequency bigrams surface meaningful terms, while low-frequency noise is naturally truncated.
TRAE Work
An AI-powered development platform that allows building and deploying applications entirely through conversational prompts. It handles code generation, browser-based verification, and one-click hosting of the resulting artifact as a shareable link.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗