Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Pm

ASecurity

GitHub Issues-based project management for obsidian-tasks-caldav

42 stars
0 votes
0 copies
0 views
Added 9/20/2026
businessgonodetestinggitapi

Works with

cliapi

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add josecoelho/obsidian-tasks-caldav --skill pm --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pm?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Pm
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/josecoelho-obsidian-tasks-caldav/badge)](https://www.skillsdirectory.com/skills/josecoelho-obsidian-tasks-caldav)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: pm
description: GitHub Issues-based project management for obsidian-tasks-caldav
---

# 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:

1. **Clear title** — imperative, concise (e.g., "Handle VTIMEZONE in recurring events")
2. **Description** with context on why this matters
3. **Acceptance criteria** — bulleted list of what "done" looks like
4. **Testing note** — specify which testing approach based on CLAUDE.md:
   - `E2E test needed` — CalDAV protocol, sync round-trips, server quirks
   - `Unit test needed` — pure logic, parsing, mapping
   - `Manual test needed` — Obsidian UI, obsidian-tasks API interactions
5. **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:
1. **Data loss risk** → always p0-critical
2. **Blocks other work** → p1-high minimum
3. **Protocol/server compatibility** → p1-high (breaks real users)
4. **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
1. `gh issue list --state open --json number,title,labels`
2. Find issues missing priority labels
3. Suggest priorities with reasoning based on the guidelines above

### Planning (Breaking Down Features)
Use GitHub sub-issues for feature decomposition:
1. Create a parent tracking issue for the feature
2. Create each work item as its own issue with labels, acceptance criteria, and testing notes
3. 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 } } }'
   ```
4. Note dependencies between siblings in issue bodies ("Blocked by #N")
5. 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 `/plan` command 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
1. Check what's open: `gh issue list --state open --label "p0-critical,p1-high"`
2. Pick the highest-priority unblocked issue
3. Create a branch, do the work, link the PR
4. Close via PR merge (using `closes #N`)

Attribution

josecoelhojosecoelho
View sourceMore from josecoelho →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →