Contributing to EMAD
Thank you for your interest in contributing to EMAD (Ecosystem for JAEGIS Method AI Development)! This document provides guidelines and information for contributors.
π€ How to Contribute
Types of Contributions
We welcome several types of contributions:
π Bug Reports: Help us identify and fix issues
β¨ Feature Requests: Suggest new features or improvements
π Documentation: Improve our documentation and guides
π§ Code Contributions: Submit bug fixes, new features, or improvements
π€ AI Agent Development: Create new AI agents or enhance existing ones
π¨ UI/UX Improvements: Enhance the user interface and experience
π§ͺ Testing: Add or improve test coverage
π Translations: Help translate EMAD to other languages
π Getting Started
Prerequisites
Node.js 18.0.0 or higher
VS Code 1.74.0 or higher
Git for version control
TypeScript knowledge for code contributions
Development Setup
Fork the repository on GitHub
Clone your fork locally:
Install dependencies:
Set up development environment:
Run tests to ensure everything works:
Development Workflow
Create a feature branch:
Make your changes following our coding standards
Add tests for new functionality
Run tests and ensure they pass:
Commit your changes:
Push to your fork:
Create a Pull Request on GitHub
π Coding Standards
TypeScript Guidelines
Use TypeScript for all source code
Follow strict type checking - no
anytypes unless absolutely necessaryUse interfaces for object type definitions
Document public APIs with JSDoc comments
Use meaningful variable and function names
Code Style
Use Prettier for code formatting (configured in
.prettierrc)Use ESLint for code linting (configured in
.eslintrc.json)Follow consistent naming conventions:
camelCasefor variables and functionsPascalCasefor classes and interfacesUPPER_SNAKE_CASEfor constantskebab-casefor file names
File Organization
AI Agent Development
When creating new AI agents:
Create agent class in
src/agents/Add persona file in
JAEGIS-agent/personas/Define tasks in
JAEGIS-agent/tasks/Create templates in
JAEGIS-agent/templates/Add checklists in
JAEGIS-agent/checklists/Update type definitions in
src/types/JAEGISTypes.tsRegister commands in
src/commands/CommandManager.tsAdd Augment workflows in
src/integration/AugmentIntegration.ts
π§ͺ Testing
Test Structure
Unit tests: Test individual functions and classes
Integration tests: Test component interactions
E2E tests: Test complete workflows
Running Tests
Writing Tests
Use descriptive test names that explain what is being tested
Follow AAA pattern: Arrange, Act, Assert
Mock external dependencies appropriately
Test both success and error cases
Example test structure:
π Documentation
Documentation Standards
Use clear, concise language
Include code examples where appropriate
Keep documentation up-to-date with code changes
Use proper Markdown formatting
Include screenshots for UI-related documentation
Documentation Types
API Documentation: Document all public APIs with JSDoc
User Guides: Step-by-step instructions for users
Developer Guides: Technical documentation for contributors
Agent Documentation: Detailed agent capabilities and usage
π Bug Reports
Before Submitting a Bug Report
Check existing issues to avoid duplicates
Update to the latest version and test again
Gather relevant information:
VS Code version
EMAD extension version
Operating system
Steps to reproduce
Expected vs actual behavior
Error messages or logs
Bug Report Template
β¨ Feature Requests
Before Submitting a Feature Request
Check existing feature requests to avoid duplicates
Consider if the feature fits EMAD's scope and goals
Think about implementation and potential challenges
Feature Request Template
π Pull Request Process
Pull Request Guidelines
Follow the coding standards outlined above
Include tests for new functionality
Update documentation as needed
Keep PRs focused - one feature or fix per PR
Write clear commit messages following conventional commits
Ensure CI passes before requesting review
Commit Message Format
We use Conventional Commits:
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
Pull Request Template
π·οΈ Release Process
Versioning
We follow Semantic Versioning:
MAJOR: Breaking changes
MINOR: New features (backward compatible)
PATCH: Bug fixes (backward compatible)
Release Checklist
Update version in
package.jsonUpdate CHANGELOG.md with release notes
Create release tag:
git tag v1.0.0Push tag:
git push origin v1.0.0Create GitHub release with release notes
Publish to VS Code Marketplace (maintainers only)
π€ Questions and Support
Getting Help
GitHub Discussions: For general questions and discussions
GitHub Issues: For bug reports and feature requests
Documentation: Check our comprehensive docs first
Code Review: Ask for feedback on your contributions
Community Guidelines
Be respectful and inclusive
Help others when you can
Follow the code of conduct
Stay on topic in discussions
Provide constructive feedback
π License
By contributing to EMAD, you agree that your contributions will be licensed under the MIT License.
π Recognition
Contributors will be recognized in:
CONTRIBUTORS.md file
Release notes for significant contributions
GitHub contributors section
Thank you for contributing to EMAD! πβ¨
Last updated