Thank you for your interest in contributing to BAZINGA! This document provides guidelines for contributing to the project.
After cloning the repository, you must install git hooks to enable automatic build processes:
./scripts/install-hooks.shThis installs the pre-commit hook that automatically rebuilds slash commands when you modify agent source files.
agents/orchestrator.md with .claude/commands/bazinga.orchestrate.md, causing inconsistencies.
IMPORTANT: The orchestrator workflow has a special development pattern to maintain consistency.
The single source of truth for orchestration logic is:
agents/orchestrator.md
DO NOT directly edit .claude/commands/bazinga.orchestrate.md - it is auto-generated!
- Edit only
agents/orchestrator.mdwhen modifying orchestration logic - The pre-commit hook automatically rebuilds
.claude/commands/bazinga.orchestrate.md - The generated slash command runs the orchestrator inline (not as a spawned agent)
- This ensures real-time visibility of orchestration progress
The build script scripts/build-slash-commands.sh:
- Reads
agents/orchestrator.md - Extracts frontmatter (name, description)
- Generates
.claude/commands/bazinga.orchestrate.md - Preserves inline execution (not Task() spawning)
To manually rebuild (if needed):
./scripts/build-slash-commands.shA git pre-commit hook at .git/hooks/pre-commit:
- Detects changes to
agents/orchestrator.md - Automatically runs the build script
- Stages the generated
.claude/commands/bazinga.orchestrate.md
This ensures the slash command always stays in sync with the source agent file.
- Areas for improvement:
- Additional language support (Rust, C#, etc.)
- New Skills for analysis
- Performance optimizations
- Documentation improvements
- Bug fixes
- Test all changes locally before submitting
- Ensure orchestration workflow completes successfully
- Verify slash commands work correctly
- Create a feature branch from
main - Write clear, descriptive commit messages
- Reference any related issues
- Ensure all tests pass
- Follow existing code patterns
- Keep agent prompts focused and clear
- Use markdown formatting consistently
- Document complex logic
bazinga/
├── agents/ # Agent definitions (source of truth)
│ ├── orchestrator.md # Orchestration logic (DO NOT EDIT slash command directly!)
│ ├── project_manager.md
│ ├── developer.md
│ ├── qa_expert.md
│ ├── tech_lead.md
│ └── investigator.md
├── .claude/
│ ├── commands/ # Slash commands (generated)
│ │ ├── bazinga.orchestrate.md # Auto-generated from agents/orchestrator.md
│ │ └── bazinga.orchestrate-advanced.md
│ └── skills/ # Quality and analysis skills
├── scripts/
│ └── build-slash-commands.sh # Generates slash commands from agents
├── templates/ # Prompt templates
└── research/ # Design docs and experiments
Open an issue or discussion on GitHub: https://github.com/mehdic/bazinga
The project uses PyPI Trusted Publishing for secure, tokenless releases. A repository owner must configure this once:
- Log in to PyPI as a project owner
- Navigate to: https://pypi.org/manage/project/bazinga-cli/settings/publishing/
- Add a new publisher with these settings:
- Owner:
mehdic - Repository:
bazinga - Workflow name:
publish.yml - Environment: (leave blank)
- Owner:
- Save the publisher configuration
- Update version in
pyproject.toml - Commit and push the version change
- Create and push a tag:
git tag v1.3.0 git push origin v1.3.0
- GitHub Actions automatically builds and publishes to PyPI
| Error | Solution |
|---|---|
| "File already exists" | Version already on PyPI - bump version in pyproject.toml |
| "Invalid API token" | Trusted Publisher not configured - follow setup above |
| "attestations input ignored" | Remove any password: lines from workflow |
By contributing, you agree that your contributions will be licensed under the same license as the project.