← ClaudeAtlas

besser-devlisted

Contributor guide for developing BESSER itself (https://github.com/BESSER-PEARL/BESSER). Use this skill whenever the user is working *inside* the BESSER source tree — adding a new generator (the most common contribution), adding a new metamodel or sub-DSL under `besser/BUML/metamodel/`, writing pytest tests for generators or metamodels, writing JSON↔BUML converters for the web editor, building Sphinx documentation under `docs/source/`, registering a generator in `SUPPORTED_GENERATORS`, or preparing a pull request to BESSER. Trigger on phrases like "add a new generator", "register in the web editor", "GeneratorInterface", "json_to_buml", "buml_to_json", "write tests for my generator", "build the docs", "open a PR to BESSER", or any work that touches `besser/generators/`, `besser/BUML/metamodel/`, `besser/utilities/web_modeling_editor/`, or `tests/`. Prefer this skill over besser-user when the user is contributing *to* BESSER rather than *using* BESSER to build something else.
BESSER-PEARL/BESSER-Skills · ★ 3 · AI & Automation · score 82
Install: claude install-skill BESSER-PEARL/BESSER-Skills
# Contributing to BESSER This skill covers the procedural workflows for contributing to the BESSER codebase. For architecture details and code conventions, also consult the project's `CLAUDE.md` file which is loaded into context automatically. --- ## Development Setup ```bash git clone https://github.com/<your-username>/BESSER.git cd BESSER python -m venv venv # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate pip install -r requirements.txt pip install -r docs/requirements.txt # for building docs pip install -e . # editable install ``` Verify: `python tests/BUML/metamodel/structural/library/library.py` Python 3.10+ is required (Django 5.x dependency). --- ## Adding a New Generator This is the most common type of contribution. To skip the boilerplate, run the bundled scaffold: ```bash python scripts/scaffold_generator.py <name> <path/to/BESSER/repo> # e.g.: python scripts/scaffold_generator.py graphql ~/code/BESSER ``` That writes a working stub package (generator class + Jinja template + pytest), runnable immediately. You still need to implement real logic, register the generator in the web-editor config, and add docs — covered in the steps below. If you prefer to do it by hand, follow these 6 steps: ### Step 1: Create the Generator Package ``` besser/generators/my_generator/ __init__.py # export: from .my_generator import MyGenerator my_generator.py # the generator class templates/