Product Owner - PRD & GitHub Issues

VerifiedCaution

Scans the codebase, writes a structured PRD, and creates or amends GitHub issues with conventional titles and priority labels.

Sby Skills Guide Bot
ProductivityIntermediate
11/4/2026
Claude Code
#prd#github-issues#product-planning#elixir-otp#issue-management

Recommended for

Automated summary

Scans an Elixir/OTP codebase and opens GitHub issues whose body is a structured PRD, with support for appending numbered revisions to existing issues.

Strengths

  • Enforces a consistent PRD template (overview, problem, current state, requirements, technical approach, acceptance criteria, out of scope) before any issue is created.
  • Defines explicit issue-title conventions and manages P0–P3 priority labels through the gh CLI.
  • The amend mode keeps the original PRD immutable and only appends dated, self-contained revision blocks with an incremented number.
  • Requires reading the code and roadmap first, so the resulting issue reflects the real state of modules and the gaps found.

Limitations

  • Tightly coupled to the Overmind project: it reads `lib/overmind.ex` and hard-codes Elixir/OTP constraints (no Phoenix, no external deps) that do not generalize.
  • Requires an authenticated `gh` CLI and the expected labels (the `prd` label may need creating); without GitHub access the skill cannot complete.
  • The Pipeline section is empty and no automatic prioritization exists — the priority must be supplied or prompted for.
When to use it

Use it to turn a feature idea into a scoped GitHub issue documented by a PRD in an Elixir/OTP repository.

When not to use it

Avoid it on non-Elixir codebases, in repos without a configured GitHub CLI, or for a plain bug ticket that does not warrant a full PRD.

Security analysis

Caution
Quality score78/100

The skill is a straightforward documentation/issue-authoring workflow. Its only execution surface is the GitHub CLI used to create labels and issues, which is a legitimate but credential-bearing write action, and the amend path rebuilds the issue body destructively rather than appending. No secret handling, arbitrary downloads, or destructive commands. Rated caution rather than safe purely because of the unguarded gh/network write tooling.

Findings
  • •Runs shell commands via the `gh` CLI to create and edit GitHub issues, i.e. authenticated network write actions (legitimate, but powerful and unguarded once invoked).
  • •The amend workflow re-posts the entire issue body through a heredoc (`gh issue edit --body "$(cat <<'EOF' ..."`) rather than an incremental append; despite the 'original PRD is immutable' rule, a body containing the EOF delimiter or shell-special content could be truncated or mangled, silently destroying the original content.
  • •Skill declares no allowed-tools while prescribing numerous bash/gh invocations, leaving execution boundaries undefined.
  • •`gh label create` mutates repository metadata without confirmation.
  • •No exfiltration, destructive filesystem operations, obfuscated payloads, or safety-disabling instructions were found.
  • •No allowed-tools declared, yet the workflow requires shell execution of `gh` CLI commands with network and write access to a GitHub repository (creating and editing issues, creating labels).
  • •The amend workflow uses `gh issue edit <number> --body "$(cat <<'EOF' ... EOF)"` with an `<original body unchanged>` placeholder; if the original body is not faithfully re-inlined, the entire issue body (including the immutable original PRD) is overwritten — a data-integrity risk on the remote tracker.
  • •The skill instructs scanning repository files and reading CLAUDE.md; content pulled from the codebase is fed into issue bodies, so untrusted repository text could be echoed into issues (minor prompt-injection/content-provenance concern).
  • •No destructive, exfiltrating, or obfuscated operations present; commands are transparent and limited to `gh issue`/`gh label` operations.
How this analysis is made

Examples

Create a feature issue
/po add a GenServer that tracks agent lifecycle and broadcasts state changes --priority P1
Issue from roadmap item
/po implement the ps command to list running agents
Amend an existing PRD
/po amend 42 add restart backoff policy to the supervisor requirements

name: po description: Product Owner - scans codebase and creates or amends GitHub issues with PRD. Use when: PRD, feature, issue, create issue, amend issue, what should we build, plan feature, design feature, scope, requirements, user story.

Product Owner - Overmind Expert

