$npx -y skills add aleksander-dytko/ai-pm-workspace --skill reportSubmit feedback to the template repo as a GitHub issue (bug, feature request, or confusion)
| 1 | # Report |
| 2 | |
| 3 | You help the user submit feedback about the template to the upstream repo as a GitHub issue. Use this skill when the user says something like "this doesn't work", "I got stuck", "I wish this did X", or runs `/report` directly. |
| 4 | |
| 5 | The target repo for issues is **`aleksander-dytko/ai-pm-workspace`** (the template). Users who are working in their own fork should still file issues against the template, not their fork, so the author can triage across all users. |
| 6 | |
| 7 | ## Input |
| 8 | |
| 9 | The user may provide via `$ARGUMENTS`: |
| 10 | - A short description of the issue. |
| 11 | - Nothing (skill will prompt). |
| 12 | |
| 13 | ## Workflow |
| 14 | |
| 15 | ### 1. Categorize the feedback |
| 16 | |
| 17 | Ask in one `AskUserQuestion` (unless the category is obvious from the argument): |
| 18 | |
| 19 | - **Category**: |
| 20 | - Bug - something broke or produced wrong output |
| 21 | - Confusion - I got stuck or couldn't figure out how to do something |
| 22 | - Feature request - I want the template to do something it doesn't |
| 23 | - Other feedback - appreciation, context, observation |
| 24 | |
| 25 | ### 2. Collect context |
| 26 | |
| 27 | Prompt for: |
| 28 | - **What happened / what you wanted**: free text, 2-3 sentences. |
| 29 | - **Which skill (if applicable)**: pick from a list of shipped skills, or "not skill-related". |
| 30 | - **What you expected vs. what happened** (for Bug / Confusion only). |
| 31 | |
| 32 | Skip any field the user already provided in `$ARGUMENTS`. |
| 33 | |
| 34 | ### 3. Check if GitHub MCP is available |
| 35 | |
| 36 | Look at the deferred tools list (or the `MCP Servers Available` section in `CLAUDE.md`). If any `mcp__github__*` tools are present, GitHub MCP is available. |
| 37 | |
| 38 | ### 4a. If GitHub MCP is available: open the issue directly |
| 39 | |
| 40 | Use the GitHub MCP issue-creation tool with: |
| 41 | - **Repo**: `aleksander-dytko/ai-pm-workspace` |
| 42 | - **Title**: `[{Category}] {short description}`. Example: `[Bug] /meeting crashes when meeting note has no attendees`. |
| 43 | - **Body**: use this template |
| 44 | |
| 45 | ```markdown |
| 46 | ## Category |
| 47 | {Bug | Confusion | Feature request | Other} |
| 48 | |
| 49 | ## What happened / what I wanted |
| 50 | {User's description} |
| 51 | |
| 52 | ## Which skill (if any) |
| 53 | {skill name or "not skill-related"} |
| 54 | |
| 55 | ## Expected vs. actual (bug / confusion only) |
| 56 | **Expected**: {user's expected outcome} |
| 57 | **Actual**: {what actually happened} |
| 58 | |
| 59 | ## Environment |
| 60 | - Template version / commit: {try to read from CHANGELOG.md top header; fallback "v2"} |
| 61 | - Claude Code version: {ask user if unknown} |
| 62 | - OS: {ask or infer} |
| 63 | |
| 64 | --- |
| 65 | Submitted via `/report` skill. |
| 66 | ``` |
| 67 | |
| 68 | - **Labels**: `from-report` plus a category label (`bug`, `confusion`, `feature`, `feedback`). If those labels don't exist in the target repo, create them or skip silently. |
| 69 | |
| 70 | Before opening the issue, **show the full title and body to the user and ask for confirmation**. This is a public artifact; they need a last-look. |
| 71 | |
| 72 | ### 4b. If GitHub MCP is not available: print a pre-filled URL |
| 73 | |
| 74 | Construct a GitHub issue-URL that pre-fills the title and body. Format: |
| 75 | |
| 76 | ``` |
| 77 | https://github.com/aleksander-dytko/ai-pm-workspace/issues/new?title={url-encoded title}&body={url-encoded body}&labels=from-report,{category} |
| 78 | ``` |
| 79 | |
| 80 | Show the URL to the user and instruct: |
| 81 | |
| 82 | ``` |
| 83 | GitHub MCP isn't configured, so I can't open the issue for you directly. |
| 84 | |
| 85 | Click this URL to open a pre-filled issue in your browser: |
| 86 | |
| 87 | {URL} |
| 88 | |
| 89 | If the URL is too long for your browser, here's the title and body to paste manually into https://github.com/aleksander-dytko/ai-pm-workspace/issues/new : |
| 90 | |
| 91 | Title: {title} |
| 92 | |
| 93 | Body: |
| 94 | {body} |
| 95 | ``` |
| 96 | |
| 97 | ### 5. Confirmation |
| 98 | |
| 99 | After the issue is filed (or the user has been shown the URL): |
| 100 | |
| 101 | ``` |
| 102 | Thanks for the feedback! |
| 103 | |
| 104 | [if MCP] Issue filed: {URL to new issue} |
| 105 | [if URL fallback] Once you've filed it, the maintainer will triage it and respond. |
| 106 | |
| 107 | If you want to follow up, run `/report` again or reply to the issue on GitHub. |
| 108 | ``` |
| 109 | |
| 110 | ## Privacy rules |
| 111 | |
| 112 | - **Never include vault content in the issue body.** Only what the user explicitly wrote in response to the prompts. |
| 113 | - **Never include file paths that contain the user's name or company.** If a path is mentioned in the description, offer to redact it. |
| 114 | - **Never attach file contents.** If the bug requires a specific file to reproduce, ask the user to paste the minimal snippet that shows the bug, not the whole file. |
| 115 | |
| 116 | ## Notes |
| 117 | |
| 118 | - The skill targets the template repo (`aleksander-dytko/ai-pm-workspace`), not the user's fork. That's deliberate - feedback should flow back to the author so all users benefit. |
| 119 | - Forks that want to collect their own feedback can edit this skill locally to change the target repo. |
| 120 | - If the user wants to file a private issue (e.g., because the feedback references sensitive customer data), tell them to contact the maintainer directly instead of filing a public issue. |