Skip to content

Dependency-line migration

The migration script folds legacy R8 dependency children (sole-link ![[…]] bullets) and legacy-label 🔗 or DEPENDENCIES rows into one canonical ⛓️ **DEPENDS ON:** line per dependent. For open dependents it projects [dependsOn::] and [id::] fields; it also adopts field-only lines. The task-dependency contract defines line grammar and link form.

The default is a dry run. Point it at a vault directory, inspect the plan, then pass --write to perform a preflight and update Markdown files. A write is refused when any resolution is ambiguous.

node scripts/migrate-dependency-lines.mjs --vault /path/to/synthetic-vault
node scripts/migrate-dependency-lines.mjs --vault /path/to/synthetic-vault --write

The script skips .git, .obsidian, conflict and generated directories, templates, and the done archive. Its planner does not change task statuses; reconciliation remains the status hooks' responsibility.

Tested rolling snapshot bob-cli 41afa14 bob-mac-capture 556bb67 bob-plugins af1e691 Built 2026-10-24T22:34:13Z (zensical) build.json