cmeta
CLAUDE.md9 starsChanged 11 days agoApache-2.0View on GitHub
See AGENTS.md for the canonical agent brief — it covers setup, architecture, conventions, and env vars. This file adds Claude-Code-specific notes only. The commands above are the cross-platform source of truth. The author keeps local Windows .bat wrappers around them, but those are personal workflow and are not tracked here — don't expect to find them in a clone. Everything funnels through one dispatch surface: CMeta.access({'category', 'command', ...}) in Python; cx <category> <command> on the CLI. When adding functionality, extend…
- Installs packages
- Commits and pushes
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- add-cserver-pluginSkill
- add-pluginSkill
- add-repoSkill
- release-cmetaSkill
- use-cmeta-cliSkill
- use-cmeta-pythonSkill
The file
We split this CLAUDE.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 95
alias,UIDreferences are the recommended form: When both are given, the UID is authoritative and the alias is advisory.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
See AGENTS.md for the canonical agent brief — it covers setup, architecture,
conventions, and env vars. This file adds Claude-Code-specific notes only.
Commands
pip install -e ".[dev]" # editable install with dev extras (or [all])
python -m pytest tests # full test suite
python -m pytest tests/test_utils_obj_parse_cmeta_core.py::test_name # single test
flake8 cmeta # lint
python -m build # build wheel/sdistThe commands above are the cross-platform source of truth. The author keeps
local Windows .bat wrappers around them, but those are personal workflow and
are not tracked here — don't expect to find them in a clone.
Architecture — the load-bearing shape
Everything funnels through one dispatch surface:
CMeta.access({'category', 'command', ...}) in Python; cx <category> <command> on
the CLI. When adding functionality, extend it through categories / tasks /
api_v1.py hooks rather than side entry points. cmeta/core.py is the dispatch.
Key modules (cmeta/):
core.py/core_async.py—CMetaclass +access()dispatch.category.py,category_api_v1.py— find/load artifacts, invokeapi_v1.pyhooks.repos.py—Repos: index and resolve content repos and artifacts by alias / UID / tags.packages.py—Packages: detect tools/versions, auto-install Python packages.cli.py— CLI entry points wired inpyproject.toml[project.scripts].internal-repo/— built-in categories (app,asset,cache,category,config,docs,experiment,journal,log,note,repo,report,research,result,script,tests,utils,website,work). Shipped as package-data.version.py— single source of truth for__version__(wired via[tool.setuptools.dynamic]; do not hard-code the version anywhere else).
Artifacts are identified by _cmeta.json|yaml (UID, category, tags, features)
plus a _desc.yaml automation pipeline (uses → prepend/append/update
referencing tasks by alias,UID) and an optional api_v1.py with customize*
hooks. This repo is the framework/engine; the artifacts it runs live in
separate content repos (e.g. cmeta-aops).
Conventions worth repeating
- Runtime deps are intentionally minimal (pyyaml, requests, setuptools, wheel,
tabulate, tqdm, packaging). Justify any new one. File locks are the
engine's own
cmeta.utils.files.PathLock(nofilelock); processes and the host's memory and cores come from the standard library (nopsutil). - Preserve module docstring/copyright headers — never strip or rewrite them.
New files get the standard header; new artifacts/categories record
authorsandcopyrightin their_cmeta.yaml. Full rule, including reuse and citation:AGENTS.md§5.1 andNOTICE. - Python 3.9–3.15 supported; don't use newer-only syntax.
- Tests live in
tests/astest_*.py(pytest config inpyproject.toml). - This is the public Apache-2.0 framework — keep product vision/strategy prose out; public docs describe functionality.
Git workflow — sign-off, dev, PR titles
The full rule is AGENTS.md §5.0; in short:
- Every commit is signed off:
git commit -s -m "…". The-s/--signoffflag appends the DCOSigned-off-by:line required byCONTRIBUTING.mdand theDCOfile. This applies to commits an agent makes on the author's behalf exactly as it does to the author's own. A DCO check runs on every pull request and an unsigned commit blocks the merge. Repair before pushing:git commit --amend -s --no-edit(last commit) orgit rebase --signoff <base>(a range). - The maintainer, and AI agents working for the maintainer, commit on
dev.git switch dev && git pull --ff-only, then commit and push todev. One pull requestdev→maincarries the work; the maintainer merges it with a merge commit (not a squash), anddevis then fast-forwarded tomain(docs/releasing.md). Never push tomain. - Agents commit and push only when the maintainer explicitly says so. Develop
and test, leave the changes uncommitted, show what changed, and wait for a
go-ahead for that piece of work. The same holds for pull requests, branch
deletions, tags and releases. Several sessions may share one working copy:
check
git statusand stage only your own files. - Everyone else branches from
devasYYYYMMDD-<short-branch-name>— creation date, then a short kebab-case topic (e.g.20260808-fix-repo-resolution) — and opens the pull request intodev. - PR titles are
YYYYMMDD - <Title of PR>— date, spaced hyphen, human-readable title, e.g.20260808 - Fix repo resolution for mixed-case aliases(gh pr create --title "20260808 - …"). Fordev→main, use the day the PR is opened; for a dated branch, the date of its prefix.
Resolution & reindex — two things to internalize
alias,UIDreferences are the recommended form. When both are given, the UID is authoritative and the alias is advisory. This makes references rename-safe. Categories declare cross-category deps viauses_categories:in_cmeta.yamland dereference at runtime asself.cmeta['uses_categories']['<name>'].- Fast index lives at
<CMETA_HOME>/index/<category>.pkl. cMeta keeps it fresh automatically oncreate/update/deleteand oncx repoops. If artifacts were touched outside cMeta (manual move,git pull, hand-edited YAML, wipedCMETA_HOME), reindex — but pick the narrowest command:cx <cat> index <repo>:<artifact>for a single hand-made (mkdir-ed) folder,cx <cat> update <repo>:<artifact>after editing an existing artifact's_cmeta.*meta, andcx --reindex(whole-home, slow) only as a last resort. Payload-only edits (api/,files/,src/,_desc.yaml) need no reindex. Categories withno_index: trueare always found by filesystem scan.
Debug env vars
CMETA_DEBUG=1, CMETA_LOG=DEBUG|INFO, CMETA_LOG_FILE=<path>,
CMETA_FAIL_ON_ERROR=yes, CMETA_VERBOSE=yes.
More context
- User-facing walkthrough (repos, plugins, artifacts, reindex):
docs/using-cmeta.md - Releasing a version:
docs/releasing.md(skillrelease-cmeta) - Skills in
.claude/skills/<name>/SKILL.md:add-plugin,add-cserver-plugin(acserver.*category that renders a page and runs on both the internalcserverapp and cPlatform),add-repo,use-cmeta-cli,use-cmeta-python,release-cmeta
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

