From project-management
REQUIRED for GitHub Projects v2 operations including project boards, phases, and cross-repo backlog management via the gh CLI. Use when the user asks to "create a project", "list projects", "add phase", "assign phase", "view backlog", "bootstrap project", "link repo to project", "move items between phases", or any gh project operation. Triggers: project, phase, objective, backlog, board, project management, milestone, roadmap, cross-repo, project item, project field, sub-issue, versioning, dev release. When this skill is invoked, use the gh project CLI to execute the requested operation. Always use --format json with --jq for structured output when parsing IDs. For composite workflows, chain commands to resolve IDs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/project-management:project-managementThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage GitHub Projects v2, phases, and cross-repo backlogs using the `gh project` CLI.
Manage GitHub Projects v2, phases, and cross-repo backlogs using the gh project CLI.
ALWAYS invoke this skill when the user's request involves ANY of these:
Scope boundary: This skill covers
gh project *commands. For issue/PR CRUD, releases, search, and actions, use the github-cli:github-cli skill instead.
| Tier | GitHub Construct | Scope | Purpose |
|---|---|---|---|
| Project | GitHub Projects v2 | Org or user | Cross-repo board tracking a holistic project |
| Phase | SINGLE_SELECT custom field | Per project | Sequential development efforts toward the long-term vision |
| Objective | Parent issue with sub-issues | Cross-repo | Aggregates related issues within a phase subsection |
| Issue | Repository issue | Per repo | Individual development task (one branch, one PR) |
Phases use a SINGLE_SELECT field on the project to group items from any linked repo. Example phases: "Backlog", "Phase 1 - Foundation", "Done".
An Objective is a parent issue that aggregates sub-issues across one or more repositories. Objectives represent a cohesive set of requirements within a phase — they are the bridge between high-level phase goals and individual development tasks.
objective label and Objective issue typeTask issue type (or Bug for defect fixes)The four-tier hierarchy is populated through a top-down planning process:
Concept Development → creates phases, repos, project infrastructure
Phase Planning → decomposes a phase into Objectives
Objective Planning → decomposes an Objective into sub-issues (architecture decisions here)
Task Execution → resolves a single sub-issue (one branch, one PR)
See the dev-workflow:dev-workflow skill for planning session workflows. See references/objective-management.md for GraphQL commands and patterns.
Phases correspond to semantic version targets. Pre-release tags track progress during development.
| Concept | Pattern | Example |
|---|---|---|
| Phase target | v<major>.<minor>.<patch> | v0.1.0 |
| Dev pre-release | v<target>-dev.<objective>.<issue> | v0.1.0-dev.3.7 |
| Baseline | v0.0.x | v0.0.1 (initial setup, pre-phase) |
Dev release lifecycle:
v<target>-dev.<objective-number>.<issue-number>Phase release:
v0.1.0)## Current are converted to the versioned entrySee the dev-workflow:dev-workflow release reference for tagging workflows.
Each non-meta phase (i.e., not "Backlog" or "Done") gets a corresponding milestone on every linked repository. Milestone names match phase names exactly.
| Construct | Scope | Purpose |
|---|---|---|
| Phase | Cross-repo (project) | Organize items across all repos |
| Milestone | Per-repo | Progress tracking within a single repo |
Many operations require resolved IDs. The chain flows:
project number --> project ID (gh project view --format json)
field name --> field ID (gh project field-list --format json)
option name --> option ID (from field-list options)
item URL -------> item ID (gh project item-add --format json)
All IDs are opaque strings (e.g., PVT_..., PVTSSF_..., PVTSO_..., PVTI_...).
See references/id-resolution.md for detailed patterns.
Issue types are an organization-level feature that categorize every issue. All issues must have a type assigned at creation time.
| Type | Color | Purpose |
|---|---|---|
| Bug | RED | Something isn't working correctly |
| Task | YELLOW | Individual development task |
| Objective | BLUE | Parent issue that groups related work |
Type management requires the admin:org token scope. See the github-cli:github-cli skill's
issue-type.md reference for GraphQL operations.
ObjectiveTask (or Bug when fixing a defect)gh issue create CLI does not support a --type flag — assign types via GraphQL
after creation (see github-cli:github-cli issue-type reference)All TAU Platform repositories use a shared label taxonomy. Labels serve different purposes depending on the issue type.
| Label | Description | Color |
|---|---|---|
bug | Something isn't working correctly | d73a4a |
feature | New capability or functionality | 0075ca |
improvement | Enhancement to existing functionality | a2eeef |
refactor | Code restructuring without behavior change | d4c5f9 |
documentation | Documentation additions or updates | 0e8a16 |
testing | Test additions or improvements | fbca04 |
infrastructure | CI/CD, build, tooling, project setup | e4e669 |
objective | Parent issue aggregating cross-repo sub-issues | 5319e7 |
objective label. No category or package labels.feature, refactor, testing)core, agent, orchestrate for the kernel monorepo)Package labels are repo-specific and should be created as needed when bootstrapping a repository. They are not part of the standard label set.
See the bootstrap and clone label commands in references/project-lifecycle.md.
| Category | Reference | Key Commands |
|---|---|---|
| Project CRUD | project-lifecycle.md | create, list, view, edit, close, delete, link/unlink repos |
| Phase fields | phase-management.md | field-create, field-list, field-delete, option management |
| Backlog items | backlog-management.md | item-add, item-create, item-list, item-edit, archive |
| Objectives | objective-management.md | create objective, add/list/remove sub-issues, GraphQL API |
| Multi-step flows | composite-workflows.md | bootstrap project, bulk ops, progress views |
| ID resolution | id-resolution.md | project ID, field ID, option ID, item ID patterns |
--format json with --jq when extracting IDs or filtering items programmaticallyfield-list once and extract multiple values with jq rather than making repeated API calls-L flag to set appropriate limits; default is 30, which may miss items in larger projects--jq selectorsgh project * commands. For issue/PR lifecycle (create, edit, close, label, assign), use the github-cli:github-cli skillgh project commands require the project scope. Verify with gh auth status and add with gh auth refresh -s project--web on gh project view or gh project list to open in browser when detailed visualization is neededitem-create for quick backlog entries that don't yet need a full issue in a specific repositoryitem-archive over item-delete to preserve history| Error | Cause | Resolution |
|---|---|---|
NOT_FOUND | Invalid project number, owner, or item ID | Verify the project number with gh project list --owner <owner>. Re-resolve IDs -- they are opaque and may change. |
INSUFFICIENT_SCOPES | Missing project OAuth scope | Run gh auth refresh -s project to add the required scope, then retry. |
| Field type mismatch | Using --text on a SINGLE_SELECT field or vice versa | Check the field type with gh project field-list and use the correct flag (--single-select-option-id for SINGLE_SELECT, --text for TEXT, --number for NUMBER). |
Could not resolve to a ProjectV2 | Owner name is wrong or project was deleted | Confirm the owner with gh project list --owner <owner>. Projects are scoped to org or user. |
Empty --jq result | No matching items or incorrect jq selector | Run the command without --jq first to inspect the raw JSON structure, then adjust the selector. |
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tailored-agentic-units/tau-marketplace --plugin project-management