millerlai
UserA Claude Code plugin that carries one feature through six gated SDLC stages (intake, discover, design, build, verify, ship) with zero-token preflight checks, cost-tiered subagents, a four-lens diff review, an append-only attempt ledger, a shell safety guard hook, and shared rules for how Claude works.
Categories
Indexed Skills (51)
gap-analysis
Use when asked how far cai is from an external practice — a deck, a playbook, a company's engineering blog, an industry survey — and the answer is expected to be a ranked, evidenced list of what to close rather than a prose comparison. Triggers include 差距、對照、比較、benchmark、"how do we compare".
git
A git or GitHub CLI operation the user asks for — commit, add, push, pull, merge, rebase, stash, branch create/switch, pr, or a combined request like "commit + push + pr" — run on the chore tier instead of the main session model.
goal
A design or plan doc to take from review to verified implementation — unit by unit when it carries a work breakdown schedule, whole otherwise. Usage: $goal <path to design/plan doc>
plan-review
A plan, design doc, spec, RFC, or ADR to review before anything is built from it — read from the requirements first, the way a senior architect would. Use when the user asks for that review, says "審一下這份計畫", "is this over-engineered", "does this match the requirements", "is this spec precise enough to build from" — and on your own plans before handing them over.
threat-modeling
Generate a professional Threat Modeling Report by analyzing the project's source code using STRIDE / DREAD / MITRE ATT&CK methodologies. Use this skill when the user asks to create a threat model, perform a security analysis of the codebase, produce a Threat-Modeling-Report.md, or update an existing threat model with changes from a given git time range. Supports two modes — full (from scratch) and patch (delta over a git time window).
discover
An unknown that would change the work, surfaced before implementation code is written — the codebase area is unfamiliar, the requirements are ambiguous, the option space is unexplored, a term is undefined, or the result will be judged by look and feel. Use when the user says "what am I missing", "interview me about this", "brainstorm the options", "mock this up first", or "I don't know what X is".
fix-issue
Use when asked to fix, resolve or work through a GitHub issue of this repo (for example "fix issue 142", "修 issue 142", "依序從 issue N 開始", or an issue URL) and the result should be a tested fix on a branch plus a PR that closes it. Covers reproducing on main, test-first, the cai-codex regenerate and release step, validate.py and the full pytest, the PR and its CI. Usage - /fix-issue <issue number or URL>
debug
Something demonstrably broken right now — a failing test, a crash, wrong behaviour, a regression — where the root cause comes before any fix. Use when the user says "this is broken", "fix this bug", "為什麼會壞", or pastes an error message or stack trace.
models
Show or change which model each cai role (chore, build, think) runs on, without re-running $setup. Run $models to review and switch, $models <role> <model> to set one role, or $models reset <role> to put it back on cai's default.
options
Lay out two or more ways forward so a person can actually choose between them: shared comparison dimensions, six fields per option including an everyday-life ELI5 analogy, a recommendation and the condition that voids it. Use before a list of options goes out, and after one already did and the reader could not act on it — 看不懂 / 這是什麼意思 / 差在哪 / 幫我展開 / 講白話一點 / 比較一下 / expand that / what is the difference / explain it simply / which should I pick. Usage: $options <what to compare, or nothing to rewrite the previous message>
package-upgrade-feedback
收集對 `/package-upgrade` skill 本身的改進建議(流程 / 功能 / UX),開成 GitHub Issue 送到 millerlai/auto-package-migration。當使用者輸入「/package-upgrade-feedback」、 「改進 package-upgrade」、「report package-upgrade issue」、「package-upgrade feedback」、 「想給 package-upgrade 建議」時觸發。 流程:(1) LLM 主動讀 `/package-upgrade` SKILL.md 並從外部視角擬一份 Improvement.md 草稿(純針對 skill 流程與功能面,**完全不引用**使用者環境、套件、ticket、路徑、 token 等私人 / 專案資料)→ (2) 用 `AskUserQuestion` 工具以「多選 + 自動 Other 自由輸入」 方式收集使用者優先項與補充意見 → (3) 整合為 final issue body 並過 `sanitize_feedback.sh` 過濾敏感資料 → (4) Review gate:使用者選 `y` 立即送出 / `edit` 修改 / `n` 取消 → (5) `gh issue create` 送到 millerlai/auto-package-migration (label=feedback)。
package-upgrade
升級 Python / JavaScript / TypeScript / Go 套件或修復 CVE 漏洞的完整工作流。 當使用者提到「升級 package」、「更新套件」、「fix CVE」、「修復漏洞」、 「package migration」、「dependency update」、「bump version」、 「升級 npm package」、「update axios / react / lodash」、「bump <pkg>」、 「升級 go module」、「update go.mod」、「go get upgrade」、 「govulncheck」、「v1 升 v2」、「major version upgrade」 時觸發此 skill。也適用於使用者提供 CVE 編號 (如 CVE-2024-xxxxx) 並希望修復的場景,以及提供 Atlassian Jira ticket URL (如 https://trendmicro.atlassian.net/browse/V1E-148968) 或 Jira issue key (如 V1E-148968) — 此時會自動讀取 ticket 內容、 分析應升級的套件、完成後將報告 comment 回 ticket,並依目前 ticket 狀態提議推進 (To Do → Ready for Work → Development → Done)。 也適用於使用者提供 GitHub Dependabot 安全警示頁面 URL (如 https://github.com/<owner>/<repo>/security/dependabot) — 此時會抓取所有 open 警示、依語言/manifest 分組、產出一份批次升級計畫 供使用者核可後,逐項驅動既有升級流程 (batch mode)。 Python: 支援 pip、poetry、uv 三種套件管理工具。 JavaScript/TypeScript: 支援 npm、yarn (1 & 3 Berry)、pnpm、bun,含 TypeScript .d.ts API surface diff、workspace/monorepo 偵測、 @types/<pkg> 同步升級偵測。 Go: 支援 go modules、major version path rewrite (v1→v2+)、apidiff
add-parameter
Apply the Add Parameter refactoring (crosses class boundaries). Fixes missing data. Executes the catalog mechanics one step at a time, testing after each step.
build
Build a detail design's work breakdown unit by unit, test-first, verifying and committing each one before the next starts — or, with no design document, cut checkpointed units yourself. Usage: $build <detail design doc, or what to build>
change-bidirectional-to-unidirectional
Apply the Change Bidirectional Association to Unidirectional refactoring (crosses class boundaries). Fixes Inappropriate Intimacy. Executes the catalog mechanics one step at a time, testing after each step.
change-reference-to-value
Apply the Change Reference to Value refactoring (wide blast radius — read the preconditions carefully). Fixes awkward shared lifecycle. Executes the catalog mechanics one step at a time, testing after each step.
change-unidirectional-to-bidirectional
Apply the Change Unidirectional Association to Bidirectional refactoring (crosses class boundaries). Fixes missing navigation. Executes the catalog mechanics one step at a time, testing after each step.
change-value-to-reference
Apply the Change Value to Reference refactoring (wide blast radius — read the preconditions carefully). Fixes duplicate entities. Executes the catalog mechanics one step at a time, testing after each step.
collapse-hierarchy
Apply the Collapse Hierarchy refactoring (wide blast radius — read the preconditions carefully). Fixes Lazy Class. Executes the catalog mechanics one step at a time, testing after each step.
consolidate-conditional-expression
Apply the Consolidate Conditional Expression refactoring (local and mechanical). Fixes scattered checks. Executes the catalog mechanics one step at a time, testing after each step.
consolidate-duplicate-conditional-fragments
Apply the Consolidate Duplicate Conditional Fragments refactoring (local and mechanical). Fixes duplication in branches. Executes the catalog mechanics one step at a time, testing after each step.
convert-procedural-design-to-objects
Apply the Convert Procedural Design to Objects refactoring (wide blast radius — read the preconditions carefully). Fixes procedural design. Executes the catalog mechanics one step at a time, testing after each step.
decompose-conditional
Apply the Decompose Conditional refactoring (local and mechanical). Fixes Long Method. Executes the catalog mechanics one step at a time, testing after each step.
design
Write a design document for review — diagnosis (something is broken: the root cause and the fix, one page), stance (the trade this system makes, one page, read in full), decisions (the choices that trade implies, routed so only what needs a person reaches one), detail (turns an approved entrance into something that can be built from), or delta (recovers the decisions from a branch already built). Usage: $design <what to design, or the mode: diagnosis|stance|decisions|detail|delta>
duplicate-observed-data
Apply the Duplicate Observed Data refactoring (wide blast radius — read the preconditions carefully). Fixes Large Class (GUI). Executes the catalog mechanics one step at a time, testing after each step.
encapsulate-collection
Apply the Encapsulate Collection refactoring (crosses class boundaries). Fixes Data Class. Executes the catalog mechanics one step at a time, testing after each step.
encapsulate-downcast
Apply the Encapsulate Downcast refactoring (local and mechanical). Fixes caller-side casts. Executes the catalog mechanics one step at a time, testing after each step.
encapsulate-field
Apply the Encapsulate Field refactoring (local and mechanical). Fixes Data Class. Executes the catalog mechanics one step at a time, testing after each step.
extract-class
Apply the Extract Class refactoring (crosses class boundaries). Fixes Large Class, Divergent Change, Data Clumps. Executes the catalog mechanics one step at a time, testing after each step.
extract-hierarchy
Apply the Extract Hierarchy refactoring (wide blast radius — read the preconditions carefully). Fixes overloaded class. Executes the catalog mechanics one step at a time, testing after each step.
extract-interface
Apply the Extract Interface refactoring (crosses class boundaries). Fixes Large Class, test seams. Executes the catalog mechanics one step at a time, testing after each step.
extract-method
Apply the Extract Method refactoring (local and mechanical). Fixes Long Method, Duplicated Code, Comments. Executes the catalog mechanics one step at a time, testing after each step.
extract-subclass
Apply the Extract Subclass refactoring (wide blast radius — read the preconditions carefully). Fixes Large Class. Executes the catalog mechanics one step at a time, testing after each step.
extract-superclass
Apply the Extract Superclass refactoring (wide blast radius — read the preconditions carefully). Fixes Duplicated Code. Executes the catalog mechanics one step at a time, testing after each step.
form-template-method
Apply the Form Template Method refactoring (wide blast radius — read the preconditions carefully). Fixes Duplicated Code. Executes the catalog mechanics one step at a time, testing after each step.
hide-delegate
Apply the Hide Delegate refactoring (local and mechanical). Fixes Message Chains. Executes the catalog mechanics one step at a time, testing after each step.
hide-method
Apply the Hide Method refactoring (local and mechanical). Fixes over-wide interface. Executes the catalog mechanics one step at a time, testing after each step.
inline-class
Apply the Inline Class refactoring (crosses class boundaries). Fixes Lazy Class. Executes the catalog mechanics one step at a time, testing after each step.
inline-method
Apply the Inline Method refactoring (local and mechanical). Fixes Middle Man, over-extraction. Executes the catalog mechanics one step at a time, testing after each step.
inline-temp
Apply the Inline Temp refactoring (local and mechanical). Fixes noise. Executes the catalog mechanics one step at a time, testing after each step.
intake
Turn a request into an acceptance-testable problem statement before any code exists — explore context, ask one question at a time, propose 2-3 approaches with a recommendation, then wait for approval. Usage: $intake <request>
introduce-assertion
Apply the Introduce Assertion refactoring (local and mechanical). Fixes Comments (implicit assumptions). Executes the catalog mechanics one step at a time, testing after each step.
introduce-explaining-variable
Apply the Introduce Explaining Variable refactoring (local and mechanical). Fixes complex expression. Executes the catalog mechanics one step at a time, testing after each step.
introduce-foreign-method
Apply the Introduce Foreign Method refactoring (local and mechanical). Fixes Incomplete Library Class. Executes the catalog mechanics one step at a time, testing after each step.
introduce-local-extension
Apply the Introduce Local Extension refactoring (crosses class boundaries). Fixes Incomplete Library Class. Executes the catalog mechanics one step at a time, testing after each step.
introduce-null-object
Apply the Introduce Null Object refactoring (crosses class boundaries). Fixes repeated null checks. Executes the catalog mechanics one step at a time, testing after each step.
introduce-parameter-object
Apply the Introduce Parameter Object refactoring (crosses class boundaries). Fixes Long Parameter List, Data Clumps. Executes the catalog mechanics one step at a time, testing after each step.
move-field
Apply the Move Field refactoring (crosses class boundaries). Fixes Feature Envy, Inappropriate Intimacy. Executes the catalog mechanics one step at a time, testing after each step.
move-method
Apply the Move Method refactoring (crosses class boundaries). Fixes Feature Envy, Shotgun Surgery. Executes the catalog mechanics one step at a time, testing after each step.
parameterize-method
Apply the Parameterize Method refactoring (crosses class boundaries). Fixes Duplicated Code. Executes the catalog mechanics one step at a time, testing after each step.
preserve-whole-object
Apply the Preserve Whole Object refactoring (crosses class boundaries). Fixes Long Parameter List. Executes the catalog mechanics one step at a time, testing after each step.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.