Skip to content
Back to skills

Repo Development

ASecurity

"Safely edit, build, and test the RDKit repository itself,

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 9, 2026
documentationpythonc++bashreactdocumentation

Security analysis

A100/100

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

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill repo-development --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Repo Development?

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

Security grade badge for Repo Development
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-repo-development-e136a5df/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-repo-development-e136a5df)

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

Files in this skill

  • SKILL.md4.4 KB
  • references/build-and-test.md6.2 KB
  • references/contributor-guidance.md4.3 KB
  • references/source-layout.md4.6 KB
  • references/troubleshooting.md5.3 KB
  • scripts/check_checkout_shadowing.py5.5 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.