The opt-in file¶
.engineering-assets.yml at the root of a target repository (opt_in_file in hub.yml
renames it). Its presence is the repository's consent: nothing is delivered without it,
and an empty file is enough, unless the hub subscribes the repository with opt_in:
assumed in targets.yml. touchmark schema opt-in prints the
JSON Schema.
version: 1
packs: [claude] # in addition to what the hub assigns
ignore:
- .claude/settings.json # this repository keeps its own
- .agents/guidelines/**
enabled: falseopts the repository out, whatevertargets.ymlsays: it is skipped (opted-out), and its open sync pull request is closed asopted-out. Files already merged stay. The default istrue.- Deleting the file opts a repository out too, unless the hub subscribes it
(
opt_in: assumed): such a repository returns to what the hub assigns, so onlyenabled: falseopts it out. packsadds packs; it cannot remove one the hub assigns. A pack the hub does not have blocks the target (opt-in-invalid).ignorepatterns: a path without glob characters covers everything beneath it;*matches within a path segment,**any number of directories; paths compare without regard to case.- Editing
packsorignorelifts every decline the repository made; comments and formatting don't. See memory. - The file is read from the default branch through the platform's API: a regular file of
at most 64 KiB, strict YAML with bounded anchors and aliases. An invalid file blocks the
target (
opt-in-invalid); a symlink or a directory in its place skips it (unsafe-opt-in). A file withoutversionis accepted. - No pack can ship this file:
checkrejects it.
Keys¶
| Key | Type | Description |
|---|---|---|
version |
1 |
Format version. Only 1 exists. |
enabled |
boolean | false opts the repository out, even when the hub subscribes it (opt_in: assumed in targets.yml): it gets nothing, and the hub's open pull requests here are closed. Default: true. |
packs |
list of strings, each up to 64 characters | Packs to add to those the hub assigns. Packs the hub assigns cannot be removed here. |
ignore |
list of strings, at most 1000 | Paths the hub must never create, update or delete here. A path without glob characters covers everything beneath it; ** matches any number of directories. At most 1000 patterns. |