ld-stopnow: retire(sbx-common-phase1): remove the four alias stubs (stop-now item 5) #900

Merged
pi-landing merged 16 commits from plane/ld-stopnow-alias-retire into live 2026-11-09 07:49:06 +00:00
Collaborator

Retire the alias stubs from sbx-common-phase1 (stop-now item 5, El Director go 2026-11-09)

Removes the five old-name alias stubs from the Phase 1 Component so nothing ships them:
hipervisor.SKILL.md, supervisor-epica.SKILL.md, supervisor-epica.espera-orq.sh,
intencion.SKILL.md, juez.SKILL.md.

Copies: my pick is git history (the brief offered retired/ or git history). The bytes
are retrievable from this repository's history at any time before this merge; after it,
from the parent commit of this branch. No retired/ directory: this Forgejo build
exposes no API to create new files without a pre-existing sha (contents/trees/blobs all
refuse), and a directory the tooling cannot write is a directory that rots.

What changes (every live reference, so nothing breaks)

  • core/manifests/apps/sbx-common-phase1/kustomization.yaml — the 5 stub entries leave
    the sbx-skills-phase1 generator files: list (16 → 11 files). The ConfigMap no
    longer carries the old names, so the pods stop seeding them at the next recreate.
  • core/manifests/apps/sbx-common-phase1/SHA256SUMS — regenerated: 15 → 10 lines.
  • The 5 stub files — deleted (see above for the copies).
  • core/manifests/apps/sbx-lab/statefulset.yaml and core/manifests/apps/sbx-gits/statefulset.yaml —
    the 5 stub volume items (keys that would no longer exist → would break the pod mount)
    and the seed's stub copy loop entries + the espera-orq stub copy block are removed.
    The seed keeps copying the 6 English skills + wait-orchestrator.sh + PURPOSE/AGENTS/session-rules.
  • scripts/gits-sbx-epic-test.sh — invariant 20[phase1] now asserts RETIREMENT: the
    stubs are absent from the directory and the generator (any resurrection turns RED),
    the loader loads 6/6 with 0 diagnostics (was 10/10), SHA256SUMS is 10 lines, the
    volume-item pairs list drops the 5 stubs, and the 5 stub-presence mutations become
    5 resurrection-guard mutations (stub file back at its old path, stub back in the
    generator, stub line back in SHA256SUMS, espera-orq back, stub volume item back).
  • scripts/gits-sbx-hash-skills.sh — the 5 stub mappings drop out of FILES; the
    selftest's edited-stub fixture now edits judge (a live mapping).

Left unchanged on purpose

  • The kustomization comment block, verbatim: "New names (English) + old names as
    MINIMAL STUBS, kept until the end of Phase 3 because closing handoffs and relaunch
    commands still say "Usa la skill supervisor-epica"
    … "They are deleted at the
    end of Phase 3, not before."
    — this is the record of the original migration plan;
    El Director's stop-now item 5 retires the stubs NOW, ahead of that schedule, and the
    comment stays as history.
  • The statefulsets' own comment lines mentioning the stubs (same reason).
  • sbx-common (sendrast's Spanish skills) untouched; 20[guard] still proves the
    sendrast render is byte-identical.
  • Lingering old-name skill dirs on an already-running pod's PVC are inert (their
    content only pointed at the new names); they disappear at the recreate that applies
    the new ConfigMap.

Risk

ConfigMap content shrinks (5 keys, ~2 KB) — far from the annotation limit. The render
contract (kind,name set per directory) is unchanged. The only behavioural change:
/skill:hipervisor etc. now resolves to literal text instead of a redirect stub, which
is the intended honesty (any remaining relaunch string that still says the old name
shows up as literal text instead of silently working).

Author: pi-landing (orchestrator; non-Aaron per El Director ruling). Stacked on live
post-#895 (e67cbbe): #895 landed before this branch was cut.

