Skip to content

Regeneration

After your first handover generate, you usually do not need to regenerate everything from scratch. Use --since for git-aware incremental regeneration and let cache fingerprints skip unchanged work.

Use --since <ref> to re-analyze only files changed since a git ref:

Terminal window
handover generate --since HEAD~3
handover generate --since main
handover generate --since v1.0

When --since is set, handover combines git diff and git status so it catches both committed and uncommitted changes (including untracked files).

If no files changed since the ref, handover exits early with a no-op message instead of running all AI rounds.

Use this mode when you changed a focused area and want faster runs with lower API usage.

handover uses content-hash caching in .handover/cache/:

  • analysis.json stores per-file fingerprints for change detection.
  • rounds/round-N.json stores AI round outputs keyed by content and dependency hashes.

Default behavior:

  • unchanged inputs reuse cached round results
  • changed inputs trigger fresh round execution
  • cached values stay valid only when hash inputs match exactly

Use --no-cache to skip cache reads and force fresh execution:

Terminal window
handover generate --no-cache

--since and cache work together: git limits what is considered changed, and content hashes determine which downstream round outputs can be safely reused.

If git-aware regeneration cannot run safely, handover warns and falls back to content-hash mode.

EnvironmentBehavior
Not a git repoWarns and falls back to content-hash mode
Detached HEADWarns and falls back to content-hash mode
Shallow cloneWarns and falls back to content-hash mode
Invalid refFails with an explicit Invalid git ref error

Fallback keeps regeneration functional even outside normal branch history contexts.

FlagDescription
--since <ref>Re-analyze files changed since this git ref
--no-cacheSkip cache reads and run rounds fresh