Contributing to Smart Agentic Calendar
April 15, 2026 · View on GitHub
Thanks for your interest in contributing! This document covers how to report issues, suggest features, and submit code changes.
Code of Conduct
Be respectful and constructive. We're all here to build something useful together.
Reporting Bugs
Open an issue on the GitHub issue tracker and include:
- A clear, descriptive title
- Steps to reproduce the problem
- Expected behavior vs. actual behavior
- Your environment (Node.js version, OS, MCP client)
- Any relevant log output (run with
LOG_LEVEL=debugto get full diagnostics)
Requesting Features
Also via GitHub Issues. Describe:
- The use case — what are you trying to accomplish?
- Why existing tools/features don't cover it
- Any ideas for how it could work
Finding Contributions to Work On
- Look for issues labeled
good first issueorhelp wanted - Browse open issues and ask questions if anything is unclear
- Small fixes (typos, docs, error messages) are always welcome
Development Setup
Prerequisites
- Node.js >= 20
Install and Build
npm install
npm run build
This compiles TypeScript to dist/ and produces the runnable server at dist/index.js.
Test
npm test # run all tests (578 tests)
npm run test:watch # watch mode
npm run test:coverage # with coverage
Quality Checks
npm run lint # eslint
npm run format:check # prettier
npm run quality # all checks (lint, format, duplication, unused code, dependency rules, security)
Submitting Pull Requests
- Fork the repository and create a branch from
main - Make your changes
- Ensure all tests pass (
npm test) and quality checks pass (npm run quality) - Write or update tests for your changes
- Open a pull request against
main
In your PR description:
- Describe what changed and why
- Link any related issues (e.g., "Fixes #42")
- Note any breaking changes
Coding Standards
- TypeScript strict mode — no
anytypes, no implicit returns - Test-driven development — red-green-refactor; write the failing test first
- Healthy test pyramid — unit tests for logic, integration tests for storage/engine interactions
- Dependency injection — keep components testable by injecting dependencies
- Existing lint and format rules are enforced via
npm run quality
License
By contributing, you agree that your contributions will be licensed under the MIT License.