Skip to content

New hires ask the wiki, and the wiki learns what it lacks

· Sergii Kravtsov · Folio

A new hire can ask the wiki instead of a colleague, and that is only worth doing if two things hold: every answer names the page it came from, and every question the pages cannot answer is recorded for the person who owns them. Folio AI, the assistant built into Folio, is set up to do both. This post follows one onboarding loop, then explains how it works inside, who can see what, and where it stops.

The scenario is a made-up company, Acme. Jamie Park is a new salesperson who asks whether she can agree to 25% off an annual plan. The assistant says no, names the person who approves it, and links the page that says so, so nobody is interrupted and Jamie can check the claim in one click. The people and pages are demo data, and we have not measured how much faster a real person ramps up this way, so this post is about the mechanism and not about a result.

Onboard a sales rep with Folio AI, forms and tables (1:21). Watch on YouTube.

The loop in one picture

Onboarding with an assistant is a loop and not a chat window. The new hire asks, the assistant answers from pages or admits that it cannot, the gap is recorded, an admin closes it, and the next person who asks gets the answer. The rest of the post follows the numbers in this picture.

The onboarding loop: the new hire asks, the wiki answers or the gap is recorded, an admin fixes the pageA new hire asks Folio AI a question. The assistant searches the pages the person is allowed to read. If the pages cover it, the answer arrives with links to its source pages. If they do not, the assistant says so and records the question and what was missing. Ratings and a survey after every third answer are recorded too. An admin reads these in Assistant analytics, writes the missing page or edits the space rules, and the next new hire who asks the same question gets an answer with its source.1New hire asksA question in plain words, in theFolio AI panel, from the spacethey are working in.2Assistant looks in the wikiFull-text search and page reads,only in pages this person isallowed to open.3Answer with sourcesA short answer and links to thepages it came from. One clickopens the page to check.4Nothing in the pagesIt says so, and records thequestion and what was missing,with the pages it had read.Feedback from the new hireThumbs up or down on a savedanswer, and a short survey afterevery third answer.5Admin reads the analyticsInstance admins see every space,space admins only their own.Opening a conversation is logged.6Admin fixes the wikiWrites the missing page, or editsthe space rules in the .agentfolder. Both are ordinary pages.foundnot coveredNext new hire asksthe same thing: answered
The new hire gets an answer with sources, or the gap is recorded for an admin. The admin's fix is what the next new hire benefits from.

What the new hire sees

Jamie is on her first day in the Sales space at Acme. She has the editor role in that space only, so the assistant can read only what she could open herself. She opens the Folio AI panel in Ask mode, which is read-only, and asks whether she can agree to 25% off an annual plan. The answer is no, with the reason: that band needs the VP Sales, Elena Brandt, and only for annual prepay. Under the answer is a Sources line linking to the Pricing and discounts page, and one click opens that page next to the panel.

The Folio AI panel on a Sales space page: the answer to a 25% discount question says no, names VP Sales Elena Brandt as the approver and ends with a Sources line linking Pricing and discounts
The answer to the discount question, with its Sources line. A frame from the first video.

The Sources line is a decision of the space and not a property of the assistant. The system prompt asks for a link to the page behind every factual statement, and the tidy line at the end comes from a short rule page in the space's .agent folder that the manager can change. In the video the manager, Marcus Webb, adds one line asking for a "Next step" before the sources, and the next answer follows it. Pages in .agent go into every assistant run in that space, up to about 60,000 characters, and only space admins can open or edit them. They are ordinary pages, so Git remembers who changed a rule and when.

A page called How to answer in the Sales space, in the .agent folder, open in the Folio editor: answer only from the pages of this space, keep answers short, end every answer with a Sources line
The rule page behind the Sources line, in the space's .agent folder.

Where the answers come from

Four things decide whether the answers can be trusted: where the content lives, how the assistant finds it, what it is allowed to do, and how a link ends up in the answer.

Pages are files in Git

Every page is a Markdown file in your Git repository. PostgreSQL holds the index, the access rules and the live-editing state, not the content. The assistant reads the same pages that people edit, so there is no second copy of the wiki to keep in sync.

The assistant is a client of Folio's own tools

Each run builds an in-process MCP server for the signed-in user and connects the assistant to it. These are the same tools an outside agent gets at the MCP endpoint, with the same checks, so the assistant has the rights of the person who asked and no others. In Ask mode the write tools are removed before the model sees the list, and the connection is read-scoped as well, so a write would be refused on the server even if the model asked for one. The run is also given no shell, file or network tools, because the agent process runs without an OS sandbox and a file tool could read the Git repositories of spaces the user cannot open. Two built-in tools are added to the Folio ones: one that returns the working instructions for a family of tools, and the one that records unanswered questions.

Finding the page

The assistant searches with Folio's full-text search, which is PostgreSQL text search with accents folded plus similarity on titles, filtered in SQL to the pages the person may read. It then reads a page by its id and answers from what it read. There are no embeddings and no vector store. The practical consequence is that a page written in other words than the question is found less reliably than a semantic index would find it, although the assistant can retry with different words.

Why the link is there

