cMeta documentation
Start here. These guides are the full documentation for the framework; the project README is a summary that links into them.
Guides
Guide |
What it covers |
|---|---|
Why cMeta exists: the problem, the six aims (collaborative, reproducible, reusable, scalable, portable, sustainable), how complexity becomes abstractions you can operate, the design principles, and FAIR by construction. |
|
Install as a global CLI ( |
|
Cheatsheet — the commands you use daily: discovery, the |
|
The getting-started and reference guide. Mental model, first checks, CLI flags and syntax, built-in categories, working with artifacts from the CLI and Python, |
|
The return-dict contract, checking results, soft errors (code 16), raising errors, and debugging with |
|
Serial vs async ( |
|
The |
|
Connecting cMeta to the cTuning.ai platform API and testing the connection. |
|
Lineage (cTuning framework → CK → CM/CMX → cMeta), related publications, and how to cite. |
|
Tracked defects and planned improvements ( |
Suggested reading order
motivation.md — what problem this solves (5 minutes).
installation.md — get
cxworking.common-commands.md — the cheatsheet; keep it open.
using-cmeta.md §1–§5 — mental model, first checks, flags, categories, artifacts.
using-cmeta.md §7–§9 — repositories, configs, and adding your own category (plugin).
error-handling.md — before you write a plugin of your own.
For AI agents extending cMeta
AGENTS.md— the canonical agent brief for the engine.CLAUDE.md— Claude Code specific notes..claude/skills/— portable, reusable skills:use-cmeta-python,use-cmeta-cli,add-plugin,add-repo,add-cserver-plugin.
Building the API reference
The docs/en/ tree is a Sphinx project whose API
pages are generated from the docstrings in the cmeta package. build_docs.py
discovers the modules, writes the .rst files under docs/en/api/, and
optionally runs the Sphinx build.
Install the build dependencies:
pip install -r docs/requirements.txt
Generate the .rst files only:
python docs/build_docs.py --docs-dir docs/en --cmeta-dir cmeta
Generate and build HTML:
python docs/build_docs.py --build --docs-dir docs/en --cmeta-dir cmeta
Useful flags: --clean (wipe the build directory first), --pdf,
--all (HTML + PDF), --site-dir <path> (write the rendered site elsewhere).
On Windows, _build_docs.bat (which runs _build_docs.ps1 at the repo root)
wraps the whole flow: it resolves the output site directory from the
cmeta-api-auto docs artifact, installs the requirements with uv, builds,
and archives the result.
Layout
docs/
├── README.md # this file — documentation index
├── *.md # the guides listed above (the editable originals)
├── build_docs.py # RST generator + guide copier + Sphinx build driver
├── requirements.txt # Sphinx build dependencies
└── en/ # Sphinx project (English)
├── conf.py # Sphinx config (version comes from cmeta/version.py)
├── index.rst # site root toctree [generated]
├── home.rst # project home page
├── api/ # API pages, one per module [generated]
├── guides/ # copies of ../*.md [generated, gitignored]
├── _static/ # custom.css
└── _templates/ # layout.html
Notes:
Edit the guides in
docs/*.md, never indocs/en/guides/. Sphinx cannot read sources above its root, sobuild_docs.pycopies the guides intodocs/en/guides/on every build (wiping it first) and rewrites their repo-relative links — links between guides stay relative, links to anything outside (../README.md,../CITATION.cff,../.claude/skills/…) become GitHub URLs. Markdown is understood thanks to themyst_parserextension.To add a guide: create
docs/<name>.md, add it to the table above, and add its filename toGUIDE_FILESindocs/build_docs.pyso it joins the TOC.conf.pyimports__version__fromcmeta/version.py— never hard-code a version in the Sphinx config. It imports thecmetapackage directly, so the build environment must be able toimport cmeta.index.rstandapi/*.rstare regenerated on every build. (build_docs.pywill preserve a hand-editedindex.rstonly if it contains the string “Download Documentation”.)Adding a new engine module needs no configuration: the generator discovers it automatically. Just keep docstrings in Google or NumPy style.
See also SPHINX_FASTAPI_INTEGRATION.md for serving the built docs from the FastAPI app.