← ClaudeAtlas

orbit-host-sharedlisted

Audit a WordPress plugin for low-tier shared-hosting compatibility — memory limits (64MB common), execution-time limits (30s), disk-quota limits (1-5GB), no SSH, no shell exec, no Redis, slow disk I/O. Most "broken plugin" reports come from shared-hosting users hitting silent limits. Use when the user says "shared hosting", "Bluehost / GoDaddy / Hostinger compat", "low-tier hosting".
adityaarsharma/orbit · ★ 1 · Testing & QA · score 55
Install: claude install-skill adityaarsharma/orbit
# 🪐 orbit-host-shared — Shared hosting compat Shared hosting is where 60% of WP sites still live. Plugins that work on the dev's M2 Pro break on a 64MB shared plan. This skill catches the patterns. --- ## What this skill checks ### 1. Memory budget **Whitepaper intent:** Shared hosts default to 64MB or 128MB PHP memory. WP core takes ~30MB at idle. That leaves ~30-90MB for the entire plugin stack. A plugin allocating 200MB of objects on activation kills the site. ```php // Detect available memory $limit = ini_get( 'memory_limit' ); $bytes = wp_convert_hr_to_bytes( $limit ); if ( $bytes < 128 * MB_IN_BYTES ) { // Low-memory mode: smaller batch sizes, no in-memory caching } ``` ### 2. Execution-time budget 30s default `max_execution_time`. Long-running operations (mass migrations, big DB queries) MUST chunk. ```php // ❌ Process all 50,000 users in one request foreach ( get_users() as $u ) { ... } // 60 sec — dies // ✅ Chunk via cron wp_schedule_single_event( time(), 'my_plugin_process_chunk', [ 0, 500 ] ); ``` ### 3. No `exec()` / `shell_exec()` Shared hosts disable these via `disable_functions`. Plugins using them break silently. ```php // ❌ Will fail on most shared hosts exec( 'gzip ' . $file ); // ✅ Use PHP-native or wp_remote $gzipped = gzencode( file_get_contents( $file ) ); file_put_contents( $file . '.gz', $gzipped ); ``` ### 4. No Redis / Memcached Default shared hosting = no persistent object cache. `wp_cache_*` falls back to in-process only. If your p