=== Tandem PHP Upgrade Gatekeeper ===
Contributors: tandemresistentia
Tags: php, updates, compatibility, administration, security
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

PHP upgrade gatekeeper: target PHP policy, readiness tracking, and warn/soft-block on risky updates — not a one-shot scanner.

== Description ==

Tandem PHP Upgrade Gatekeeper is an **update policy and readiness** tool for sites preparing a PHP bump.

Most PHP-compatibility plugins ask you to run a full-site scan and read a report. Tandem PHP Upgrade Gatekeeper’s primary job is different:

1. Set a **target PHP** version (the version you plan to move to)
2. Choose an **upgrade gate policy** — Warn (default), Soft-block (opt-in), or Off
3. See a **readiness inventory** of installed plugins and themes
4. Get a contextual warning when an update looks at-risk for that target
5. If Soft-block is enabled, pause that update until you click **Allow next update** (nonce-protected, 30 minutes)

It does **not** replace staging tests, host PHP tools, or developer-grade PHPCS / PHPCompatibility suites. Heuristics are local guidance only.

**What Tandem PHP Upgrade Gatekeeper intentionally is not**

* Not a Tide / remote scan service
* Not a “Run scan → giant report” competitor to modern delta scanners
* Not a guarantee that production PHP upgrades will succeed

**Defaults that respect the admin experience**

* Gate mode defaults to **Warn** (updates still succeed; notice only)
* Soft-block is **opt-in**
* Theme gating defaults **off**
* WordPress **core updates are never gated**

Analysis is local (no remote calls, no shell `exec`). Encoded / non-analyzable packages are marked **Unknown**. Always verify on staging before changing production PHP.

== Installation ==

1. Upload the `tandem-php-upgrade-gatekeeper` folder to `/wp-content/plugins/tandem-php-upgrade-gatekeeper`, or install the zip via Plugins → Add New → Upload.
2. Activate through the Plugins screen.
3. Open **Tools → Tandem PHP Upgrade Gatekeeper**.
4. Set target PHP and keep **Warn** until you understand readiness results.

== Frequently Asked Questions ==

= Is this another PHP Compatibility Checker / scanner? =

No. Tide-style checkers and newer delta scanners focus on **Run scan → report**. Tandem PHP Upgrade Gatekeeper focuses on **target PHP policy + update-time guidance + readiness over time**. Refreshing the readiness inventory supports that policy; it is not the product hero.

= How is this different from BrightLeaf or similar scanners? =

Those tools optimize deep / delta scanning and badges. Tandem PHP Upgrade Gatekeeper optimizes the **admin decision at update time** while you prepare a PHP upgrade. If you only want a one-shot lint report, use a scanner. If you want update policy + readiness tracking, use Tandem PHP Upgrade Gatekeeper.

= Does it phone home or send plugin code off-site? =

No. All analysis runs on your server. No accounts, no SaaS, no Tide.

= Will it block WordPress core updates? =

No. Core updates are never gated.

= Does Soft-block hijack my site? =

Soft-block is **off by default**. Warn mode only shows notices. Soft-block only applies when you enable it, only to plugin (and optional theme) updates that look at-risk, and always includes an in-plugin **Allow next update** escape hatch.

= How do I override a soft-block? =

Open **Tools → Tandem PHP Upgrade Gatekeeper**, click **Allow next update** on the package, then retry the update (valid for 30 minutes). Or switch gate mode back to Warn / Off.

= Is this legal / hosting compliance advice? =

No. It is heuristic technical guidance for site admins. Follow your host’s PHP upgrade process and test on staging.

== Privacy Policy ==

Tandem PHP Upgrade Gatekeeper does not collect, transmit, or sell personal data. It does not phone home. It only reads local plugin/theme PHP files on the site to produce readiness heuristics and update notices. No external service is contacted by this plugin.

== Changelog ==

= 1.0.0 =
* Target PHP policy, readiness inventory (plugins + themes)
* Warn (default) / soft-block (opt-in) / off gate on updates
* Theme gating off by default; core updates never gated
* Nonce-protected Allow next update
* Post-update delta re-check
* Encoded packages → unknown; local heuristics only (no exec, no remote)

== Upgrade Notice ==

= 1.0.0 =
First stable release: PHP upgrade gatekeeper with readiness tracking.