The prompt asks for a link to the page behind each factual statement, built from the space and the page id that the tools returned and never invented. The panel renders these as links that open the page without closing the conversation. The link is written by the model, so it is a pointer to check and not a proof, and the check is the click. The prompt also tells the model that page text is data and not instructions, which limits what a hostile sentence on a page can do, but it is a rule given to a model and not a sandbox.

When the wiki has no answer

In the second video Jamie is in a support space and asks what to tell a customer on an annual plan who wants a refund after 40 days. The pages cover monthly plans only, and the assistant says so instead of guessing, adding that the monthly rule should not be treated as the answer. This is the moment the setup exists for, and three signals come out of it without anyone filling in a report.

The Folio AI panel after the refund question: the answer says there is no written rule for annual-plan refunds, and under it the panel asks Did the assistant solve your question with Yes, Partly and No
The assistant says the wiki has no rule for annual plans; the survey card appears under the answer. A frame from the second video.
  • A rating. Thumbs up or down on each saved answer, one per answer, and it can be changed.
  • A survey. After every third answer the panel asks whether the assistant solved the question: Yes, Partly, No or Not now, with an optional comment.
  • A report from the assistant itself. Folio gives the assistant a built-in tool that it calls when the pages do not contain the answer or when it had to infer one. It passes the question restated so that it reads on its own, a reason (no answer or not sure), and one or two sentences on what is missing, with links to the pages it had read in that run. It reports each question once, at most three per run, never changes any data and does not mention the report to the user.

All three land in the same PostgreSQL database as the conversation. An outside agent connected over MCP does not get the reporting tool, so only the built-in assistant produces this list.

Is your wiki's AI assistant helping? Folio AI analytics for admins (1:21). Watch on YouTube.

Who sees the analytics

The page is Assistant analytics in the account menu. It has a Conversations tab with ratings and survey results per conversation, and a Questions without an answer tab that shows the person's own words first, the assistant's wording under them and what was missing, both filterable by space, user and date. An instance admin sees every space. A space admin sees the same page limited to the spaces they administer and only the messages of runs in those spaces, which the server enforces in its database queries and not by filtering afterwards. Everyone else does not get the page, and a personal access token is refused there.

Assistant analytics for Dana, a space admin: a note says You see conversations from the spaces you administer, customer-support, above a table of four conversations with ratings and survey results
A space admin sees only the conversations from the space she administers.

Reading someone's conversation is a privacy decision, so Folio makes it visible. Opening a conversation writes an entry to the audit log, the conversation page shows who opened it and when, and the assistant panel tells every user that administrators can review conversations with the assistant.

The Questions without an answer tab in Assistant analytics: Jamie Park's question about a refund after 40 days, the reason No answer, and a What's missing column saying the refund policy covers monthly plans only
Jamie's own words first, the assistant's wording under them, then what was missing.

Closing the loop

Dana, the space admin, reads Jamie's question, opens the Refund policy page and writes the missing section: refunds on annual plans, the time windows and who approves them. Jamie asks again in a new conversation and the answer now gives the rule, names the Finance Lead and links the Refund policy page. Nothing rewrote the wiki on its own. The analytics show where the pages fall short and a person with edit rights closes the gap, which is the division we want, because the owner of a page is the one who knows what is true.

The Folio AI panel next to the Refund policy page after the fix: the answer gives the refund window for an annual plan, says the Finance Lead approves it and ends with a link to Refund policy
The same question after the page was fixed, with its source.

A starter package for this setup, with the rule pages and a week-one form, is in the repository. It is a description and starter pages and not a one-click template.

What stays on your server

Folio is self-hosted. The pages are in your Git repository, and the index, access rules, conversations, ratings, survey answers and unanswered questions are in your PostgreSQL; none of it is sent to us. What does leave is the assistant's own traffic: the built-in assistant runs on Cursor, so the pages it reads and the conversation go to Cursor, which is the only provider for now. It needs a Cursor key, either a personal one in account settings or one shared key set by whoever runs the server. Without a key the rest of Folio, including the wiki, search and MCP for your own agents, works as usual.

Where it stops

  • A Cursor key is required, and the pages the assistant reads go to Cursor. There is no other provider yet.
  • Search is keyword-based, with no embeddings, so the assistant is only as good as your page titles and wording. A miss shows up as an unanswered question, which can mean a missing page or a missed search.
  • Links are written by the model. Open the source before you act on a discount or a refund.
  • The list has blind spots. It holds what the assistant flagged, what people rated down and what the survey caught. A confident wrong answer that nobody rates is not on it.
  • Fixing is manual. The analytics do not edit pages or tune the assistant.
  • One rule set per space. The .agent folder gives a space one assistant configuration, not several.
  • The public demo has the assistant switched off. To see it live you need your own installation and a key; the videos show the same flow.
  • The scenario is demo data. Acme and its people are made up.

Try it

To run Folio yourself, start with the install guide. To look around a Folio wiki first, open the public demo, pick Sam on the sign-in screen (the data resets every 24 hours and the assistant is off there). The code is on GitHub under the MIT license.

Earlier write-ups of the same setup, from the business side: DEV Community, Medium and, in Ukrainian, Cases.media.

All posts