with one click
create-task
Create a GitHub issue with project board integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create a GitHub issue with project board integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
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
Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PR
| name | create-task |
| description | Create a GitHub issue with project board integration |
Create a GitHub issue with full metadata and optional project board integration.
create-task - Interactive guided issue creationcreate-task Add dark mode support - Pre-fill the title/description from argumentsFollow these steps in order. Ask the user to gather all required info before creating anything.
Try to infer the GitHub owner/org from the current repository:
gh repo view --json owner --jq '.owner.login'
Store this as <owner> for all subsequent commands.
Fetch the list of projects dynamically:
gh project list --owner --format json --jq '.projects[] | "(.number) (.title)"'
Then ask the user to select a project. Include a "None (no project)" option.
Ask these in a single question block if possible:
Repository - List repos from the owner. Run: gh repo list --json name --jq '.[].name' --limit 50 Let user select one.
Title - Ask for the issue title (free text).
Assignee - Fetch collaborators/members dynamically: gh api repos///collaborators --jq '.[].login' Let user select from the list. Allow multiple selections. Include an "Unassigned" option.
Description/Body - Ask for the issue body content (free text). If user provides $ARGUMENTS, pre-fill from that. This is the raw/brief content that will be cleaned up (not padded) in the next step.
Content Style Instructions - Ask the user for custom guidelines on how to rewrite/enhance the description (free text). Examples:
This is a single free-text field where the user writes their style preferences.
The raw title and description from Step 3 are brief/rough inputs. Before creating the issue, clean them up and apply the user's content style instructions. Do NOT pad the description out.
Title:
Description:
Do NOT ask the user for approval of the cleaned-up content -- just apply the changes and proceed.
If a project was selected in Step 2, fetch the project's fields:
gh project field-list <PROJECT_NUMBER> --owner --format json
Then ask the user to set:
Status - Show the available status options from the project's SingleSelect fields (e.g., Todo, In Progress, In Review, Done, Closed).
Priority - Show available priority options if the project has a Priority field (e.g., High, Medium, Low). Include a "None" option.
Labels - Fetch labels from the selected repo: gh label list --repo / --json name --jq '.[].name' Let user select multiple. Include a "None" option.
Milestone - Fetch milestones from the selected repo: gh api repos///milestones --jq '.[].title' Let user select one. Include a "None" option.
Issue Type - Fetch issue types from the repo: gh api graphql -f query='{ repository(owner: "", name: "") { issueTypes(first: 20) { nodes { id name } } } }' Let user select one (e.g., Task, Bug, Feature). Include a "None" option.
gh issue create
--repo /
--title ""
--body "<body>"
--assignee "<assignee1>,<assignee2>"
--label "<label1>,<label2>"
--milestone "<milestone>"
Use a heredoc for the body to preserve formatting. Use the cleaned-up description from Step 4 (not the raw input from Step 3): gh issue create --repo / --title "" --assignee "<assignees>" --body "$(cat <<'EOF' <body content> EOF )"
Omit --assignee, --label, --milestone flags if the user selected "None" for those.
Get the issue node ID: gh api repos///issues/ --jq '.node_id'
Then set the type: gh api graphql -f query='mutation { updateIssueIssueType(input: { issueId: "<issue_node_id>", issueTypeId: "<type_id>"}) { issue { id } } }'
If a project was selected:
Add the issue to the project: gh project item-add <PROJECT_NUMBER> --owner --url <issue_url> --format json This returns the item ID.
Parse the GraphQL item ID from the JSON output (field: id).
Get the numeric database ID for the project board deep link: gh api graphql -f query='query { node(id: "<GRAPHQL_ITEM_ID>") { ... on ProjectV2Item { databaseId } } }' --jq '.data.node.databaseId' Save this numeric ID for the project board URL in Step 9.
Set Status on the project item:
gh project item-edit
--id <ITEM_ID>
--project-id <PROJECT_ID>
--field-id <STATUS_FIELD_ID>
--single-select-option-id <STATUS_OPTION_ID>
Set Priority on the project item (if selected and field exists):
--field-id <PRIORITY_FIELD_ID>
--single-select-option-id <PRIORITY_OPTION_ID>
Output a summary of what was created:
https://github.com/<owner>/<repo>/issues/<number>https://github.com/orgs/<owner>/projects/<project_number>?pane=issue&itemId=<numeric_item_id>&issue=<owner>%7C<repo>%7C<issue_number>gh CLI is not installed or not authenticated, inform the user and stopgh command fails, show the error to the user and ask how to proceed--format json when you need to parse output from gh commands.field-list) for item-edit commands, not display names.--project flag on gh issue create does NOT set project field values -- you must use gh project item-add + gh project item-edit separately.