ga
GitHub自动化启动新开发任务,根据描述生成分支名并创建并行工作区。通过构建提示词调用Pi或Claude执行开发,最终报告会话信息以便用户连接。
触发场景
安装
npx skills add trycompai/crm --skill ga -g -y
SKILL.md
Frontmatter
{
"name": "ga",
"description": "Kick off a new feature or fix in a parallel clone with Pi working autonomously. Takes a problem description, generates a concise branch name, runs ga to set up the worktree, and sends a crafted prompt to the new Pi session.",
"user-invocable": true
}
ga - Start a New Task
Kick off a new parallel development task. Creates a clone, branch, tmux session, and starts Pi with a crafted prompt.
Steps
-
Get the task description from the user's message. If unclear, ask what they want to build or fix.
-
Generate a concise branch name from the description:
- Use lowercase kebab-case
- Max 3-4 words, abbreviate aggressively
- Prefix with
fix-for bug fixes - Examples:
- "the login button doesn't work on mobile" →
fix-mobile-login-btn - "add a dark mode toggle to settings" →
dark-mode-toggle - "search results are slow when filtering by date" →
fix-search-date-perf - "implement rate limiting on the API" →
api-rate-limit - "the sidebar collapses when resizing" →
fix-sidebar-resize - "add webhook support for deployments" →
deploy-webhooks
- "the login button doesn't work on mobile" →
-
Build the prompt that Pi will receive in the new session. The prompt MUST follow this structure:
<Clear description of the problem or feature> <Any relevant context: file paths, error messages, specific behavior> When you're done, run /create-draft-pr to commit, push, and open a draft PR.Keep the prompt direct and actionable. Don't over-explain. Include specific file paths or error details if the user mentioned them.
-
Pick the harness. Default is
pi, so omit the flag for normal use. If the user's message explicitly asks for Claude Code (e.g. "use claude", "with claude", "claude harness"), pass--harness c. -
Run
gawith the branch name, prompt, and base branch. Thegafunction accepts a second argument for the prompt and a third for the base branch, which skips the fzf picker:ga <branch-name> "<prompt>" main # or explicitly with Claude Code: ga --harness c <branch-name> "<prompt>" mainIf
gais not found, source~/.zshrcfirst and then run it again, since in some environmentsgais defined as a shell function rather than an executable. -
Report back to the user with the branch name and tmux session name so they can attach:
Started: <session-name> Branch: <branch-prefix>/<branch-name> Attach: tmux a -t <session-name>
Rules
- Branch names must be short. 3-4 words max. Abbreviate (
btn,auth,cfg,nav,perf,err,msg,req,res,fmt,val,tmpl,env,deps). - Always include the
/create-draft-prinstruction in the prompt. - The prompt should be a single clear message, not a multi-step plan. Let Pi figure out the implementation.
- If the user provides file paths or error messages, include them verbatim in the prompt.
- Don't over-specify. Trust Pi to explore the codebase and find the right approach.
版本历史
- c26a08d 当前 2026-08-08 08:03


