History records actually represent the stateful transitions made by your workflow. This is basically the core unit of Temporal and is what allows the system to provide high levels of reliability and replayability.
Visibility records on the other hand do not represent the history of state mutations but rather metadata about the execution of the workflow itself. There are default attributes that are available to query from the visibility layer such as number of running workflow executions, number of stopped workflows etc. You can also add custom “searchable attributes” by taking advantage of ElasticSearch which enable you to query against custom properties inside running workflows.
The docs definitely are lacking in that department. I’ll make sure we improve that area.