Phase 1 MVP: drop-in step registry + session + Markdown report

Plugin skeleton, drop-in step registry, option-backed session, single-page
checklist UI, downloadable Markdown report. Steps live as one file each
under includes/steps/ — adding/removing one is a single file change.
Step IDs are stable strings so renaming files preserves session data.

Architecture (hc-5ix.3): WPH_Steps singleton globs includes/steps/*.php,
natsort-orders by filename, requires each file (which returns a WPH_Step
instance), then applies a 'wph_steps' filter so installs can drop steps.

Session (hc-5ix.4): option-backed (per decision — plugin is installed
per-engagement, so DB-resident history would be lost on uninstall).
Single in-progress session per site; finished sessions render a report
that the user downloads/copies.

Recovery bootstrap (hc-5ix.1): detects whether wp-site-recovery is
installed + active, surfaces state on the start panel and in every
active session. Manual install for now; private update channel deferred
to hc-5ix.27.

Smoke-tested on testsite: registry discovery (13 steps in correct order),
start → update_step → progress count → finish → 8KB Markdown report →
discard cycle.
This commit is contained in:
2026-06-11 15:49:29 +01:00
parent d0d4d433d8
commit 8de7cad0de
23 changed files with 1160 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
<?php
if (!defined('ABSPATH')) exit;
return new class extends WPH_Step {
public function id(): string { return 'before'; }
public function title(): string { return 'Before You Start'; }
public function blurb(): string {
return 'Confirm prerequisites before touching anything.';
}
public function sub_items(): array {
return [
'Confirm you have admin access to the WordPress dashboard and hosting control panel',
'Check the client record for any known issues, recent changes, or flags from the previous healthcheck',
'Note the current WordPress version, PHP version, and active theme before touching anything',
'Install our recovery plugin (Site Recovery) — done via the button below',
'Make a note of the recovery path in case there is a problem',
];
}
};