Ask Rusty content sources
Everything the assistant knows about the IBA is read from the CMS at the moment the question is asked. There is no ingestion step, no copy of the content, and no search index over documents.
That single decision is what makes two things true:
- Adding or changing content needs no deploy. An FAQ written in the CMS is answerable on the next question.
- Retiring content takes effect immediately. Setting something to
closedremoves it from the very next answer. There is no index to fall out of date and no cache to expire.
Carried in every request, or fetched on demand
Content splits by shape, not by source. Small, whole-set material that benefits from being seen all at once is carried in every request; large material where only the relevant part is ever wanted sits behind a tool.
| Source | Carried every time | Fetched on demand |
|---|---|---|
| FAQs | The full text of every live FAQ | — |
| Skills | Every skill name and its one-line summary | The full training breakdown, plus videos and tutorial PDFs |
| Tunnels | The whole list | — |
| Reference documents & guides | Title and link for everything in scope | — |
| News | Headlines only | The article body |
| Site map | Every page, who it is for, whether this member can open it | — |
| Safety position | The IBA’s published safety copy | — |
The FAQ set is carried whole deliberately. It lets an answer draw on more than one FAQ at a time — “how do I keep my instructor rating current” pulls the quarterly safety meeting from one and the Trainer Level 3 evaluator from another, which a system retrieving a single best match would miss.
Skills go the other way. The one-line summaries are enough to know a skill exists and name it, but not to answer a progression question — those need the full breakdown, which is far too large to send every time.
The status rule
Content is included when its status is not closed, rather than when it is
open.
This matters because there are three status values, not two. Featured is what
editors use for the content they consider most important — currently four FAQs
per language. Filtering on = 'open' would silently drop exactly the material
someone flagged as most important.
Document visibility
Reference documents are filed by editors into role-named categories, and those categories map to tiers. Guides have no such categories and take a single constant — instructor — matching how the site gates the Guides page.
Two rules govern what a member sees:
- Out of scope means absent. A document above a member’s tier is not listed, not named and not linked. There is no “mentioned but withheld” state.
- Unmapped means invisible to everyone. A category with no tier mapping resolves to nobody, including administrators, so a category added in the CMS must be mapped deliberately before its documents surface.
The practical shape of that: a signed-out visitor sees no reference documents at all, a current instructor sees 27, a trainer 36 — and the instructor’s set is always a strict subset of the trainer’s.
What it cannot read
The assistant cannot read document contents. Reference materials and Flight Tutorials are PDFs on S3; their metadata is queryable but their bodies are not. Roughly 3.9M of a 5.03M-character corpus is therefore unquotable.
This is a deliberate trade, and it is a regression against the previous assistant, which did search those documents. It was accepted on the condition that the assistant signposts rather than fails: when a question needs detail that lives only in a document, it names the document, links it, and says plainly that it cannot read it.
So “the minimum instructor hours are defined in the Instructor Manual, here it is” is the intended answer. Inventing a number is not, and neither is “I don’t know” when the document that answers it is sitting in the member’s own list.
Document bodies are planned to return in a later version, at which point they become one more source alongside the others — nothing about the access model or the tools changes to accommodate them.
Language
All content is stored per language and every query carries the member’s language, so a French member gets French FAQs, French skills and French documents. Tunnels are the same list everywhere and have no language of their own.