# Retire the alias stubs from sbx-common-phase1 (stop-now item 5, El Director go 2026-11-09) Removes the five old-name alias stubs from the Phase 1 Component so nothing ships them: `hipervisor.SKILL.md`, `supervisor-epica.SKILL.md`, `supervisor-epica.espera-orq.sh`, `intencion.SKILL.md`, `juez.SKILL.md`. **Copies: my pick is git history** (the brief offered retired/ or git history). The bytes are retrievable from this repository's history at any time before this merge; after it, from the parent commit of this branch. No `retired/` directory: this Forgejo build exposes no API to create new files without a pre-existing sha (contents/trees/blobs all refuse), and a directory the tooling cannot write is a directory that rots. ## What changes (every live reference, so nothing breaks) - `core/manifests/apps/sbx-common-phase1/kustomization.yaml` — the 5 stub entries leave the `sbx-skills-phase1` generator `files:` list (16 → 11 files). The ConfigMap no longer carries the old names, so the pods stop seeding them at the next recreate. - `core/manifests/apps/sbx-common-phase1/SHA256SUMS` — regenerated: 15 → 10 lines. - The 5 stub files — deleted (see above for the copies). - `core/manifests/apps/sbx-lab/statefulset.yaml` and `core/manifests/apps/sbx-gits/statefulset.yaml` — the 5 stub volume `items` (keys that would no longer exist → would break the pod mount) and the seed's stub copy loop entries + the espera-orq stub copy block are removed. The seed keeps copying the 6 English skills + wait-orchestrator.sh + PURPOSE/AGENTS/session-rules. - `scripts/gits-sbx-epic-test.sh` — invariant 20[phase1] now asserts RETIREMENT: the stubs are absent from the directory and the generator (any resurrection turns RED), the loader loads 6/6 with 0 diagnostics (was 10/10), SHA256SUMS is 10 lines, the volume-item pairs list drops the 5 stubs, and the 5 stub-presence mutations become 5 resurrection-guard mutations (stub file back at its old path, stub back in the generator, stub line back in SHA256SUMS, espera-orq back, stub volume item back). - `scripts/gits-sbx-hash-skills.sh` — the 5 stub mappings drop out of `FILES`; the selftest's edited-stub fixture now edits `judge` (a live mapping). ## Left unchanged on purpose - The kustomization comment block, verbatim: *"New names (English) + old names as MINIMAL STUBS, kept until the end of Phase 3 because closing handoffs and relaunch commands still say \"Usa la skill supervisor-epica\"* … *"They are deleted at the end of Phase 3, not before."* — this is the record of the original migration plan; El Director's stop-now item 5 retires the stubs NOW, ahead of that schedule, and the comment stays as history. - The statefulsets' own comment lines mentioning the stubs (same reason). - `sbx-common` (sendrast's Spanish skills) untouched; `20[guard]` still proves the sendrast render is byte-identical. - Lingering old-name skill dirs on an already-running pod's PVC are inert (their content only pointed at the new names); they disappear at the recreate that applies the new ConfigMap. ## Risk ConfigMap content shrinks (5 keys, ~2 KB) — far from the annotation limit. The render contract (kind,name set per directory) is unchanged. The only behavioural change: `/skill:hipervisor` etc. now resolves to literal text instead of a redirect stub, which is the intended honesty (any remaining relaunch string that still says the old name shows up as literal text instead of silently working). Author: pi-landing (orchestrator; non-Aaron per El Director ruling). Stacked on live post-#895 (`e67cbbe`): #895 landed before this branch was cut.
ld-stopnow: epic-test: stub copies live in git history only (absence asserts, no retired/ dir)
All checks were successful
CI Review / helm-validate (pull_request) Successful in 12s
CI Review / runner-manifest-test (pull_request) Successful in 4s
CI Review / receiver-test (pull_request) Successful in 5s
CI Review / alert-receiver-test (pull_request) Successful in 21s
Lint & Validate / shellcheck (pull_request) Successful in 12s
Lint & Validate / yaml-lint (pull_request) Successful in 33s
CI Review / record-sql-test (pull_request) Successful in 2m24s
Lint & Validate / terraform-validate (pull_request) Successful in 2m50s
CI Review / dispatcher-test (pull_request) Successful in 3m55s
CI Review / cockpit-test (pull_request) Successful in 3m54s
CI Review / cockpit-e2e (pull_request) Successful in 3m55s
4684f07ebd
Collaborator

Verdict of record — ld-reviewer — head 4684f07ebd: APPROVE
model: deepseek
session: rev-alias-retire-4684f07-seatA

  1. Test rewrite coherent: 11 generator files (10 hashes + SHA256SUMS), 11 volume items = the 11 pairs list, loader probe loop 6 names vs == 6 / 0 diagnostics; each new mutation snippet touches the file its comment names. Ran the script on the extracted head: 20[phase1] PASS, all 21 git-ref-independent mutations bite (only the 2 sbx-common/sendrast-editado mutations stayed green because my copy has no origin/live).
  2. Scope exact: 11 files = 2 statefulsets, kustomization, SHA256SUMS, 5 deletions, 2 scripts; no sbx-common or sbx-sendrast hunk, so 20[guard] still hashes an unchanged render (sbx-sendrast kustomize rc=0).
  3. Recreate risk clean: kubectl kustomize sbx-gits and sbx-lab rc=0; sbx-skills-phase1 ConfigMap 11 keys = 11 items, zero item key missing; seed's 6 skill names, wait-orchestrator.sh, PURPOSE/AGENTS/session-rules all mounted; sha256sum -c SHA256SUMS 10/10 OK. Old-name /skill: → literal text, as intended.
  4. Not verified by me: the CI run on this head (the run list returned unrelated workflows) — that is the mechanical proof — and PVC leftovers on already-running pods.
    Nit (non-blocking): p1_check's comment at ~11319 still says "moved to retired/" though this PR ships no retired/; p1_fixture still loops the 5 retired names with 2>/dev/null cp, and p1_stub_min/p1_stub_one_line are now dead.
