Contributing¶
Development Setup¶
# Clone
git clone https://github.com/plexusone/w3pilot
cd w3pilot
# Install dependencies
go mod download
# Install clicker
npm install -g vibium
# Run tests
go test -v ./...
Code Style¶
- Use
gofmtfor formatting - Follow standard Go conventions
- Run
golangci-lint runbefore committing
Commit Messages¶
Follow Conventional Commits:
feat: add new feature
fix: resolve bug
docs: update documentation
refactor: restructure code
test: add tests
chore: maintenance
Pull Requests¶
- Fork the repository
- Create a feature branch
- Make changes with tests
- Run linter and tests
- Submit PR with description
Project Structure¶
w3pilot/
├── *.go # Core client library
├── cmd/w3pilot/ # CLI
├── mcp/ # MCP server
├── script/ # Script format
├── integration/ # Integration tests
├── docs/ # Documentation
└── examples/ # Example code
Adding Features¶
New Element Method¶
- Add method to
element.go - Add recording to
mcp/recorder.go - Add MCP tool to
mcp/tools_*.go - Register in
mcp/server.go - Add to script actions in
script/types.go - Regenerate schema
- Update documentation
New MCP Tool¶
- Add handler to
mcp/tools_*.go - Register in
mcp/server.go - Add recording call if applicable
- Update
docs/reference/mcp-tools.md
New Script Action¶
- Add action to
script/types.go - Add to
AllActions()function - Regenerate schema:
go run ./cmd/genscriptschema > script/vibium-script.schema.json - Add handler in
cmd/w3pilot/cmd/run.go - Update
docs/guide/scripts.md
Regenerating Schema¶
go run ./cmd/genscriptschema > script/vibium-script.schema.json
schemago lint script/vibium-script.schema.json
Documentation¶
Documentation uses MkDocs with Material theme.
Local Preview¶
Build¶
Release Process¶
- Update version in relevant files
- Update CHANGELOG.md
- Create PR for review
- Merge to main
- Tag release:
git tag vX.Y.Z - Push tag:
git push origin vX.Y.Z