Skip to main content

Tools and scripts inventory

The framework ships two directories of helpers. This page is the map.

core/tools/ — doc and build helpers

ScriptPurpose
generate_api_docs.shRun doxygen2docusaurus over the Doxygen XML; emit Markdown for the C++ API reference site. Run after editing public headers.
generate_python_api_docs.pyGenerate Python API reference Markdown from the pyneat module's docstrings.
generate_tutorial_docs.py(Tutorials are being deprecated — this script is fading out.)
postprocess_d2d_links.pyFix up doxygen2docusaurus link slugs after generation. Called automatically by generate_api_docs.sh.
strip_empty_programlisting.pyWorkaround for empty <programlisting> elements that confuse doxygen2docusaurus.
compute_version.shCompute the framework's version string from deps/manifest.json platform-version, plus git metadata for branch builds. Used by CI and packaging.
expand_code_tabs.pyExpand multi-language tabs in tutorial sources.
run_clean_env.shRun a command inside a clean shell environment (no inherited LD_* / PATH weirdness).
tutorial_quality_lint.py / tutorial_scorecard.pyLint tutorial Markdown / score it. (Deprecating with tutorials.)

Typical flow when editing public headers:

cd core
doxygen docs/doxygen/Doxyfile # regenerate XML
bash tools/generate_api_docs.sh # regenerate Markdown
cd website && yarn start # preview the site

core/scripts/ — repo-level checks and dev helpers

ScriptPurpose
check_format.shRun clang-format on the C++ tree; fail on diffs.
check_cmake_format.sh / check_cmake_style.pyRun cmake-format / lint on CMakeLists.txt files.
check_duplicate_includes.{sh,py}Catch duplicate #include lines in headers.
check_internal_headers.shVerify the core/src/pipeline/internal/sima/ reach-through tier respects the public/internal boundary.
run_cpp_tidy.shRun clang-tidy across the tree.
route_refactor_validation.shA targeted route-planner regression check (called by CI).
install_neat_plugins.shInstall the framework's GStreamer plugins to the system plugin directory.
install_codex_skill.shInstall the Codex CLI's NEAT skill (developer convenience).
fix_devkit_runtime.shPatch a fresh devkit's runtime libs / paths.
sync_neatdecoder.sh / use_neatdecoder.shSwitch between bundled and external decoder builds.

core/scripts/ci/, core/scripts/dev/, core/scripts/release/

These subdirectories hold scripts that are owned by their respective workflows — CI runs the ci/ set, developers run dev/ ad-hoc, release engineering runs release/. Don't depend on them from application code.

Running the doc generator from a clean checkout

sudo apt-get install -y doxygen # if not installed
cd core
doxygen docs/doxygen/Doxyfile # generates docs/doxygen/out/xml/
bash tools/generate_api_docs.sh # populates docs/reference/cppapi/
python3 tools/generate_python_api_docs.py # populates docs/reference/pythonapi/
cd website && yarn install && yarn start # serve at http://localhost:3000/

Further reading

  • "Tools and scripts" — §55 of the design deep dive.
  • The repo core/AGENTS.md has the contributor agreement on what tools must run pre-commit.