Knowledge base & audit log
The two admin transparency tools: the Knowledge base showing every source MOEgent may answer from, and the immutable Audit log recording every privileged action.
CLIP Learn gives programme administrators two "show your working" tools that sit side by side in the admin bar: the Knowledge base, which makes visible every source your AI trainer MOEgent is allowed to answer from, and the Audit log, which records every privileged change anyone makes. Both exist so that a regulated certificate issuer can prove, at any time, exactly what the trainer knows and exactly who changed what.
This page documents both. You reach them from the admin navigation: Knowledge and Audit.
Knowledge base
The Knowledge base (/admin/knowledge, labelled Knowledge in the nav) is the visible face of CLIP's no-hallucination guarantee. MOEgent, the in-app trainer, will answer legal and course-content questions only from the sources listed here. Anything outside them is declined and escalated to your team rather than guessed at. This page lets you see precisely what that pool of sources contains.
Who can open it
| Role | Access |
|---|---|
ADMIN | Full access — sees every knowledge source across the whole tenant. |
CORPORATE (external sponsor) | Access, but scoped — sees only the courses their own organisation is entitled to or enrolled in, never another client's materials. |
FACULTY, CANDIDATE | No access to this page. |
Corporate scoping fails closed
For a corporate sponsor, the page first looks at the organisation's standing course entitlements; if there are none yet, it falls back to the courses the org's own members are enrolled in. If neither yields anything, the sponsor sees nothing — the page never quietly falls through to an all-tenant view.
What counts as a "source"
Two distinct things ground MOEgent, and the banner at the top of the page counts both:
| Source type | What it is | Where it comes from |
|---|---|---|
| Knowledge sources (chunks) | The plain-text body of each published lesson, stored as a searchable knowledge chunk with a human-readable citation. | Created automatically whenever a lesson is saved in the course editor. |
| Published questions | Practice questions whose review status is PUBLISHED. Only published questions ground the trainer and are served to learners. | Authored and reviewed in the question bank. |
The top banner reads, for example: "MOEgent answers only from these N knowledge sources plus M published questions — anything outside is declined and sent to your team." The counts update to match your current search.
How lesson content becomes a source
You do not add knowledge sources by hand on this page. When a trainer saves a lesson in the course editor, CLIP strips the formatting, converts the lesson to clean plain text, and writes it as a knowledge chunk tagged with its course and lesson. Editing the lesson re-syncs the chunk; deleting the lesson removes it. This keeps the trainer's knowledge and the published materials perfectly in step.
Reading the page
q) filters sources by matching your text against both the source title and its content, case-insensitively. Submit the form to filter; clear it to see everything again.Fields shown for each source
| Field | What it means | Notes |
|---|---|---|
| Title | The lesson (or source) title. | Same title MOEgent cites. |
| Source reference | The human-readable citation, formatted Course › Module › Lesson. | Shown in grey under the title; this is the trail MOEgent uses when it points a learner back to the material. |
| Content preview | The first 220 characters of the source text, truncated. | Plain text only — never HTML — so full-text search stays clean. |
Admin-only actions on a course card
When you are an ADMIN and a course card corresponds to a real course, two shortcut links appear on the right of the header:
| Link | Appears when | Where it goes |
|---|---|---|
| Edit materials | Always, for a real course. | The course editor, where authoring or editing lessons updates the grounding instantly. |
| Review questions | Only when that course has one or more DRAFT questions. | The question-review queue, so you can publish or reject drafts. |
Corporate sponsors never see these links — the page is read-only for them.
Question review states
The live/draft counts on each card come from the question bank. A question's review status governs whether it grounds the trainer at all:
| Status | Served to learners & used for grounding? |
|---|---|
PUBLISHED | Yes — this is the only status counted as a live source. |
DRAFT | No — awaiting review; shown to admins as a draft count only. |
ARCHIVED | No — retired. |
Empty states
- With no search active and no sources at all: "No knowledge sources yet."
- With a search that matches nothing: "No sources match your search."
How MOEgent actually uses these sources
Understanding the retrieval behaviour helps you reason about answers learners receive:
- For each learner question, MOEgent runs a full-text search over the knowledge sources, scoped to the courses that learner is entitled to — a learner enrolled in one course cannot be grounded on another course's content.
- Retrieved sources are handed to the trainer as numbered
SOURCES. The trainer cites them inline (for example[S1]) after each substantive claim. - If the sources do not cover a legal or materials question, the trainer does not guess. It tells the learner warmly that the question is outside today's materials and escalates it to your team (an internal escalation marker,
<<ESCALATE>>, is appended). Questions about the learner's own account or progress are answered directly and are not escalated.
Conversations inbox
Where escalated questions land for your team to answer.
Learners & cohorts
Managing who is enrolled and entitled to which course.
Audit log
The Audit log (/admin/audit, labelled Audit in the nav) is an append-only record of every privileged action taken in CLIP. As a KHDA-regulated certificate issuer, CLIP cannot allow roles, suspensions, answers or announcements to be changed silently — so each such action is written here with who did it, what they did, and the before/after where relevant.
Immutable by design
Entries are only ever appended — there is no edit or delete on the audit log. Audit writing is also wrapped so that a logging failure can never break or roll back the underlying action; the action still happens, and the log records what it can.
Who can open it
ADMIN only. Corporate sponsors and faculty cannot view the audit log. The Audit nav link is hidden for every role except admin.
Reading the table
The log shows the most recent 200 entries, newest first. Each row has four columns:
| Column | What it shows | Notes |
|---|---|---|
| When | Timestamp, formatted YYYY-MM-DD HH:MM. | Shown in UTC (not localised), to the minute. |
| Who | The actor — the email of the person who performed the action. | If no email was captured, the first 8 characters of their user ID are shown instead. |
| Action | A friendly label for the action, sometimes with extra detail (for example a role change shows → ADMIN). | Not every action has a friendly label — see below. |
| Target | Who or what the action was aimed at. | Resolved to the target's name for user actions; otherwise the announcement title in quotes, or a short ID, or a dash. |
Target resolution order: if the action targeted a user, the row shows that user's name (looked up live). Otherwise, if the action carried a title in its metadata (for example an announcement), it shows that title in quotation marks. Failing that, it shows the first 8 characters of the target ID, and if there is no target at all, a dash (—).
Empty state
If nothing privileged has happened yet, the table shows: "No privileged actions recorded yet."
What gets recorded
Every entry stores the actor, an action code, an optional target type and ID, an optional free-form metadata object, and the timestamp. The following actions are logged:
| Action code | Displayed label | What triggers it | Extra detail recorded |
|---|---|---|---|
ROLE_CHANGE | Changed role | An admin changes a user's role. | The new role (shown as → ROLE). |
SUSPEND_USER | Suspended user | An admin suspends (deactivates) a user. | Target user. |
RESTORE_USER | Restored user | An admin restores (reactivates) a suspended user. | Target user. |
ANSWER_TICKET | Answered a learner question | A team member answers an escalated learner question. | Target ticket. |
ANNOUNCE | Posted an announcement | An admin posts an announcement. | Announcement title. |
EDIT_USER | EDIT_USER (raw code) | An admin edits a user's name, email or WhatsApp phone. | Target user. |
RESET_PASSWORD | RESET_PASSWORD (raw code) | An admin resets a user's password to a fresh temporary one. | Target user. |
ASSIGN_COHORT | ASSIGN_COHORT (raw code) | An admin bulk-assigns learners to a cohort. | Cohort ID and the number of learners assigned. |
COPILOT_ACTION | COPILOT_ACTION (raw code) | The admin copilot (MOEgent's build assistant) performs any action that changes data. | The tool used, its inputs, and its result. |
Why some rows show a code and others a phrase
Only a handful of action types have a human-friendly label (Changed role, Suspended user, Restored user, Answered a learner question, Posted an announcement). Every other action — EDIT_USER, RESET_PASSWORD, ASSIGN_COHORT, COPILOT_ACTION — is displayed as its raw code. This is expected, not a bug; the action is still fully recorded.
Copilot actions in detail
The admin copilot can build and change your programme structure on your behalf. Every one of its mutating operations is logged as a COPILOT_ACTION, recording not just which tool ran but exactly what it changed — the tool name, its inputs (bulky lesson content is stripped out), and the result, including the ID of anything it created. The mutating tools that produce an audit entry are:
create_client, grant_org_access, create_course, create_program, add_courses_to_program, assign_program, add_module, add_lesson, edit_lesson, delete_lesson, set_program_published, create_trainee, and schedule_session.
Read-only copilot queries do not create audit entries — only actions that change data do.
Conversations (omnichannel inbox)
How admins read every learner's MOEgent conversation across web, WhatsApp and voice from one two-pane inbox.
Feature benchmark
Read the admin-only LMS feature benchmark — how CLIP Learn is positioned against the LMS market, how to read the matrix, and the compact/detail toggle.