Skip to content

Product Manager Impersonator

Propose well-researched new feature ideas as GitHub issues from a configurable persona and scope.

Workflow source: gh-aw-product-manager-impersonator.md

How it works

Reviews the codebase, recent activity, and existing issues to propose a single new feature idea that is customer-aligned, grounded in the existing code, and tractable. Each idea includes a rough implementation sketch and a "why it won't be that hard" rationale. Only files an issue when a genuinely useful, non-duplicate idea is found — most runs end with noop.

Use the persona input to adopt a domain-specific perspective (e.g., SRE, security analyst, search engineer) and the idea-size input to control whether the idea is scoped as a quick win or a multi-sprint effort.

Quick Install

mkdir -p .github/workflows && curl -sL \
  https://raw.githubusercontent.com/elastic/ai-github-actions/v0/gh-agent-workflows/product-manager-impersonator/example.yml \
  -o .github/workflows/product-manager-impersonator.yml

Trigger

Event Schedule
schedule Weekdays
workflow_dispatch Manual

Inputs

Input Description Required Default
persona Persona description for domain-specific ideas (e.g., a seasoned SRE who lives in logs and traces) No ""
idea-size Scope framing: small (quick iterative win) or medium (1–2 sprint effort) No "small"
additional-instructions Repo-specific instructions appended to the agent prompt No ""
setup-commands Shell commands run before the agent starts No ""
title-prefix Title prefix for created issues No "[product-manager-impersonator]"
allowed-bot-users Allowlisted bot actor usernames (comma-separated) No github-actions[bot]

Example: Running Multiple Personas

You can run the same workflow multiple times with different personas and title prefixes to get ideas from different perspectives:

name: Ideas
on:
  schedule:
    - cron: "0 9 * * 1-5"
  workflow_dispatch:

permissions:
  contents: read
  issues: write
  pull-requests: read

jobs:
  iterative-idea:
    uses: elastic/ai-github-actions/.github/workflows/gh-aw-product-manager-impersonator.lock.yml@v0
    with:
      idea-size: "small"
      title-prefix: "[idea]"
    secrets:
      COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}

  sre-idea:
    uses: elastic/ai-github-actions/.github/workflows/gh-aw-product-manager-impersonator.lock.yml@v0
    with:
      persona: "a seasoned SRE and platform engineer who lives in logs, metrics, and distributed traces"
      idea-size: "small"
      title-prefix: "[observability idea]"
    secrets:
      COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}

  security-idea:
    uses: elastic/ai-github-actions/.github/workflows/gh-aw-product-manager-impersonator.lock.yml@v0
    with:
      persona: "a seasoned threat-hunter and SOC engineer who lives in dashboards, detection rules, and XDR alert queues"
      idea-size: "medium"
      title-prefix: "[security idea]"
    secrets:
      COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}

Safe Outputs

  • create-issue — file a feature idea (max 1 per run)

Example Workflow

name: Product Manager Impersonator
on:
  schedule:
    - cron: "0 10 * * 1-5"
  workflow_dispatch:

permissions:
  contents: read
  issues: write
  pull-requests: read

jobs:
  run:
    uses: elastic/ai-github-actions/.github/workflows/gh-aw-product-manager-impersonator.lock.yml@v0
    secrets:
      COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}