Exactly what FormSummon can see.
This is the product, not the small print. If you can’t tell what leaves your site, you have no reason to trust anything else we say.
| Context | Analysed locally | Shared with SiteSummon | Shared with an AI provider |
|---|---|---|---|
| WordPress and PHP versions | Yes | Yes | When relevant |
| Plugin names and versions | Yes | With consent | When relevant |
| Hook names and callbacks | Yes | With consent | Selected results |
| Theme design information | Yes | With consent | Relevant tokens |
| Custom source code | Yes | Request-specific | Explicit authorisation |
| PHP error fingerprints | Yes | With consent | When relevant |
| PHP error messages and traces | Yes | Explicit diagnostic permission | Explicit authorisation |
| Submission content | Yes | No by default | Only a single item you name |
| Secrets and API keys | Never | Never | Never |
Error logs are treated as sensitive
A PHP error message routinely contains submitted form values, session tokens, database fragments and absolute filesystem paths. By default FormSummon collects only a redacted fingerprint — a hash of the error class, file and line, plus how often and when. Actual messages and stack traces need explicit, time-boxed diagnostic permission.
Your submissions stay on your site
Form submissions are not synchronised to SiteSummon. If you ask the assistant about one specific submission, that one is sent for that one request. There is no background copy.
What we learn, and what we never pool
FormSummon gets better at WordPress by accumulating compatibility knowledge. There are firm limits on what may be accumulated:
| Knowledge | Rule |
|---|---|
| Public documentation, declared hooks, published APIs | Shared across customers |
| General compatibility outcomes | Shared once anonymised |
| Commercial plugin source or extracted implementation detail | Your tenant only |
| Your custom code | Your tenant only |
| Adapters generated for you | Your tenant only, unless you choose to contribute them |
So “version 3.2 of that plugin conflicts with deferred scripts” is something we remember for everyone. Source from a paid plugin you licensed, and code your developer wrote, is not — and never trains a model.
Before you connect anything
The plugin makes no outbound network request until you explicitly connect it and configure it. Not a version ping, not an activation beacon. Before connecting, it is entirely local.