What this recipe does
Analysts at the edge get raw feeds far faster than they can read them. This recipe compiles a small summarizer that produces a one-paragraph brief in the unit's house style. The grounded verifier rejects any claim that doesn't trace to a span in the input feed — the model can compress and structure but cannot invent.
The training corpus is pairs of (raw feed, analyst's actual brief) drawn from the unit's own archive. Held-out is a separate cohort the model never sees. Compile happens entirely inside the customer-controlled enclave; weights, gold corpus, and artifact never leave.
The spec
{
"output_kind": "text",
"length_bounds": { "min_words": 60, "max_words": 180 },
"verifier": {
"every_claim_must_be_grounded": true,
"style_match_house_corpus": true,
"banned_phrases": "./speculation-bans.regex"
}
}
Compile (inside the enclave)
kolm compile "ISR-feed analyst brief in house style" \ --base qwen2.5-7b-instruct \ --pairs ./feed-brief-gold/*.jsonl \ --offline-base-mirror ./base-models/ \ --verifier grounded-claim,house-style \ --k-floor 0.78 \ --output tactical-edge-intel.kolm ok wrote tactical-edge-intel.kolm k_score=0.81 signature=hmac-sha256 grounded-claim 100% · house-style match 0.87
K-score gate
Analyst rating: a panel re-read 50 held-out briefs and scored them useful / requires-rewrite / discard. 79% useful, 21% requires-rewrite, 0% discard. No held-out brief contained an ungrounded claim.
Run-time profile
Deploy
# Edge laptop — runs against incoming feed buffer: on_feed_chunk = (chunk) => { const brief = kolm.run('tactical-edge-intel.kolm', chunk.text); cache.append(chunk.id, brief.text); audit.log({ artifact: 'tactical-edge-intel.kolm', chunk_id: chunk.id, k_score: brief.receipt.k_score }); };