Contributing
Contributions to cc-deck are welcome. This page covers the development workflow, code style, and how to submit changes.
Getting Started
-
Fork the repository
-
Clone your fork
-
Create a feature branch
-
Build from source:
make build -
Install for testing:
make install
Code Style
- Rust
-
Follow standard Rust conventions. Code must pass
cargo clippywith no warnings on thewasm32-wasip1target. - Go
-
Follow standard Go conventions. Code must pass
go vet.
Pull Request Guidelines
-
Keep PRs focused on a single change
-
Include a clear description of what and why
-
Ensure
make testandmake lintpass -
Add or update documentation for user-facing changes
Feature Specifications
cc-deck uses spec-driven development.
Each feature has a specification in specs/ with:
-
spec.md: What the feature does and why (user stories, requirements) -
plan.md: How to implement it (tech stack, file structure) -
tasks.md: Step-by-step implementation tasks
If you are proposing a significant new feature, consider writing a spec first.
Commit Messages
Use the standard format:
Short summary of the change (under 72 characters)
Longer description if needed, explaining the motivation and
approach. Reference relevant specs or issues.
Assisted-By: 🤖 Claude Code
Testing Changes
After modifying the WASM plugin:
make install
zellij kill-all-sessions -y
zellij --layout cc-deck
After modifying the Go CLI:
make build-cli
cc-deck plugin status # verify your changes
Reporting Issues
File issues at https://github.com/cc-deck/cc-deck/issues with:
-
What you expected to happen
-
What actually happened
-
Steps to reproduce
-
Zellij version (
zellij --version) -
cc-deck version (
cc-deck version)