How these docs stay current
Some pages on this site are written by hand. Others are generated from the OfficeLabs source code and services, so that what you read matches what the app does. Generated pages say so at the top and must not be edited by hand.
What is generated
| Page | Generated from |
|---|---|
| Models and one page per model | The OfficeLabs model catalogue: the list of models the service offers, with their context window and capabilities |
| Agent tools and the Capabilities page of each application | The tool definitions inside the assistant |
| Skills reference and Shipped skills | The skill files that ship with the app |
| Config keys | The launcher and installer sources |
| API | The service's URL configuration |
| Changelog | Published app releases |
How a refresh works
One script, scripts/sync-reference.py in the docs repository, reads those sources and rewrites the generated pages. It is deterministic: no AI writes these pages, the same sources always produce the same text, and running it twice changes nothing. The output is committed, so every change to a generated page goes through review like any other change to the site.
For models, the script reads the catalogue as the service publishes it to the app, and keeps only the public facts: the model's name, who makes it, its context window, the longest answer it can give, and whether it reads images and uses the document tools. It never publishes per-token rates or which company serves a model. A safety check stops the run if one of those would reach a page.
The short descriptions of what each model is good at are written by hand and kept next to the script, so a catalogue refresh never overwrites them.
When a refresh runs
A refresh runs in two situations:
- Weekly. A scheduled run regenerates the pages every Monday morning.
- On request. Anyone with access to the docs repository can start a run by hand.
The docs repository can also start a refresh when a source repository signals that the assistant's tools, the skill files, the launcher configuration, the model catalogue or a published release changed. No source repository sends that signal yet.
The scheduled run works once GitHub Actions are enabled for the organisation. Until then the same refresh is run by hand with python3 scripts/sync-reference.py.
Either way, a refresh never publishes by itself: it opens a change for review.
Checking for stale pages
Every build of this site runs a quick check that compares the generated pages with what the sources would produce today. If a page is out of date, the build prints a warning that names the pages and tells you to run the refresh. If the source repositories are not available on the machine doing the build, the check says so and moves on.
The check only reads. It never changes a page, and it never blocks a deploy: a stale page is something to fix, not a reason to take the site down.