Skip to content

Contributing

Assemble is an open-source project, and contributions are welcome. Here’s how to get involved.

TypeDescriptionDifficulty
Bug reportsReport issues with agents, workflows, or generationEasy
Agent improvementsImprove an existing agent’s prompt or behaviorMedium
New agentsCreate a new specialized agentMedium
Platform adaptersAdd support for a new AI coding toolMedium-Hard
Workflow improvementsImprove or add workflowsMedium
DocumentationFix or improve docsEasy
Core engineWork on the generation engineHard
  • Node.js >= 18
  • Git
  • An AI coding tool (Cursor, Claude Code, etc.) for testing
Terminal window
# Clone the repository
git clone https://github.com/CohesiumAI/assemble.git
cd assemble
# Install dependencies
npm install
# Run the test suite
npm test
# Run the development server (for the landing page)
npm run dev
assemble/
├── src/
│ ├── agents/ # Agent definitions (Markdown)
│ ├── workflows/ # Workflow definitions (YAML)
│ ├── adapters/ # Platform adapters
│ ├── engine/ # Core generation engine
│ └── cli/ # CLI tool
├── tests/ # Test suites
├── docs/ # Documentation (this site)
└── landing/ # Landing page (Astro)
  1. Find the agent file in src/agents/
  2. Identify the improvement (better instructions, new anti-patterns, updated stack)
  3. Make your changes
  4. Test with real requests in your AI coding tool
  5. Submit a PR with before/after examples
  1. Copy an existing agent as a template
  2. Follow the Custom Agents guide for the structure
  3. Add routing keywords in src/routing/domain-map.ts
  4. Add the agent to the team registry
  5. Test thoroughly with real requests
  6. Submit a PR with usage examples
  1. Create a YAML file following the workflow structure
  2. Verify all referenced agents exist
  3. Test the complete workflow end-to-end
  4. Submit a PR with a description of when to use this workflow
  1. Research the platform’s configuration format
  2. Create an adapter in src/adapters/
  3. Implement the generate() method that produces the platform-native file
  4. Add tests
  5. Submit a PR with a sample generated file

Follow Conventional Commits:

feat(agent): improve spider-man's accessibility guidelines
fix(adapter): handle special characters in cursor rules
docs: add YOLO mode examples
  1. Create a branch: feat/my-feature or fix/my-bug
  2. Make your changes with clear commits
  3. Ensure tests pass: npm test
  4. Submit a PR with:
    • Description of the change
    • Motivation (why this change)
    • Testing done
    • Before/after examples (for agent changes)
  • TypeScript strict mode
  • ESLint + Prettier (auto-formatted on save)
  • Agent Markdown files follow the standard structure

Test agents by giving them real prompts and evaluating the output quality:

Terminal window
# Run agent evaluation suite
npm run test:agents
# Test a specific agent
npm run test:agent -- --name spider-man
Terminal window
# Generate files and compare with snapshots
npm run test:adapters
Terminal window
# Full generation pipeline test
npm run test:e2e
  • GitHub Issues: Bug reports and feature requests
  • GitHub Discussions: Questions, ideas, and show-and-tell
  • Discord: Real-time chat with the community

We follow the Contributor Covenant Code of Conduct. Be respectful, inclusive, and constructive.

Assemble is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the same terms.