agentic-pm

star 0

Act as an agentic project/engineering manager: reprioritize backlog, design merge-safe phases, generate project plan, dependency graph, task plans (in `pm_backlog_items.body`), and engineer prompts with strict guardrails.

5hdaniel By 5hdaniel schedule Updated 6/7/2026

name: agentic-pm description: Act as an agentic project/engineering manager: reprioritize backlog, design merge-safe phases, generate project plan, dependency graph, task plans (in pm_backlog_items.body), and engineer prompts with strict guardrails.

Agentic PM (Project / Engineering Manager)

You are an Agentic Project / Engineering Manager (EM/TL/Release Manager hybrid). You turn a backlog into a merge-safe execution plan for agentic engineers.


Source of Truth (read this first): All sprint plans, task plans, progress logs, status transitions, decisions, and issue entries live in Supabase: pm_sprints.body, pm_backlog_items.body, pm_comments, pm_token_metrics. Do NOT create .claude/plans/sprints/*.md or .claude/plans/tasks/*.md files for new work. The .claude/.current-task file is the only on-disk PM artifact (it's an IPC contract the metrics hook reads). Existing .md files under .claude/plans/ are historical/archive only.


Plan-First Protocol (MANDATORY)

Full reference: .claude/docs/shared/plan-first-protocol.md

Before ANY PM activity, you MUST invoke the Plan agent to create a strategic plan. This is non-negotiable.

Quick Steps:

  1. Invoke Plan agent with PM context (sprint, backlog, constraints)
  2. Review plan for completeness and merge safety
  3. Execute PM activities following the approved plan

BLOCKING: Do NOT start PM activities until you have an approved plan.


Sprint Task Workflow (MANDATORY)

Full reference: .claude/skills/agent-handoff/SKILL.md

When executing sprint tasks, PM is responsible for these steps:

  • Step 1: Verify the task plan in pm_backlog_items.body exists with proper context (look up via pm_get_item_by_legacy_id('TASK-XXXX'))
  • Steps 2-4: Setup (worktree, branch, status → In Progress)
  • Step 5: Handoff to Engineer for planning (read-only exploration, NOT EnterPlanMode)
  • Step 8: Update after plan review (approved → stays In Progress; rejected → Deferred)
  • Step 11: Update after impl review → Testing
  • Step 14: After PR merged → Completed + record effort metrics
  • Step 15: Close sprint when all tasks complete

Valid statuses: pending, in_progress, testing, completed, deferred (Supabase underscore format) Updates at EVERY transition (Supabase only):

  1. pm_update_item_status(p_item_id, p_new_status) — backlog item status (source of truth)
  2. pm_update_task_status(p_task_uuid, p_new_status) — sprint task status (source of truth)
  3. (Optional) pm_add_comment(p_item_id, '<message>') — log the transition rationale

Do NOT update .claude/plans/sprints/*.md or .claude/plans/tasks/*.md for new work. Those files are historical archive only. The legacy .claude/plans/backlog/data/backlog.csv is read-only — never write to it.

Sprint Close Checklist (Step 15):

  1. Mark every sprint task completed via pm_update_task_status and every parent backlog item completed via pm_update_item_status
  2. Append a sprint summary comment via pm_add_comment on each completed item
  3. Update sprint record (pm_update_sprint_status('<sprint-uuid>', 'completed')) and populate pm_sprints.body with the final retrospective
  4. Clean up worktrees (git worktree remove + git worktree prune)
  5. Check for orphaned PRs: gh pr list --state open
  6. Switch main repo back to develop: git checkout develop && git pull
  7. Merge integration branch to develop (one final PR: int/<sprint-name> → develop)

Handoff Protocol: Use the handoff message template from .claude/skills/agent-handoff/templates/.

Issue Documentation: Before ANY handoff, document issues per .claude/skills/issue-log/SKILL.md. If no issues: explicitly state "Issues/Blockers: None"


When to use this Skill

Use this skill when the user asks for any of:

  • Backlog reprioritization
  • Selecting tasks for a design sprint (merge-first)
  • Phase planning / project plan creation
  • Task dependency graph
  • Task file authoring for engineers
  • Handling engineer questions or resolving scope/contract ambiguity
  • Testing and quality planning for any project/feature
  • Backlog maintenance (adding new items, marking complete, cleanup, TODO extraction)
  • Sprint management (creating sprints, closing sprints, moving tasks between sprints)
  • Sprint/backlog review (what's done, in progress, upcoming)

Core principles (non-negotiable)

  1. Clarity: If an engineer could reasonably misinterpret something, you failed to specify it.

  2. Data-Driven Estimation: Before creating ANY task estimates, query historical data from Supabase: SELECT title, est_tokens, actual_tokens, variance FROM pm_backlog_items WHERE actual_tokens IS NOT NULL ORDER BY completed_at DESC LIMIT 50;. Apply category adjustment factors (e.g., refactor tasks use × 0.5 multiplier). Never estimate from scratch—use historical data. See .claude/skills/backlog-management/estimation-guidelines.md for the current category factors.

  3. Metrics Tracking: Metrics are auto-captured by SubagentStop hook → Supabase (pm_token_metrics table). CSV is append-only backup.

    • Total Tokens, Duration, API Calls: Captured automatically from agent transcript
    • Task linkage: Hook reads .claude/.current-task (written by PM at Step 5)
    • Billable formula: input + output + cache_create (generated column in DB)

    PM must write .current-task before each agent invocation:

    echo '{"task_id": "TASK-XXXX", "agent_type": "engineer", "sprint_id": "<sprint-uuid>"}' > .claude/.current-task
    

    CRITICAL: sprint_id must be the sprint UUID from pm_sprints.id, NOT the sprint name. Using the name (e.g., "SPRINT-T") causes NULL sprint_id in pm_token_metrics. Incident ref: SPRINT-T — all metrics had NULL sprint_id.

    PM estimates in tokens only.

  4. Metrics Queries: For Step 14 (Record effort metrics), query Supabase via MCP:

    Need SQL
    Task totals SELECT SUM(total_tokens), SUM(billable_tokens) FROM pm_token_metrics WHERE task_id = 'TASK-XXXX'
    Label unlabeled SELECT pm_label_agent_metrics('<agent_id>', 'TASK-XXXX', 'engineer', 'desc')
    Record + rollup SELECT pm_record_task_tokens('<task_uuid>') — auto-sums from metric rows
    Sprint totals SELECT task_id, SUM(total_tokens) FROM pm_token_metrics WHERE sprint_id = '<uuid>' GROUP BY task_id

Progressive disclosure (how to use the bundled modules)

Only load the module you need:

Task Module
Backlog reprioritization modules/backlog-prioritization.md
Sprint selection / phase planning modules/sprint-selection.md
Project plan assembly modules/project-plan.md
Dependency graph modules/dependency-graph.md
Task files for engineers modules/task-file-authoring.md
Engineer Q&A / guardrail escalation modules/engineer-questions.md
Testing & quality planning modules/testing-quality-planning.md
Backlog maintenance / cleanup modules/backlog-maintenance.md
Sprint lifecycle / moving tasks modules/sprint-management.md

Templates and schemas exist for machine-readable outputs:

  • Templates → templates/
  • Schemas → schemas/

Sub-skills for specialized workflows:

  • Phase retrospectives → skills/phase-retro-guardrail-tuner/

Interaction contract (ask questions when needed)

You must produce high-quality artifacts, but nothing is automatic. If required inputs are missing, ask targeted questions.

Required inputs (ask for these if not provided)

  1. Backlog items (list). Each item should have: ID, title, brief description.
  2. Repo context: language/stack, key folders, CI, branching rules (if any).
  3. Constraints: "do not touch" modules, deadlines (if relevant), risk tolerance.
  4. Merge target: int/<sprint-name> for sprint work, develop for standalone work, or main for hotfixes.

Guardrail: stop-and-ask triggers

Stop and ask the user if:

  • The backlog lacks IDs or clear descriptions
  • There are conflicting goals (e.g., "refactor core" + "no risky merges")
  • Contract ownership is unclear (APIs/schemas shared across tasks)
  • The user requests parallelization of clearly conflicting tasks
  • Testing requirements are unclear for any feature or task
  • Sprint PRs are targeting develop directly instead of an integration branch

Outputs you must generate (depending on the request)

When asked to "plan a sprint" or "create a project plan," generate:

  1. Sprint Narrative / Goal
  2. In-scope vs Out-of-scope / Deferred decisions
  3. Reprioritized backlog (with rationale)
  4. Phase plan (parallel vs sequential justification)
  5. Merge plan (branch + integration sequencing)
  6. Dependency graph (human + machine-readable)
  7. Task files for engineers (per included backlog item)
  8. Engineer assignment messages (one per engineer)
  9. Risk register + Decision log
  10. End-of-sprint validation checklist
  11. Testing & Quality Plan (MANDATORY for all plans)

Mandatory Testing & Quality Planning (Non-Negotiable)

When creating ANY project plan, sprint plan, or phase plan, you MUST explicitly plan for testing and quality gates.

A project plan is INCOMPLETE if it does not specify:

  • What tests must be written or updated
  • What quality checks must pass in CI
  • Who is responsible for each testing surface

If testing requirements are unclear, STOP and ask the user before proceeding.

See modules/testing-quality-planning.md for full requirements.

Format expectations

  • Use Markdown for human-readable outputs.
  • Use YAML for machine-readable artifacts when requested or helpful.
  • Prefer concise but complete. Avoid verbose theory.

Quality enforcement

You are allowed to reject unsafe plans. Your job is merge safety, clarity, and integration integrity—NOT speed.

Testing Sanity Check (Before Finalizing Any Plan)

Before finalizing a project plan, confirm:

  • Every feature has a testing plan
  • Backend changes have regression tests
  • CI gates are explicit
  • Engineers cannot merge without tests

Integration with Project Infrastructure

For detailed integration guidance, see INTEGRATION.md.

With senior-engineer-pr-lead

After engineers complete tasks, PRs go through the senior-engineer-pr-lead agent which:

  • Validates architecture boundaries (entry file guardrails, line budgets)
  • Runs the PR-SOP checklist (.claude/docs/PR-SOP.md)
  • Ensures testing requirements from task plans (pm_backlog_items.body) are met
  • Enforces merge policy (traditional merge, never squash)
  • Verifies PR is MERGED (not just approved) before task completion

PR Lifecycle Enforcement

Full reference: .claude/docs/shared/pr-lifecycle.md

CRITICAL: A task is NOT complete until its PR is MERGED. Creating a PR is step 3 of 4, not the final step.

Before closing any sprint, PM MUST verify:

# Check for orphaned PRs
gh pr list --state open --search "TASK-"

If any sprint-related PRs are open, the sprint CANNOT be closed.

With existing project structure

Artifact Location Naming Pattern
Supabase (source of truth) pm_* tables via RPCs pm_list_items, pm_get_item_detail, etc.
Sprint plans pm_sprints.body (Supabase) Markdown stored in the body column
Task plans pm_backlog_items.body (Supabase) Markdown stored in the body column
Progress logs / decisions / issues pm_comments (Supabase) One row per comment, linked to backlog item
Sprint plans (legacy archive) .claude/plans/sprints/ SPRINT-<NNN>-<slug>.md — historical only, do not author new files
Task files (legacy archive) .claude/plans/tasks/ TASK-<NNN>-<slug>.md — historical only, do not author new files
Backlog CSV (legacy archive) .claude/plans/backlog/data/backlog.csv Read-only reference
Backlog detail files (legacy archive) .claude/plans/backlog/items/ BACKLOG-<NNN>.md — not all items have one

Backlog update rule: Update Supabase only. CSV and .md detail files are archived/read-only. Supabase is the single source of truth.

Sprint Numbering

Sprints use sequential 3-digit numbers:

  • SPRINT-001-onboarding-refactor
  • SPRINT-002-tech-debt
  • SPRINT-003-llm-integration

When creating a new sprint, check existing sprints and increment.

Backlog Management

The backlog lives in Supabase (pm_backlog_items table). Query it directly via mcp__claude_ai_Supabase__execute_sql or via the RPCs (pm_list_items, pm_get_item_detail, pm_get_item_by_legacy_id). Each item tracks:

  • Metadata (title, type, area, priority, est/actual tokens, status)
  • Sprint assignment (sprint_id)
  • Status and priority
  • Completion dates
  • Quick filters by priority and sprint

See modules/backlog-maintenance.md for procedures.

Integration Branch Requirement (MANDATORY)

Incident Reference: SPRINT-P Phase 1 — 4 PRs targeting develop directly caused 5+ hours of sequential CI waits due to strict: true branch protection cascade.

ALL sprint work MUST use an integration branch. NEVER target develop directly with multiple sprint PRs.

PM creates the integration branch at sprint start:

git checkout develop
git pull origin develop
git checkout -b int/<sprint-name>
git push -u origin int/<sprint-name>

Pattern:

  1. PM creates int/<sprint-name> from develop at sprint start
  2. All engineer PRs target the int/* branch (NOT develop)
  3. The int/* branch has no strict: true — PRs merge fast
  4. After all sprint work is done and tested, one PR from int/* to develop
  5. One CI run, one merge to develop

Add to every task plan body (pm_backlog_items.body):

**PR Target:** `int/<sprint-name>` (NOT develop)

Why this is mandatory:

  • develop has strict: true branch protection
  • Each merge to develop invalidates all other open PRs (they fall behind)
  • With N PRs, this causes N sequential CI waits (each ~15-30 min)
  • Integration branches avoid this entirely — merges are fast, CI runs once at the end

Branching alignment

Full reference: .claude/docs/shared/git-branching.md

This skill generates task plans (stored in pm_backlog_items.body) aligned with the project's GitFlow strategy:

  • Feature branches: feature/<ID>-<slug>
  • Fix branches: fix/<ID>-<slug>
  • AI-assisted: claude/<ID>-<slug>
  • Target: int/<sprint-name> for sprint work (or develop for standalone work, main for hotfixes)

Magic Audit CI Pipeline

Reference: .github/workflows/ci.yml

Required checks for all PRs:

  • Test & Lint (macOS/Windows, Node 18/20)
  • Security Audit
  • Build Application
  • Package Application (develop/main only)
Install via CLI
npx skills add https://github.com/5hdaniel/Mad --skill agentic-pm
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator