Agent Skills: Pin

|

UncategorizedID: laurigates/claude-plugins/git-issue-manage

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/git-plugin/skills/git-issue-manage

Skill Files

Browse the full folder contents for git-issue-manage.

Download Skill

Loading file tree…

git-plugin/skills/git-issue-manage/SKILL.md

Skill Metadata

Name
git-issue-manage
Description
|

Context

  • Repo: !git remote get-url origin
  • Open issues: !gh issue list --state open --json number,title --limit 10

Parameters

Parse $ARGUMENTS[0] as the operation, remaining args as issue numbers and options.

| Operation | Syntax | Description | |-----------|--------|-------------| | transfer | transfer <N> <target-repo> | Transfer issue to another repository | | pin | pin <N...> | Pin issues to repository (max 3) | | unpin | unpin <N...> | Unpin issues | | lock | lock <N...> [--reason <reason>] | Lock issue discussions | | unlock | unlock <N...> | Unlock issue discussions | | develop | develop <N> [--branch <name>] [--checkout] | Create branch from issue | | bulk | bulk <sub-op> <N...> [options] | Bulk operations on multiple issues | | fields | fields <N> [--set <field>=<value>] [--list] | Manage custom issue fields |

Lock reasons: off-topic, too heated, resolved, spam

Bulk sub-operations: label, assign, close, reopen

When to Use

| Use this skill when... | Use X instead when... | |------------------------|----------------------| | Transferring issues between repos | Creating new issues (github-issue-writing) | | Pinning/unpinning important issues | Implementing issue fixes (git:issue) | | Locking resolved discussions | Managing sub-issues/deps (git:issue-hierarchy) | | Creating dev branches from issues | Searching for issues (github-issue-search) | | Bulk labeling/assigning/closing | Auto-detecting related issues (github-issue-autodetect) | | Setting custom field values | |

Execution

Execute the requested issue management operation.

Step 1: Parse Operation and Validate

Parse the operation from $ARGUMENTS[0]. Validate that specified issue numbers exist:

gh issue view $N --json number,title,state 2>/dev/null

If any issue is not found, report it and skip that issue.

Step 2: Execute Operation

Transfer

Transfer an issue to another repository within the same organization or owner.

gh issue transfer $N $TARGET_REPO

Prerequisites:

  • Target repo must exist and you must have write access
  • Both repos must be owned by the same user/org (or target accepts transfers)

Report the new issue URL after transfer.

Pin / Unpin

Pin important issues to the top of the issues list (maximum 3 pinned per repo).

# Pin
gh issue pin $N

# Unpin
gh issue unpin $N

If pinning would exceed the 3-pin limit, report which issues are currently pinned and ask which to unpin.

Lock / Unlock

Lock issue threads to prevent further comments.

# Lock with reason
gh issue lock $N --reason resolved

# Lock without reason
gh issue lock $N

# Unlock
gh issue unlock $N

| Reason | When to use | |--------|-------------| | resolved | Issue is fixed, no further discussion needed | | off-topic | Discussion has drifted from the issue | | too heated | Discussion has become unproductive | | spam | Issue thread contains spam |

Develop

Create a development branch linked to the issue.

# Create branch and switch to it locally
gh issue develop $N --checkout

# Create branch with custom name
gh issue develop $N --name $BRANCH_NAME --checkout

# Create branch without checkout
gh issue develop $N

The branch name defaults to {issue-number}-{issue-title-slug}. The branch is automatically linked to the issue on GitHub.

Bulk Operations

Apply the same operation to multiple issues at once.

Bulk label:

for N in $ISSUE_NUMBERS; do
  gh issue edit $N --add-label "$LABELS"
done

Bulk assign:

for N in $ISSUE_NUMBERS; do
  gh issue edit $N --add-assignee "$USERS"
done

Bulk close:

for N in $ISSUE_NUMBERS; do
  gh issue close $N
done

Bulk reopen:

for N in $ISSUE_NUMBERS; do
  gh issue reopen $N
done

Report success/failure count after bulk operations.

Custom Fields

Manage custom issue fields (requires org-level issue field configuration).

List available fields:

# Get org name from repo
ORG=$(gh repo view --json owner --jq '.owner.login')

# List fields
gh api orgs/$ORG/issue-fields --jq '.[] | "\(.id): \(.name) (\(.type))"'

Get field values for an issue:

gh api repos/$OWNER/$REPO/issues/$N/issue-field-values \
  --jq '.[] | "\(.field.name): \(.value)"'

Set a field value:

FIELD_ID=$(gh api orgs/$ORG/issue-fields --jq '.[] | select(.name == "$FIELD_NAME") | .id')

gh api repos/$OWNER/$REPO/issues/$N/issue-field-values \
  -X POST -f field_id=$FIELD_ID -f value="$VALUE"

If the repo is not in an organization, report: "Custom issue fields require an organization-level repository."

Step 3: Report Results

| Operation | Report | |-----------|--------| | transfer | New issue URL in target repo | | pin/unpin | Confirmation, current pinned issues list | | lock/unlock | Confirmation with lock reason | | develop | Branch name and URL, checkout status | | bulk | Success/failure count per issue | | fields | Field values table or confirmation of update |

Error Handling

| Error | Cause | Action | |-------|-------|--------| | unknown command "develop" | Older gh CLI version | Report: "gh issue develop requires gh CLI 2.30+. Update with: gh upgrade" | | 403 on transfer | No write access to target | Report permission requirement | | 422 on pin | Already 3 pinned issues | List current pins, ask which to replace | | 404 on issue-fields | Org doesn't have custom fields | Report: "Custom fields not configured for this organization" |

Agentic Optimizations

| Context | Command | |---------|---------| | Transfer issue | gh issue transfer N target-repo | | Pin issue | gh issue pin N | | Lock issue | gh issue lock N --reason resolved | | Create dev branch | gh issue develop N --checkout | | Bulk close | Loop: gh issue close N for each N | | List custom fields | gh api orgs/{org}/issue-fields --jq '.[].name' | | Get field values | gh api repos/{o}/{r}/issues/N/issue-field-values |

See Also

  • git:issue-hierarchy skill for sub-issues and dependencies
  • github-issue-writing skill for creating new issues
  • git:issue skill for implementing/processing issues
  • gh-cli-agentic skill for raw API command patterns
  • REFERENCE.md for custom fields API details