As requested, here is the recommended specification for organizing community plugins on GitHub.
We recommend creating a dedicated GitHub Organization (e.g., ghostclaw-community or ghostclaw-plugins) rather than cluttering the core repository.
Given the lightweight nature of Ghostclaw plugins and the standard pip install entry-point mechanism, a Monorepo is the recommended approach for community plugins.
Structure:
ghostclaw-community/
├── .github/workflows/ # Central CI/CD (PyPI publishing, linting)
├── plugins/
│ ├── ghostclaw-plugin-bandit/
│ ├── ghostclaw-plugin-coderabbit/
│ └── ghostclaw-plugin-semgrep/
├── templates/
│ └── plugin-template/ # The scaffold starter
├── CONTRIBUTING.md # Your generated contributor guide
└── PLUGIN_API.md # The API documentation
You should set up a GitHub Action that:
- Triggers on changes to paths
plugins/*. - Identifies the modified plugin directory.
- Automatically increments the version or reads the new
pyproject.tomlversion tag. - Uses
twineto publish directly to PyPI under theghostclaw-plugin-*prefix.
- Go to GitHub and create the new organization.
- Initialize the repo with the contents of this
ghostclaw-pluginsworkspace. - Add a link to the community plugins repository in the main
ghostclawcore documentation.