# blocks
The whole texts the binary writes outside `snippets/`: the routing, glossary, and hook blocks it splices into a target, the post-merge hook it installs on a host, and the self-depend texts `rk self-depend add` serves and seeds for each manager and venue pair — the three flake fragments and the seed flake, the mise entry for the crate and for the release archive with the mise seed, the devbox entry and seed, the asdf line, the `.envrc` line, and the seed `.envrc` — carrying `RK_DEVSHELL_*` tokens that `src/self_depend/fragments.rs` renders from the pin grammar, so no embedded file names the flake's owner. `target-config.toml.in` is the target configuration a landing writes, and `acquisition-config.toml.in` is the configuration `rk self-depend add --host` writes where a target has none yet: the schema and the host-install answer alone, which the landing that follows completes.
`.in` files are templates carrying `RK_*` and `OWNER` tokens, substituted in `src/landing.rs`; the hooks fragment is not standalone YAML, and the token lines must survive formatting, which is what the suffix buys.
The hook block composes from one template and its optional parts. The template carries the two hooks the release process needs, the tag guard and the status check. The workflow guards add `pre-commit-message-guards.yaml.in` and `pre-commit-branch-name-guard.yaml.in`, and under them `pre-commit-worktree-guard.yaml.in` is the checkout mode's answer, and `pre-commit-trunk-commit-guard.yaml.in` and `pre-commit-trunk-push-guard.yaml.in` render under forge integration alone, because local integration writes the trunk commit and pushes the trunk. `pre-commit-sweep-skip.yaml.in` and `pre-commit-sweep-none.yaml.in` are the header's two shapes, and `pre-commit-integrate-note.yaml.in` names the pre-integrate contract under local integration. A part's token is a prefix of the next content line, never a line of its own, so an absent part leaves no blank line behind; the guard tokens are adjacent for that reason. The routing block does the same with the workflow guards' two fragments, `agents-line-agent-policy.md.in` and `agents-line-commit-policy.md.in`, and carries no mode line.
Every file ends with one enforced newline; the `.in` readers strip exactly one because the spliced form carries none, `post-merge-hook.sh` is written verbatim because a hook file ends in its newline, and byte-equality tests pin both round trips.