You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document defines the retirement gate for legacy AIOS-era slash-command shims and `aios-*` skill aliases. It does not authorize deletion. It makes deletion possible later only after generated surfaces prove canonical AIOX skills are unique, validation blocks duplicate payloads, supported IDE projections pass, and the compatibility window is approved.
|`.aiox-core/infrastructure/scripts/codex-skills-sync/index.js`| canonical payload generator + legacy id normalizer | Generates `aiox-*` skill ids and now normalizes `aios-*` inputs to `aiox-*`. | Keep. This is the source of canonical Codex skill ids. |
17
+
|`.aiox-core/infrastructure/scripts/codex-skills-sync/validate.js`| strict validator + legacy alias detector | Strict mode reports legacy aliases, rejects full duplicate payloads and rejects duplicate orphaned canonical payloads. | Keep as blocking gate before any alias removal. |
18
+
|`.codex/skills/`| generated projection | Observed 13 `aiox-*` skill dirs and 0 `aios-*` dirs in this worktree. | Canonical projection. Regenerate with `npm run sync:skills:codex`. |
19
+
|`.claude/commands/AIOX/agents/*.md`| legacy slash-command shims | 12 command files contain `ACORE-CLAUDE-AGENT-COMMAND: legacy-shim` and redirect to `.claude/skills/AIOX/agents/*/SKILL.md`. | Keep until usage cutoff or telemetry evidence approves removal. |
20
+
|`.claude/skills/AIOX/agents/*/SKILL.md`| canonical Claude skill payloads | 12 skill dirs observed. | Canonical Claude activation payloads. |
21
+
|`.claude/skills/AIOX/agents/aiox-master/SKILL.md`| canonical payload with current double-prefix frontmatter | Current generated frontmatter contains `name: aiox-aiox-master`. | Classify as existing contract; do not change without a separate focused compatibility story. |
22
+
|`.aiox-core/infrastructure/scripts/ide-sync/transformers/kimi.js`| canonical Kimi generator + legacy id normalizer |`aios-*` preferred aliases normalize to `aiox-*`; tests cover this. | Keep. |
|`.gemini/commands/`| generated projection | Observed 13 `aiox-*` command files, including `aiox-menu.toml`, and 0 `aios-*` files. | Canonical projection. |
26
+
|`sinkra-hub/apps/gateway-ai/hooks/aios-command`| external legacy consumer | Existing package/hook name and logs still use `aios-command`. | Do not change in this story; open an owning-repo story before migration. |
27
+
28
+
## Blocking Rules
29
+
30
+
Strict Codex skill validation must fail when any of these conditions appears:
31
+
32
+
- a legacy `aios-*` directory contains a full activation payload instead of a classified redirect;
33
+
- an orphaned canonical `aiox-*` directory duplicates the full payload of a known source agent;
34
+
- an unexpected `aiox-*` generated skill directory is orphaned from source agents, unless it is an explicitly detected generated squad skill.
35
+
36
+
Strict validation may pass with an intentional legacy alias only when the alias is a thin redirect with the exact `AIOX-CODEX-LEGACY-ALIAS: redirect` marker and an explicit canonical redirect sentence. Any extra non-redirect content is fatal. Passing aliases are still reported as warnings so the migration remains visible.
37
+
38
+
## Removal Criteria
39
+
40
+
Legacy slash-command shims or `aios-*` alias dirs may only be removed after all criteria below are true:
41
+
42
+
1.`npm run sync:skills:codex` produces no unexpected generated diff.
43
+
2.`npm run validate:codex-skills:self-test` passes.
44
+
3.`npm run validate:codex-sync` and `npm run validate:codex-integration` pass.
45
+
4.`npm run sync:ide:check` passes for enabled IDE targets.
46
+
5.`npm run validate:gemini-sync` and `npm run validate:gemini-integration` pass.
47
+
6. The generated-surface inventory shows one canonical payload per supported agent per IDE surface.
48
+
7. Legacy shim usage is either measured as zero for one full minor release or covered by a documented support cutoff.
49
+
8.`@architect`, `@qa` and `@po` approve the removal story before deletion.
50
+
51
+
## Compatibility Window
52
+
53
+
Default window: keep legacy command shims and legacy alias recognition for at least one full minor release after this validation gate lands. If no telemetry exists for a specific shim surface, the removal story must provide a dated support cutoff and rollback plan before deletion.
54
+
55
+
## Validation Evidence
56
+
57
+
Validated on 2026-05-09 from branch `feat/pro-14-5-legacy-shim-retirement`:
58
+
59
+
| Command | Result | Notes |
60
+
|---|---|---|
61
+
|`npm ci`| Pass | Installed dependencies cleanly; transient executable mode drift from install was reverted before commit. |
62
+
|`npm run sync:skills:codex`| Pass | Generated 12 Codex skills. |
|`npm run validate:codex-integration`| Pass with warning | Warns that generated squad skill `aiox-claude-mastery-chief` makes Codex skill count 13/12; existing known generated extra, not a duplicate legacy payload. |
|`npm run validate:gemini-integration`| Pass with warning | Warns `.gemini/rules.md` is not present; existing integration warning. |
69
+
|`npm run lint`| Pass | Re-run after full tests released temporary fixture state. |
70
+
|`npm run typecheck`| Pass | No TypeScript errors. |
71
+
|`npm test -- --runInBand --forceExit`| Pass | 341 suites passed, 12 skipped; 8433 tests passed, 172 skipped. `--forceExit` used because the exact command kept open handles after completion. |
72
+
|`npm run build`| Unavailable | Package has no `build` script; `npm run validate:publish` was run as the package publication gate instead. |
73
+
|`npm run validate:publish`| Pass | Package contents, dependency completeness and publish safety gate passed. |
74
+
|`git diff --check`| Pass | No whitespace errors. |
0 commit comments