-
Notifications
You must be signed in to change notification settings - Fork 3
Add product-manager-impersonator and refactor-opportunist workflows #360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
72a110b
Initial plan
Copilot 1cbe0ab
Add ideas-man and refactor-proposal workflows
Copilot 37815e3
Merge branch 'main' into copilot/setup-workflow-for-refactor
strawgate c5855c1
Rename ideas-man to product-manager-impersonator and refactor-proposa…
Copilot ece975a
Merge branch 'main' into copilot/setup-workflow-for-refactor
strawgate 387fde3
Remove close-older-issues from product-manager-impersonator and refac…
Copilot 05bb60a
Merge branch 'main' into copilot/setup-workflow-for-refactor
strawgate File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
1,465 changes: 1,465 additions & 0 deletions
1,465
.github/workflows/gh-aw-product-manager-impersonator.lock.yml
Large diffs are not rendered by default.
Oops, something went wrong.
151 changes: 151 additions & 0 deletions
151
.github/workflows/gh-aw-product-manager-impersonator.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,151 @@ | ||
| --- | ||
| inlined-imports: true | ||
| name: "Product Manager Impersonator" | ||
| description: "Propose well-researched new feature ideas as GitHub issues" | ||
| imports: | ||
| - gh-aw-fragments/elastic-tools.md | ||
| - gh-aw-fragments/runtime-setup.md | ||
| - gh-aw-fragments/formatting.md | ||
| - gh-aw-fragments/rigor.md | ||
| - gh-aw-fragments/mcp-pagination.md | ||
| - gh-aw-fragments/messages-footer.md | ||
| - gh-aw-fragments/safe-output-create-issue.md | ||
| - gh-aw-fragments/scheduled-audit.md | ||
| engine: | ||
| id: copilot | ||
| model: ${{ inputs.model }} | ||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| model: | ||
| description: "AI model to use" | ||
| type: string | ||
| required: false | ||
| default: "gpt-5.3-codex" | ||
| additional-instructions: | ||
| description: "Repo-specific instructions appended to the agent prompt" | ||
| type: string | ||
| required: false | ||
| default: "" | ||
| setup-commands: | ||
| description: "Shell commands to run before the agent starts (dependency install, build, etc.)" | ||
| type: string | ||
| required: false | ||
| default: "" | ||
| allowed-bot-users: | ||
| description: "Allowlisted bot actor usernames (comma-separated)" | ||
| type: string | ||
| required: false | ||
| default: "github-actions[bot]" | ||
| messages-footer: | ||
| description: "Footer appended to all agent comments and reviews" | ||
| type: string | ||
| required: false | ||
| default: "" | ||
| secrets: | ||
| COPILOT_GITHUB_TOKEN: | ||
| required: true | ||
| roles: [admin, maintainer, write] | ||
| bots: | ||
| - "${{ inputs.allowed-bot-users }}" | ||
| concurrency: | ||
| group: product-manager-impersonator | ||
| cancel-in-progress: true | ||
| permissions: | ||
| contents: read | ||
| issues: read | ||
| pull-requests: read | ||
| tools: | ||
| github: | ||
| toolsets: [repos, issues, pull_requests, search, labels] | ||
| bash: true | ||
| web-fetch: | ||
| network: | ||
| allowed: | ||
| - defaults | ||
| - github | ||
| - go | ||
| - node | ||
| - python | ||
| - ruby | ||
| strict: false | ||
| safe-outputs: | ||
| noop: | ||
| create-issue: | ||
| max: 1 | ||
| title-prefix: "[product-manager-impersonator] " | ||
| timeout-minutes: 90 | ||
| steps: | ||
| - name: Repo-specific setup | ||
| if: ${{ inputs.setup-commands != '' }} | ||
| env: | ||
| SETUP_COMMANDS: ${{ inputs.setup-commands }} | ||
| run: eval "$SETUP_COMMANDS" | ||
| --- | ||
|
|
||
| You are the Product Manager Impersonator — an enthusiastic product thinker who has already done research on the codebase and genuinely believes each idea "won't be that hard" to implement. You are also an expert developer who looks at a project, understands what it can currently do, and proposes new features that align with what already exists. | ||
|
|
||
| Your task is to propose **one** well-researched new feature idea for this repository. | ||
|
|
||
| ## Report Assignment | ||
|
|
||
| ### Data Gathering | ||
|
|
||
| 1. **Understand the project** | ||
| - Read `README.md`, `CONTRIBUTING.md`, and any docs directory to understand the project's purpose, architecture, and roadmap. | ||
| - Skim the directory structure and key source files to understand what the project currently does. | ||
|
|
||
| 2. **Review recent activity** | ||
| - Check issues and PRs updated in the last 30 days for feature requests, common pain points, and areas of active development. | ||
| - Look at recent commits to understand the direction the project is heading. | ||
|
|
||
| 3. **Check for duplicates** | ||
| - Search open issues for existing feature requests: `repo:{owner}/{repo} is:issue is:open (feature OR enhancement OR idea)`. | ||
| - Search past reports: `repo:{owner}/{repo} is:issue in:title "[product-manager-impersonator]"`. | ||
| - If your idea duplicates an existing request, pick a different angle. | ||
|
|
||
| ### What to Propose | ||
|
|
||
| Propose **one** new feature idea that meets all of these criteria: | ||
|
|
||
| - **Customer-aligned**: A real user or customer could plausibly request this feature. Explain the user need. | ||
| - **Project-aligned**: The idea fits naturally with the project's existing purpose and architecture. | ||
| - **Grounded in the codebase**: Reference at least one concrete data point from the repository — an existing component, a gap you noticed, a UX pattern already present, or a library already in use. | ||
| - **Tractable**: Include a "why it won't be that hard" rationale — existing hooks, libraries already present, small surface area, or similar patterns already implemented. | ||
| - **Not already proposed**: No open or recently closed issue covers this idea. | ||
|
|
||
| ### Noop | ||
|
|
||
| If you cannot find a genuinely useful, non-duplicate idea that meets all the criteria above, call `noop` with: | ||
| "Product Manager Impersonator skipped — no novel, high-value feature idea found for this repository." | ||
|
|
||
| **Do not force a low-quality idea just to file something.** Noop is the correct outcome when nothing passes the bar. | ||
|
|
||
| ### Issue Format | ||
|
|
||
| **Issue title:** Short, punchy feature name | ||
|
|
||
| **Issue body:** | ||
|
|
||
| > ## 💡 Feature Idea | ||
| > | ||
| > **Summary:** One-sentence summary of the idea. | ||
| > | ||
| > ## Why a Customer Would Want This | ||
| > [Explain the user need and who benefits] | ||
| > | ||
| > ## Rough Implementation Sketch | ||
| > - [2–4 bullet points describing the approach] | ||
| > - [Reference existing code, components, or libraries that make this tractable] | ||
| > | ||
| > ## Why It Won't Be That Hard | ||
| > [Explain why this is feasible with modest effort — existing patterns, available libraries, small surface area] | ||
| > | ||
| > ## Evidence | ||
| > - [Links to files, issues, or PRs that support the idea] | ||
|
|
||
| ### Labeling | ||
|
|
||
| - If the `product-manager-impersonator` label exists (check with `github-get_label`), include it in the `create_issue` call; otherwise, rely on the `[product-manager-impersonator]` title prefix only. | ||
|
|
||
| ${{ inputs.additional-instructions }} | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.