<%- include("../../../src/web/views/partials/layout-top", { title }) %> <% const statusLabel = (status) => ({ pending: "New", flagged: "Needs attention", verified: "Reviewed by moderator", approved: "Ready to apply", implemented: "Applied", rejected: "Dismissed", reviewed: "No change needed", archived: "Archived" }[status] || status); %>

Improve Lumi AI

Review feedback and either apply an improvement or close it. Finished items move to searchable history automatically.

<%= access.role %><%= access.trusted ? " · trusted reviewer" : "" %> <% if (access.can_approve) { %>AI settings<% } %>

A simpler review process

The usual path takes one decision and no manual activation step.

  1. 1
    Read the reportCompare the question, Lumi's answer, and the user's suggestion.
  2. 2
    Choose an outcomeApply the improvement, dismiss it, or mark that no change is needed.
  3. 3
    Done automaticallyApplied corrections become active immediately. Finished reports move to history.
Active queue<%= reviewCounts.active %>
New<%= reviewCounts.pending %>
Needs attention<%= reviewCounts.needs_attention %>

Feedback waiting for review

Finished feedback is hidden from this queue and remains available in history.

<% reviews.entries.forEach((review) => { const snapshot = review.context_snapshot || {}; const retrieval = snapshot.retrieval || {}; const snapshotRows = [...(snapshot.okf || []), ...(snapshot.corrections || []), ...(snapshot.repository || [])]; %>
<%= review.rating === "up" ? "Helpful response" : "Response needs work" %><%= statusLabel(review.status) %><%= review.feedback_tag.replaceAll("_", " ") %>
<%= formatDate(review.timestamp) %> · <%= review.role %> · <%= review.platform %>
User asked
<%= review.user_message %>
Lumi answered
<%= review.assistant_answer %>
<% if (review.optional_correction) { %>
User's suggested improvement
<%= review.optional_correction %>
<% } %> <% if (review.review_notes) { %>
Reviewer note

<%= review.review_notes %>

<% } %> <% if (snapshotRows.length || retrieval.query || (snapshot.tools || []).length) { %>
What Lumi used to answer<%= retrieval.selected_count || snapshotRows.length %> source(s) selected
<% if (retrieval.query) { %>

Knowledge lookup: <%= retrieval.query %>

<% } %> <% snapshotRows.forEach((source) => { %>
<%= source %>
<% }) %> <% if ((snapshot.tools || []).length) { %>

Tools available: <%= snapshot.tools.join(", ") %>

<% } %>
<% } %>
<% if (access.can_implement) { %>
<% } else { %> <% if (access.can_verify) { %>
<% } %> <% if (access.can_flag) { %>
<% } %> <% } %>
<% if (access.can_edit) { %>

Edit feedback details

Clarify the report without changing its outcome.

<% } %> <% if (access.can_implement) { %>

Apply this improvement

Tell Lumi what it should do instead. Saving here activates the change and finishes the feedback.

Use clear, user-facing wording. This becomes the reviewed guidance for similar requests.
Advanced options
" />
" />
<% } %> <% }) %> <% if (!reviews.entries.length) { %>
The queue is clear.

New AI feedback will appear here automatically.

<% } %>
<% if (reviews.pages > 1) { %><% } %>

Finished feedback history

Search, inspect, restore, edit, or permanently delete earlier decisions.

<% historyReviews.entries.forEach((review) => { %>
<%= statusLabel(review.status) %><%= statusLabel(review.status) %><%= review.feedback_tag.replaceAll("_", " ") %>
<%= formatDate(review.reviewed_at || review.timestamp) %>
<%= review.user_message.slice(0, 180) %><%= review.user_message.length > 180 ? "…" : "" %>
User asked
<%= review.user_message %>
Lumi answered
<%= review.assistant_answer %>
<% if (review.optional_correction) { %>
Suggested improvement
<%= review.optional_correction %>
<% } %> <% if (review.implementation_summary) { %>
What was applied

<%= review.implementation_summary %>

<% } %> <% if (review.review_notes) { %>

Reviewer note: <%= review.review_notes %>

<% } %> <% if (review.linked_okf_correction) { %>

Open searchable knowledge entry

<% } %>
<% if (access.can_edit) { %>
<% } %>
<% if (access.can_edit) { %>

Edit finished feedback

" />
<% } %> <% }) %> <% if (!historyReviews.entries.length) { %>
No finished feedback found.

Try a different search or status.

<% } %>
<% if (historyReviews.pages > 1) { %><% } %>
<% if (access.can_approve) { %>
Advanced tools and accessCorrection bank, moderator access, evaluation cases, and training exports

Review access

Choose whether selected moderators may help triage feedback.

Correction bank

Normal “Apply improvement” actions are saved immediately. Use this table for manual maintenance.

<% corrections.entries.forEach((entry) => { %><% }) %> <% if (!corrections.entries.length) { %><% } %>
TypePrompt / answerAudienceStateActions
<%= entry.target.replaceAll("_", " ") %>
<%= entry.prompt.slice(0, 100) %>
<%= entry.corrected_answer %>
<%= entry.min_role %> · <%= entry.permission_scope.origin %>/<%= entry.permission_scope.platform %><%= entry.active ? "active" : entry.enabled ? "staged" : "disabled" %><% if (entry.linked_okf_path) { %>Open knowledge<% } %>
" />
No corrections have been created.

Evaluation cases

Optional technical tests for checking the current AI configuration.

Add a test case
<% evalCases.entries.forEach((entry) => { %><% }) %><% if (!evalCases.entries.length) { %><% } %>
PromptRole / originExpectedMust avoidActions
<%= entry.prompt %><%= entry.role %> / <%= entry.origin %><%= entry.expected_behavior || "-" %><%= entry.forbidden_behavior || "-" %>
No evaluation cases.
Recent test results
<% evalResults.forEach((result) => { %><% }) %><% if (!evalResults.length) { %><% } %>
TimeCaseResultNotes
<%= formatDate(result.run_at) %><%= result.case_id %><%= result.status %><%= result.notes || "-" %>
No test results.
<% if (access.can_export) { %>

Training exports

Manual exports include only approved examples. Lumi does not start training.

<% } %>
<% } %>
<%- include("../../../src/web/views/partials/layout-bottom") %>