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
Authority: SPARXSTAR-Engineering-Standards-v1.0 §6.2 (PascalCase classes, Sparxstar prefix for platform classes, file name matches class) + Max's direction. Post-S-01 hold on S-03 is lifted.
Sequencing: the gate consolidation PR (#89) merged (9cf75d9) — the S-03 hard gate ("do not start before the gate PR merges") is satisfied. This is Phase 1 (discovery only — no code changes).Phase 2 (execute) does not start until Max approves the rename map + delete list below.
Method:git grep / ripgrep sweep over merged main (9cf75d9). Counts exclude GATE-AUDIT-PAM003.md.
0. Headline: this is two parallel plugins, not one
"UEC legacy removal" therefore = deciding the fate of the entire legacy entrypoint + its UEC class tree + its stored data, not just renaming classes. Decision for Max: is the legacy entrypoint retired entirely, or kept as a thin shim? (see §4).
1. Reference inventory (by category)
Identifier
Files
SparxstarUEC (any)
52
Starisian\SparxstarUEC namespace
47
"Sparxstar User Environment Check" (string)
2
SirusPlugin
6
StarUserEnv (frozen facade)
22
UECCompatibilityShim
4
SirusUserEnv
0 — does not exist (see §6)
2. Legacy UEC class set (src/) — proposed classification (DRAFT, pending Max)
All in namespace Starisian\SparxstarUEC\*. Classification axis: superseded by Sirus/StarUserEnv (DELETE) vs live functionality with no Sirus equivalent (RENAME).
Class / file
Proposed
Rationale / flag
src/SparxstarUserEnvironmentCheck.php
DELETE (with entrypoint)
Legacy plugin main class; superseded by SirusPlugin. Tied to legacy entrypoint retirement.
src/core/SparxstarUECInstaller.php
DELETE ⚠
Owns spx_uec_activate/deactivate + table creation (sparxstar_uec_snapshots). Wire/data-adjacent — see §5.
Snapshot storage — does Sirus have an equivalent? Needs Max.
src/services/SparxstarUECGeoIPService.php
RENAME? ⚠
Live GeoIP; owns options sparxstar_uec_geoip_provider, _ipinfo_api_key, _maxmind_db_path. No obvious Sirus equivalent → likely RENAME, but option keys are data-adjacent (§5).
src/includes/SparxstarUECSessionManager.php
REVIEW
Session handling; check Sirus overlap.
src/includes/SparxstarUECCacheHelper.php
REVIEW
Cache helper; check ContextCache overlap.
src/core/SparxstarUECAssetManager.php
REVIEW
Asset enqueue; Sirus has its own enqueueAssets.
src/admin/SparxstarUECAdmin.php
REVIEW
Settings UI bound to the sparxstar_uec_* options + register_setting.
src/api/SparxstarUECRESTController.php
REVIEW ⚠
REST routes — namespace is wire-adjacent (§5).
src/cron/SparxstarUECScheduler.php
REVIEW
Cron; check Sirus cron hooks overlap.
docs/php/SparxstarUEC*.md (12 files) follow their classes. tests/unit/SparxstarUEC*Test.php (6) follow theirs.
3. Confirmed renames (Max-specified)
Old
New
Status
src/SirusPlugin.php → SparxstarSirusContext.php; class SirusPlugin → SparxstarSirusContext
✅ actionable
SirusPlugin referenced in 6 files incl. the live entrypoint sparxstar-sirus-context.php:45-51 (activation/deactivation/getInstance) — all must update.
src/StarUserEnv.php — the frozen facade, deliberately kept in the legacynamespace Starisian\SparxstarUEC;, delegating to Sirus ContextEngine.
src/integrations/UECCompatibilityShim.php — exists specifically to keep the old Starisian\SparxstarUEC namespace working via class aliases.
The only Sirus-namespace file referencing SparxstarUEC is the shim → the live engine is cleanly separated, bridged only by facade+shim.
➡ Renaming the SparxstarUEC namespace or StarUserEnv breaks the exact contract the shim preserves. Per the issue, these need Max's explicit decision: keep the facade+shim frozen (recommended — that's their purpose), or retire the back-compat surface and accept the break.
5. Wire-adjacent items — one decision per line (renaming silently orphans data/integrations)
Delete list (pending Max — legacy entrypoint retirement):
sparxstar-user-environment-check.php + src/SparxstarUserEnvironmentCheck.php + the superseded SparxstarUEC* core classes (§2) + their docs/php/*.md + tests/unit/SparxstarUEC*Test.php, only for classes confirmed superseded and whose data (§5) is migrated or discarded by decision.
8. Open decisions for Max (blocking Phase 2)
Retire the legacy UEC entrypoint entirely, or keep a thin compat entrypoint?
Keep StarUserEnv + UECCompatibilityShim frozen (recommended), or retire the back-compat surface?
Per §5: for each option key / the snapshot table / REST namespace — migrate (with data migration), or leave under legacy names?
Which §2 "REVIEW" classes are superseded by Sirus (DELETE) vs live (RENAME)?
Cross-platform note: the same sweep almost certainly applies to Helios (StarUserEnv shares the S-00 lineage). This inventory doubles as the template for the Helios audit.
Phase 2 will be one PR — renames + deletions only, no behavior changes; composer.json PSR-4 updated; composer dump-autoload clean; tests updated; grep SparxstarUEC / old class names returns nothing except CHANGELOG — once this map is approved.
Authority: SPARXSTAR-Engineering-Standards-v1.0 §6.2 (PascalCase classes,
Sparxstarprefix for platform classes, file name matches class) + Max's direction. Post-S-01 hold on S-03 is lifted.Sequencing: the gate consolidation PR (#89) merged (
9cf75d9) — the S-03 hard gate ("do not start before the gate PR merges") is satisfied. This is Phase 1 (discovery only — no code changes). Phase 2 (execute) does not start until Max approves the rename map + delete list below.Method:
git grep/ ripgrep sweep over mergedmain(9cf75d9). Counts excludeGATE-AUDIT-PAM003.md.0. Headline: this is two parallel plugins, not one
There are two active entrypoints:
sparxstar-sirus-context.phpsparxstar-sirus\Starisian\Sparxstar\Sirus\SirusPlugin(getInstance/onActivation)sparxstar-user-environment-check.phpsparxstar-user-environment-checkStarisian\SparxstarUEC\SparxstarUserEnvironmentCheck::spx_uec_get_instance()+SparxstarUECInstaller::spx_uec_activate/deactivate"UEC legacy removal" therefore = deciding the fate of the entire legacy entrypoint + its UEC class tree + its stored data, not just renaming classes. Decision for Max: is the legacy entrypoint retired entirely, or kept as a thin shim? (see §4).
1. Reference inventory (by category)
SparxstarUEC(any)Starisian\SparxstarUECnamespace"Sparxstar User Environment Check"(string)SirusPluginStarUserEnv(frozen facade)UECCompatibilityShimSirusUserEnv2. Legacy UEC class set (
src/) — proposed classification (DRAFT, pending Max)All in namespace
Starisian\SparxstarUEC\*. Classification axis: superseded by Sirus/StarUserEnv(DELETE) vs live functionality with no Sirus equivalent (RENAME).src/SparxstarUserEnvironmentCheck.phpSirusPlugin. Tied to legacy entrypoint retirement.src/core/SparxstarUECInstaller.phpspx_uec_activate/deactivate+ table creation (sparxstar_uec_snapshots). Wire/data-adjacent — see §5.src/core/SparxstarUECKernel.phpSirusPlugin.src/core/SparxstarUECDatabase.phpsparxstar_uec_db_versionoption + snapshot table. Data-adjacent.src/core/SparxstarUECSnapshotRepository.phpsrc/services/SparxstarUECGeoIPService.phpsparxstar_uec_geoip_provider,_ipinfo_api_key,_maxmind_db_path. No obvious Sirus equivalent → likely RENAME, but option keys are data-adjacent (§5).src/includes/SparxstarUECSessionManager.phpsrc/includes/SparxstarUECCacheHelper.phpContextCacheoverlap.src/core/SparxstarUECAssetManager.phpenqueueAssets.src/admin/SparxstarUECAdmin.phpsparxstar_uec_*options +register_setting.src/api/SparxstarUECRESTController.phpsrc/cron/SparxstarUECScheduler.phpdocs/php/SparxstarUEC*.md(12 files) follow their classes.tests/unit/SparxstarUEC*Test.php(6) follow theirs.3. Confirmed renames (Max-specified)
src/SirusPlugin.php→SparxstarSirusContext.php; classSirusPlugin→SparxstarSirusContextSirusPluginreferenced in 6 files incl. the live entrypointsparxstar-sirus-context.php:45-51(activation/deactivation/getInstance) — all must update.SirusUserEnv.php→SparxstarSirusEnv.php4. Frozen facade / shim — needs Max's explicit call (issue's own guardrail)
src/StarUserEnv.php— the frozen facade, deliberately kept in the legacynamespace Starisian\SparxstarUEC;, delegating to SirusContextEngine.src/integrations/UECCompatibilityShim.php— exists specifically to keep the oldStarisian\SparxstarUECnamespace working via class aliases.SparxstarUECis the shim → the live engine is cleanly separated, bridged only by facade+shim.➡ Renaming the
SparxstarUECnamespace orStarUserEnvbreaks the exact contract the shim preserves. Per the issue, these need Max's explicit decision: keep the facade+shim frozen (recommended — that's their purpose), or retire the back-compat surface and accept the break.5. Wire-adjacent items — one decision per line (renaming silently orphans data/integrations)
sparxstar_uec_geoip_providerwp_optionssparxstar_uec_ipinfo_api_keywp_optionssparxstar_uec_maxmind_db_pathwp_optionssparxstar_uec_db_versionwp_optionssparxstar_uec_snapshots(SPX_ENV_CHECK_DB_TABLE_NAME)SPX_UEC_LOADED,SPX_ENV_CHECK_*(dual-defined)SPX_UEC_*/SPX_ENV_CHECK_*sparxstar-user-environment-check/sparxstar_user_environment_checksparxstar-sirusSparxstarUECRESTControllerroutesspx_uec_activate/spx_uec_deactivate(+ cron hooks)6. ⛔ Discrepancy:
SirusUserEnv.phpdoes not existThe Max-specified rename #2 (
SirusUserEnv.php → SparxstarSirusEnv.php) has no matching file (0 references). Nearest candidates:src/StarUserEnv.php— the frozen facade (§4). Renaming it is exactly what §4 says needs Max's call.src/SparxstarUserEnvironmentCheck.php— legacy main class (proposed DELETE).➡ Need Max to confirm the intended target of rename #2 (likely
StarUserEnv→SparxstarSirusEnv?), noting it is the frozen facade.7. DRAFT rename map + delete list (for Max's approval — Phase 2 gate)
Renames (confident):
Starisian\Sparxstar\Sirus\SirusPlugin→…\SparxstarSirusContext(src/SirusPlugin.php→src/SparxstarSirusContext.php); updatesparxstar-sirus-context.php+ 5 other refs.Renames (pending Max — facade/wire):
StarUserEnv/SparxstarUECnamespace /UECCompatibilityShim— §4.Delete list (pending Max — legacy entrypoint retirement):
sparxstar-user-environment-check.php+src/SparxstarUserEnvironmentCheck.php+ the supersededSparxstarUEC*core classes (§2) + theirdocs/php/*.md+tests/unit/SparxstarUEC*Test.php, only for classes confirmed superseded and whose data (§5) is migrated or discarded by decision.8. Open decisions for Max (blocking Phase 2)
StarUserEnv+UECCompatibilityShimfrozen (recommended), or retire the back-compat surface?Cross-platform note: the same sweep almost certainly applies to Helios (
StarUserEnvshares the S-00 lineage). This inventory doubles as the template for the Helios audit.Phase 2 will be one PR — renames + deletions only, no behavior changes;
composer.jsonPSR-4 updated;composer dump-autoloadclean; tests updated;grep SparxstarUEC/ old class names returns nothing except CHANGELOG — once this map is approved.