|
| 1 | +--- |
| 2 | +title: Planning a project with GitHub Copilot |
| 3 | +shortTitle: Plan a project |
| 4 | +intro: 'Plan your next project by using {% data variables.product.prodname_copilot %} to turn your ideas into issues.' |
| 5 | +permissions: 'Anyone with a {% data variables.product.prodname_copilot_short %} license can use {% data variables.product.prodname_copilot_short %} to create issues.' |
| 6 | +topics: |
| 7 | + - Copilot |
| 8 | + - Issues |
| 9 | + - Project management |
| 10 | +versions: |
| 11 | + feature: copilot |
| 12 | + |
| 13 | +contentType: tutorials |
| 14 | +--- |
| 15 | + |
| 16 | +> [!NOTE] |
| 17 | +> * This feature is in {% data variables.release-phases.public_preview %} and subject to change. |
| 18 | +> * The responses shown in this article are examples. {% data variables.copilot.copilot_chat_short %} responses are non-deterministic, so you may get different responses from the ones shown here. |
| 19 | +
|
| 20 | +Manage your project with {% data variables.product.prodname_github_issues %} using {% data variables.product.prodname_copilot_short %}. In this tutorial, you’ll use {% data variables.product.prodname_copilot_short %}’s agentic issue creation features to turn your product idea into epics, features, and tasks. Epics represent large bodies of work, while features and tasks break the work into smaller, actionable pieces. By the end, you’ll have a structured backlog ready to share with your team. |
| 21 | + |
| 22 | +## Project overview |
| 23 | + |
| 24 | +It’s important to define what you want your product to do. In the planning phase of the software development lifecycle (SDLC), you turn ideas into actionable tasks by breaking down your project into epics, features, and smaller pieces of work. This helps you organize your thoughts, set priorities, and prepare your team for development. |
| 25 | + |
| 26 | +When you use {% data variables.product.prodname_copilot_short %}, you drive this process. {% data variables.product.prodname_copilot_short %} can suggest a structure and fill in details, but the best results come when you have a sense of how you want the work to be organized. {% data variables.product.prodname_copilot_short %} works with your input to help you refine, expand, and document your plan. |
| 27 | + |
| 28 | +In this scenario you’ll plan a new shopping website that will allow users to: |
| 29 | +* Browse a product catalog with categories and search |
| 30 | +* Add items to a shopping cart |
| 31 | +* Complete secure checkouts |
| 32 | + |
| 33 | +Your goal is to use {% data variables.product.prodname_copilot_short %} to quickly turn this vision into a structured project plan, creating epics and detailed issues that capture each part of your site. |
| 34 | + |
| 35 | +## Set up repository |
| 36 | + |
| 37 | +Set up a repository with {% data variables.product.prodname_github_issues %} enabled. See [AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-new-repository). |
| 38 | + |
| 39 | +By default, issues are enabled for new repositories. If you would like to use an existing repository but don’t see the **Issues** tab, follow these steps to enable issues: |
| 40 | +1. From the repository, select **Settings**. |
| 41 | +1. Under "Features", check the **Issues** box. |
| 42 | + |
| 43 | +## Generate project issues |
| 44 | + |
| 45 | +With the repository set up, you can use {% data variables.product.prodname_copilot_short %} to turn your project vision into a set of actionable issues. |
| 46 | + |
| 47 | +### Start in the {% data variables.product.prodname_copilot_short %} immersive view |
| 48 | + |
| 49 | +{% data reusables.copilot.immersive-mode-instructions %} |
| 50 | +1. Using the chat panel, attach the repository for the shopping website. This allows {% data variables.product.prodname_copilot_short %} to access the repository and create issues directly within it. |
| 51 | + |
| 52 | +### Create an epic issue |
| 53 | + |
| 54 | +1. Enter a detailed project description as your prompt. For example: |
| 55 | + ```I’m planning to create a shopping website in React and Node.js. The site should allow users to browse products by category, search for items, add products to a cart, and complete checkout. Please help me plan the project by creating issues and breaking it down into epics, features, and tasks.``` |
| 56 | +1. Submit your prompt. {% data variables.product.prodname_copilot_short %} will generate an issue tree, typically with an epic at the top and sub-issues for each main feature or task |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | +## Navigate the issue tree |
| 61 | + |
| 62 | +1. Click the epic to view its details in the workbench. Navigate through the workbench to explore the issue tree. |
| 63 | +1. Each issue typically includes a title and description. Additional metadata such as labels or assignees, can be edited directly in the workbench. |
| 64 | +1. You can expand or collapse sub-issues to focus on specific parts of the project. |
| 65 | + |
| 66 | + The issue tree provides a clear overview of your project structure, making it easy to navigate between epics, features, and tasks. |
| 67 | + |
| 68 | +1. In this first iteration of the draft, {% data variables.product.prodname_copilot_short %} may generate only high-level issues. You can refine these issues further by breaking them down into smaller tasks or features. Let's refine the issue "Feature: UI Skeleton and Navigation". |
| 69 | + |
| 70 | + Prompt {% data variables.product.prodname_copilot_short %} with: |
| 71 | + ```Can you break down the issue "Feature: UI Skeleton and Navigation" into smaller tasks?``` |
| 72 | + |
| 73 | + {% data variables.product.prodname_copilot_short %} will generate multiple new sub-issues such as: |
| 74 | + * Task: Set up React project structure and initial files |
| 75 | + * Task: Create placeholder pages for main routes |
| 76 | + * Task: Implement site-wide navigation bar component |
| 77 | + * Task: Integrate navigation with routing |
| 78 | + * Task: Add basic responsive layout |
| 79 | + |
| 80 | +1. Repeat this process for the remaining feature issues in the epic. |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | +### Improve issue descriptions |
| 85 | + |
| 86 | +After you finish generating the issue tree you may notice that {% data variables.product.prodname_copilot_short %}’s issue descriptions may be brief or unclear. To make them actionable, refine each issue as needed. |
| 87 | + |
| 88 | +1. Start with the newly generated issue such as "Task: Create placeholder pages for main routes". |
| 89 | + |
| 90 | + Prompt {% data variables.product.prodname_copilot_short %} with: |
| 91 | + ```Can you improve the description for “Task: Create placeholder pages for main routes”? Please provide a detailed technical summary, list the main routes to be included, outline the steps for implementation, and specify what should be delivered for this task.``` |
| 92 | + |
| 93 | +1. {% data variables.product.prodname_copilot_short %} will generate a new version of the draft issue "Task: Create placeholder pages for main routes." |
| 94 | + |
| 95 | + At the top-left of the issue, click the versioning drop-down and select **Version 2** to review the new changes. |
| 96 | +1. Review and decide whether to keep {% data variables.product.prodname_copilot_short %}’s revised version, edit further, or prompt again for more detail. |
| 97 | +1. Repeat this process for other issues in the epic, refining descriptions and breaking down tasks as needed. |
| 98 | +1. Once you’re satisfied with the issue descriptions, click **Create all** to create the issues in your repository. |
| 99 | + |
| 100 | +## Unlink issues |
| 101 | + |
| 102 | +If {% data variables.product.prodname_copilot_short %} generates a sub-issue that doesn't belong to the issue tree, you can unlink it from the issue tree. |
| 103 | + |
| 104 | +1. In the workbench issue tree, click {% octicon "kebab-horizontal" aria-label="More options" %} next to the sub-issue, then click **Unlink sub-issue**. |
| 105 | +1. The issue will be unlinked from its parent and will no longer appear under that epic in the tree. |
| 106 | + |
| 107 | +## Next steps |
| 108 | + |
| 109 | +Now that you’ve generated and refined your project issues, you can assign them to the right team members or even to {% data variables.product.prodname_copilot_short %} itself for further assistance. To learn more about how to assign {% data variables.product.prodname_copilot_short %} or contributors to issues, and how to continue planning and implementing your project with {% data variables.product.prodname_copilot_short %}’s agentic features, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue). |
| 110 | + |
| 111 | +## Further reading |
| 112 | + |
| 113 | +* [AUTOTITLE](/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-issues) |
| 114 | +* [AUTOTITLE](/copilot/tutorials/coding-agent/pilot-coding-agent) |
| 115 | +* [AUTOTITLE](/copilot/tutorials/coding-agent/get-the-best-results) |
| 116 | +* [AUTOTITLE](/copilot/tutorials/speed-up-development-work) |
0 commit comments