How it works

The path from your history and staged diff to one message.

The pipeline

  1. Read gitThe log, the branch name and git diff --staged, through the git binary so your git config applies.
  2. Infer the styleConvention, types, scopes, ticket format and examples, from the commit subjects. Messages are always in English.
  3. Compact the diffFiles are classified and fitted into a token budget, by priority.
  4. Build the promptA system and a user message, within the device's prompt limit.
  5. Ask the modelOn the chosen device, with greedy decoding and explicit parameters.
  6. SanitizeFences, quotes, preambles and long subjects are cleaned up; bad replies are rejected.

Failures and fallbacks

A bad reply gets one retry, then a message built from the file list. A merge, a revert or a cherry-pick keeps the message git prepared, and a commit of lockfiles only is written from the file list. Neither loads the model. An error in the hook becomes a warning, and the commit goes on.

The full description is in the architecture guide.