Buildforce Logo
Essentials

Contributing

Contribute to Buildforce—an open-source project building the future of AI-assisted development.

Buildforce is open source and welcomes contributions! We're building the future of AI-assisted development together.

Quick Start for Contributors

Clone the Repository

git clone https://github.com/berserkdisruptors/buildforce-cli.git
cd buildforce-cli

Install Dependencies

npm install

Build the Project

npm run build
npm link

Now you can test your changes in any project:

cd ~/my-test-project
buildforce init .

Test Your Changes

Make changes, rebuild, and test:

# Make code changes
npm run build
npm link

# Test in another project
cd ~/my-test-project
buildforce init .

How to Contribute

1. Check Existing Issues

Browse open issues to find something to work on:

  • 🐛 Bug reports - Issues that need fixes
  • Feature requests - New capabilities to build
  • 📚 Documentation - Docs that need improvement
  • 🎯 Good first issue - Great for new contributors

2. Create an Issue

If you found a bug or have a feature idea:

**Bug Report Template:**

## Description
Clear description of the bug

## Steps to Reproduce
1. Run command X
2. Observe error Y

## Expected Behavior
What should happen

## Actual Behavior
What actually happens

## Environment
- OS: macOS / Linux / Windows
- Buildforce version: v0.0.29
- AI Assistant: Cursor / Claude Code / etc.
**Feature Request Template:**

## Feature Description
What feature would you like?

## Use Case
Why is this feature needed?

## Proposed Solution
How might this work?

## Alternatives Considered
Other approaches you've thought about

3. Fork & Branch

Create a feature branch:

git checkout -b feature/add-new-command
git checkout -b fix/pagination-bug
git checkout -b docs/improve-readme

4. Use Buildforce for Development

Follow the structured workflow:

# Research the codebase
/research how slash commands are implemented

# Define your spec
/spec Add /iterate command for plan refinement

# Build the feature
/build

# Complete and document
/complete

Pro tip: Use Buildforce to build Buildforce! Your spec and context files will help other contributors understand your changes.

5. Test Locally

Test your changes thoroughly:

# Build
npm run build

# Link locally
npm link

# Test in a fresh project
cd ~/test-project
buildforce init .

# Test your changes
/research test query
/spec Test feature
/build
/complete

6. Submit Pull Request

**PR Template:**

## Description
Brief description of what this PR does

## Related Issue
Closes #123

## Changes Made
- Added feature X
- Fixed bug Y
- Updated documentation Z

## Testing
- [ ] Tested locally with npm link
- [ ] All existing tests pass
- [ ] Added new tests for changes
- [ ] Documentation updated

## Checklist
- [ ] Code follows project style
- [ ] Commit messages are clear
- [ ] No breaking changes (or clearly documented)

Development Guidelines

Code Style

  • TypeScript - Use TypeScript for all code
  • Functional - Prefer functional programming patterns
  • Descriptive names - Use clear variable and function names
  • Comments - Comment complex logic and decisions

Commit Messages

Follow conventional commits:

# Features
git commit -m "feat: add /iterate command for plan refinement"

# Bug fixes
git commit -m "fix: resolve spec parsing error with YAML arrays"

# Documentation
git commit -m "docs: improve /research command examples"

# Refactoring
git commit -m "refactor: extract spec validation into separate module"

# Tests
git commit -m "test: add integration tests for /build command"

Testing

# Run all tests
npm test

# Run specific test file
npm test src/commands/research.test.ts

# Run with coverage
npm run test:coverage

Add tests for new features:

describe('/research command', () => {
  it('should search context repository', async () => {
    const result = await research('authentication patterns');
    expect(result).toContain('authentication-module.yaml');
  });
});

Documentation

Update docs for any user-facing changes:

  • README.md - High-level overview
  • CONTRIBUTING.md - Contributor guidelines
  • Command markdown - Slash command templates
  • Code comments - Inline documentation

Project Structure

buildforce-cli/
├── src/
│   ├── commands/          # Command implementations
│   │   ├── research.ts
│   │   ├── spec.ts
│   │   ├── build.ts
│   │   ├── complete.ts
│   │   └── document.ts
│   ├── templates/         # YAML templates
│   ├── scripts/           # Build and utility scripts
│   └── utils/             # Shared utilities
├── tests/                 # Test files
├── .starters/             # Command file templates
│   ├── claude/
│   ├── cursor/
│   └── ... (other AI assistants)
├── package.json
├── tsconfig.json
└── README.md

Types of Contributions

Code Contributions

  • New commands - Additional slash commands
  • Bug fixes - Resolve issues
  • Performance - Optimize existing features
  • Refactoring - Improve code quality

Documentation

  • README improvements - Clearer explanations
  • Command docs - Better examples
  • Tutorials - Step-by-step guides
  • API docs - Code documentation

Testing

  • Unit tests - Test individual functions
  • Integration tests - Test command workflows
  • E2E tests - Full workflow testing
  • Test coverage - Increase coverage percentage

Design

  • UI/UX - Improve command output formatting
  • Templates - Better YAML templates
  • Workflows - New workflow patterns
  • Examples - Real-world examples

Community Guidelines

Be Respectful

  • Treat all contributors with respect
  • Provide constructive feedback
  • Welcome newcomers
  • Celebrate contributions

Be Patient

  • Review PRs thoroughly but kindly
  • Respond to issues promptly
  • Help newcomers get started
  • Share knowledge generously

Be Collaborative

  • Discuss major changes before implementing
  • Review others' PRs
  • Share ideas in discussions
  • Build together

Recognition

All contributors are recognized in:

  • README.md - Contributors section
  • Release notes - Feature attributions
  • GitHub insights - Automatic recognition

License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0.

Getting Help

Thank You!Every contribution, big or small, helps make Buildforce better for everyone. We appreciate your support in building the future of AI-assisted development.

Next Steps