docs(agents): state the base/overlay rule by scope, not as immutability - #130
Conversation
Mirrors devantler-tech/platform#3026. The same rule is stated twice here and contradicts itself in both places: "Base files are **immutable** from overlays" carries the qualifier, then the very next clause drops it ("never by editing k8s/bases/ directly"), and the Maintenance copy keeps only the absolute ("bases immutable"). In the upstream platform repo the directory this declares immutable changes in ~half of all commits, 92% of them touching a base and no overlay at all. State the decision it actually is -- the layer follows the scope of the change -- and replace the misfiled duplicate with a pointer, so there is one canonical statement that cannot drift again. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Mirrors devantler-tech/platform#3026. A base with one consumer today still holds the canonical configuration; the 'every cluster' test would push it into that overlay and leave the base stale. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Readiness — how this was exercised. Same evaluation as the paired devantler-tech/platform#3026: the rule was applied to real changes to check it returns the correct layer, rather than merely reading well. The evidence is drawn from the upstream platform repo this template seeds — Verified nothing was orphaned by removing the misfiled duplicate: manifest layering and Flux dependency order are both stated under Kustomization flow, which the replacement text now points to. CI green, |
@coderabbitai review |
|
✅ Action performedReview finished.
|
📝 WalkthroughWalkthroughUpdated 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Readiness — all three conditions hold at
That evaluation is first-hand rather than hypothetical. The rule this replaces produced a live wrong call yesterday: on platform#3025 a reviewer flagged a No issue linkage, deliberately. This propagates a maintainer ruling made in review rather than closing a tracked defect, and there is no acceptance criteria set it could satisfy — so |
CodeRabbit ran at this head (status @codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Why
This template is the starter every new platform is created from, so a confusing convention here propagates to each one. It states the base/overlay rule twice, and contradicts itself both times:
Base files are **immutable** from overlayscarries the qualifier that makes the rule true, then the next clause drops it (never by editing k8s/bases/ directly), and the Maintenance copy keeps only the absolute (bases immutable).The absolute is not true. In the upstream platform repo,
k8s/bases/changes in about half of all commits — and 92% of those change a base and no overlay at all. Editing a base is the ordinary way work happens. An agent that believes the absolute will not make a legitimate change meant to reach every cluster; one that checks it discards the rule entirely, losing the part that is real.What
States the rule as the decision it actually is — the layer follows the scope of the change: the base when it must reach every cluster and provider, an overlay patch when it must reach one. Keeps the genuine constraint with its reason attached.
Replaces the misfiled second copy (appended to a protected-files clause) with a pointer to the canonical statement, so the two cannot drift apart again.
Pairs with devantler-tech/platform#3026.