|
| 1 | +--- |
| 2 | +name: roadmap |
| 3 | +description: > |
| 4 | + Create and manage CloudBurn roadmap items. Use this skill whenever the user wants to add |
| 5 | + a feature request, improvement idea, or any item to the CloudBurn roadmap. |
| 6 | +--- |
| 7 | + |
| 8 | +# CloudBurn Roadmap Skill |
| 9 | + |
| 10 | +You help users add items to the [CloudBurn Roadmap](https://github.com/orgs/towardsthecloud/projects/4) GitHub Project board. The user describes what they want — you turn it into a well-structured GitHub issue and place it in the **Researching** column. |
| 11 | + |
| 12 | +## Phase 1: Understand the request |
| 13 | + |
| 14 | +Before creating anything, assess whether you have enough context to write a useful issue. You need three things: |
| 15 | + |
| 16 | +1. **What** — what should CloudBurn do that it doesn't today? |
| 17 | +2. **Why** — what's the cost optimization value or user benefit? |
| 18 | +3. **Scope** — enough specifics to make the issue actionable (AWS services, rule behavior, CLI output, etc.) |
| 19 | + |
| 20 | +### When the request is clear |
| 21 | + |
| 22 | +If the user gives you enough detail to answer all three confidently, skip straight to Phase 2. Don't interview for the sake of interviewing. |
| 23 | + |
| 24 | +Example: "Add a rule that detects idle RDS instances with zero connections over 14 days" — you know the what, why, and scope. Go create it. |
| 25 | + |
| 26 | +### When the request is vague |
| 27 | + |
| 28 | +If the request is too vague, use the `AskUserQuestion` tool to gather what you need. This keeps the conversation structured and gives the user clear options to pick from. |
| 29 | + |
| 30 | +Guidelines: |
| 31 | +- **One round of questions** — use `AskUserQuestion` with 1-3 focused questions to fill the gaps |
| 32 | +- **Prefer multiple choice options** — offer 2-4 concrete choices per question so the user can pick rather than type |
| 33 | +- **Stay focused** — you're writing a GitHub issue, not architecting a solution |
| 34 | +- **Use good headers** — short labels like "Scope", "Priority", "Service" to keep it scannable |
| 35 | + |
| 36 | +Example: if the user says "we should support Azure", use `AskUserQuestion` with a question like: |
| 37 | + |
| 38 | +- **Header**: "Scope" |
| 39 | +- **Question**: "Azure is a big surface area — where should we start?" |
| 40 | +- **Options**: |
| 41 | + - "Static IaC scanning" — Scan Terraform/ARM templates for Azure cost issues |
| 42 | + - "Live discovery" — Detect idle Azure compute resources in real accounts |
| 43 | + - "Both" — Start with IaC scanning and add live discovery next |
| 44 | + |
| 45 | +After the user responds, you should have enough to proceed. If something is still unclear, one more `AskUserQuestion` round is fine — but no more than two rounds total. Fill remaining gaps with reasonable assumptions and note them in the issue body. |
| 46 | + |
| 47 | +## Phase 2: Create the roadmap item |
| 48 | + |
| 49 | +### Classify the label |
| 50 | + |
| 51 | +| Label | Use when... | |
| 52 | +| --------------- | ------------------------------------------------------------------ | |
| 53 | +| `enhancement` | New feature, capability, rule, or improvement to existing behavior | |
| 54 | +| `bug` | Something is broken or behaving incorrectly | |
| 55 | +| `documentation` | Docs are missing, unclear, or need updating | |
| 56 | + |
| 57 | +Default to `enhancement` — most roadmap items are enhancements. |
| 58 | + |
| 59 | +### Write the issue |
| 60 | + |
| 61 | +**Title**: Short, specific, action-oriented. Start with a verb when natural. Keep under 70 characters. |
| 62 | + |
| 63 | +Examples: |
| 64 | +- "Add S3 lifecycle policy cost optimization rule" |
| 65 | +- "Support Azure resource discovery" |
| 66 | +- "Show estimated monthly savings in scan output" |
| 67 | + |
| 68 | +**Body**: Clear, well-structured description. Adapt the structure to what makes sense — not every issue needs every section: |
| 69 | + |
| 70 | +- **What**: What should CloudBurn do that it doesn't today? |
| 71 | +- **Why**: What's the cost optimization value or user benefit? |
| 72 | +- **Details**: Any specifics (AWS services, rule behavior, output format, etc.) |
| 73 | + |
| 74 | +Keep it concise. Don't pad with filler or repeat the title in the body. |
| 75 | + |
| 76 | +### Execute |
| 77 | + |
| 78 | +**Step 1** — Create the GitHub issue: |
| 79 | + |
| 80 | +```bash |
| 81 | +gh issue create \ |
| 82 | + --repo towardsthecloud/cloudburn \ |
| 83 | + --title "<title>" \ |
| 84 | + --label "<label>" \ |
| 85 | + --body "$(cat <<'EOF' |
| 86 | +<body> |
| 87 | +EOF |
| 88 | +)" |
| 89 | +``` |
| 90 | + |
| 91 | +Capture the issue URL from the output. |
| 92 | + |
| 93 | +**Step 2** — Add the issue to the roadmap project: |
| 94 | + |
| 95 | +```bash |
| 96 | +gh project item-add 4 --owner towardsthecloud --url <issue-url> --format json |
| 97 | +``` |
| 98 | + |
| 99 | +Extract the `id` field from the JSON response. |
| 100 | + |
| 101 | +**Step 3** — Set status to "Researching": |
| 102 | + |
| 103 | +```bash |
| 104 | +gh project item-edit \ |
| 105 | + --project-id PVT_kwDOC--Ra84BG8XH \ |
| 106 | + --id <item-id> \ |
| 107 | + --field-id PVTSSF_lADOC--Ra84BG8XHzg317rI \ |
| 108 | + --single-select-option-id f75ad846 |
| 109 | +``` |
| 110 | + |
| 111 | +**Step 4** — Confirm to the user with the issue title, label, and link. Keep it brief. |
| 112 | + |
| 113 | +## Reference: Project IDs |
| 114 | + |
| 115 | +Stable identifiers for the CloudBurn Roadmap project board: |
| 116 | + |
| 117 | +- **Project number**: `4` |
| 118 | +- **Project node ID**: `PVT_kwDOC--Ra84BG8XH` |
| 119 | +- **Org**: `towardsthecloud` |
| 120 | +- **Repo**: `towardsthecloud/cloudburn` |
| 121 | +- **Status field ID**: `PVTSSF_lADOC--Ra84BG8XHzg317rI` |
| 122 | +- **Status options**: |
| 123 | + - Researching: `f75ad846` |
| 124 | + - Coming soon: `8185493e` |
| 125 | + - We're working on it: `47fc9ee4` |
| 126 | + - Shipped: `98236657` |
0 commit comments