|
| 1 | +# GitHub description guidelines |
| 2 | + |
| 3 | +Note for Cursor: If a ticket (GitHub issue or Jira ticket) is not provided by the prompt, prompt the user to supply one before generating the description or pull request content. |
| 4 | + |
| 5 | +When prompted to create a GitHub description, output the following: |
| 6 | + |
| 7 | +- Title |
| 8 | +- Labels |
| 9 | +- Description |
| 10 | + |
| 11 | +Output results in the chat window in a way that can be copied and pasted into GitHub. |
| 12 | + |
| 13 | +## GitHub markdown formatting rules |
| 14 | + |
| 15 | +Use these syntax rules when writing GitHub descriptions: |
| 16 | + |
| 17 | +- `##` through `######` - Headings (use `##` for main, `###` for secondary, etc.) |
| 18 | +- `**text**` - Bold text |
| 19 | +- `` `code` `` - Inline code |
| 20 | +- ```` ```language` ``` - Language-specific code blocks |
| 21 | +- `[text](url)` - Links |
| 22 | +- `-` - Bullet points |
| 23 | +- `1.` - Numbered list items |
| 24 | +- `>` - Blockquotes for important notes |
| 25 | +- `~~text~~` - Strikethrough for deprecated content |
| 26 | + |
| 27 | +## Title format |
| 28 | + |
| 29 | +- Use the format: `[Component] Brief description of change or issue` |
| 30 | +- Keep titles concise but descriptive (under 80 characters) |
| 31 | +- Use present tense for the description (e.g., "Add" not "Added") |
| 32 | +- For PRs, include the component name in brackets if applicable |
| 33 | + |
| 34 | +## Description structure |
| 35 | + |
| 36 | +- Present title, labels, and type before description content |
| 37 | +- Include links to related issues, RFCs, or documentation when applicable |
| 38 | +- All descriptions must include clear acceptance criteria or expected outcomes |
| 39 | +- Provide enough context so anyone can understand the objective |
| 40 | +- Use prefixes in titles: [Bug], [Fix], [Docs], [Refactor], [Research], [S2], [Test] |
| 41 | + |
| 42 | +Examples: |
| 43 | + |
| 44 | +- [bug]: |
| 45 | +- [Bug(component)]: |
| 46 | +- [fix]: |
| 47 | +- [Fix(component)]: |
| 48 | +- [docs]: |
| 49 | +- [Docs(component)]: |
| 50 | + |
| 51 | +## Severity classification |
| 52 | + |
| 53 | +- SEV1: Critical - System down, data loss, security breach |
| 54 | +- SEV2: High - Major feature broken, significant user impact |
| 55 | +- SEV3: Medium - Feature partially broken, moderate impact |
| 56 | +- SEV4: Low - Minor issues, minimal user impact |
| 57 | +- SEV5: Trivial - Cosmetic issues, no functional impact |
| 58 | + |
| 59 | +## Best practices |
| 60 | + |
| 61 | +- Link to relevant issues using the format: `#issue-number` |
| 62 | +- Include component name in brackets if applicable: `[sp-button]` |
| 63 | +- Add relevant labels for easier filtering |
| 64 | +- Attach screenshots or videos for visual changes |
| 65 | +- Reference design specs or documentation when available |
| 66 | +- Use descriptive commit messages when linking to PRs |
| 67 | +- Include reproduction steps for bugs |
| 68 | +- Add environment information when relevant |
| 69 | + |
| 70 | +## Acceptance criteria |
| 71 | + |
| 72 | +- Write criteria in "Given/When/Then" format |
| 73 | +- Make criteria specific and testable |
| 74 | +- Include edge cases and error scenarios |
| 75 | +- Consider accessibility requirements |
| 76 | +- Include performance considerations when relevant |
| 77 | + |
| 78 | +## Labels |
| 79 | + |
| 80 | +Use the following labels to categorize pull requests. Only use labels that exist in the repository: |
| 81 | + |
| 82 | +### Priority and release labels |
| 83 | + |
| 84 | +- `1.0.0`: Issues that should be addressed for a 1.0 release |
| 85 | +- `2.0.0`: Issues for 2.0 release |
| 86 | +- `Breaking`: Breaking changes |
| 87 | + |
| 88 | +### Platform and browser labels |
| 89 | + |
| 90 | +- `Android`: Android-specific issues |
| 91 | +- `Browser: Chrome`: Chrome browser issues |
| 92 | +- `Browser: Edge (Legacy)`: Issue with pre-chromium Edge |
| 93 | +- `Browser: FireFox`: Firefox browser issues |
| 94 | +- `Browser: Safari`: Safari browser issues |
| 95 | + |
| 96 | +### Development and process labels |
| 97 | + |
| 98 | +- `a11y`: Issues related to accessibility |
| 99 | +- `API`: Changes to component APIs or interfaces |
| 100 | + |
| 101 | +### Additional labels (partial list) |
| 102 | + |
| 103 | +Note: The repository has 160 labels total. For a complete list, visit [https://github.com/adobe/spectrum-web-components/labels](https://github.com/adobe/spectrum-web-components/labels) |
| 104 | + |
| 105 | +Common additional labels include: |
| 106 | + |
| 107 | +- `chore`: Routine tasks, maintenance, or non-feature changes |
| 108 | +- `dependencies`: Updates or changes to project dependencies |
| 109 | +- `docs`: Documentation updates or improvements |
| 110 | +- `enhancement`: Improvements to existing features |
| 111 | +- `feature`: New feature implementations |
| 112 | +- `i18n`: Internationalization and localization work |
| 113 | +- `iOS`: iOS-specific issues and bugs |
| 114 | +- `mobile`: Mobile platform issues and responsive design |
| 115 | +- `performance`: Performance-related improvements or regressions |
| 116 | +- `refactor`: Code restructuring and refactoring work |
| 117 | +- `regression`: Previously working functionality that is now broken |
| 118 | +- `release`: Release process or versioning changes |
| 119 | +- `research`: Tasks requiring investigation or research |
| 120 | +- `RFC`: Request for Comments or design discussions |
| 121 | +- `testing`: Test implementation or testing infrastructure work |
| 122 | + |
| 123 | +## Pull request guidelines |
| 124 | + |
| 125 | +- Use conventional commit messages |
| 126 | +- Keep PRs focused and small when possible |
| 127 | +- Include tests for new features |
| 128 | +- Update documentation when APIs change |
| 129 | +- Add screenshots for visual changes |
| 130 | +- Link to related issues using keywords like "Fixes #123" or "Closes #456" |
| 131 | +- Request reviews from appropriate team members |
| 132 | +- Use draft PRs for work in progress |
| 133 | + |
| 134 | +## Templates |
| 135 | + |
| 136 | +### Pull request template |
| 137 | + |
| 138 | +**Note:** All pull requests should include the `ready-for-review` label. |
| 139 | + |
| 140 | +**When returning the template, check off the author requirements in the Author's checklist section. Do not check off the Manual review test cases or Device review sections as these are for reviewers to complete.** |
| 141 | + |
| 142 | +```markdown |
| 143 | +<!--- |
| 144 | + - Following conventional commit format, provide a general summary of your changes in the title above. |
| 145 | + - Acceptable commit types in order of severity (high to low): feat, fix, docs, style, chore, perf, and test. Commit types are defined in PULL_REQUESTS.md. |
| 146 | + - For example,`type(component): general summary` |
| 147 | +--> |
| 148 | + |
| 149 | +## Description |
| 150 | + |
| 151 | +<!--- Describe your changes in detail --> |
| 152 | + |
| 153 | +## Motivation and context |
| 154 | + |
| 155 | +<!--- Why is this change required? What problem does it solve? --> |
| 156 | + |
| 157 | +## Related issue(s) |
| 158 | + |
| 159 | +<!--- |
| 160 | + - If suggesting a new feature or change, please discuss it in an issue first. |
| 161 | + - If fixing a bug, include the issue number where the reviewers can find a description of the bug with steps to reproduce. |
| 162 | + - If you're an Adobe employee, add a Jira ticket number but DO NOT LINK directly to Jira. |
| 163 | +--> |
| 164 | + |
| 165 | +- fixes [Issue Number] |
| 166 | + |
| 167 | +## Screenshots (if appropriate) |
| 168 | + |
| 169 | + |
| 170 | +## Author's checklist |
| 171 | + |
| 172 | +<!--- Go over all the following points, and put an `x` in all the boxes that apply. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> |
| 173 | + |
| 174 | +- [ ] I have read the **[CONTRIBUTING](<(https://github.com/adobe/spectrum-web-components/blob/main/CONTRIBUTING.md)>)** and **[PULL_REQUESTS](<(https://github.com/adobe/spectrum-web-components/blob/main/PULL_REQUESTS.md)>)** documents. |
| 175 | +- [ ] I have reviewed at the Accessibility Practices for this feature, see: [Aria Practices](https://www.w3.org/TR/wai-aria-practices/) |
| 176 | +- [ ] I have added automated tests to cover my changes. |
| 177 | +- [ ] I have included a well-written changeset if my change needs to be published. |
| 178 | +- [ ] I have included updated documentation if my change required it. |
| 179 | + |
| 180 | + |
| 181 | +## Reviewer's checklist |
| 182 | + |
| 183 | +- [ ] Includes a Github Issue with appropriate flag or Jira ticket number without a link |
| 184 | +- [ ] Includes thoughtfully written changeset if changes suggested include `patch`, `minor`, or `major` features |
| 185 | +- [ ] Automated tests cover all use cases and follow best practices for writing |
| 186 | +- [ ] Validated on all supported browsers |
| 187 | +- [ ] All VRTs are approved before the author can update Golden Hash |
| 188 | + |
| 189 | +### Manual review test cases |
| 190 | + |
| 191 | +<!--- |
| 192 | + - For the author, please describe in detail what reviewers should test. |
| 193 | + - Include links and manual steps for how the reviewer should go through to verify your changes. |
| 194 | + - Be sure to include all areas of the codebase that might be affected. Any components that use these changes for a dependency should be cross-checked for regressions. |
| 195 | + - For example, changes to Menu Item will affect Picker, Menu, and Action Menu. |
| 196 | +--> |
| 197 | + |
| 198 | +- [ ] _Descriptive Test Statement_ |
| 199 | + |
| 200 | + 1. Go [here](url) |
| 201 | + 2. Do this action |
| 202 | + 3. Expect this result |
| 203 | + |
| 204 | +- [ ] _Descriptive Test Statement_ |
| 205 | + 1. Go [here](url) |
| 206 | + 2. Do this action |
| 207 | + 3. Expect this result |
| 208 | + |
| 209 | +### Device review |
| 210 | + |
| 211 | +<!--- Verify the above manual tests and visual accuracy utilizing an emulator like Polypane browser or on an actual device. --> |
| 212 | + |
| 213 | +- [ ] Did it pass in Desktop? |
| 214 | +- [ ] Did it pass in (emulated) Mobile? |
| 215 | +- [ ] Did it pass in (emulated) iPad? |
| 216 | + |
| 217 | +``` |
0 commit comments