Thank you for your interest in contributing to Repo Bootcamp! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
Before submitting a bug report:
- Check the existing issues to avoid duplicates
- Use the latest version to see if the bug has been fixed
- Use the Bug Report issue form (
.github/ISSUE_TEMPLATE/bug.yml)
When submitting a bug report, include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment (Node.js version, OS, etc.)
- Any relevant error messages or logs
Feature suggestions are welcome! Please:
- Check existing issues and discussions first
- Provide a clear use case for the feature
- Explain why it would benefit other users
- Use the Feature Request issue form (
.github/ISSUE_TEMPLATE/feature.yml)
- Fork the repository and create your branch from
main - Install dependencies:
npm install - Make your changes following the code style guidelines
- Add tests for any new functionality
- Run quality checks:
npm run lint && npm run typecheck && npm test - Ensure the build passes:
npm run build - Check formatting:
npm run format:check - Submit a pull request with a clear description of your changes (using
.github/PULL_REQUEST_TEMPLATE.md)
# Clone your fork
git clone https://github.com/YOUR_USERNAME/repo-bootcamp.git
cd repo-bootcamp
# Install dependencies
npm install
# Build the project
npm run build
# Lint and type-check
npm run lint
npm run typecheck
# Run tests
npm test
# Check formatting
npm run format:check
# Run tests in watch mode
npm run test:watch
# Run web UI with hot reload
npm run dev:web
# Run with coverage
npm run test:coverage- TypeScript: All code should be written in TypeScript
- Formatting: Follow the existing code style in the project
- Types: Prefer explicit types over
any - Comments: Add comments for complex logic, but prefer self-documenting code
- Naming: Use descriptive variable and function names
- All new features should include tests
- All bug fixes should include regression tests
- Run
npm testbefore submitting a PR - Aim to maintain or improve test coverage
- Coverage gate targets are enforced in CI (
lines >= 80%,branches >= 70%)
Write clear, concise commit messages:
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters
- Reference issues and PRs when relevant
Examples:
Add support for custom output templatesFix parsing error for repos with spaces in namesUpdate documentation for --fast flag
repo-bootcamp/
βββ src/ # Source code
β βββ index.ts # Package root API entry (re-exports src/api.ts)
β βββ cli.ts # Commander CLI entry point
β βββ api.ts # Curated programmatic API exports
β βββ lib.ts # Extended programmatic API exports
β βββ agent.ts # Copilot SDK agent logic
β βββ ingest.ts # Repository scanning
β βββ generator.ts # Documentation generation
β βββ ... # Other modules
βββ test/ # Test files
βββ examples/ # Example outputs
βββ dist/ # Compiled output
Important technical decisions are captured in docs/adr/.
If you have questions, feel free to:
- Open a discussion
- Open an issue for clarification
By contributing, you agree that your contributions will be licensed under the MIT License.