diff --git a/.agents/rules/sync-with-template.md b/.agents/rules/sync-with-template.md index 5b889b8b..d938d14f 100644 --- a/.agents/rules/sync-with-template.md +++ b/.agents/rules/sync-with-template.md @@ -2,7 +2,7 @@ Files matching `includes`/`excludes` in `.github/sync-with-template.yml` are synced automatically from the template repository through PRs (label `sync-with-template`, auto-merged) created by the [sync-with-template action](https://github.com/remal-github-actions/sync-with-template). The template is the repository variable `TEMPLATE_REPOSITORY` (an `owner/repo` value, never an org variable), or GitHub's "generated from" relationship when it is unset. The root of all template chains is [remal/oss-template](https://github.com/remal/oss-template). Files that exist only in the current repo are never touched. -**IMPORTANT: treat every repo as a generated one; do not edit synced files.** The next sync reverts local edits. Before committing, read `.github/sync-with-template.yml` and check which changed files are synced. For changes to synced files, suggest making them in the template project(s) instead, or use an escape hatch: +**IMPORTANT: treat every repo as a generated one, including the template repo itself.** A synced file's local edits are reverted by the next sync unless the same change is also made upstream. Before committing, read `.github/sync-with-template.yml` and check which changed files are synced. When you change a synced file, make the change in the current project AND its template(s), or use an escape hatch: - `.github/sync-with-template-local-transformations.yml` (never synced itself): per-file `ignore`/`delete`/replace/`script` transformations, see the [schema](https://github.com/remal-github-actions/sync-with-template/blob/main/local-transformations.schema.json). This is also how repos extend the sync config itself, since the config file is synced too. - Modifiable sections: lines between `$$$sync-with-template-modifiable: $$$` and `$$$sync-with-template-modifiable-end$$$` markers keep their local content across syncs. Keep the markers. Marker syntax ([modifiableSections.ts](https://github.com/remal-github-actions/sync-with-template/blob/main/src/internal/modifiableSections.ts)):