docs(agents/iteration): mandate fresh-purged on first contact with a new VARIANT

Codify the rule that switching the live stack onto a previously-untouched
VARIANT must go through deploy-fresh-purged-apps, never a reuse target.
Reuse re-pins the stack onto stale volumes, DB rows and network aliases
from the previously-pinned variant and produces split-brain app state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 4.7 committed 2026-05-19 09:44:24 +02:00
1 parent 3387aa344f
commit 3f12fbe83e
1 file changed
+1
+1
View File
@@ -36,6 +36,7 @@ For the matrix-variant mechanism (folder layout, round semantics, `--variant` /
- Before you start a Role Loop on a matrix-variant role, you MUST decide if the iteration targets the FULL matrix (validates every variant) or ONE specific variant (focused debug). State the choice explicitly before the first deploy.
- For focused debug on variant `<idx>`, you MUST pin `VARIANT=<idx>` on every command in the iteration. Mixing pinned and unpinned commands silently retargets a different folder.
- Default focused-debug recipe: `VARIANT=<idx> make deploy-fresh-purged-apps APPS=<role> FULL_CYCLE=true` once for the variant baseline, then `VARIANT=<idx> make deploy-reuse-kept-apps APPS=<role>` for the edit-fix-redeploy loop.
- First contact with a previously-untouched `VARIANT=<idx>` MUST be `make deploy-fresh-purged-apps APPS=<roles> VARIANT=<idx>`, never a reuse target. Reuse re-pins the live stack onto stale volumes, DB rows and network aliases from the previously-pinned variant, producing split-brain app state.
- If a reuse target aborts with "inventory not found", you MUST add `VARIANT=<idx>` and re-run; do NOT work around the error by re-creating the unsuffixed folder by hand.
- For FULL-matrix iteration, omit `VARIANT=`. If any round fails, capture WHICH round was the last successful one so the next redeploy can pin `VARIANT=<that-idx>` to it.
- When debugging cross-variant interaction (for example "the multisite variant breaks because single-site state was not purged"), reproduce with the FULL matrix once, then pin `VARIANT=<failing-idx>` and iterate the fix. Re-run the FULL matrix only when you believe the fix is complete.