- Главная
- Плагины
- Безопасность и права доступа
- dsh-compaction-audit
dsh-compaction-audit
gendui123/dsh-compaction-audit
Compaction quality / hallucination detector: when a conversation span is compacted, check on two axes that key information survived 鈥?FIDELITY (assertions in the summary must be found verbatim in the original leaf events, else flagged as fabricated) and C
Установка
dsh plugin --profile web add github:gendui123/dsh-compaction-auditREADME
dsh-compaction-audit
Compaction quality / hallucination detector. When a conversation span is
compacted (a single compaction/summary event with a summary ContentBlock[]
shadowing a range of original events), this plugin checks on two axes that key
information survived into the summary:
- FIDELITY (hard): every "verifiable atomic assertion" the summary writes
(UUID / absolute path / file path / number-with-unit / user correction) must
be found verbatim in the original leaf events; if not, it is flagged
unverified(a candidate — not proof of fabrication). - COVERAGE (weighted): key atomic facts present in the original leaf events
but not asserted in the summary are flagged
lost. - COMPLIANCE (layer A, deterministic, zero-LLM, optional): a literal word-list check (keep/drop/scope) for "did the compaction drop a term the user explicitly required, or resurrect a corrected-away term?" See below.
Compliance axis (layer A, deterministic, zero-LLM)
A narrow, literal (closed-set) guard over a configurable vocabulary:
- keep terms present in the source leaves but absent from the summary ->
missing(a term the user explicitly required was dropped by compaction). - drop terms present in the summary ->
superseded(a corrected-away / forbidden term is present). - scope terms present in the source but absent from the summary ->
scopeLost. coexists_review: a keep term and a drop term both present in the summary.
Honest boundary: this is a literal (substring) check only. It detects "your pinned term's literal form is gone / a forbidden literal term appeared". It does not detect semantic paraphrase (e.g. "打分" rewritten as "评估"). All signals are candidates for human review; the plugin is read-only, never blocks, and never modifies compaction output.
Config: checkCompliance (default true), complianceVocab (JSON string
{keep:[],drop:[],scope:[]}; empty/broken -> defaults), complianceFpVersion.
Design invariants (red/blue-team consensus)
- Deterministic CLOSED SET: only regex-definable classes are checked; never judges prose.
- "断言即升级": once an atomic fact is written in the summary it is forced through a verbatim comparison.
- Ground truth is ONLY the non-summary leaf events reachable via the
provenance ledger (
session.events[seq], resolved at the moment the summary lands — verified readable bydsh-compaction-probe). - Read-only signal producer: writes an
audit.signalsrecord; never injects LLM-synthesized content; any re-injection is opt-in and default OFF. - "Never block" is a mechanism: everything is try/catch'd, handlers are isolated, failures are swallowed.
Semantics & limits (read before use)
unverifiedis a CANDIDATE, not "fabricated". It can be a real fabrication OR an artifact of ledger incompleteness (ledgerIncomplete), a non-closed-set expression, or a fact outside the visible ledger.- This is a closed-set hard-fact lower-bound signal, NOT a general narrative hallucination detector. A summary that invents a plausible-but-wrong story with no hard fact is not caught.
- Thresholds (
criticalNumberCount,PATH_MARKERS,maxFactsPerCategory) are defaults pending calibration against an N=50 labeled set before use as a CI gate.
See README.zh.md for the full Chinese walkthrough (config table, sample
audit.signals record, and note that lib/index.js is the loaded artifact and
src/index.ts the maintainable TS mirror).
Похожие плагины
api-relay-audit
toby-bridges/api-relay-audit
dsh-auto-review
perrylink/dsh-auto-review
dsh-claude-ux
eri64/dsh-claude-ux
dsh-remote
xgone/dsh-remote