Skip to content
Back to skills

Besser Dev

ASecurity

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 pre...

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentspythongobashtestinggitfrontendbackenddocumentation

Works with

  • claude code
  • cursor
  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 7 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add BESSER-PEARL/BESSER-Skills --skill besser-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Besser Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Besser Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/besser-pearl-besser-dev/badge)](https://www.skillsdirectory.com/skills/besser-pearl-besser-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: besser-dev
description: >
  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.
license: Apache-2.0
compatibility:
  - claude-code
  - cursor
  - cline
  - windsurf
  - copilot
metadata:
  author: BESSER-PEARL
  version: "0.3.0"
  repository: https://github.com/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
BESSER repo's `CLAUDE.md` (auto-loaded in Claude Code; with other agents,
read `CLAUDE.md` at the repo root directly).

---

## 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.11+ is required (enforced by `python_requires = >=3.11` in
`setup.cfg`; CI tests 3.11 and 3.12).

---

## Reference layout

This skill keeps SKILL.md short. Reach into `references/` for the procedure
you need:

| Task | Read |
|------|------|
| Add a new generator (the most common contribution) — 6 steps + scaffold | `references/adding-a-generator.md` |
| Add a new metamodel / sub-DSL, plus JSON↔BUML converters | `references/adding-a-metamodel.md` |
| Write pytest tests (fixtures, `tmp_path`, what to assert) | `references/testing.md` |
| Build the Sphinx docs and cross-reference them | `references/docs-and-build.md` |
| Code style, commit/PR conventions, cross-repo, CI/release | `references/contributing-workflow.md` |

Related skills for the *using* side (not contributing):
- Running or customizing an existing generator → the **besser-generators** skill.
- Diagnosing install/import/generation errors → the **besser-troubleshooting** skill.
- The user-facing shape of a model type (doc templates) → the **besser-user** skill's `references/`.

---

## Common Contribution Pitfalls

1. **Don't duplicate logic** — shared helpers go in `besser/utilities/`, not in individual generators.
2. **Maintain determinism** — generators must produce identical output for identical input.
3. **Keep converters symmetric** — if `JSON → BUML` supports a feature, `BUML → JSON` must too.
4. **Update docs** — any backend change likely needs `docs/source/` updates.
5. **Don't touch the frontend submodule** unless explicitly required. UI changes go to the upstream WME repo.
6. **Clean up resources** — always use `try/finally` for temp directories and file handles.
7. **Test round-trips** — especially for converters (`JSON → BUML → JSON` should be identity).

Files in this skill

  • SKILL.md3.7 KB
  • references/adding-a-generator.md5.8 KB
  • references/adding-a-metamodel.md2.4 KB
  • references/contributing-workflow.md2.4 KB
  • references/docs-and-build.md1 KB
  • references/testing.md1.4 KB
  • scripts/scaffold_generator.py5.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.