Thank you for your interest in contributing to Electrum — an AI-assisted toolkit for defining hardware products that have software inside.
We welcome contributions of all kinds: new phase templates, example outputs, script improvements, documentation fixes, and ideas.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Style Guidelines
- Commit Message Convention
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code. Please report unacceptable behavior to yoelf22.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/electrum.git cd electrum - Create a branch for your contribution:
git checkout -b feat/my-improvement
Before opening a bug report, please search existing Issues to avoid duplicates.
When filing a bug, include:
- A clear, descriptive title
- Steps to reproduce the problem
- Expected vs. actual behavior
- Phase or template involved (if applicable)
- Environment details (OS, Node version, AI model used)
Feature requests are welcome! Open an issue with the enhancement label and describe:
- The problem you are trying to solve
- Your proposed solution
- Any alternative approaches you considered
- Ensure your branch is up to date with
master. - Follow the Style Guidelines below.
- Add or update relevant documentation and examples.
- Open a Pull Request using the provided template.
- Link the PR to any related issue (e.g.,
Closes #42).
A maintainer will review your PR as soon as possible. Please be patient and responsive to review feedback.
Electrum is primarily composed of Markdown templates and scripts. No special build step is required.
# Run a phase script (example)
node scripts/run_phase.js --phase 1 --product "Smart Dispenser"For AI-assisted phases, ensure your Claude API key is set:
export ANTHROPIC_API_KEY=your_key_here- Markdown: Use ATX-style headings (
##), wrap lines at ~100 characters. - Templates: Follow the existing 8-phase structure in
templates/. - Scripts: Use Node.js (ESM or CommonJS consistent with the project). Add JSDoc comments for exported functions.
- Examples: Place new examples under
examples/with a descriptive folder name.
Use the format: type(scope): short description
| Type | When to use |
|---|---|
feat |
New feature or template |
fix |
Bug fix |
docs |
Documentation only |
refactor |
Code restructure without behavior change |
chore |
Build process or tooling changes |
Examples:
feat(templates): add Phase 9 go-to-market template
fix(scripts): handle missing product name gracefully
docs(readme): update quick-start instructions
Thank you for helping make Electrum better for hardware product teams everywhere!