Latest Posts

ๅฆ‚ไฝ•ๅœจPop!_OS 24.04 COSMICๆกŒ้ขไธ‹ไฝฟ็”จไธญๆ–‡ๅ€‰้ ก้€Ÿๆˆ่ผธๅ…ฅๆณ•

ๅŽŸๆ–‡ๅŽŸๅˆŠๆ–ผMedium: https://medium.com/hong-kong-linux-user-group/how-to-type-chinese-cangjie-quick-on-pop-os-24-04-with-the-cosmic-desktop-178627ac335fๅฅฝๅคšๆœ‹ๅ‹ๅ‡็ดšๅˆฐPop!_OS...
Read more โ†’

One Watcher, Any Pipeline: Label-Based Dispatch

As the system grew, every new pipeline type โ€” bug fixes, documentation, features โ€” needed its own Python script and GitHub Actions workflow. This post covers how all of them were unified into a single watcher process where a GitHub label determines which pipeline runs. Adding a new pipeline now means writing one YAML file.
Read more โ†’

Blocky Pipeline: Build Your Own Stage Sequence

Standard mode and TDD mode cover most use cases, but sometimes you want a custom sequence โ€” run two review loops in a row, skip deployment tests, or run a domain-specific agent you added yourself. This post covers pipeline.yaml: a separate config file that lets you define any stage sequence with explicit loop blocks, and a drag-and-drop GUI that builds it without hand-editing YAML.
Read more โ†’

Write the Test First: TDD Pipeline Mode

The standard pipeline writes code first, then tests. This post covers a TDD mode that flips the order: QA writes tests before the engineers see the problem, then engineers implement against those tests, then a fix loop runs until the suite is green. It also covers how this forced a proper stage registry โ€” replacing hardcoded stage sequences with a configurable system.
Read more โ†’

The LLM Relay: Pluggable Backends and Auto-Failover

The original pipeline was hardwired to GitHub Models. This post covers how I extracted every LLM backend into its own class with a shared interface, added a relay that automatically falls back to the next backend on connection failure, and what I learned about building resilient AI infrastructure around unreliable upstream APIs.
Read more โ†’