|
| 1 | +# Contributing to Cascade |
| 2 | + |
| 3 | +Thanks for your interest in contributing to Cascade. Here's how to get involved. |
| 4 | + |
| 5 | +## Quick Start |
| 6 | + |
| 7 | +1. Fork the repo |
| 8 | +2. Clone your fork |
| 9 | +3. Install the plugin locally: |
| 10 | + ``` |
| 11 | + /plugin marketplace add ./path/to/your/fork |
| 12 | + /plugin install cascade@cascade |
| 13 | + ``` |
| 14 | +4. Test against the food-marketplace example: |
| 15 | + ```bash |
| 16 | + cd plugins/cascade/examples/food-marketplace |
| 17 | + /cascade-init |
| 18 | + "Add a phone field to users and propagate to all services" |
| 19 | + ``` |
| 20 | + |
| 21 | +## What to Contribute |
| 22 | + |
| 23 | +### High Impact |
| 24 | +- **New example projects** — different stacks (Node/Express, Go, mixed), different domains |
| 25 | +- **Bug reports with reproduction steps** — run a change, show what went wrong |
| 26 | +- **Agent prompt improvements** — if an agent misses something, improve its instructions |
| 27 | + |
| 28 | +### Medium Impact |
| 29 | +- **New skills** — e.g., database migration coordination, API versioning strategies |
| 30 | +- **Stack-specific worker variants** — workers optimized for Go, Rust, Java projects |
| 31 | +- **Better verification checks** — more grep patterns, syntax validators per language |
| 32 | + |
| 33 | +### Always Welcome |
| 34 | +- Documentation improvements |
| 35 | +- Typo fixes |
| 36 | +- Test cases for edge cases the agents miss |
| 37 | + |
| 38 | +## Project Structure |
| 39 | + |
| 40 | +``` |
| 41 | +plugins/cascade/ |
| 42 | +├── agents/ # Agent definitions (the core logic) |
| 43 | +│ ├── orchestrator.md |
| 44 | +│ ├── cascade-planner.md |
| 45 | +│ ├── cascade-worker.md |
| 46 | +│ ├── cascade-contracts.md |
| 47 | +│ └── cascade-verifier.md |
| 48 | +├── skills/ # Reusable knowledge |
| 49 | +├── commands/ # Slash commands (/cascade-init, /cascade-status) |
| 50 | +├── hooks/ # Lifecycle hooks |
| 51 | +└── examples/ # Demo projects |
| 52 | +``` |
| 53 | + |
| 54 | +## How Agents Work |
| 55 | + |
| 56 | +Each agent is a Markdown file with YAML frontmatter. The frontmatter defines the agent's name, description, tools, and model. The body is the system prompt. |
| 57 | + |
| 58 | +When modifying an agent: |
| 59 | +- Keep the description specific — Claude uses it to decide when to delegate |
| 60 | +- Test your changes against the food-marketplace example |
| 61 | +- Run at least one breaking rename (Change 3) and one parallel change (Change 7) to verify |
| 62 | + |
| 63 | +## Pull Request Process |
| 64 | + |
| 65 | +1. Create a branch from `main` |
| 66 | +2. Make your changes |
| 67 | +3. Test against the example project |
| 68 | +4. Open a PR with: |
| 69 | + - What you changed |
| 70 | + - Why |
| 71 | + - How you tested it |
| 72 | +5. Keep PRs focused — one change per PR |
| 73 | + |
| 74 | +## Code of Conduct |
| 75 | + |
| 76 | +Be kind. Be constructive. We're all here to build better tools. |
| 77 | + |
| 78 | +## License |
| 79 | + |
| 80 | +By contributing, you agree that your contributions will be licensed under the MIT License. |
0 commit comments