Learning from Corrections

Learning from Corrections

Everything on this page follows one rule: nothing is ever applied to the Knowledge Base or a plant schema automatically. Every suggestion the platform generates is shown to an operator, who must explicitly review and accept it.

During a run: the feedback loop

Every correction or piece of feedback you give during a supervised Classify Bulk run (see Classification Modes) does two things immediately:

  1. It's added to that run's conversation memory, so later signals in the same batch benefit from it right away.
  2. It's persisted as a Reviewed Signal in the SQLite learning store, deduplicated on (plant, description) — the latest correction for a given signal wins.

After a supervised run: suggestion panels

Once a supervised run finishes, two cards appear:

📋 Wiki rules

Click Generate wiki rules and the platform compares everything you corrected or commented on during the run against the existing Knowledge Base, and drafts new or refined rules — common or plant-specific — as Markdown. You get a Preview/Editor toggle to read or hand-edit the draft before deciding. Clicking Save merges it, timestamped, into wiki/en/sources/common-rules.md — nothing happens until you click it.

🗂 Inferred schema

Shown only if the run used a Plant Schema. Click Generate inferred schema and the platform checks the signals classified in this run against that plant's existing schema; if it finds components or hierarchy codes that show up in the classified signals but not in the original schema, it drafts an update — either a brand-new inferred-schema.md or a merge into the existing one — listing the new codes detected. Same Preview/Editor toggle, plus Refine with LLM if you want another pass after editing. Clicking Save as inferred-schema.md writes it to that plant's schema folder, where it becomes available the same way a manually-uploaded schema is (see Plant Schematics Ingestion).

Reviewed Signals — the golden dataset

The Reviewed Signals page (sidebar → Config → Reviewed Signals, route /reviewed-signals) is where every persisted correction lives. For each row you'll see: plant, description, original code, corrected (final) code, your feedback text, the model's original confidence, and when it was reviewed.

  • The sidebar lists plants with a count of reviewed signals each; click one to filter the table to that plant.
  • Click the pencil icon to edit a row in place (description, either code, feedback text) — useful for cleaning up a typo without reclassifying.
  • Click the trash icon to delete a row you don't want kept in the dataset, after a confirmation.

Because this table only ever contains signals an operator actually reviewed, it doubles as an auto-growing golden dataset: every entry with a valid final code is exported as evaluation ground truth by scripts/run_evaluation.py --from-reviewed, so the more you correct in day-to-day use, the better the evaluation harness gets at measuring real accuracy.