Scan the codebase, write a PRD, and open a GitHub issue.

Usage

  • /po <prompt> - Create a GitHub issue from the given feature description
  • /po <prompt> --priority <P0|P1|P2|P3> - Create issue with explicit priority
  • /po - Ask user what to build, then create the issue
  • /po amend <issue_number> <summary> - Append a revision to an existing issue

If no --priority is given, ask the user which priority to assign.

Workflow

  1. Scan the codebase to understand current state:
    • Read lib/overmind.ex to see existing modules and exports
    • Explore relevant source files for what's already implemented
    • Identify gaps, dependencies, and integration points
  2. Read CLAUDE.md roadmap if the prompt maps to a roadmap item
  3. Write the PRD as the issue body (no local file)
  4. Create GitHub issue with conventional title and PRD body

Issue Title

Conventional format:

feat(<module>): <short description>

Examples:

  • feat(mission): add genserver for agent lifecycle
  • feat(cli): implement ps command
  • feat(supervisor): add restart policies
  • fix(cli): handle missing subcommand gracefully

Rules:

  • Lowercase after prefix
  • Present tense imperative ("add", not "added")
  • Under 70 characters
  • Module name matches lib/overmind/*.ex or domain area

Issue Body (PRD)

## Overview
What we're building and why.

## Problem Statement
What user problem does this solve?

## Current State
What already exists in the codebase relevant to this feature.

## Requirements
- [ ] R-1: Description

## Technical Approach
- Affected modules
- New GenServers/Supervisors needed
- OTP patterns and data flow

## Acceptance Criteria
Given/When/Then scenarios.

## Out of Scope
What we're explicitly NOT doing.

Creating the Issue

gh issue create \
  --title "feat(<module>): <description>" \
  --body "$(cat <<'EOF'
<PRD content>
EOF
)" \
  --label "prd" \
  --label "P2: medium"

Replace "P2: medium" with the chosen priority label (P0: critical, P1: high, P2: medium, P3: low).

If the prd label doesn't exist, create it first:

gh label create prd --description "Product Requirements Document" --color "0075ca"

Report the issue URL to the user when done.

Amending an Issue

When called with /po amend <issue_number> <summary>, the PO appends a revision to the existing issue. The original PRD is immutable — never edit or overwrite it.

Amend Workflow

  1. Fetch the current issue using gh issue view <number> --json title,body
  2. Read the summary provided by the engineer
  3. Research the codebase if needed to validate the proposed changes
  4. Append a revision block to the issue body:
gh issue edit <number> --body "$(cat <<'EOF'
<original body unchanged>

---

## Revision <N> — <date>

**Source:** implementer research

### Changes
- <what changed and why>

### Updated Requirements
- [ ] FR-X: <new or modified requirement>

### Removed/Deferred
- ~~FR-Y: <requirement removed or moved to out of scope>~~
EOF
)"

Amend Rules

  • Never modify the original PRD text — append only
  • Increment revision number (Revision 1, Revision 2, ...)
  • Each revision is self-contained — reader can understand what changed without diffing
  • Link back to the source — who requested the change and why
  • The PO may push back on the amendment if it contradicts product goals — surface disagreement to the user

Constraints

  • Elixir + OTP — GenServer, Supervisor, ETS
  • No Phoenix until M6 (web dashboard)
  • No external deps unless strictly necessary
  • Idiomatic Elixir — pattern matching, pipelines, supervision trees

Pipeline

/po <prompt> -> GitHub issue -> implementation -> /review -> /commit
                     ^                |
                     |                | (PRD feedback)
                     +--- /po amend --+

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/product-owner-prd-github-issues-mvhm5lco/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/product-owner-prd-github-issues-mvhm5lco' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/product-owner-prd-github-issues-mvhm5lco/download' --output '.skill-downloads/product-owner-prd-github-issues-mvhm5lco/SKILL.md.part' && mv '.skill-downloads/product-owner-prd-github-issues-mvhm5lco/SKILL.md.part' '.skill-downloads/product-owner-prd-github-issues-mvhm5lco/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/product-owner-prd-github-issues-mvhm5lco/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills