Skip to content

Template-sync for instances β€” shared plumbing only, tenant-template ownership modelΒ #176

Description

@devantler

πŸ€– Generated by the Daily AI Engineer

Evidence

Repos created from this template never receive template improvements: there is no template-sync (verified β€” 0 sync workflows in the tree), while gitops-tenant-template ships one and its tenants received three plumbing updates this month alone. Concrete drift cost from this week: the portfolio-wide govulncheck-timeout fix (actions#593/#594) and the merge-freeze workflow fix (actions#599) reached template instances only if someone hand-backported them.

Audience & problem

Every repo scaffolded from this template slowly diverges from the portfolio's CI/lint/agent-file conventions β€” the exact "consistency & drift" failure the holistic-review process exists to catch.

Hypothesis

A weekly template-sync scoped to SHARED PLUMBING ONLY (workflows, lint configs, agent files β€” never the scaffold example code) keeps instances current with zero manual backports.

Success signal

A plumbing fix merged here appears as a sync PR on instances within a week; no hand-backports needed for the next such portfolio fix. Guardrail: sync never touches instance-owned code (the tenant-template ownership model just settled in gitops-tenant-template#68/#69 β€” adopt its .templatesyncignore + scaffold-time-only classes from day one).

Smallest useful change

Adopt gitops-tenant-template's template-sync.yaml + a default .templatesyncignore that marks cmd/, pkg/example, pkg/featureflag, README, and the scaffold machinery instance-owned.

Acceptance criteria

  • Weekly sync workflow (skipped in the template itself), reusing devantler-tech/actions template-sync.
  • Default .templatesyncignore shipping the settled ownership classes (template-owned plumbing vs instance-owned code vs scaffold-time-only).
  • README documents the three ownership classes.

Rough size: S. Twin issue for the .NET template: devantler-tech/dotnet-template (cross-linked).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions