Contributing¶
Guidelines for contributing to MultiSpec.
Development Setup¶
Prerequisites¶
- Go 1.21 or later
- Make
- golangci-lint (for linting)
Clone and Build¶
Run Tests¶
Run Linter¶
Project Structure¶
multispec/
├── cmd/
│ ├── multispec/ # Main CLI entry point
│ └── mcp-server/ # MCP server entry point
├── internal/
│ ├── cli/ # CLI commands (Cobra)
│ └── mcp/ # MCP server implementation
├── pkg/
│ ├── config/ # Configuration loading
│ ├── lint/ # Linting logic
│ ├── status/ # Status generation
│ └── types/ # Core types
├── docs/ # MkDocs documentation
└── Makefile
Code Style¶
- Use
gofmtfor formatting - Follow standard Go conventions
- Run
golangci-lint runbefore committing - Keep functions focused and small
Commit Messages¶
Follow Conventional Commits:
feat: add new feature
fix: resolve bug
docs: update documentation
refactor: restructure code
test: add tests
chore: maintenance tasks
Pull Requests¶
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linter
- Submit a pull request
Adding a New Command¶
- Create a new file in
internal/cli/ - Define the Cobra command
- Register in
internal/cli/root.go - Add tests
- Update documentation in
docs/cli/
Adding an MCP Tool¶
- Define argument types in
internal/mcp/server.go - Add the tool registration in
registerTools() - Implement the handler function
- Add documentation in
docs/mcp/tools.md
Documentation¶
Documentation is built with MkDocs. To preview locally:
Roadmap¶
See ROADMAP.md for planned features and implementation status.