This directory contains standardized GitHub issue templates and PR templates for all 3 Leaps OSS organizations and projects (fulmenhq, mdmeld, docemist, etc.). These templates provide a consistent experience across our ecosystem while allowing project-specific customization.
- Consistency: Unified issue/PR structure across all 3 Leaps organizations (fulmenhq, mdmeld, docemist, etc.)
- Quality: Ensure reporters provide necessary information for triage
- Maintainability: Update templates in one place, sync to all projects
- Community: Guide new contributors through the contribution process
- bug_report.yml - Structured bug reports with environment details
- feature_request.yml - Feature proposals with use cases and priority
- question.yml - Questions and discussions
- config.yml - Template configuration and contact links
- PULL_REQUEST_TEMPLATE.md - Comprehensive PR checklist covering testing, documentation, security, and quality
Copy the .github/ directory to your project repository:
# From your project root
cp -r ~/dev/3leaps/oss-policies/.github .Then customize as needed (see Customization section below).
For projects that want automatic updates, create a symlink:
# From your project root
ln -s ~/dev/3leaps/oss-policies/.github .githubNote: This requires the oss-policies repo to be cloned locally. Not recommended for public projects as paths may vary across contributors.
- Copy templates to your project
- Add a comment at the top noting they're synced from oss-policies
- Periodically check oss-policies for updates and re-sync
All templates include comments at the top indicating what should be customized. Here's what to customize for each project:
File: ISSUE_TEMPLATE/bug_report.yml
Customize:
- Line 2:
description- Add project name - Lines 26-29:
reproductionplaceholder - Add project-specific example - Line 54:
versionlabel - Change "Version" to "ProjectName Version" if desired - Line 117-119:
checklist- Update version references
Example for TSFulmen:
description: Report a bug or unexpected behavior in TSFulmen
# ...
placeholder: |
1. Install TSFulmen v0.1.x
2. Import module '...'
# ...
label: TSFulmen VersionExample for GoFulmen:
description: Report a bug or unexpected behavior in GoFulmen
# ...
placeholder: |
1. Install GoFulmen: go get github.com/fulmenhq/gofulmen
2. Import package '...'
# ...
label: GoFulmen VersionFile: ISSUE_TEMPLATE/feature_request.yml
Customize:
- Line 2:
description- Add project-specific note about status (alpha, stable, etc.) - Add module/component dropdown if applicable (see TSFulmen example below)
Example module dropdown for library projects:
- type: dropdown
id: module
attributes:
label: Related Module
description: Which module is this feature related to?
options:
- config
- logging
- schema
- otherFile: ISSUE_TEMPLATE/question.yml
Customize:
- Line 2:
description- Add project name if desired - Add module/component dropdown if applicable (same as feature request)
File: ISSUE_TEMPLATE/config.yml
Customize:
- Line 8: Documentation URL - Update to project-specific docs
- Line 13: Discussions URL - Update to project-specific discussions
- Consider adding project-specific contact links (e.g., Mattermost channel)
Example for TSFulmen:
contact_links:
- name: π Documentation
url: https://github.com/fulmenhq/tsfulmen
about: Read the TSFulmen documentation and examples
- name: π Security Vulnerability
url: https://github.com/fulmenhq/tsfulmen/blob/main/SECURITY.md
about: Report security vulnerabilities privately via [email protected]
- name: π¬ GitHub Discussions
url: https://github.com/fulmenhq/tsfulmen/discussions
about: Ask questions and discuss TSFulmen with the communityFile: PULL_REQUEST_TEMPLATE.md
Customize:
- Quality checks section - Update commands to match project (e.g.,
make test,npm test,go test) - Documentation references - Update paths to project-specific CONTRIBUTING.md
- Add project-specific sections if needed (e.g., cross-language alignment for helper libraries)
Example quality checks:
## Quality Checks
- [ ] `make check-all` passes (lint, typecheck, test) <!-- TypeScript/Node -->
- [ ] `go test ./...` passes <!-- Go -->
- [ ] `pytest` passes with coverage <!-- Python -->
- [ ] Build succeedsTSFulmen customizes templates with:
- Module dropdown listing all TSFulmen modules (config, logging, pathfinder, etc.)
- Runtime environment dropdown (Node.js, Bun)
- Alpha status note in feature request
- TypeScript-specific quality checks in PR template
GoFulmen should customize with:
- Module dropdown for Go modules
- Go version and environment details
- Go-specific quality checks (
go test,golangci-lint)
PyFulmen should customize with:
- Module dropdown for Python modules
- Python version and environment details
- Python-specific quality checks (
pytest,mypy,ruff)
Crucible should customize with:
- Category dropdown (schemas, docs, config, templates)
- Asset type information
- Sync and versioning considerations
When templates are updated in oss-policies:
- Announcement: Update CHANGELOG.md in oss-policies with template changes
- Notification: Notify project maintainers via Mattermost or GitHub
- Manual Sync: Each project maintainer reviews changes and updates their copy
- Version Tracking: Update "Last synced" comment in template headers
- Required vs Optional: Mark truly required fields as
required: true, make others optional - Clear Labels: Use descriptive labels and help text
- Reasonable Defaults: Provide good placeholder examples
- Progressive Disclosure: Start simple, add details as needed
- Accessibility: Use clear language, avoid jargon in field descriptions
- Consistency: Keep field names and structure consistent across templates
Before syncing templates to a project:
- Create a test issue in your project using each template
- Verify all fields render correctly
- Test required field validation
- Check dropdown options display properly
- Ensure customized sections make sense for your project
For questions about these templates or to suggest improvements:
- Open an issue in 3leaps/oss-policies
- Contact: [email protected]
- 2025-11-03: Initial templates established (based on TSFulmen v0.1.4 public release)
Status: Active Maintained By: 3 Leaps, LLC License: Same as oss-policies (see LICENSE.md)