一键导入
work
Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PR
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PR
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Create a GitHub issue with project board integration
Explain recent code changes in simple terms a junior dev can understand
Open or create a pull request from the current branch with a clean, deduplicated summary
Create a release PR to main with version bump and draft a GitHub release
基于 SOC 职业分类
| name | work |
| description | Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PR |
Pick up a GitHub issue and set up everything needed to start working on it: understand the issue, create a feature branch, generate a spec-driven plan, and optionally push and open a PR.
work - Interactive mode, lists recent issues to choose fromwork 42 - Start working on issue #42work https://github.com/org/repo/issues/42 - Start from a full issue URLIf $ARGUMENTS is provided, parse it:
42) - treat as issue number in the current repohttps://github.com/org/repo/issues/42) - extract owner, repo, and number from the URLWeaverse/pilot#42) - extract owner, repo, and numberIf $ARGUMENTS is empty or not provided, list recent open issues and let the user pick:
gh issue list --state open --limit 20 --json number,title,labels,assignees
Present the issues to the user and ask them to select one.
gh issue view <number> --json title,body,labels,assignees,milestone,state,url
Display a concise summary of the issue so the user understands what they are about to work on:
Suggest a branch name derived from the issue using a type prefix:
Format: <type>/<kebab-case-description>
Determine the type from the issue's labels, title, or body:
| Type | When to use | Examples |
|---|---|---|
feat/ | New feature, new capability | feat/dark-mode-toggle, feat/user-onboarding-flow |
fix/ | Bug fix, error correction | fix/cart-total-calculation, fix/null-pointer-in-auth |
refactor/ | Code improvement, restructuring | refactor/extract-payment-utils, refactor/simplify-auth-flow |
docs/ | Documentation changes | docs/api-reference, docs/setup-guide |
chore/ | Maintenance, config, tooling | chore/upgrade-dependencies, chore/ci-pipeline |
Branch name rules:
/)If the type cannot be determined confidently, default to feat/ and let the user confirm.
Ask the user to confirm or customize the branch name.
Then ask which branch to check out from:
# Show available remote branches for context
git branch -r --list 'origin/*' --sort=-committerdate | head -10
Present common options (e.g., main, dev) plus the list above. Let the user pick or type a custom base branch.
git fetch origin <base-branch>
git checkout -b <new-branch> origin/<base-branch> --no-track
This step follows Spec-Driven Development (SDD) conventions. The plan output goes into the .specs/ folder, NOT the .plans/ folder.
Create the spec folder: .specs/{YYYY-MM-DD}--{kebab-case-title}/
Create .specs/{folder}/README.md with the SDD template:
# Feature: [Issue Title]
| Field | Value |
| ---------------- | ----------------------------------------- |
| **Status** | in-progress |
| **Owner** | @<current git user or assignee> |
| **Created** | YYYY-MM-DD |
| **Last Updated** | YYYY-MM-DD |
## Original Prompt
> [Paste the exact issue body here. Do not edit or paraphrase.]
## Summary
[2-3 sentences. What this feature does and why it exists.]
Ask the user if they want to provide additional guidance or context for the planning phase (free text). This becomes extra input passed to the planning skill.
Invoke the feature-plan skill to generate .specs/{folder}/plan.md.
.specs/{folder}/plan.md instead of the skill's default .plans/ directoryAfter the plan is generated, ask the user:
"Spec and plan are ready. Should I commit and push them to remote?"
If yes:
git add .specs/<folder>/
git commit -m "Add spec and plan for #<issue-number>: <short-title>"
git push -u origin <new-branch>
If no, skip to Step 6 (the spec stays as uncommitted local files).
Ask the user:
"Should I create a draft PR targeting
<base-branch>?"
If yes:
gh pr create \
--base <base-branch> \
--head <new-branch> \
--title "<issue-title>" \
--body "$(cat <<'EOF'
## Summary
Spec and implementation plan for #<issue-number>.
See `.specs/<folder>/plan.md` for the full plan.
Closes #<issue-number>
EOF
)" \
--draft
Closes #<number> in the body to auto-link the PR to the issue.First, assign the current user to the issue if not already assigned:
gh issue edit <number> --add-assignee @me
Then, if a PR was created, update the issue status on the project board (if the issue belongs to a project):
# Get project items for this issue
gh api graphql -f query='
{
repository(owner: "<owner>", name: "<repo>") {
issue(number: <number>) {
projectItems(first: 10) {
nodes {
id
project { id number title }
}
}
}
}
}'
For each project the issue belongs to, find the "Status" field and set it to "In Progress" (or the closest matching option):
gh project item-edit \
--id <ITEM_ID> \
--project-id <PROJECT_ID> \
--field-id <STATUS_FIELD_ID> \
--single-select-option-id <IN_PROGRESS_OPTION_ID>
If the issue is not on any project board, skip this step silently.
Output a final summary of everything that was done:
Issue: #<number> - <title>
Branch: <new-branch> (from <base-branch>)
Spec: .specs/<folder>/
Plan: .specs/<folder>/plan.md
PR: <pr-url> (or "Not created")
Assignee: @<username> (assigned)
Status: Updated to "In Progress" (or "No project board found")
gh CLI is not installed or not authenticated, inform the user and stopgit checkout fails (e.g., uncommitted changes), warn the user and suggest stashing or committing firstfeature-plan skill is not available, fall back to creating a minimal plan.md with the issue details and a TODO outline.specs/ folder structurefeature-plan skill output MUST go to .specs/<folder>/plan.md, not .plans/README.md in the spec folder preserves the exact original issue body as the "Original Prompt" — do not paraphraseCloses #<number> in the PR body to link the PR to the issue for automatic closure on merge