What setup downloads

scripts/setup.sh calls scripts/get_bundle.sh. get_bundle.sh populates:
CtakesBun-bundle/apache-ctakes-6.0.0-bin/apache-ctakes-6.0.0
The bundle lookup order is:
SourceWhat happens
Existing local bundleIf CtakesBun-bundle/.../apache-ctakes-6.0.0 already exists, the script stops.
Local archivescripts/get_bundle.sh --file /path/to/CtakesBun-bundle_*.tgz extracts that file.
Codeberg releaseThe script checks Codeberg release assets first.
GitHub releaseThe script falls back to GitHub release assets.
Direct URLCTAKES_BUNDLE_URL overrides release lookup.
scripts/get_java.sh is separate. It downloads a portable Temurin Java into:
.ctakes_deps/java/current
The wrapper uses that Java automatically when CTAKES_JAVA_HOME is set, and run_pipeline.sh can also detect .ctakes_deps/java/current/bin/java when the folder exists.

Files people touch

Most users only touch these:
PathUse
input/<batch>/Put .txt note files here.
outputs/<batch>/cTAKES writes results here.
scripts/setup.shDownloads or verifies the cTAKES bundle.
scripts/flight_check.shChecks Java, cTAKES, pipeline files, tools, sample notes, and a dry run.
scripts/run_pipeline.shRuns one folder of notes.
scripts/run_input.shRuns every folder under an input root.
Maintainers also care about:
PathUse
pipelines/.piper recipes.
resources/dictionary_configs/Dictionary XML/config recipes.
tools/Java helper annotators and writers compiled into build/tools.
dictionaries/Small dictionary release metadata only.
samples/mimic/100-note local validation pack.
samples/mimic_manifest_*.json.gzExpected sample output manifests.

Input notes

The runner reads .txt and .xmi files from the input folder. For STAR note extraction, use the Phase I filename shape:
USDHubID.NoteID.txt
The wrapper resolves the document id from the file name. That id flows into documents.document_id, concepts.document_id, rxnorm.document_id, cui_counts.document_id, and the CSV/XMI filenames when those writers are enabled.