**Verdict of record — ld-reviewer — head 4684f07ebd7b7f24613f2484230fa5109a0eae89: APPROVE** model: deepseek session: rev-alias-retire-4684f07-seatA 1. Test rewrite coherent: 11 generator files (10 hashes + SHA256SUMS), 11 volume items = the 11 pairs list, loader probe loop 6 names vs `== 6` / 0 diagnostics; each new mutation snippet touches the file its comment names. Ran the script on the extracted head: 20[phase1] PASS, all 21 git-ref-independent mutations bite (only the 2 sbx-common/sendrast-editado mutations stayed green because my copy has no `origin/live`). 2. Scope exact: 11 files = 2 statefulsets, kustomization, SHA256SUMS, 5 deletions, 2 scripts; no sbx-common or sbx-sendrast hunk, so 20[guard] still hashes an unchanged render (sbx-sendrast kustomize rc=0). 3. Recreate risk clean: `kubectl kustomize` sbx-gits and sbx-lab rc=0; sbx-skills-phase1 ConfigMap 11 keys = 11 items, zero item key missing; seed's 6 skill names, wait-orchestrator.sh, PURPOSE/AGENTS/session-rules all mounted; `sha256sum -c SHA256SUMS` 10/10 OK. Old-name `/skill:` → literal text, as intended. 4. Not verified by me: the CI run on this head (the run list returned unrelated workflows) — that is the mechanical proof — and PVC leftovers on already-running pods. Nit (non-blocking): p1_check's comment at ~11319 still says "moved to retired/" though this PR ships no retired/; p1_fixture still loops the 5 retired names with 2>/dev/null cp, and p1_stub_min/p1_stub_one_line are now dead.
Collaborator

Verdict of record — ld-reviewer — head 4684f07ebd: APPROVE
model: deepseek
session: rev-alias-retire-4684f07-seatB3

No dangling functional reference in scope: generator 11 files, SHA256SUMS 10 lines, both seed loops and both volume-item lists clean, hash FILES clean; the only leftovers are the comment blocks the body declares intentional plus p1_fixture still cp-ing the 5 gone paths (silently no-ops; p1_stub_min/p1_stub_one_line now dead) — nit, not functional.
Resurrection guards bite: file back at old path ([[ -e ]]), line back in generator (grep + files!=11), line back in SHA256SUMS (count 10), espera-orq back, and volume item back (the awk path check turns red even without kubectl; render red with it). 23 p1_mut calls, no duplicate names.
Non-blocking gap: the items loop is presence-only, so a resurrected item in sbx-lab (mutation 22 only seeds sbx-gits) is caught only by the kubectl render — same guard, thinner coverage.
Verified origin/pr900 == 4684f07 and its tree equals this checkout except a local retired/ artifact that does NOT exist in the PR (files are deleted, no retired/ dir, as the body states). Light review, no epic-test rerun (seat A ran it green); no HOLD.

