Create pull requests for Canvas Android following project conventions. Use when user mentions creating PR, pull request, opening PR, or submitting changes for review. Includes PR template requirements and affects field guidelines.
Content & Writing
148 Stars
108 Forks
Updated Jan 16, 2026, 08:28 PM
Why Use This
This skill provides specialized capabilities for instructure's codebase.
Use Cases
Developing new features in the instructure repository
Refactoring existing code to follow instructure standards
Understanding and working with instructure's codebase structure
---
name: pr
description: Create pull requests for Canvas Android following project conventions. Use when user mentions creating PR, pull request, opening PR, or submitting changes for review. Includes PR template requirements and affects field guidelines.
allowed-tools: Bash, Read
---
# Create Pull Requests for Canvas Android
Create pull requests for Canvas Android following project conventions and using the standard template.
## PR Template Location
The PR template is located at `/PULL_REQUEST_TEMPLATE` in the repository root.
## Creating a PR
Use the GitHub CLI to create pull requests:
```bash
# Create PR (automatically uses template)
gh pr create
# Or with title and body
gh pr create --title "Your PR Title" --body "$(cat /path/to/description.md)"
```
The template will be automatically loaded when using `gh pr create`.
### PR Title Format
**CRITICAL**: The PR title MUST include the affected app(s) in square brackets AFTER the ticket ID.
Format: `[TICKET-ID][AppName] Description`
Examples:
- `[MBL-19497][Student] Fix bookmark URL placeholders from notifications`
- `[MBL-12345][Teacher] Add assignment grading improvements`
- `[MBL-67890][Student][Teacher] Fix discussion loading for both apps`
- `[MBL-11111][All] Update login flow across all apps`
**Rules:**
- The ticket ID comes FIRST, then the app name(s)
- Always include the app name(s) based on the `affects:` field in the PR body
- If `affects: Student`, use `[Student]`
- If `affects: Student, Teacher`, use `[Student][Teacher]`
- If `affects: Student, Teacher, Parent`, use `[All]`
- The app tags come AFTER the ticket ID and BEFORE the description
## Template Requirements
The PR template includes the following sections that must be completed:
### 1. Test Plan Description
Describe how to test the changes. Include:
- Steps to reproduce/verify the fix or feature
- Expected behavior
- Any prerequisites or setup needed
**SECURITY WARNING**: NEVER include test credentials, passwords, API keys, or sensitive URLs in the test plan. The repository is public.
### 2. Issue References
Use `refs:` followed by issue numbers:
```markdown
refs: MBL-12345
```
or for multiple issues:
```markdown
refs: MBL-12345, MBL-67890
```
### 3. Impact Scope (affects field)
**IMPORTANT**: Use `affects:` to specify which apps are impacted by the changes.
Valid values:
- `Student`
- `Teacher`
- `Parent`
Examples:
```markdown
affects: Student
```
```markdown
affects: Student, Teacher
```
```markdown
affects: Student, Teacher, Parent
```
### 4. Release Note
Provide a user-facing description of changes. This should be:
- Written for end users, not developers
- Clear and concise
- Focused on user impact
### 5. Checklist
Complete the following items before marking PR as ready:
- [ ] Follow-up e2e test ticket created or not needed
- [ ] Run E2E test suite
- [ ] Tested in dark mode
- [ ] Tested in light mode
- [ ] Test in landscape mode and/or tablet
- [ ] A11y checked
- [ ] Approve from product
## Important Notes
- **CRITICAL SECURITY**: NEVER include credentials, passwords, usernames, API keys, tokens, or any sensitive information in PR descriptions. The canvas-android repository is PUBLIC. Anyone on the internet can read PR descriptions. If test credentials or environment details are needed, they should be shared through secure internal channels only.
- **DO NOT** include this checkbox item "- [ ] Run E2E test suite" or screenshots sections unless specifically needed
- Always include the `affects:` field to specify which apps are impacted
- Reference the related issue(s) with `refs:`
- Complete the checklist before marking the PR as ready for review
## Examples
### Example PR for Student App Only
**Title:** `[MBL-19453][Student] Add dashboard widget customization`
```markdown
Test plan:
1. Navigate to Dashboard
2. Verify widgets are displayed correctly
3. Test widget reordering
refs: MBL-19453
affects: Student
release note: Students can now customize their dashboard with widgets
```
### Example PR for Multiple Apps
**Title:** `[MBL-12345][Student][Teacher] Improve discussion loading performance`
```markdown
Test plan:
1. Open any course
2. Verify discussion loading
3. Test comment threading
refs: MBL-12345
affects: Student, Teacher
release note: Improved discussion loading performance
```
### Example PR for All Apps
**Title:** `[MBL-67890][All] Update login flow`
```markdown
Test plan:
1. Launch any app
2. Log in with credentials
3. Verify successful authentication
refs: MBL-67890
affects: Student, Teacher, Parent
release note: Updated login experience for improved security
```