-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Convert issue templates to YAML forms + add PR template #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Convert all 8 issue templates from markdown to YAML form format - Add required field validation for better issue quality - Add package dropdown for consistent labeling - Add AI-friendly context sections for automated workflows - Add config.yml with contact links (disables blank issues) - Add PULL_REQUEST_TEMPLATE.md for standardized PRs - Remove deprecated api.md, state-logic.md, component.md templates - Add new templates: feature.yml, hook.yml, spike.yml New templates: - bug.yml - Bug reports with environment & offline flags - feature.yml - Feature requests with acceptance criteria - task.yml - Engineering tasks with done state - contract.yml - Smart contract work with security checklist - hook.yml - Shared hook creation with API design - story.yml - User stories with acceptance criteria - spike.yml - Research/investigation with timebox - design.yml - Design requests with requirements Benefits: - Required fields ensure complete issue information - Dropdowns provide consistent data - AI context sections enable automated population - Better GitHub UI for issue creation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
📝 WalkthroughSummary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings. WalkthroughMigrates GitHub issue templates from Markdown to YAML-based form format, replacing eight template types (bug, contract, design, story, task) with structured forms while introducing three new template types (feature, hook, spike). Adds issue configuration and pull request template files. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @.github/ISSUE_TEMPLATE/config.yml:
- Around line 1-11: The contact link under contact_links with name "🌱 Green
Goods App" points to a broken URL (https://app.greengoods.app); update the URL
value for that entry to the correct reachable address (or remove/replace the
entry with a working alternative) so the "🌱 Green Goods App" contact link is
valid; locate the contact_links block and the specific entry by the name "🌱
Green Goods App" and change its url field accordingly, then verify the link
responds successfully.
In @.github/ISSUE_TEMPLATE/contract.yml:
- Around line 1-93: The "Security Considerations" field (id: security, type:
textarea) is currently optional; make it required by adding a validations block
with required: true under that field definition so the template enforces
completion of security checklist before submission.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (18)
.github/ISSUE_TEMPLATE/api.md.github/ISSUE_TEMPLATE/bug.md.github/ISSUE_TEMPLATE/bug.yml.github/ISSUE_TEMPLATE/component.md.github/ISSUE_TEMPLATE/config.yml.github/ISSUE_TEMPLATE/contract.md.github/ISSUE_TEMPLATE/contract.yml.github/ISSUE_TEMPLATE/design.md.github/ISSUE_TEMPLATE/design.yml.github/ISSUE_TEMPLATE/feature.yml.github/ISSUE_TEMPLATE/hook.yml.github/ISSUE_TEMPLATE/spike.yml.github/ISSUE_TEMPLATE/state-logic.md.github/ISSUE_TEMPLATE/story.md.github/ISSUE_TEMPLATE/story.yml.github/ISSUE_TEMPLATE/task.md.github/ISSUE_TEMPLATE/task.yml.github/PULL_REQUEST_TEMPLATE.md
💤 Files with no reviewable changes (8)
- .github/ISSUE_TEMPLATE/task.md
- .github/ISSUE_TEMPLATE/story.md
- .github/ISSUE_TEMPLATE/bug.md
- .github/ISSUE_TEMPLATE/design.md
- .github/ISSUE_TEMPLATE/contract.md
- .github/ISSUE_TEMPLATE/component.md
- .github/ISSUE_TEMPLATE/state-logic.md
- .github/ISSUE_TEMPLATE/api.md
🧰 Additional context used
🪛 LanguageTool
.github/PULL_REQUEST_TEMPLATE.md
[style] ~14-~14: Consider using a different verb for a more formal wording.
Context: ... ] 🐛 Bug fix (non-breaking change that fixes an issue) - [ ] ✨ New feature (non-brea...
(FIX_RESOLVE)
🔇 Additional comments (8)
.github/PULL_REQUEST_TEMPLATE.md (1)
1-43: Well-structured PR template with comprehensive sections.The template covers all essential aspects: summary, issue linking, change classification, testing checklist, and project-specific requirements. The coverage targets (Line 43) are clearly defined and the testing commands (Lines 23-26) align with Bun-based tooling.
.github/ISSUE_TEMPLATE/design.yml (1)
1-59: Well-designed template with appropriate required fields.Good structure with the Design Type dropdown for categorization. The placeholder examples (Lines 33-36, 44-48) guide users effectively. WCAG 2.1 AA mention (Line 36) shows accessibility awareness.
.github/ISSUE_TEMPLATE/spike.yml (1)
1-67: Excellent spike template with timebox enforcement.The timebox field (Lines 37-44) is a smart addition for managing investigation scope. The structure follows spike best practices: clear question, bounded scope, defined deliverables. The In/Out of Scope placeholder (Lines 28-33) helps prevent scope creep.
.github/ISSUE_TEMPLATE/task.yml (1)
1-89: Comprehensive task template with useful multi-select package field.The multi-select for Affected Package(s) (Line 25) is well-suited for cross-package work. The package options align with the project structure referenced in the PR template. Good balance between required fields (type, package, summary, done state) and optional context fields.
.github/ISSUE_TEMPLATE/story.yml (1)
1-63: Well-structured user story template following standard formats.The standard user story format (Line 11) and BDD-style acceptance criteria (Lines 49-51) follow industry best practices. The task breakdown placeholder (Lines 32-39) aligns with the project's architecture layers, making it easy for contributors to think through implementation comprehensively.
.github/ISSUE_TEMPLATE/hook.yml (1)
1-84: Well-structured hook intake form.
Clear required fields and examples make requests actionable..github/ISSUE_TEMPLATE/bug.yml (1)
1-107: Bug report form looks complete and actionable.
The fields cover triage essentials without being overly heavy..github/ISSUE_TEMPLATE/feature.yml (1)
1-92: Feature request template is clear and well-scoped.
Good balance of required inputs and optional guidance.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
| blank_issues_enabled: false | ||
| contact_links: | ||
| - name: 💬 Ask a Question | ||
| url: https://t.me/greenpilldevguild | ||
| about: Get help from the Greenpill Dev Guild community | ||
| - name: 📚 Documentation | ||
| url: https://docs.greengoods.app | ||
| about: Check our developer documentation first | ||
| - name: 🌱 Green Goods App | ||
| url: https://app.greengoods.app | ||
| about: Visit the live application |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify that the external URLs in the config are reachable
urls=(
"https://t.me/greenpilldevguild"
"https://docs.greengoods.app"
"https://app.greengoods.app"
)
for url in "${urls[@]}"; do
status=$(curl -o /dev/null -s -w "%{http_code}" -L --max-time 10 "$url" 2>&1)
echo "$url -> HTTP $status"
doneRepository: greenpill-dev-guild/.github
Length of output: 192
Fix broken application link in issue template configuration.
The live application URL (https://app.greengoods.app) at line 9 is not reachable (HTTP 000). The contact links to Telegram and documentation are working correctly, but the app link needs to be verified and corrected. Ensure the URL is accurate or replace it with a working alternative.
🤖 Prompt for AI Agents
In @.github/ISSUE_TEMPLATE/config.yml around lines 1 - 11, The contact link
under contact_links with name "🌱 Green Goods App" points to a broken URL
(https://app.greengoods.app); update the URL value for that entry to the correct
reachable address (or remove/replace the entry with a working alternative) so
the "🌱 Green Goods App" contact link is valid; locate the contact_links block
and the specific entry by the name "🌱 Green Goods App" and change its url field
accordingly, then verify the link responds successfully.
| name: 📜 Smart Contract | ||
| description: Create or modify a smart contract | ||
| title: "[CONTRACT]: " | ||
| labels: ["contract"] | ||
| body: | ||
| - type: dropdown | ||
| id: type | ||
| attributes: | ||
| label: Contract Type | ||
| options: | ||
| - New Contract | ||
| - Upgrade (UUPS) | ||
| - Bug Fix | ||
| - Gas Optimization | ||
| - Security Fix | ||
| - Test Addition | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: summary | ||
| attributes: | ||
| label: Summary | ||
| description: What contract work is needed? | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: done-state | ||
| attributes: | ||
| label: Done State | ||
| description: Acceptance criteria for completion | ||
| placeholder: | | ||
| - [ ] Contract implemented | ||
| - [ ] Unit tests (100% coverage) | ||
| - [ ] Fuzz tests for parameters | ||
| - [ ] Gas snapshot updated | ||
| - [ ] NatSpec documentation | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: security | ||
| attributes: | ||
| label: Security Considerations | ||
| description: Security requirements and review needs | ||
| placeholder: | | ||
| - [ ] CEI pattern followed | ||
| - [ ] Reentrancy guards where needed | ||
| - [ ] Access control verified | ||
| - [ ] Events emitted for state changes | ||
| - [ ] No tx.origin for authorization | ||
| - [ ] Input validation | ||
| - type: dropdown | ||
| id: upgrade | ||
| attributes: | ||
| label: Upgrade Impact | ||
| description: Does this affect existing deployments? | ||
| options: | ||
| - N/A - New contract | ||
| - Safe upgrade (storage compatible) | ||
| - Breaking change (migration needed) | ||
| - Gas-only change | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: implementation | ||
| attributes: | ||
| label: Implementation Notes | ||
| description: Contract locations, inheritance, patterns | ||
| placeholder: | | ||
| ## Contract Location | ||
| `packages/contracts/src/...` | ||
| ## Inheritance | ||
| - Inherits from OpenZeppelin `...` | ||
| - Uses EAS schema `...` | ||
| ## Testing | ||
| ```bash | ||
| cd packages/contracts && forge test --match-contract TestName | ||
| ``` | ||
| - type: textarea | ||
| id: resources | ||
| attributes: | ||
| label: Resources | ||
| placeholder: | | ||
| - [Foundry](https://getfoundry.sh/) | ||
| - [OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/) | ||
| - [EAS](https://docs.attest.org/docs/welcome) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make “Security Considerations” required.
Right now it’s optional, which undermines the contract workflow’s safety checklist.
✅ Proposed fix
- type: textarea
id: security
attributes:
label: Security Considerations
description: Security requirements and review needs
placeholder: |
- [ ] CEI pattern followed
- [ ] Reentrancy guards where needed
- [ ] Access control verified
- [ ] Events emitted for state changes
- [ ] No tx.origin for authorization
- [ ] Input validation
+ validations:
+ required: true🤖 Prompt for AI Agents
In @.github/ISSUE_TEMPLATE/contract.yml around lines 1 - 93, The "Security
Considerations" field (id: security, type: textarea) is currently optional; make
it required by adding a validations block with required: true under that field
definition so the template enforces completion of security checklist before
submission.
Summary
Modernize organization issue templates by converting from legacy markdown format to GitHub's YAML form format, enabling required field validation, dropdowns, and better UX.
Key Changes
Template Comparison
bug.mdbug.ymltask.md(no label)task.ymlcontract.mdcontract.ymlcomponent.mdhook.ymlstory.mdstory.ymlfeature.ymlspike.ymlBenefits
Testing
Screenshots
The new template chooser will look like:
🤖 Generated with Claude Code