# The hook schedule (§6) — the seeded default a fresh landing starts from.
#
# `[hooks]` is the SINGLE source of truth for plugin wiring: each `<op>.<phase>`
# key maps to an ordered list of plugin names. Listed = run this plugin in this
# op-phase; list position = run order (the last name runs last). An absent key or
# empty list = run nothing. The names are pure text and travel verbatim on `bl
# install`; the local `config/plugins/bin/<name>` symlink (gitignored) resolves
# each name to this box's binary.
#
# This default wires the two shipped capabilities — `bl-tracker` (remote sync) and
# `bl-delivery` (the code worktree). `bl prime` PRUNES any entry whose binary is
# not installed beside `bl`, so a tracker-less or test box never aborts. Replace
# this file (or the whole `$XDG_CONFIG_HOME/balls/default-config/` folder) to
# ship an org's own default capability set without touching core (§1/§12).
[]
= ["bl-tracker"] # import remote state first
= ["bl-tracker"]
= ["bl-tracker"] # fetch the center's config to adopt (§13 prime --install)
= ["bl-delivery", "bl-tracker"] # prune settled work/<id> branches (worktrees materialize at claim only), then settle store content (fetch-ff + push)
= ["bl-delivery", "bl-tracker"] # worktree (prints its path), then the push (tracker last)
= ["bl-delivery", "bl-tracker"]
= ["bl-delivery"] # read-op (§6, single phase): fold the worktree path into the human render (§11)
= ["bl-delivery"] # deliver (squash) before the seal
= ["bl-delivery", "bl-tracker"] # teardown, then push
= ["bl-tracker"]
= ["bl-tracker"]
= ["bl-tracker"] # imported records sync like any mutate (§16)