10.1 What it does

  1. Reads the file and splits it into chunks (default 4000 characters, broken at paragraph then sentence boundaries).
  2. For each chunk, POSTs to your configured chat-completion endpoint ({llm_base_url}/chat/completions) with a system prompt that instructs the model to extract durable facts as a JSON array.
  3. Collects all returned facts across chunks.
  4. Default behavior: dry-run. Prints the JSON to stdout (or --output FILE) so you can review before committing.
  5. If you pass --commit, submits the facts via remember_batch in 200-at-a-time chunks, with dedup_policy=skip_if_near by default so re-runs after manuscript edits don’t double up.