Syncing with EmiBSD.LZ, step by step
The rule is .claude/rules/lz-sync.md; this is what is executed, usually once a month and
always before an N milestone is marked met. LZ is read, never written.
just lz-sync: fetchesreference/emibsd-lz, then prints the LZ commits after the pin that have no record inlz-sync.toml, security candidates first, with the native modules and the items (--functions) each one touches.- Triage every commit into
lz-sync.toml, one[[commit]]record each:applied, withemibsd = "<12-hex>"andmethod:cherry-pick(an inherited module:git -C reference/emibsd-lz format-patch -1 <hash> | git am),cherry-pick-conflicts(an adapted module: conflicts expected at its call sites, resolved by hand) orreimplemented(a redesigned module: the change re-expressed in its new shape);not-applicable, with the reason (nothing native derives from it, or the path does not exist here);covered-by-redesign, with the test or the type that proves it;deferred-to-N10(decision 44), for a commit that touches only frozen amd64 files and does not cherry-pick cleanly; one that does isappliedbycherry-pickwithout compiling, withfrozen = true;security = trueon every security fix; such a record is nevernot-applicablewithout a reason that names the fix. A file new in LZ becomes a newinheritedmodule oflineage.tomlin the same commit.modulesnames every native module the commit touches, the new ones included:lz checkcompares each with the newest applied commit naming it, not with the pin, until the pin catches up.
- One
lz-sync:commit per LZ commit or coherent cluster, nothing else in it, trailerLZ: <12-hex>; the body carries the three method totals so far. just ci(which runscargo xtask lz drift --strict), thenjust diff-openbsd.- When every commit up to a point has a record, with the user’s OK:
lz: bump pin to <12-hex>(lz/PINNED.md,lineage.toml [meta].lz,lz-sync.toml [meta].lztogether). - One line in
docs/JOURNAL.md’s current section: the LZ range absorbed, the three method totals and the wall time.