Build an offline assistant using a quantized small model and curated procedures. The useful result is a method that preserves evidence, exposes constraints, and makes the next decision reviewable. This note describes an engineering workflow rather than a claim about a particular organization or production event.

Establish the boundary

Define offline constraints, supported tasks, and prohibited advice. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Use a fixed holdout or review sample for this step. Include ordinary records, rare boundary cases, and at least one input designed to fail safely. A useful change improves the intended condition without removing evidence about a known limitation.

Convert fictional service procedures into question, checklist, and escalation examples

Convert fictional service procedures into question, checklist, and escalation examples. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Fine-tune for concise procedural responses

Fine-tune for concise procedural responses. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Use a fixed holdout or review sample for this step. Include ordinary records, rare boundary cases, and at least one input designed to fail safely. A useful change improves the intended condition without removing evidence about a known limitation.

Quantize and package the artifact for local inference

Quantize and package the artifact for local inference. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Test memory, startup, and refusal behaviour

Test memory, startup, and refusal behaviour. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Use a fixed holdout or review sample for this step. Include ordinary records, rare boundary cases, and at least one input designed to fail safely. A useful change improves the intended condition without removing evidence about a known limitation.

An update process for revised procedures

Define an update process for revised procedures. Keep the relevant source version, configuration, and stable identifier together while this work is performed. That gives a reviewer a direct path from an observed outcome to the input and rule that produced it. Treat automatic checks and human judgment as separate controls, then record both in the build note.

Practical check

Dataset example, pull command, and local smoke test. The example below is intentionally small enough to run before a larger build or publication workflow.

import csv
import json
from pathlib import Path

with Path("labels.csv").open(encoding="utf-8", newline="") as handle:
    rows = list(csv.DictReader(handle))

with Path("train.jsonl").open("w", encoding="utf-8") as handle:
    for row in rows:
        handle.write(json.dumps(row, ensure_ascii=False) + "\n")

print(f"wrote {len(rows)} records")

Evidence for the next decision

Keep the input digest, outcome, and reviewer note with the resulting artifact. Safety-critical repair instructions or claims of universal device coverage. When evidence is incomplete, preserve the failing example, define the missing validation, and defer publication until results can be compared fairly.

Make the process idempotent. Repeating the same step on unchanged input should not append metadata, discard extra detail, or silently change ownership. Idempotence makes retries safe and exposes hidden state when outputs differ.

Review results by failure category rather than a single blended number. A small number of high-risk failures can outweigh an improvement on common cases, particularly when output feeds a release workflow.

Keep accepted and rejected examples together. A concise rejected sample with its expected outcome is a durable regression test and prevents the same edge condition from returning as an unexplained surprise.

Use a separate holdout set for release decisions. Training records can guide implementation, but they cannot demonstrate correct behaviour on new wording, new sources, or changed input order.

Make the process idempotent. Repeating the same step on unchanged input should not append metadata, discard extra detail, or silently change ownership. Idempotence makes retries safe and exposes hidden state when outputs differ.

Review results by failure category rather than a single blended number. A small number of high-risk failures can outweigh an improvement on common cases, particularly when output feeds a release workflow.

Keep accepted and rejected examples together. A concise rejected sample with its expected outcome is a durable regression test and prevents the same edge condition from returning as an unexplained surprise.

Use a separate holdout set for release decisions. Training records can guide implementation, but they cannot demonstrate correct behaviour on new wording, new sources, or changed input order.

Make the process idempotent. Repeating the same step on unchanged input should not append metadata, discard extra detail, or silently change ownership. Idempotence makes retries safe and exposes hidden state when outputs differ.

Review results by failure category rather than a single blended number. A small number of high-risk failures can outweigh an improvement on common cases, particularly when output feeds a release workflow.

Keep accepted and rejected examples together. A concise rejected sample with its expected outcome is a durable regression test and prevents the same edge condition from returning as an unexplained surprise.

Use a separate holdout set for release decisions. Training records can guide implementation, but they cannot demonstrate correct behaviour on new wording, new sources, or changed input order.

Make the process idempotent. Repeating the same step on unchanged input should not append metadata, discard extra detail, or silently change ownership. Idempotence makes retries safe and exposes hidden state when outputs differ.

Review results by failure category rather than a single blended number. A small number of high-risk failures can outweigh an improvement on common cases, particularly when output feeds a release workflow.

Keep accepted and rejected examples together. A concise rejected sample with its expected outcome is a durable regression test and prevents the same edge condition from returning as an unexplained surprise.