Manages project tasks exclusively through GitHub issues without local tracker files.
Install
mkdir -p .claude/skills/pm-josecoelho && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11910" && unzip -o skill.zip -d .claude/skills/pm-josecoelho && rm skill.zipInstalls to .claude/skills/pm-josecoelho
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
GitHub Issues-based project management for obsidian-tasks-caldavKey capabilities
- →Create GitHub issues with clear titles, descriptions, and acceptance criteria
- →Apply standardized labels for priority, area, and type to issues
- →Specify testing approaches (E2E, Unit, Manual) for issues
- →Link pull requests to issues for auto-closing on merge
- →Record decisions and progress in issue comments
- →Triage issues and prioritize them based on guidelines
How it works
The skill enforces a workflow where GitHub Issues are the central source of truth, guiding the creation of issues with specific content and labels, and managing their lifecycle.
Inputs & outputs
When to use pm
- →Create a new task issue
- →Track bug reports
- →Manage project priorities
About this skill
Project Management — GitHub Issues as Source of Truth
All task state lives in GitHub Issues. Never create local files for tracking (no markdown task files, no local epics, no PRDs). Use gh commands for everything.
Labels
Priority
| Label | Use when |
|---|---|
p0-critical | Data loss, crash, blocks all other work |
p1-high | Important bug or feature blocking near-term work |
p2-medium | Should do soon, but not blocking |
p3-low | Nice to have, do when convenient |
Area
| Label | Scope |
|---|---|
caldav | CalDAV client, XML, protocol, VTODO mapping |
sync | Sync engine, diff logic, adapters, storage |
obsidian-ui | Settings tab, modals, ribbon, notices |
tasks-plugin | obsidian-tasks API integration |
infra | Build, CI, testing infrastructure, tooling |
Type
| Label | Meaning |
|---|---|
bug | Something broken |
feature | New capability |
chore | Maintenance, refactor, cleanup |
spike | Research or investigation |
Creating Issues
Every issue must include:
- Clear title — imperative, concise (e.g., "Handle VTIMEZONE in recurring events")
- Description with context on why this matters
- Acceptance criteria — bulleted list of what "done" looks like
- Testing note — specify which testing approach based on CLAUDE.md:
E2E test needed— CalDAV protocol, sync round-trips, server quirksUnit test needed— pure logic, parsing, mappingManual test needed— Obsidian UI, obsidian-tasks API interactions
- Labels — at least one from each category (priority, area, type)
Example:
gh issue create \
--title "Handle line-folded DESCRIPTION in VTODO responses" \
--body "$(cat <<'EOF'
## Context
Some CalDAV servers fold long DESCRIPTION lines per RFC 5545. Our parser doesn't unfold them, causing truncated task descriptions.
## Acceptance Criteria
- [ ] VTODO parser unfolds continuation lines (space/tab prefix)
- [ ] Round-trip test: create task with long description, fetch back, verify intact
- [ ] Unit test with fixture for folded DESCRIPTION
## Testing
- E2E test needed (server may fold differently than expected)
- Unit test to lock down the parser fix
EOF
)" \
--label "bug,p1-high,caldav"
Prioritization Guidelines
When triaging, consider:
- Data loss risk → always p0-critical
- Blocks other work → p1-high minimum
- Protocol/server compatibility → p1-high (breaks real users)
- Polish, DX, cleanup → p2-medium or p3-low
Linking PRs to Issues
Always use closes #N in PR descriptions to auto-close issues on merge:
gh pr create --title "Fix line folding" --body "Closes #42"
Issue Comments for Context
Use issue comments to record decisions and progress:
gh issue comment 42 --body "Investigated: Radicale doesn't fold, but Nextcloud does. Adding fixtures for both."
Workflows
Triage
gh issue list --state open --json number,title,labels- Find issues missing priority labels
- Suggest priorities with reasoning based on the guidelines above
Planning (Breaking Down Features)
Use GitHub sub-issues for feature decomposition:
- Create a parent tracking issue for the feature
- Create each work item as its own issue with labels, acceptance criteria, and testing notes
- Link work items as sub-issues of the parent using the GraphQL API:
# Get node IDs gh issue view <number> --json id -q .id # Add sub-issue gh api graphql -f query='mutation { addSubIssue(input: {issueId: "<parent_id>", subIssueId: "<child_id>"}) { issue { id } } }' - Note dependencies between siblings in issue bodies ("Blocked by #N")
- The parent issue tracks overall progress via its sub-issue list
From Implementation Plans to Issues
When superpowers:writing-plans produces a plan that spans multiple issues, it may be converted to GitHub issues:
- Create a parent issue for the plan
- Each plan step becomes a sub-issue of the parent
- Dependencies between steps become "Blocked by #N" notes in issue bodies
- The plan's acceptance criteria become the issue's acceptance criteria
- Apply appropriate labels based on what each step touches
- Use
/plancommand to automate this conversion
Note: Not all plans need decomposition into issues. When planning the implementation of a single issue, the plan guides the work — no extra issues needed.
Daily Workflow
- Check what's open:
gh issue list --state open --label "p0-critical,p1-high" - Pick the highest-priority unblocked issue
- Create a branch, do the work, link the PR
- Close via PR merge (using
closes #N)
When not to use it
- →When creating local files for task tracking (e.g., markdown task files, local epics)
- →When not using GitHub Issues as the source of truth for task state
Prerequisites
Limitations
- →All task state must reside in GitHub Issues; local tracking files are not supported.
- →Every issue must include a clear title, description, acceptance criteria, testing note, and labels.
- →Prioritization guidelines are provided, but the skill does not automatically prioritize issues.
How it compares
This skill standardizes GitHub issue creation and management with predefined labels and required fields, ensuring consistency and clarity in project tracking, unlike ad-hoc issue creation.
Compared to similar skills
pm side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| pm (this skill) | 0 | 6mo | No flags | Intermediate |
| agile-product-owner | 10 | 7mo | Review | Beginner |
| gsd-planner | 1 | 4mo | Review | Intermediate |
| pm | 0 | 3mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
agile-product-owner
davila7
Agile product ownership toolkit for Senior Product Owner including INVEST-compliant user story generation, sprint planning, backlog management, and velocity tracking. Use for story writing, sprint planning, stakeholder communication, and agile ceremonies.
gsd-planner
toonight
Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification
pm
zeuikli
專案管理工作流:Sprint 規劃、Issue 優先排序(MoSCoW/RICE)、狀態報告、風險評估、Sprint 回顧。適合在啟動新專案、Sprint 規劃會議、撰寫進度報告、或做任務優先排序時使用。
paperclip
surfingalien
Interact with the Paperclip control plane API to manage tasks, coordinate agents, track goals, and run your AI-powered company. Use when working with Paperclip issues, agents, projects, or goals.
task-master
sfc-gh-dflippo
AI-powered task management for structured, specification-driven development. Use this skill when you need to manage complex projects with PRDs, break down tasks into subtasks, track dependencies, and maintain organized development workflows across features and branches.
github-project-management
ruvnet
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning