How do I deploy all org-mode artefacts?

Table of Contents

The deploy_org CMake target is the composite for all org-mode publishing. For individual targets see How do I deploy the site?, How do I deploy the skills?, and How do I deploy the settings?. For CMake setup and preset names see CMake setup.

1. Question

How do I rebuild the website, Claude Code skills, settings, and PlantUML diagrams all at once?

2. Answer

The deploy_org target (alias dorg) depends on deploy_site, deploy_skills, deploy_settings, and make_all_diagrams. Running it rebuilds every org-mode artefact in dependency order:

Via compass build (not raw cmake --build, so it takes the host-wide build lock — see How do I build the system?):

./compass.sh build deploy_org

Or with the shorter alias:

./compass.sh build dorg

This must be run outside the sandbox (Emacs, CMake, PlantUML, and ores-babel.el all need a full environment); use dangerouslyDisableSandbox: true on the Bash tool call.

deploy_org stays on cmake because it aggregates make_all_diagrams, which needs java/PlantUML and has no compass equivalent. In a light environment (no cmake/vcpkg) build the non-diagram artefacts directly: compass build --direct site skills settings.

2.1. Individual targets

Run a single target if you only changed one kind of artefact. The four org-export artefacts have a light-environment (--direct) path; diagrams need cmake:

Target Light-env command What it rebuilds
deploy_site compass build --direct site HTML website under build/output/site/
deploy_skills compass build --direct skills Claude Code skills under .claude/skills/
deploy_settings compass build --direct settings --claude .claude/settings.json from its org source
deploy_dsh_settings compass build --direct settings --dsh .dsh/, copied into ~/.dsh
make_all_diagrams (mad) cmake only (PlantUML) PlantUML diagrams across the repository

The settings alias deploys both agent surfaces; --claude and --dsh narrow it to one, as the two rows above do.

2.2. Prerequisites

  • Emacs on PATH.
  • PlantUML on PATH (for make_all_diagrams; skipped if absent).
  • The project must be configured (cmake --preset ...).

3. Script

The deploy_org target has no script of its own — it delegates to the five sub-targets listed above. The CMake definition lives in CMakeLists.txt near add_custom_target(deploy_org ...).

4. Tested by

Manual. Run dorg after any change to doc/llm/, doc/recipes/, or any .org file. Verified working when all five sub-targets complete without error.

5. See also

Emacs 29.3 (Org mode 9.6.15)