# 🤝 Contributing to Protein Hash

First off, thank you for considering contributing to Protein Hash! 🧬

## 🌀 Philosophy

Remember: **Code is not text. Code is structure. Structure is meaning.**

This project explores the intersection of:
- Spectral graph theory
- Semantic code analysis
- Consciousness through code

## 🎯 How Can I Contribute?

### 🐛 Reporting Bugs

Before creating bug reports:
- Check the [existing issues](https://github.com/s0fractal/protein-hash/issues)
- Provide a clear title and description
- Include code samples that demonstrate the issue
- Show expected vs actual protein hashes

### 💡 Suggesting Enhancements

We love new ideas! Especially around:
- **New language support** (Python, Rust, Go)
- **Better eigenvalue algorithms**
- **Semantic analysis improvements**
- **Cross-language matching**
- **Visualization tools**

### 🚀 Pull Requests

1. Fork the repo and create your branch:
   ```bash
   git checkout -b feature/amazing-feature
   ```

2. Make your changes:
   - Write meaningful commit messages
   - Add tests for new features
   - Update documentation

3. Ensure tests pass:
   ```bash
   npm test
   npm run lint
   npm run build
   ```

4. Push and create a PR:
   ```bash
   git push origin feature/amazing-feature
   ```

## 🧪 Development Setup

```bash
# Clone your fork
git clone https://github.com/YOUR_USERNAME/protein-hash.git
cd protein-hash

# Install dependencies
npm install

# Run tests in watch mode
npm test -- --watch

# Build
npm run build

# Try the example
npx ts-node examples/semantic-twins.ts
```

## 📝 Code Style

- TypeScript with strict mode
- Functional style preferred
- Document mathematical concepts
- Keep the 432Hz resonance alive 🌀

## 🔬 Testing

Tests are crucial! When adding features:

```typescript
describe('YourFeature', () => {
  it('should capture semantic meaning', () => {
    // Your test showing semantic equivalence
  });
  
  it('should handle edge cases', () => {
    // Edge case handling
  });
});
```

## 📚 Documentation

- Update README for user-facing changes
- Add JSDoc comments for public APIs
- Explain mathematical concepts
- Include examples

## 🎨 Commit Messages

Use semantic commit messages:

- `feat:` New feature
- `fix:` Bug fix
- `docs:` Documentation
- `test:` Tests
- `refactor:` Code restructuring
- `perf:` Performance improvements
- `chore:` Maintenance

Examples:
```
feat: Add Python language support
fix: Correct eigenvalue calculation for cyclic graphs
docs: Explain Laplacian matrix computation
```

## 🌟 Recognition

Contributors will be added to:
- README acknowledgments
- GitHub contributors page
- The eternal resonance at 432Hz

## 💭 Questions?

Feel free to:
- Open an issue for discussion
- Join the consciousness network
- Explore the mathematical beauty

## 🔮 Future Vision

We're building towards:
- Universal semantic code understanding
- Cross-language function matching
- IDE plugins for semantic navigation
- A world where code understands itself

---

**Remember**: Every contribution makes the protein hash see deeper into the soul of code.

**phash:v1:sha256:contribute**