Project Manager Skill
Create structured GitHub issues optimized for LLM agent execution first, human readability second.
Every issue produced by this skill follows the Agent-Optimized Issue Format — structured sections with consistent headers, machine-parseable acceptance criteria, explicit file paths, verification methods, and clear scope boundaries.
Activation
This skill activates when users want to create work items for an agent team. Recognize these signals:
| Signal | Examples |
|---|---|
| Direct | "create an issue", "write a ticket", "plan this work" |
| Implicit | "we need to fix...", "let's add...", "can we refactor..." |
| Shorthand | "/pm", "project manager", "create task" |
Core Workflow
1. Classify → 2. Discover → 3. Explore Codebase → 4. Draft → 5. Review → 6. Create
Step 1: Classify Issue Type
Use AskUserQuestion to determine the issue type:
Question: "What type of work is this?" Options: - Bug: Something is broken or behaving incorrectly - Feature: New functionality or enhancement to existing behavior - Epic: Large initiative requiring 3+ coordinated tasks - Refactor: Improve code structure without changing behavior - New Project: Build something from scratch (includes tech stack decisions) - Chore/Research: Maintenance, dependency updates, spikes, investigations
If the user's initial message already makes the type obvious (e.g., "there's a crash when..."), skip this step and classify automatically. State your classification and proceed.
Step 2: Type-Specific Discovery
Run the question flow for the classified type. See references/WORKFLOWS.md.
Key principles:
- •Use
AskUserQuestionfor structured choices (max 4 questions per call, 2-4 options each) - •Use follow-up conversation for open-ended details
- •Batch related questions together to minimize round-trips
- •If user says "you decide" or similar, make a reasonable choice and note it as
[AGENT-DECIDED: rationale] - •Mark gaps as
[NEEDS CLARIFICATION: question]— don't guess on ambiguous requirements
Step 3: Codebase Exploration
Before drafting, explore the codebase to enrich the issue with concrete details:
- •Find relevant files: Use
GlobandGrepto identify files that will need modification - •Understand current patterns: Read existing code to align implementation hints with actual architecture
- •Check for related work: Search for TODOs, existing tests, related components
- •Verify assumptions: Confirm that proposed changes don't conflict with existing code
This step is critical — agents executing the issue will perform better with accurate file paths and pattern-aware implementation hints.
Step 4: Draft the Issue
Use the appropriate template from references/TEMPLATES.md.
Agent-first formatting rules:
- •Sections are contracts — every section header means something. Agents parse them.
- •Acceptance criteria are tests — write them as verifiable assertions:
VERIFY: [condition] - •File paths are absolute from repo root —
src/auth/login.ts, not "the login file" - •Approach is sequential — numbered steps an agent follows linearly
- •Scope is explicit — "In Scope" and "Out of Scope" prevent agents from over-engineering
- •Dependencies are linked —
Blocked by: #NandBlocks: #N - •Constraints are non-negotiable — performance targets, backwards compatibility, etc.
Write the draft to a temp file: /tmp/issue-body.md
Step 5: Review
Present the draft to the user with a summary:
- •Title
- •Type and labels
- •Key acceptance criteria
- •File scope
Ask: "Ready to create this issue, or want to adjust anything?"
For epics: also present the sub-issue breakdown before creating.
Step 6: Create
gh issue create --repo OWNER/REPO \ --title "<type-prefix>: <description>" \ --body-file /tmp/issue-body.md \ --label "<type-label>"
Title prefixes by type:
| Type | Prefix | Label |
|---|---|---|
| Bug | fix: | bug |
| Feature | feat: | enhancement |
| Epic | epic: | epic |
| Refactor | refactor: | refactor |
| New Project | project: | project |
| Chore | chore: | chore |
| Research | spike: | research |
On failure: Save draft to /tmp/issue-draft-{timestamp}.md, report error.
For epics: create the parent issue first, then sub-issues with Part of #EPIC_NUMBER references.
Report all created issue URLs to the user.
Quality Checklist
Before creating any issue, verify:
- • Title is concise and action-oriented (imperative mood)
- • Acceptance criteria are testable — not vague ("improve performance" → "response time < 200ms")
- • Implementation hints reference real files found via codebase exploration
- • Scope boundaries are explicit (In/Out of Scope sections)
- • Dependencies are identified and linked
- • No external context required — issue is self-contained
- • Uncertainty is marked with
[NEEDS CLARIFICATION: ...] - • Agent-decided items are marked with
[AGENT-DECIDED: rationale]
Duplicate Check
Before creating, always search for existing issues:
gh issue list --search "keywords" --state all --limit 10
If similar issue exists → inform user, suggest linking instead of duplicating.
Repo Detection
Detect the current repo automatically:
gh repo view --json nameWithOwner -q .nameWithOwner
If not in a git repo or no remote → ask user for the target repo.
Templates & Workflows
- •references/WORKFLOWS.md — Type-specific question flows
- •references/TEMPLATES.md — Agent-optimized issue templates