From ab70b8dc73369798d201dc47898dd92cb43f5e68 Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Sun, 29 Jun 2025 11:30:15 -0500 Subject: [PATCH] contribution updates --- CONTRIBUTING.md | 42 ++++++++++++++++++-- docs/how-to-contribute-with-pull-requests.md | 31 +++++++++++---- test-ide-paths.js | 41 ------------------- 3 files changed, 62 insertions(+), 52 deletions(-) delete mode 100644 test-ide-paths.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index df0b3647..19a7254a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,6 +8,11 @@ Thank you for considering contributing to this project! This document outlines t Also note, we use the discussions feature in GitHub to have a community to discuss potential ideas, uses, additions and enhancements. +💬 **Discord Community**: Join our [Discord server](https://discord.gg/g6ypHytrCB) for real-time discussions: + +- **#general-dev** - Technical discussions, feature ideas, and development questions +- **#bugs-issues** - Bug reports and issue discussions + ## Code of Conduct By participating in this project, you agree to abide by our Code of Conduct. Please read it before participating. @@ -16,16 +21,35 @@ By participating in this project, you agree to abide by our Code of Conduct. Ple ### Reporting Bugs -- Check if the bug has already been reported in the Issues section -- Include detailed steps to reproduce the bug -- Include any relevant logs or screenshots +1. **Check existing issues** first to avoid duplicates +2. **Use the bug report template** when creating a new issue - it will guide you through providing: + - Clear bug description + - Steps to reproduce + - Expected vs actual behavior + - Model/IDE/BMad version details + - Screenshots or links if applicable +3. **Consider discussing in Discord** (#bugs-issues channel) for quick help +4. **Indicate if you're working on a fix** to avoid duplicate efforts ### Suggesting Features -- Check if the feature has already been suggested in the Issues section, and consider using the discussions tab in GitHub also. Explain the feature in detail and why it would be valuable. +1. **Discuss first in Discord** (#general-dev channel) - the feature request template asks if you've done this +2. **Check existing issues and discussions** to avoid duplicates +3. **Use the feature request template** when creating an issue - it will guide you through: + - Confirming Discord discussion + - Describing the problem it solves + - Explaining your solution + - Listing alternatives considered +4. **Be specific** about why this feature would benefit the BMad community ### Pull Request Process +⚠️ **Before starting work:** + +1. **For bugs**: Check if an issue exists (create one using the bug template if not) +2. **For features**: Ensure you've discussed in Discord (#general-dev) AND created a feature request issue +3. **For large changes**: Always open an issue first to discuss alignment + Please only propose small granular commits! If its large or significant, please discuss in the discussions tab and open up an issue first. I do not want you to waste your time on a potentially very large PR to have it rejected because it is not aligned or deviates from other planned changes. Communicate and lets work together to build and improve this great community project! **Important**: All contributions must align with our [Guiding Principles](GUIDING-PRINCIPLES.md). Key points: @@ -95,6 +119,15 @@ Example breakdown: 6. Push to your branch (`git push origin feature/your-feature-name`) 7. Open a Pull Request against the main branch +## Issue Templates + +We use GitHub issue templates to ensure all necessary information is provided: + +- **Bug Reports**: Automatically guides you through providing reproduction steps, environment details, and expected behavior +- **Feature Requests**: Requires Discord discussion confirmation and asks for problem/solution descriptions + +Using these templates helps maintainers understand and address your contribution faster. + ## Pull Request Description Guidelines Keep PR descriptions short and to the point following this template: @@ -111,6 +144,7 @@ Keep your PR description concise and focused. Use this template: ## Why [1-2 sentences explaining WHY this change is needed] +Fixes #[issue number] (if applicable) ## How diff --git a/docs/how-to-contribute-with-pull-requests.md b/docs/how-to-contribute-with-pull-requests.md index ba209087..0cbc0c46 100644 --- a/docs/how-to-contribute-with-pull-requests.md +++ b/docs/how-to-contribute-with-pull-requests.md @@ -8,7 +8,15 @@ A pull request (PR) is how you propose changes to a project on GitHub. Think of ## Before You Start -⚠️ **Important**: Please keep your contributions small and focused! We prefer many small, clear changes rather than one massive change. If you're planning something big, please [open an issue](https://github.com/bmadcode/bmad-method/issues) or start a [discussion](https://github.com/bmadcode/bmad-method/discussions) first. +⚠️ **Important**: Please keep your contributions small and focused! We prefer many small, clear changes rather than one massive change. + +**Required before submitting PRs:** + +- **For bug fixes**: Create an issue using the [bug report template](https://github.com/bmadcode/bmad-method/issues/new?template=bug_report.md) +- **For new features**: + 1. Discuss in Discord [#general-dev channel](https://discord.gg/g6ypHytrCB) + 2. Create an issue using the [feature request template](https://github.com/bmadcode/bmad-method/issues/new?template=feature_request.md) +- **For large changes**: Always open an issue first to discuss alignment ## Step-by-Step Guide @@ -82,9 +90,15 @@ git push origin fix/typo-in-readme 1. Go to your fork on GitHub 2. You'll see a green "Compare & pull request" button - click it -3. Fill out the PR template: - - **Title**: Clear, descriptive title - - **Description**: Explain what you changed and why +3. Select the correct target branch: + - **`next` branch** for most contributions (features, docs, enhancements) + - **`main` branch** only for critical fixes +4. Fill out the PR description using the template in CONTRIBUTING.md: + - **What**: 1-2 sentences describing what changed + - **Why**: 1-2 sentences explaining why + - **How**: 2-3 bullets on implementation + - **Testing**: How you tested +5. Reference the related issue number (e.g., "Fixes #123") ### 8. Wait for Review @@ -117,9 +131,12 @@ git push origin fix/typo-in-readme ## Need Help? -- 💬 Join our [Discord Community](https://discord.gg/g6ypHytrCB) for real-time help -- 💬 Ask questions in [Discussions](https://github.com/bmadcode/bmad-method/discussions) -- 🐛 Report bugs in [Issues](https://github.com/bmadcode/bmad-method/issues) +- 💬 Join our [Discord Community](https://discord.gg/g6ypHytrCB) for real-time help: + - **#general-dev** - Technical questions and feature discussions + - **#bugs-issues** - Get help with bugs before filing issues +- 💬 Ask questions in [GitHub Discussions](https://github.com/bmadcode/bmad-method/discussions) +- 🐛 Report bugs using the [bug report template](https://github.com/bmadcode/bmad-method/issues/new?template=bug_report.md) +- 💡 Suggest features using the [feature request template](https://github.com/bmadcode/bmad-method/issues/new?template=feature_request.md) - 📖 Read the full [Contributing Guidelines](../CONTRIBUTING.md) ## Example: Good vs Bad PRs diff --git a/test-ide-paths.js b/test-ide-paths.js deleted file mode 100644 index cb29d56d..00000000 --- a/test-ide-paths.js +++ /dev/null @@ -1,41 +0,0 @@ -// Test script to verify IDE setup paths for expansion pack agents -const path = require('path'); -const fs = require('fs-extra'); - -// Simulate the findAgentPath logic -function simulateFindAgentPath(agentId, installDir) { - const possiblePaths = [ - path.join(installDir, ".bmad-core", "agents", `${agentId}.md`), - path.join(installDir, "agents", `${agentId}.md`), - // Expansion pack paths - path.join(installDir, ".bmad-2d-phaser-game-dev", "agents", `${agentId}.md`), - path.join(installDir, ".bmad-infrastructure-devops", "agents", `${agentId}.md`), - path.join(installDir, ".bmad-creator-tools", "agents", `${agentId}.md`) - ]; - - // Simulate finding the agent in an expansion pack - if (agentId === 'game-developer') { - return path.join(installDir, ".bmad-2d-phaser-game-dev", "agents", `${agentId}.md`); - } - - // Default to core - return path.join(installDir, ".bmad-core", "agents", `${agentId}.md`); -} - -// Test different scenarios -const testDir = '/project'; -const agents = ['dev', 'game-developer', 'infra-devops-platform']; - -console.log('Testing IDE path references:\n'); - -agents.forEach(agentId => { - const agentPath = simulateFindAgentPath(agentId, testDir); - const relativePath = path.relative(testDir, agentPath).replace(/\\/g, '/'); - - console.log(`Agent: ${agentId}`); - console.log(` Full path: ${agentPath}`); - console.log(` Relative path: ${relativePath}`); - console.log(` Roo customInstructions: CRITICAL Read the full YML from ${relativePath} ...`); - console.log(` Cursor MDC reference: [${relativePath}](mdc:${relativePath})`); - console.log(''); -}); \ No newline at end of file