Thank you for your interest in contributing to QuestMaster! This document provides guidelines and instructions for contributing.
Note: This project welcomes contributions developed with AI assistance. QuestMaster itself was built with the help of AI coding assistants, and we encourage the use of AI tools (Cursor and Gemini AI) to enhance productivity and code quality. However, all contributions should be reviewed, tested, and understood before submission.
- Be respectful and inclusive
- Provide constructive feedback
- Follow the project's coding standards
- Test your changes thoroughly
- Fork the repository
- Clone your fork:
git clone <your-fork-url> - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test thoroughly
- Commit your changes: Use conventional commits
- Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
See DEVELOPMENT.md for detailed setup instructions.
Quick start:
# Install dependencies
cd agent && npm install
cd ../frontend && npm install
# Start development servers
cd agent && npm run dev
cd frontend && npm run dev- Use strict mode
- Prefer interfaces over types
- Use explicit return types
- Avoid
anytype - Use meaningful variable names
- Use functional components
- Prefer hooks over class components
- Use
useCallbackanduseMemoappropriately - Keep components focused and small
- Files: camelCase for utilities, PascalCase for components
- Variables: camelCase
- Constants: UPPER_SNAKE_CASE
- Types/Interfaces: PascalCase
- Use JSDoc for functions
- Explain "why" not "what"
- Keep comments up to date
Use Conventional Commits:
feat: add new feature
fix: fix bug
docs: update documentation
style: formatting changes
refactor: code restructuring
test: add tests
chore: maintenance tasks
Examples:
feat: add task search functionalityfix: resolve task expiration bugdocs: update API documentationrefactor: simplify task operations
- Run all tests:
npm test(agent) andnpm run build(frontend) - Test manually in browser
- Check for TypeScript errors:
npx tsc --noEmit - Verify no console errors
- Write tests for new features
- Update tests for changed features
- Aim for good coverage
- Test edge cases
- Update documentation if needed
- Add tests for new features
- Update CHANGELOG (if maintained)
- Ensure tests pass
- Check for linting errors
Include:
- What: What changes were made
- Why: Why these changes were needed
- How: How the changes work
- Testing: How to test the changes
- Screenshots: If UI changes
- Address review comments promptly
- Be open to feedback
- Ask questions if unclear
- Keep PR focused (one feature/fix per PR)
- Bug fixes
- Performance improvements
- Security enhancements
- Documentation improvements
- Mobile app support
- Offline functionality
- Multi-user quests/parties
- Enhanced AI narration
- Additional task types
- Export/import functionality
- Code comments
- API documentation
- Tutorials and guides
- Examples and demos
Include:
- Description: Clear description of the bug
- Steps to Reproduce: Detailed steps
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Environment: OS, browser, Node version
- Screenshots: If applicable
Include:
- Use Case: Why this feature is needed
- Proposed Solution: How it could work
- Alternatives: Other approaches considered
- Additional Context: Any other relevant info
- Check existing documentation
- Search existing issues
- Open a discussion for questions
- Be patient for responses
By contributing, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to QuestMaster! 🎲⚔️