SiteSummon
How it works

Minimum sufficient context.

Scanning an entire WordPress installation is expensive, intrusive and unnecessary. Scanning too little is dangerous. Here is the middle.

1. A structural map that stays on your site

FormSummon builds a lightweight picture of what exists: theme and page builder, active plugins and versions, post types and taxonomies, registered REST routes, relevant hook names, known integrations, whether custom snippets are present, and redacted error fingerprints. No source code. No submissions. No secrets. This map does not leave WordPress.

2. Your request decides what gets inspected

Ask for “a service form matching this page, populating the vessel field from our records, urgent requests to support and ordinary ones to the CRM” and FormSummon identifies four areas to look at. It requests detail about those four. Your WooCommerce install, your backups and your unrelated custom code are never read.

3. It follows each dependency far enough to be sure

Finding the vessel post type isn’t enough — it also needs the required metadata, the permissions and any filters that alter the data. Same for the support integration: the hook, its registered callbacks, how it authenticates and the payload it expects. Not the whole implementation; every relevant dependency traced to where it stops mattering.

4. The compatibility perimeter is checked every time

Every form touches the same surfaces regardless of what you asked for, and this is what catches the global customisation a request-scoped look would miss:

Caching earns its place on that list. A page cache serving a nonce past its lifetime, a cache TTL longer than the nonce TTL, or script concatenation breaking an inline handler all produce the same symptom: the form works perfectly for you, because you are logged in, and silently fails for every visitor who isn’t.

5. A gate that refuses to guess

Before anything is built, each adaptation gets one of three answers:

StateMeaning
ReadyThere is enough evidence to build and test safely.
Access neededOne specific function, setting or file needs your permission.
Human reviewProprietary, unreadable or too ambiguous to implement automatically.

This is evaluated per adaptation, not per request. Almost every real site has something unreadable somewhere, and one encoded plugin you aren’t even using should not block your contact form. What must be resolved is anything load-bearing.

6. Permission escalates in steps

Not one sweeping consent at install. Four, each explaining what is read and where it goes:

And every request ends with a receipt listing what was used and what was never transmitted.