Repository
The Celebi repository is an organized directory containing objects — directory objects, algorithm objects, and task objects.

Every object MUST contain
.celebi/config.json— machine-reading metadata. The workflow DAG itself is defined by thepredecessorsandsuccessorsrecorded here.celebi.yaml— human-reading metadata (environment, parameters, commands).README.md— documentation of the object’s purpose.
A directory simply contains subobjects.
No absolute paths — the alias system
To ensure the repository could run anywhere, it contains no absolute paths. And to
keep it freely re-organizable, tasks see their predecessors as aliases: when a
dependency “changes” but doesn’t really change — the task’s name or location
changes — dependent tasks still see exactly the same thing. That is what makes
mv-style reorganization safe.