Version history
Every save snapshots the prior state automatically. The History tab appears as soon as there is at least one snapshot. Each entry shows the version number, when it was taken, the name at the time, how many clauses it held, and a one-line summary of how it differs from the live playbook.1
Preview
Opens a side-by-side comparison of that version against the current playbook, field by field.
2
Restore
Rolls the live playbook back to that version.
3
Undo the restore if you need to
The state you restored away from is snapshotted first, so a restore is itself recorded in history.
A bad restore is always one more restore away from being fixed.
Applying a drift suggestion also writes a snapshot before it changes anything, so learning-loop edits are undoable the same way.
Defaults
Each contract type can have one default playbook. Mark a playbook as the default from its row on the playbooks list, and any previous default for that same contract type steps aside. When drafting or review needs a playbook and you did not pick one explicitly, the resolution runs in this order:- The playbook you picked explicitly on the form.
- The default playbook for that contract type.
- The most recently updated playbook of that contract type.
- The built-in market-standard positions, if you have no playbook for the type at all.
Team access
In a team workspace, playbooks stamped with the organization are visible to every member, alongside each member’s own personal playbooks. The organization’s default drives everyone’s drafting and review, not just the owner’s. Editing stays with the owner. A teammate who wants different positions duplicates the playbook and customizes the copy. This is deliberate: a shared playbook that anyone can silently change is worse than no playbook.Managing the list
The playbooks list gives each row a menu:Export and import
Export downloads a portable file containing the playbook’s name, description, contract type, and every position with all of its fields. Where a position linked a clause from your library, the clause text is embedded by value rather than by reference, so the export stands on its own. Everything tied to the specific instance is deliberately left out: ownership, the default flag, timestamps, version history, and any record of the import the playbook came from. Upload on the playbooks page reads that file back and creates a new playbook you own.- The name is suffixed with “(imported)” so it is distinguishable from the source.
- Embedded clauses are matched against your own clause library by exact text. A match is reused; anything new becomes a new entry in your library.
- A contract type the file names that Vaquill does not recognize falls back to a generic type.
- A position that cannot be read is skipped rather than failing the whole import.
Limitations
- Exports carry positions, not history. Version snapshots, analytics, and drift signal do not travel with the file.
- An import always creates a new playbook. There is no way to merge an export into an existing one, or to update in place.
- The file format is versioned. A file from a future, incompatible version is rejected rather than partially read.
- Restoring replaces the whole playbook. There is no per-clause restore from a snapshot.
- Duplicating breaks the connection to the original. Later changes to either copy do not propagate.
- Only the owner can edit a shared playbook, and ownership cannot be transferred from the playbooks list.
- Deleting a playbook does not retroactively change drafts or reviews that were produced with it.
Related
Building a Playbook
Where snapshots come from in the first place.
Team Workspaces
How organization membership drives shared access.
Drift Suggestions
Changes that write a snapshot before they apply.
Clause Library
Where embedded clauses land when you import a playbook.

