plugins/sdlc-utils/skills/github-issues-task-management/SKILL.md
This skill should be used when organizing work via GitHub Issues and Projects, creating project boards, managing milestones, or when consolidating fragmented tracking into GitHub-native tracking. Trigger phrases: "set up projects", "create a project board", "organize issues", "milestone planning", "what issues need attention", "consolidate tickets".
npx skillsauth add nsheaps/ai-mktpl github-issues-task-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
GitHub Issues and Projects are one concrete implementation of project-management tracking. This skill covers the methodology for using GitHub as the canonical system for tracking work items, milestones, and project status.
owner/repo#N format.Every issue must have:
Use the issue-management skill for the mechanics of creating, searching, and
updating issues via gh CLI. This skill covers the methodology.
Add magic phrases to the PR body to auto-close issues on merge:
Fixes #42
Fixes nsheaps/ai-mktpl#15
Closes #7
Semantic convention (GitHub treats all linking keywords identically, but we use them to signal intent to human readers):
Fixes -- the PR satisfies/resolves the issue described (bug fix, feature
implementation). The issue represents work that is now complete.Closes -- the PR supersedes or replaces another PR or issue without
necessarily implementing it (e.g., a rewrite that obsoletes an older PR, or
closing a duplicate).For cross-repo links, always use the full owner/repo#N format.
Issues close automatically when a linked PR merges. If closing manually, always include a comment explaining resolution and referencing the relevant commit or PR.
Labels vary by project. Always conform to whatever the project's .github/labels.yaml
defines as the single source of truth. The categories below are common conventions.
Common conventions include p0/p1/p2/p3 or priority:high/priority:low.
Check the project's .github/labels.yaml for the actual label names and use those.
| Concept | Meaning | | -------- | ---------------------------------------- | | Critical | Blocking all other work, fix immediately | | High | Should be resolved this sprint/cycle | | Normal | Important but not urgent | | Low | Nice to have, backlog |
Common type labels (exact names may differ per project):
| Concept | Meaning | | ----------- | ------------------------------------- | | bug | Something is broken | | enhancement | Improvement to existing functionality | | chore | Maintenance, refactoring, tooling | | question | Needs discussion or clarification |
Use sparingly -- GitHub Projects board columns often replace these:
| Concept | Meaning | | ------------ | ------------------------------ | | needs-triage | Not yet prioritized | | blocked | Waiting on external dependency | | in-progress | Actively being worked |
# Create a project (org-level)
gh project create --owner nsheaps --title "Milestone: Feature X"
# Add an issue to a project
gh project item-add PROJECT_NUMBER --owner nsheaps --url https://github.com/nsheaps/repo/issues/42
Standard column layout:
| Column | Purpose | | ----------- | ------------------------ | | Backlog | Triaged but not started | | In Progress | Actively being worked | | In Review | PR open, awaiting review | | Done | Merged and verified |
When transitioning from fragmented tracking to consolidated GitHub tracking:
gh issue list --repo owner/repo --state open --limit 100
Group issues that track the same feature, bug, or initiative. Look for:
When work spans multiple repos, always use full references:
Related to nsheaps/agents#12
Blocked by nsheaps/ai-mktpl#45
Fixes nsheaps/ai-mktpl#15
Short references (#N) only work within the same repo. Cross-repo references
require owner/repo#N.
| Skill / Rule | Scope |
| -------------------------------------------- | ------------------------------------------------------------------------ |
| issue-management | Mechanics: how to create, search, update, close issues via CLI |
| github-issues-task-management (this skill) | Methodology: how to organize work, manage projects, consolidate tracking |
| agentic-behavior/rules/work-tracking.md | Abstract linking and milestone rules (platform-agnostic) |
| Anti-Pattern | Instead |
| ----------------------------------------------------- | ------------------------------------------------------ |
| Tracking work only in chat threads | Create a GitHub Issue; use chat for discussion |
| One issue per tiny sub-task | Consolidate into a parent issue with a checklist |
| Short-form references across repos (#N) | Use owner/repo#N for cross-repo links |
| No labels on issues | Add at least type + priority labels |
| Closing issues without explanation | Comment with resolution and link to PR/commit |
| Using issue body as a living document without history | Use comments for updates; keep body as canonical state |
tools
Reference material for Claude Code internals — the on-disk layout under ~/.claude and project-scope .claude, the plugin cache, session-env propagation, and the full hook lifecycle. Auto-recall when working on Claude-Code-related tasks: writing or debugging hooks, authoring plugins, inspecting session state, troubleshooting why an env var is or isn't visible to a Bash tool call, or when paths under ~/.claude or ~/.claude/plugins/ come up.
development
Manage GitHub App installation tokens in Claude Code sessions. Use when tokens expire, auth errors occur in long-running sessions, or when setting up GitHub App credentials for agent teams. <example>my github token expired</example> <example>refresh the github app token</example> <example>check token status</example> <example>set up github app authentication for this session</example>
tools
Auto-detect project formatting tools and configure edit-utils settings
tools
Use this skill when the user asks about 1Password, secrets management, retrieving credentials, using op CLI, service accounts, secret references, vault operations, or any task involving the 1Password CLI (op). Also use when needing to inject secrets into environment variables, read passwords or API keys from 1Password, or manage 1Password items from the command line.