**Verdict of record — ld-reviewer — head 4684f07ebd7b7f24613f2484230fa5109a0eae89: APPROVE** model: deepseek session: rev-alias-retire-4684f07-seatB3 No dangling functional reference in scope: generator 11 files, SHA256SUMS 10 lines, both seed loops and both volume-item lists clean, hash `FILES` clean; the only leftovers are the comment blocks the body declares intentional plus `p1_fixture` still `cp`-ing the 5 gone paths (silently no-ops; `p1_stub_min`/`p1_stub_one_line` now dead) — nit, not functional. Resurrection guards bite: file back at old path (`[[ -e ]]`), line back in generator (grep + files!=11), line back in SHA256SUMS (count 10), espera-orq back, and volume item back (the awk path check turns red even without kubectl; render red with it). 23 p1_mut calls, no duplicate names. Non-blocking gap: the items loop is presence-only, so a resurrected item in sbx-lab (mutation 22 only seeds sbx-gits) is caught only by the kubectl render — same guard, thinner coverage. Verified `origin/pr900` == 4684f07 and its tree equals this checkout except a local `retired/` artifact that does NOT exist in the PR (files are deleted, no retired/ dir, as the body states). Light review, no epic-test rerun (seat A ran it green); no HOLD.
ld-stopnow: merge live #860 into the alias-retire branch (rebase for #900)
Some checks are pending
CI Review / helm-validate (pull_request) Waiting to run
CI Review / runner-manifest-test (pull_request) Waiting to run
CI Review / receiver-test (pull_request) Waiting to run
CI Review / dispatcher-test (pull_request) Waiting to run
CI Review / alert-receiver-test (pull_request) Waiting to run
CI Review / cockpit-test (pull_request) Waiting to run
CI Review / cockpit-e2e (pull_request) Waiting to run
CI Review / record-sql-test (pull_request) Waiting to run
Lint & Validate / terraform-validate (pull_request) Waiting to run
Lint & Validate / yaml-lint (pull_request) Waiting to run
Lint & Validate / shellcheck (pull_request) Waiting to run
44733d8132
ld-stopnow: merge live #860 into the alias-retire branch (rebase for #900)
Some checks failed
CI Review / helm-validate (pull_request) Has been cancelled
CI Review / dispatcher-test (pull_request) Has been cancelled
Lint & Validate / terraform-validate (pull_request) Has been cancelled
Lint & Validate / yaml-lint (pull_request) Has been cancelled
CI Review / runner-manifest-test (pull_request) Has been cancelled
CI Review / receiver-test (pull_request) Has been cancelled
CI Review / alert-receiver-test (pull_request) Has been cancelled
CI Review / cockpit-test (pull_request) Has been cancelled
CI Review / record-sql-test (pull_request) Has been cancelled
CI Review / cockpit-e2e (pull_request) Has been cancelled
Lint & Validate / shellcheck (pull_request) Has been cancelled
d9dfb4f2e3
ld-stopnow: merge live #860 into the alias-retire branch (rebase for #900)
All checks were successful
CI Review / runner-manifest-test (pull_request) Successful in 5s
CI Review / receiver-test (pull_request) Successful in 4s
CI Review / helm-validate (pull_request) Successful in 10s
Lint & Validate / shellcheck (pull_request) Successful in 5s
CI Review / alert-receiver-test (pull_request) Successful in 20s
CI Review / record-sql-test (pull_request) Successful in 1m23s
Lint & Validate / terraform-validate (pull_request) Successful in 2m13s
Lint & Validate / yaml-lint (pull_request) Successful in 22s
CI Review / cockpit-test (pull_request) Successful in 2m25s
CI Review / cockpit-e2e (pull_request) Successful in 2m50s
CI Review / dispatcher-test (pull_request) Successful in 3m27s
3c11b5f07c
Collaborator

Verdict of record — ld-reviewer — head 3c11b5f07c: APPROVE
model: omniroute/deepseek-flash
session: rev-900-r2-seatB

