Contributing to eJAEGIS

Thank you for your interest in contributing to eJAEGIS (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 eJAEGIS 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

  1. Fork the repository on GitHub

  2. Clone your fork locally:

  3. Install dependencies:

  4. Set up development environment:

  5. Run tests to ensure everything works:

Development Workflow

  1. Create a feature branch:

  2. Make your changes following our coding standards

  3. Add tests for new functionality

  4. Run tests and ensure they pass:

  5. Commit your changes:

  6. Push to your fork:

  7. Create a Pull Request on GitHub

πŸ“‹ Coding Standards

TypeScript Guidelines

  • Use TypeScript for all source code

  • Follow strict type checking - no any types unless absolutely necessary

  • Use 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:

    • camelCase for variables and functions

    • PascalCase for classes and interfaces

    • UPPER_SNAKE_CASE for constants

    • kebab-case for file names

File Organization

AI Agent Development

When creating new AI agents:

  1. Create agent class in src/agents/

  2. Add persona file in jaegis-agent/personas/

  3. Define tasks in jaegis-agent/tasks/

  4. Create templates in jaegis-agent/templates/

  5. Add checklists in jaegis-agent/checklists/

  6. Update type definitions in src/types/JAEGISTypes.ts

  7. Register commands in src/commands/CommandManager.ts

  8. Add 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

  1. Check existing issues to avoid duplicates

  2. Update to the latest version and test again

  3. Gather relevant information:

    • VS Code version

    • eJAEGIS 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

  1. Check existing feature requests to avoid duplicates

  2. Consider if the feature fits eJAEGIS's scope and goals

  3. Think about implementation and potential challenges

Feature Request Template

πŸ”„ Pull Request Process

Pull Request Guidelines

  1. Follow the coding standards outlined above

  2. Include tests for new functionality

  3. Update documentation as needed

  4. Keep PRs focused - one feature or fix per PR

  5. Write clear commit messages following conventional commits

  6. Ensure CI passes before requesting review

Commit Message Format

We use Conventional Commits:

Types:

  • feat: New feature

  • fix: Bug fix

  • docs: Documentation changes

  • style: Code style changes (formatting, etc.)

  • refactor: Code refactoring

  • test: Adding or updating tests

  • chore: 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

  1. Update version in package.json

  2. Update CHANGELOG.md with release notes

  3. Create release tag: git tag v1.0.0

  4. Push tag: git push origin v1.0.0

  5. Create GitHub release with release notes

  6. 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 eJAEGIS, 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 eJAEGIS! πŸš€βœ¨

Last updated