Skip to content

Conversation

@Oba-One
Copy link
Member

@Oba-One Oba-One commented Jan 22, 2026

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

  • Convert all templates to YAML forms - Better validation and UI
  • Add required field validation - Ensures complete issue information
  • Add package dropdowns - Consistent labeling across repos
  • Add AI context sections - Enable Claude Code and other AI tools to populate issues
  • Add config.yml - Template chooser with contact links, disables blank issues
  • Add PR template - Standardized pull request format with Green Goods checklist
  • Add new templates - feature.yml, hook.yml, spike.yml for common use cases
  • Remove deprecated templates - api.md, state-logic.md, component.md (replaced with better alternatives)

Template Comparison

Before (Markdown) After (YAML Form) Improvements
bug.md bug.yml Required fields, package dropdown, offline flag
task.md (no label) task.yml Label auto-applied, task type dropdown
contract.md contract.yml Security checklist, upgrade impact dropdown
component.md hook.yml Specific to shared hooks, API design section
story.md story.yml Acceptance criteria format, task breakdown
N/A feature.yml Problem/solution format, offline consideration
N/A spike.yml Timebox, deliverables, research-focused

Benefits

  1. Better Issue Quality - Required fields ensure complete information
  2. Consistent Labeling - Dropdowns prevent typos and inconsistencies
  3. AI-Friendly - Structured sections for AI assistants to populate
  4. Modern GitHub UX - Form-based interface instead of manual markdown
  5. Reduced Maintenance - Shared templates across all org repos

Testing

  • Verified YAML syntax is valid
  • Tested template chooser appears correctly
  • Tested each template renders properly
  • Verified required fields block submission when empty

Screenshots

The new template chooser will look like:

🐛 Bug Report - Report a bug to help us improve
✨ Feature Request - Suggest a new feature or enhancement  
🔧 Engineering Task - Create a specific engineering task
📜 Smart Contract - Create or modify a smart contract
🪝 Shared Hook - Create a new hook in the shared package
📖 User Story - Create a user story for product development
🔬 Spike / Investigation - Research or investigation task
🎨 Design Request - Request design work for a feature or component

💬 Ask a Question → Telegram
📚 Documentation → Docs site

🤖 Generated with Claude Code

- 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>
@coderabbitai
Copy link

coderabbitai bot commented Jan 22, 2026

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Restructured GitHub issue templates with improved YAML-based forms for standardized bug reports, feature requests, smart contract tasks, design requests, hooks, spikes, and user stories.
    • Added pull request template with standardized sections.
    • Configured issue template contact links for support and documentation.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Migrates 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

Cohort / File(s) Summary
Issue Template Migration to YAML Format
.github/ISSUE_TEMPLATE/bug.*, contract.*, design.*, story.*, task.*
Removed legacy Markdown templates (.md files) and introduced replacements as YAML form templates (.yml) with structured fields, validation rules, and enhanced user guidance for bug reporting, smart contract work, design requests, user stories, and general tasks
Removed Legacy Templates
.github/ISSUE_TEMPLATE/api.md, component.md, state-logic.md
Deleted three Markdown-based issue templates without YAML replacements, eliminating templates for API tasks, component development, and state logic work
New Specialized Issue Templates
.github/ISSUE_TEMPLATE/feature.yml, hook.yml, spike.yml
Added three new YAML-based templates for structured feature requests, shared hook creation, and spike/investigation tasks with required fields, multi-select options, and implementation guidance
GitHub Configuration & PR Template
.github/ISSUE_TEMPLATE/config.yml, .github/PULL_REQUEST_TEMPLATE.md
Configured issue templates to disable blank issues and added contact links for support; introduced pull request template with sections for summary, changes, testing, and checklist

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes


🐰 Templates now dance in YAML's embrace,
Structured forms put questions in their place,
Old Markdown fades as new workflows take flight,
With hooks and spikes sparkling oh-so-bright! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main changes: converting issue templates to YAML forms and adding a PR template, which directly aligns with all the modifications shown in the changeset.
Description check ✅ Passed The description is directly related to the changeset, detailing the conversion from Markdown to YAML formats, template improvements, benefits, and testing. It thoroughly explains the motivation and scope of all changes present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/yaml-issue-templates

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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

📥 Commits

Reviewing files that changed from the base of the PR and between 3d31775 and b3802d1.

📒 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.

Comment on lines +1 to +11
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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 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"
done

Repository: 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.

Comment on lines +1 to +93
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)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants