Add comprehensive issue and PR templates for MetaBuilder

- Created ISSUE_TEMPLATE directory with 6 specialized templates
- Bug report template with environment and severity tracking
- Feature request template aligned with data-driven architecture
- Documentation improvement template
- Package request template for MetaBuilder's package system
- DBAL-specific issue template for TS/C++ implementations
- Configuration file with links to docs and discussions
- Comprehensive PR template with architecture checklists
- All templates include MetaBuilder-specific considerations:
  * Multi-tenant safety checks
  * Permission level targeting (Levels 1-6)
  * DBAL usage requirements
  * Data-driven architecture alignment
  * Package system conventions

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-27 03:35:11 +00:00
parent 39f50aa6d6
commit 52daeccc37
7 changed files with 955 additions and 0 deletions

130
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,130 @@
name: 🐛 Bug Report
description: Report a bug or unexpected behavior
title: "[Bug]: "
labels: ["bug", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this bug! Please fill out the form below to help us understand and fix the issue.
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what went wrong...
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
placeholder: I expected...
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
placeholder: Instead, I observed...
validations:
required: true
- type: dropdown
id: component
attributes:
label: Component/Area
description: Which part of MetaBuilder is affected?
options:
- Frontend (Next.js UI)
- Backend (API/Auth)
- Database (Prisma/Schema)
- DBAL (TypeScript/C++)
- Package System
- Lua Scripting
- Multi-Tenant System
- Permission System
- Workflows
- Documentation
- Other
validations:
required: true
- type: dropdown
id: severity
attributes:
label: Severity
description: How severe is this bug?
options:
- Critical (System crash, data loss)
- High (Major feature broken)
- Medium (Feature partially broken)
- Low (Minor issue, workaround exists)
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Please provide your environment details
value: |
- OS: [e.g., Ubuntu 22.04, macOS 13.0, Windows 11]
- Node Version: [e.g., 18.17.0]
- Browser: [e.g., Chrome 120, Firefox 121]
- Database: [e.g., SQLite, PostgreSQL 15]
render: markdown
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant Logs/Screenshots
description: Add any error logs, screenshots, or console output
placeholder: |
Paste logs here or drag and drop screenshots.
render: shell
- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context about the problem
placeholder: |
- Does this happen consistently or intermittently?
- Have you tried any workarounds?
- Did this work in a previous version?
- type: checkboxes
id: checklist
attributes:
label: Pre-submission Checklist
description: Please verify the following before submitting
options:
- label: I have searched existing issues to ensure this is not a duplicate
required: true
- label: I have provided all required information above
required: true
- label: I have checked the documentation for relevant information
required: false

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 📚 Documentation
url: https://github.com/johndoe6345789/metabuilder/tree/main/docs
about: Check our comprehensive documentation for guides and architecture details
- name: 💬 Discussions
url: https://github.com/johndoe6345789/metabuilder/discussions
about: Ask questions and discuss ideas with the community
- name: 🔒 Security Issues
url: https://github.com/johndoe6345789/metabuilder/security/advisories/new
about: Report security vulnerabilities privately

158
.github/ISSUE_TEMPLATE/dbal_issue.yml vendored Normal file
View File

@@ -0,0 +1,158 @@
name: 🔧 DBAL Issue
description: Report an issue with the Database Abstraction Layer (TypeScript or C++)
title: "[DBAL]: "
labels: ["dbal", "bug", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
DBAL is MetaBuilder's critical database abstraction layer with TypeScript (dev) and C++ (production) implementations.
- type: dropdown
id: implementation
attributes:
label: DBAL Implementation
description: Which DBAL implementation is affected?
options:
- TypeScript SDK (dbal/ts/)
- C++ Daemon (dbal/cpp/)
- Both implementations
- YAML Contracts (api/schema/)
- Conformance Tests
- Unknown
validations:
required: true
- type: textarea
id: issue
attributes:
label: Issue Description
description: Describe the DBAL issue you're experiencing
placeholder: The DBAL operation fails when...
validations:
required: true
- type: dropdown
id: operation
attributes:
label: Operation Type
description: What type of operation is failing?
options:
- Entity Operations (CRUD)
- Query Operations
- Transaction Operations
- Blob Storage
- Key-Value Store
- Tenant Management
- Access Control
- Connection Management
- Type Generation
- Other
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction Code
description: Provide code to reproduce the issue
placeholder: |
```typescript
// Your code here
const result = await dbalQuery({...})
```
render: typescript
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What should happen?
placeholder: The operation should...
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happens?
placeholder: Instead, I see...
validations:
required: true
- type: textarea
id: error
attributes:
label: Error Messages/Logs
description: Include any error messages, stack traces, or logs
render: shell
- type: dropdown
id: severity
attributes:
label: Severity
options:
- Critical (Data corruption/loss)
- High (Operation completely fails)
- Medium (Operation partially works)
- Low (Minor inconsistency)
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment Details
value: |
- DBAL Version: [e.g., commit hash or version]
- Node/C++ Version: [e.g., Node 18.17, gcc 11.3]
- Database: [e.g., SQLite, PostgreSQL 15]
- OS: [e.g., Ubuntu 22.04]
render: markdown
validations:
required: true
- type: dropdown
id: parity
attributes:
label: Implementation Parity
description: If both implementations exist, do they behave the same?
options:
- Both implementations fail
- Only TypeScript fails
- Only C++ fails
- Different behavior between implementations
- Haven't tested both
- N/A (only one implementation exists)
- type: textarea
id: conformance
attributes:
label: Conformance Test Status
description: Do conformance tests pass for this operation?
placeholder: |
- Ran: python tools/conformance/run_all.py
- Result: [Pass/Fail details]
- type: textarea
id: additional
attributes:
label: Additional Context
description: YAML contract issues? Schema problems? Performance concerns?
- type: checkboxes
id: checklist
attributes:
label: Pre-submission Checklist
options:
- label: I have checked the YAML schema definitions in api/schema/
required: true
- label: I have verified this isn't a tenant isolation issue
required: true
- label: I have checked conformance test results if applicable
required: false

115
.github/ISSUE_TEMPLATE/documentation.yml vendored Normal file
View File

@@ -0,0 +1,115 @@
name: 📚 Documentation
description: Report an issue with documentation or request documentation improvements
title: "[Docs]: "
labels: ["documentation", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for helping improve MetaBuilder's documentation! Clear docs help everyone.
- type: dropdown
id: doc-type
attributes:
label: Documentation Type
description: What kind of documentation issue is this?
options:
- Missing documentation
- Incorrect/outdated information
- Unclear explanation
- Broken links
- Typo/grammar
- Code example not working
- Missing code example
- Architecture documentation
- API documentation
- Other
validations:
required: true
- type: textarea
id: location
attributes:
label: Documentation Location
description: Where is the documentation issue? (provide file path, URL, or section name)
placeholder: |
File: docs/architecture/packages.md
Or URL: https://github.com/johndoe6345789/metabuilder/tree/main/docs
Or Section: "Getting Started > Database Setup"
validations:
required: true
- type: textarea
id: issue
attributes:
label: Issue Description
description: What's wrong with the current documentation?
placeholder: The current documentation states... but it should...
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Suggested Improvement
description: How should the documentation be improved?
placeholder: |
The documentation should instead explain...
Or: Add a section that covers...
validations:
required: true
- type: dropdown
id: area
attributes:
label: Documentation Area
description: Which area of MetaBuilder does this documentation cover?
options:
- Getting Started
- Architecture
- API Reference
- Package System
- DBAL
- Permission System
- Multi-Tenancy
- Lua Scripting
- Workflows
- Database/Prisma
- Testing
- Deployment
- Contributing
- Security
- Other
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other relevant information
placeholder: |
- Screenshots of confusing sections
- Related issues or PRs
- Why this improvement is needed
- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Would you like to help improve this documentation?
options:
- label: I am willing to submit a PR to fix/improve this documentation
required: false
- type: checkboxes
id: checklist
attributes:
label: Pre-submission Checklist
options:
- label: I have searched existing issues for similar documentation requests
required: true
- label: I have verified the documentation issue still exists in the latest version
required: true

View File

@@ -0,0 +1,134 @@
name: ✨ Feature Request
description: Suggest a new feature or enhancement for MetaBuilder
title: "[Feature]: "
labels: ["enhancement", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for your interest in improving MetaBuilder! Please describe your feature request in detail.
- type: textarea
id: problem
attributes:
label: Problem Statement
description: Is your feature request related to a problem? Describe what you're trying to achieve.
placeholder: I'm frustrated when... / I need to be able to...
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like to see
placeholder: I would like MetaBuilder to...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Have you considered any alternative solutions or workarounds?
placeholder: I've tried... but...
- type: dropdown
id: component
attributes:
label: Component/Area
description: Which part of MetaBuilder would this feature affect?
options:
- Frontend (Next.js UI)
- Backend (API/Auth)
- Database (Prisma/Schema)
- DBAL (TypeScript/C++)
- Package System
- Lua Scripting
- Multi-Tenant System
- Permission System (Levels 1-6)
- Workflows
- Documentation
- Developer Experience
- Other
validations:
required: true
- type: dropdown
id: priority
attributes:
label: Priority
description: How important is this feature to you?
options:
- High (Blocker for my use case)
- Medium (Would be very helpful)
- Low (Nice to have)
validations:
required: true
- type: dropdown
id: user-level
attributes:
label: Target User Level
description: Which permission level(s) would use this feature?
multiple: true
options:
- Level 1 (Public)
- Level 2 (User)
- Level 3 (Moderator)
- Level 4 (Admin)
- Level 5 (God)
- Level 6 (Supergod)
- All levels
- type: textarea
id: use-cases
attributes:
label: Use Cases
description: Provide specific use cases or examples of how this feature would be used
placeholder: |
1. As a [user type], I want to [action] so that [benefit]
2. When [scenario], this feature would help by [outcome]
- type: textarea
id: technical
attributes:
label: Technical Considerations
description: Any technical details, implementation ideas, or constraints?
placeholder: |
- This might require changes to...
- Could be implemented using...
- May affect performance of...
- type: textarea
id: mockups
attributes:
label: Mockups/Examples
description: Add any mockups, diagrams, or examples (drag and drop images or links)
placeholder: Paste images or links here...
- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Would you be willing to help implement this feature?
options:
- label: I am willing to submit a PR for this feature
required: false
- label: I can help with testing this feature
required: false
- type: checkboxes
id: checklist
attributes:
label: Pre-submission Checklist
description: Please verify the following before submitting
options:
- label: I have searched existing issues and discussions for similar requests
required: true
- label: This feature aligns with MetaBuilder's data-driven, multi-tenant architecture
required: true
- label: I have provided sufficient detail for others to understand the request
required: true

View File

@@ -0,0 +1,164 @@
name: 📦 Package Request
description: Request a new package for MetaBuilder's package system
title: "[Package]: "
labels: ["enhancement", "package", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
MetaBuilder's power comes from its data-driven package system. Request a new package here!
- type: input
id: package-name
attributes:
label: Package Name
description: Proposed name for the package (use snake_case)
placeholder: e.g., blog_engine, task_manager, analytics_dashboard
validations:
required: true
- type: textarea
id: description
attributes:
label: Package Description
description: What functionality would this package provide?
placeholder: This package would enable users to...
validations:
required: true
- type: dropdown
id: package-type
attributes:
label: Package Type
description: What type of package is this?
options:
- UI Component/Widget
- Feature Module
- Integration
- Tool/Utility
- Template/Theme
- Data Schema
- Workflow
- Other
validations:
required: true
- type: dropdown
id: min-level
attributes:
label: Minimum Permission Level
description: What's the minimum user level required to use this package?
options:
- Level 1 (Public - no auth required)
- Level 2 (User - basic authentication)
- Level 3 (Moderator - content moderation)
- Level 4 (Admin - user management)
- Level 5 (God - system configuration)
- Level 6 (Supergod - full system control)
validations:
required: true
- type: textarea
id: features
attributes:
label: Key Features
description: List the main features this package should include
placeholder: |
- Feature 1: Description
- Feature 2: Description
- Feature 3: Description
validations:
required: true
- type: textarea
id: use-cases
attributes:
label: Use Cases
description: Describe scenarios where this package would be useful
placeholder: |
1. A [user type] needs to [action] in order to [goal]
2. When [scenario], this package would help by [benefit]
- type: textarea
id: components
attributes:
label: Proposed Components
description: What UI components would this package include?
placeholder: |
- ComponentName1: Description
- ComponentName2: Description
- type: textarea
id: lua-scripts
attributes:
label: Lua Scripts Needed
description: What Lua scripts would be required? (MetaBuilder is 95% JSON/Lua)
placeholder: |
- initialize.lua: Setup and configuration
- validators.lua: Data validation
- helpers.lua: Utility functions
- type: textarea
id: schemas
attributes:
label: Database Schemas
description: What database tables/models would be needed?
placeholder: |
- Model1 { field1, field2, ... }
- Model2 { field1, field2, ... }
- type: textarea
id: dependencies
attributes:
label: Package Dependencies
description: Would this package depend on other packages?
placeholder: |
- @metabuilder/dashboard
- @metabuilder/form_builder
- type: dropdown
id: multi-tenant
attributes:
label: Multi-Tenant Support
description: Does this package need to be tenant-aware?
options:
- "Yes - Requires tenant isolation"
- "No - Can be global"
- "Optional - Configurable"
validations:
required: true
- type: textarea
id: similar
attributes:
label: Similar Packages/Inspiration
description: Are there similar packages in other systems or frameworks?
placeholder: |
- System X has a similar feature that...
- This is inspired by...
- type: checkboxes
id: contribution
attributes:
label: Contribution
options:
- label: I am willing to help develop this package
required: false
- label: I can provide Lua scripts for this package
required: false
- label: I can help with testing this package
required: false
- type: checkboxes
id: checklist
attributes:
label: Pre-submission Checklist
options:
- label: I have searched existing packages to ensure this doesn't already exist
required: true
- label: This package aligns with MetaBuilder's data-driven architecture
required: true
- label: I have considered multi-tenant requirements
required: true

243
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,243 @@
## Description
<!-- Provide a clear and concise description of your changes -->
## Related Issue
<!-- Link to the issue this PR addresses -->
Fixes #<!-- issue number -->
## Type of Change
<!-- Mark the relevant option with an "x" -->
- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
- [ ] ✨ New feature (non-breaking change that adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] 🎨 UI/UX improvement
- [ ] ♻️ Code refactoring (no functional changes)
- [ ] ⚡ Performance improvement
- [ ] ✅ Test additions or updates
- [ ] 🔧 Configuration/tooling change
- [ ] 📦 Package system change
- [ ] 🔒 Security fix
## Component/Area Affected
<!-- Mark all that apply with an "x" -->
- [ ] Frontend (Next.js UI)
- [ ] Backend (API/Auth)
- [ ] Database (Prisma/Schema)
- [ ] DBAL (TypeScript/C++)
- [ ] Package System
- [ ] Lua Scripting
- [ ] Multi-Tenant System
- [ ] Permission System (Levels 1-6)
- [ ] Workflows
- [ ] Documentation
- [ ] Testing
- [ ] CI/CD
- [ ] Other: <!-- specify -->
## Changes Made
<!-- Provide a detailed list of changes -->
### Code Changes
-
-
### Database Changes
- [ ] Schema changes (Prisma migrations)
- [ ] Seed data updates
- [ ] DBAL contract changes (YAML)
### Configuration Changes
- [ ] Environment variables
- [ ] Build configuration
- [ ] Package dependencies
## Testing
<!-- Describe the tests you ran and their results -->
### Test Coverage
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] E2E tests added/updated
- [ ] No tests needed (documentation, config, etc.)
### Test Commands Run
```bash
# Example:
# npm run lint
# npm run typecheck
# npm run test:unit -- --run
# npm run test:e2e
```
### Manual Testing
<!-- Describe manual testing performed -->
- [ ] Tested locally
- [ ] Tested in development environment
- [ ] Tested with different user permission levels
- [ ] Tested multi-tenant scenarios
## Screenshots/Recordings
<!-- If applicable, add screenshots or recordings to demonstrate UI changes -->
### Before
<!-- Screenshot or description of before state -->
### After
<!-- Screenshot or description of after state -->
## Architecture & Design Decisions
<!-- Document any architectural or design decisions made -->
### Data-Driven Approach
- [ ] Changes follow MetaBuilder's data-driven (JSON/Lua) architecture
- [ ] Declarative components used instead of hardcoded JSX where applicable
- [ ] DBAL used for database operations (not raw Prisma)
### Multi-Tenancy
- [ ] All queries include `tenantId` filtering
- [ ] Tenant isolation verified
- [ ] N/A - No database queries
### Permission System
- [ ] Permission checks implemented at correct levels
- [ ] AuthGate or canAccessLevel used where needed
- [ ] N/A - No permission-sensitive features
### Package System
- [ ] Package metadata follows correct structure (metadata.json, components.json)
- [ ] Package uses snake_case naming and semver versioning
- [ ] Dependencies declared in package metadata
- [ ] N/A - No package changes
### Security
- [ ] Input validation implemented
- [ ] No XSS vulnerabilities introduced
- [ ] No SQL injection vulnerabilities
- [ ] Passwords hashed with SHA-512 (if applicable)
- [ ] Lua sandbox restrictions maintained (if applicable)
- [ ] No secrets committed to code
## Breaking Changes
<!-- If this PR introduces breaking changes, describe them and migration steps -->
**Breaking Changes:** Yes / No
<!-- If yes, describe:
- What breaks
- Why the change was necessary
- How to migrate existing code/data
- Impact on different user levels
-->
## Migration Steps
<!-- If database migrations or data migrations are needed -->
```bash
# Commands needed to migrate:
# npm run db:generate
# npm run db:migrate
```
## Documentation
<!-- Mark all that apply -->
- [ ] README.md updated
- [ ] API documentation updated
- [ ] Architecture docs updated (docs/architecture/)
- [ ] Code comments added/updated
- [ ] Migration guide created (if breaking change)
- [ ] No documentation needed
## Pre-Submission Checklist
<!-- Verify all items before submitting -->
### Code Quality
- [ ] Code follows project conventions (one lambda per file, MUI not Radix/Tailwind)
- [ ] ESLint passes (`npm run lint`)
- [ ] TypeScript compiles (`npm run typecheck`)
- [ ] No console errors or warnings
- [ ] Code is DRY (Don't Repeat Yourself)
### Testing & Verification
- [ ] All tests pass (`npm run test:unit -- --run`)
- [ ] Test coverage for new code meets standards
- [ ] E2E tests pass (if applicable)
- [ ] Manual testing completed
- [ ] Tested across different browsers (if UI change)
### Database & Schema
- [ ] Prisma schema validated (`npx prisma validate`)
- [ ] Database migrations tested
- [ ] DBAL conformance tests pass (if DBAL changes)
- [ ] N/A - No database changes
### Security
- [ ] Security vulnerabilities checked
- [ ] No sensitive data in commits
- [ ] Input validation implemented
- [ ] CSRF/XSS protections in place (if applicable)
### MetaBuilder-Specific
- [ ] Changes align with data-driven architecture principles
- [ ] Multi-tenant safety verified (tenantId filtering)
- [ ] Permission checks implemented correctly
- [ ] DBAL used instead of raw Prisma (where applicable)
- [ ] Generic components used where possible (RenderComponent)
### Review
- [ ] Self-reviewed code changes
- [ ] Added TODO comments for deferred work (if any)
- [ ] Commit messages are clear and descriptive
- [ ] PR title is descriptive
- [ ] No unrelated changes included
## Additional Notes
<!-- Any additional information, context, or concerns -->
## Deployment Considerations
<!-- Notes for deployment -->
- [ ] No special deployment steps needed
- [ ] Requires environment variable changes
- [ ] Requires database migration
- [ ] Requires cache invalidation
- [ ] Requires server restart
- [ ] Other: <!-- specify -->
## Reviewer Notes
<!-- Specific areas where you'd like reviewer focus -->
**Focus Areas:**
-
-
**Questions for Reviewers:**
-
-
---
<!--
By submitting this PR, I confirm that:
- My contribution follows the project's code of conduct
- I have the right to submit this code
- I understand this will be released under the project's license
-->