Check 1 (file set): git diff origin/live origin/plane/ld-stopnow-alias-retire --stat is exactly the 11 stated paths — the 5 stub deletions, kustomization.yaml -5, SHA256SUMS -5, sbx-gits + sbx-lab statefulsets, scripts/gits-sbx-epic-test.sh, scripts/gits-sbx-hash-skills.sh — with no added files and no unexpected paths. Component head: 10 shipped md/sh files, 10 SHA256SUMS lines, 11 generator entries, exactly the 6 English skill dirs.
Check 2 (merge integrity, #860 intact + #900 applied): sbx-gits/statefulset.yaml on this head still has JAVA_TOOL_OPTIONS, -Djava.io.tmpdir=/home/ld/work/tmp, the sys.boot_completed exec readinessProbe with its comments and the tmp emptyDir sizeLimit 8Gi — marker counts identical to origin/live (3/6/1/3/1) — and grep for the 5 stub volume items and the espera-orq copy block returns nothing (rc=1); the seed loop is now the 6 English skills in both statefulsets.
Check 3 (harness parity): full suite run on fresh worktrees of origin/plane/ld-stopnow-alias-retire and origin/live gives 19 FAIL each; after normalizing /tmp paths the FAIL lists are byte-identical, so zero new failures on this runner. 20[phase1] is green on the branch (invariant + all 23 mutations, including the 5 resurrection guards) and the two sbx-gits-diff checks that live SKIPs now actually RUN and pass.
Non-blocking nit only: two harness comments (~11413-11415 and ~11479-11481) still say the stubs were "moved to retired/ in this directory"; the PR body decides git history and no retired/ tree exists, and the comment 40 lines below already says "git history only" — comment text only, nothing functional.

**Verdict of record — ld-reviewer — head 3c11b5f07c142db39e0b26f62e1c079a31369db0: APPROVE** model: omniroute/deepseek-flash session: rev-900-r2-seatB Check 1 (file set): `git diff origin/live origin/plane/ld-stopnow-alias-retire --stat` is exactly the 11 stated paths — the 5 stub deletions, kustomization.yaml -5, SHA256SUMS -5, sbx-gits + sbx-lab statefulsets, scripts/gits-sbx-epic-test.sh, scripts/gits-sbx-hash-skills.sh — with no added files and no unexpected paths. Component head: 10 shipped md/sh files, 10 SHA256SUMS lines, 11 generator entries, exactly the 6 English skill dirs. Check 2 (merge integrity, #860 intact + #900 applied): sbx-gits/statefulset.yaml on this head still has JAVA_TOOL_OPTIONS, -Djava.io.tmpdir=/home/ld/work/tmp, the sys.boot_completed exec readinessProbe with its comments and the tmp emptyDir sizeLimit 8Gi — marker counts identical to origin/live (3/6/1/3/1) — and grep for the 5 stub volume items and the espera-orq copy block returns nothing (rc=1); the seed loop is now the 6 English skills in both statefulsets. Check 3 (harness parity): full suite run on fresh worktrees of origin/plane/ld-stopnow-alias-retire and origin/live gives 19 FAIL each; after normalizing /tmp paths the FAIL lists are byte-identical, so zero new failures on this runner. 20[phase1] is green on the branch (invariant + all 23 mutations, including the 5 resurrection guards) and the two sbx-gits-diff checks that live SKIPs now actually RUN and pass. Non-blocking nit only: two harness comments (~11413-11415 and ~11479-11481) still say the stubs were "moved to retired/ in this directory"; the PR body decides git history and no retired/ tree exists, and the comment 40 lines below already says "git history only" — comment text only, nothing functional.
Collaborator

Verdict of record — ld-reviewer — head 3c11b5f07c: APPROVE
model: omniroute/deepseek-flash
session: rev-900-r2-seatC

  • Check 1: diff --name-status origin/live..origin/plane/ld-stopnow-alias-retire = exactly 11 files, no additions: 5 stub deletions (hipervisor/intencion/juez/supervisor-epica .SKILL.md + supervisor-epica.espera-orq.sh), plus kustomization, SHA256SUMS, sbx-gits/statefulset, sbx-lab/statefulset, 2 scripts.
  • Check 2: sbx-gits/statefulset.yaml keeps #860 (20 hits for JAVA_TOOL_OPTIONS / sys.boot_completed / 8Gi) and has 0 hits for key: hipervisor.SKILL.md / espera-orq — #900 stub volume items and seed copies removed.
  • Check 3: scripts/gits-sbx-epic-test.sh run on tree (716 checks) and on live (714): FAIL lists byte-identical after /tmp normalization — same 19 pre-existing environmental failures (incl. 28[HOMELAB-2682] TMPDIR seat checks), zero new; tree adds 2 passing checks for the retirement invariant.
  • Head verified equal to the exact head in the seat assignment; rebase onto live (85ad743, with #860) is clean.
**Verdict of record — ld-reviewer — head 3c11b5f07c142db39e0b26f62e1c079a31369db0: APPROVE** model: omniroute/deepseek-flash session: rev-900-r2-seatC - Check 1: `diff --name-status origin/live..origin/plane/ld-stopnow-alias-retire` = exactly 11 files, no additions: 5 stub deletions (hipervisor/intencion/juez/supervisor-epica `.SKILL.md` + `supervisor-epica.espera-orq.sh`), plus kustomization, SHA256SUMS, sbx-gits/statefulset, sbx-lab/statefulset, 2 scripts. - Check 2: sbx-gits/statefulset.yaml keeps #860 (20 hits for JAVA_TOOL_OPTIONS / sys.boot_completed / 8Gi) and has 0 hits for `key: hipervisor.SKILL.md` / `espera-orq` — #900 stub volume items and seed copies removed. - Check 3: `scripts/gits-sbx-epic-test.sh` run on tree (716 checks) and on live (714): FAIL lists byte-identical after /tmp normalization — same 19 pre-existing environmental failures (incl. 28[HOMELAB-2682] TMPDIR seat checks), zero new; tree adds 2 passing checks for the retirement invariant. - Head verified equal to the exact head in the seat assignment; rebase onto live (85ad743, with #860) is clean.
Sign in to join this conversation.
No reviewers
No labels
operator-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Homelab/infra-core!900
No description provided.