orbit-host-pantheonlisted
Install: claude install-skill adityaarsharma/orbit
# 🪐 orbit-host-pantheon — Pantheon compat
Pantheon's environment is uniquely restrictive: most of the file system is **read-only** at runtime, code lives in git, deploys are git-driven. Plugins that write outside `wp-content/uploads` break.
---
## What this skill checks
### 1. Read-only filesystem (the big one)
**Whitepaper intent:** Pantheon's containers are immutable. Code (incl. plugins) is read-only at runtime. The only writable path is `wp-content/uploads/`. Plugins that try to write configs, caches, or logs anywhere else fail silently → mysterious bugs.
```php
// ❌ Fails on Pantheon
file_put_contents( WP_CONTENT_DIR . '/cache/my-plugin.json', $data );
fopen( ABSPATH . 'tmp.log', 'w' );
// ✅ Always works
$uploads = wp_upload_dir();
file_put_contents( $uploads['basedir'] . '/my-plugin/cache.json', $data );
```
### 2. Redis included by default
Pantheon ships Redis on all paid plans. Use `wp_cache_*` confidently:
```php
wp_cache_set( 'my_key', $value, 'my-plugin', HOUR_IN_SECONDS );
```
### 3. Multidev environments
Pantheon supports unlimited dev/test/live + branch-based dev environments. Detect:
```php
$env = $_ENV['PANTHEON_ENVIRONMENT'] ?? null; // 'dev', 'test', 'live', or branch name
if ( $env === 'live' ) {
// Production-only behaviour
}
```
### 4. Quicksilver hooks
Pantheon-specific event hooks (deploy, cache-clear). Your plugin doesn't NEED to integrate but can:
```yaml
# pantheon.yml
api_version: 1
workflows:
deploy:
after:
- type: webphp