llmwiki compile writes every generated page directly to wiki/. You can change that behavior in two ways. The --review flag is all-or-nothing: every candidate goes to the review queue and nothing lands in wiki/ until you approve it. A review policy is more surgical - it lets a normal compile run write most pages live while automatically holding back the ones that trip specific risk conditions.
With a policy in place, a low-confidence page gets queued for your review while an unambiguous page is written immediately. You get confidence-appropriate friction without slowing down the happy path.
Configuring the policy
Create.llmwiki/config.json in your project root (alongside sources/ and wiki/):
review key, or "hold": [] all mean off - compile writes pages directly, matching today’s default behavior.
The same config file can also contain a sources object for
recursive discovery and exclusions.
Keep review and sources as sibling keys; source selection does not disable
the review policy.
Hold modes
A page is held as a candidate if it trips any enabled mode (union semantics). The livewiki/ page is left untouched when a page is held.
-
low-confidence- holds any page whoseconfidencefrontmatter field is belowlowConfidenceThreshold(default0.5). Pages with noconfidencefield are held by default. Set"treatMissingConfidenceAs": "ok"in thereviewobject to let them pass instead. -
contradicted- holds any page that declares one or morecontradictedByentries in its frontmatter, indicating the compiled content conflicts with another page. -
schema-violating- holds any page that fails a schema cross-link rule defined in.llmwiki/schema.json. For example, acomparisonpage with fewer than the minimum required wikilinks trips this mode. -
provenance-violating- holds any page whose citations are broken or malformed - pointing to missing source files, impossible line ranges, or unparseable citation markers. -
all- holds every generated page, regardless of any other condition. Equivalent to runningcompile --reviewbut expressed as a persistent policy. -
offor"hold": []- disables the policy entirely. All pages are written live.
Fail-closed behavior
Review policy configuration is fail-closed. If llmwiki encounters an unknown mode name in thehold array, or if config.json is corrupt and cannot be parsed, the compile aborts with an error rather than silently disabling the policy and writing all pages live. This prevents a misconfigured policy from quietly bypassing the review gate.
What happens when a page is held
When a page is held by the policy:- A candidate record is stored in
.llmwiki/candidates/with reason codes explaining exactly why it was held. - The existing live page in
wiki/(if any) is left untouched. llmwiki review listandllmwiki review show <id>display the hold reasons alongside the candidate content.
What is and isn’t policy-gated
llmwiki compile- honors the review policy.llmwiki refresh --stale- honors the same policy when recompiling stale or orphaned pages.llmwiki query --save- is not policy-gated in the current version. Saved query answers are written directly towiki/queries/.