"Safely edit, build, and test the RDKit repository itself,
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill repo-development --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Repo Development?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-repo-development-e136a5df)More formats (shields.io, HTML) on the badges page.
---
name: repo-development
description: "Safely edit, build, and test the RDKit repository itself,
including CMake/Python wrapper boundaries, focused tests, formatting,
generated stubs/docstrings, and checkout-shadowing diagnostics."
disable-model-invocation: true
metadata:
disco-role: operating
license: BSD 3-Clause
---
# RDKit Repository Development
Use this sub-skill when a request is about changing RDKit source code, diagnosing a local checkout, selecting maintainer tests, adjusting build configuration, or preparing a contribution to RDKit itself.
## Route Here
- Edit C++ core code under `Code/`, Python package code under `rdkit/`, build files, wrappers, tests, or maintainer scripts.
- Decide whether a change needs C++ tests, Python wrapper tests, doctests, CMake updates, docs, or generated artifacts.
- Diagnose import failures caused by an unbuilt checkout shadowing an installed RDKit package, especially missing `rdBase`.
- Choose focused `ctest`, `pytest`, or script-based test commands after a source change.
- Check repository formatting expectations from `setup.cfg` and maintainer scripts.
- Understand generated Python stubs or docstring patching workflows as maintainer-only reference workflows.
## Route Elsewhere
- Use `../molecule-io-core/` for ordinary SMILES, SDF, sanitization, canonicalization, and molecule-validation usage.
- Use `../descriptors-fingerprints/` for descriptor, fingerprint, similarity, clustering, or ML feature tasks.
- Use `../conformers-drawing/` for conformer generation, alignment, shape, drawing, or visualization usage.
- Use `../reactions-standardization/` for reaction handling, salt/fragment/charge cleanup, tautomer enumeration, or MolStandardize workflows.
- Keep end-user package examples out of this sub-skill unless they are tests for repository changes.
## Start With These References
- `references/source-layout.md` maps RDKit source areas, Python package boundaries, wrappers, tests, data, docs, projects, and contrib code.
- `references/build-and-test.md` covers CMake build caveats, conda/binary-vs-source import hazards, and focused test selection.
- `references/contributor-guidance.md` summarizes style, test expectations, documentation expectations, and generated stub/docstring workflows.
- `references/troubleshooting.md` diagnoses `rdBase` import failures, unbuilt extension modules, dependency/configure failures, generated artifacts, and test misses.
- `scripts/check_checkout_shadowing.py` checks whether the current directory is shadowing an installed RDKit or lacks the compiled `rdBase` extension.
## Safe Development Defaults
- Treat RDKit as a compiled C++/Python project: many Python imports depend on extension modules produced by the CMake build, not just files under `rdkit/`.
- Run repository imports from a built tree, installed tree, or outside the checkout when using a binary package; an unbuilt checkout can mask the installed package and fail at `rdBase`.
- Prefer focused tests near the touched module first, then widen to relevant `ctest -R` or `pytest` suites before claiming a change is safe.
- For Python formatting, follow the repository YAPF settings: two-space indentation and 100-character line limit from `setup.cfg`.
- For C++ changes exposed to Python, update both the C++ tests and wrapper/Python tests when behavior crosses that boundary.
## Quick Diagnostics
From any working directory, run the bundled checker:
```bash
python scripts/check_checkout_shadowing.py
```
Typical outcomes:
- `OK`: RDKit imports and `rdBase` is available from the same import root.
- `SHADOWING`: Python is loading a source checkout that appears to lack built extension modules.
- `IMPORT_ERROR`: RDKit import fails before the checker can confirm `rdBase`; inspect the reported exception and `sys.path` hint.
Use `--json` for machine-readable output when another agent needs to branch on the result.
## Maintainer Workflow Pattern
1. Map touched files to source ownership using `references/source-layout.md`.
2. Decide whether the change is Python-only, C++-only, C++ plus wrapper, CMake/build-system, docs/data, or contrib/project code.
3. Use `references/build-and-test.md` to select the smallest meaningful tests and add a widening test if behavior crosses module boundaries.
4. Use `references/contributor-guidance.md` for style, documentation, and generated-artifact guidance.
5. If imports fail from a checkout, run `scripts/check_checkout_shadowing.py` and apply `references/troubleshooting.md` before changing source code.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!