Skip to content

Audit remaining Git lifecycle gaps for readable-note reconciliation #129

Description

@quick-ricon

Context

Quick's 2026-06-06 hook-lifecycle comparison checked current notes main (58f194f) after notes#127 merged.

notes is already the mature implementation in the comparison:

  • pre-commit encryption and obfuscation hooks;
  • post-commit deobfuscation;
  • post-merge deobfuscation;
  • post-checkout deobfuscation for branch checkouts;
  • stale-readable and dual-present staging guards;
  • a git-crypt-aware manifest merge driver that re-cleans successful encrypted output.

Related stale-readable issues are already closed:

Remaining questions

This issue tracks the softer follow-up questions so they do not live only in a local investigation note.

  1. Rebase / post-rewrite lifecycle. Should notes install a post-rewrite hook to reconcile readable notes after git rebase or amend paths? Current coverage is commit, merge, and checkout.
  2. Post-merge failure UX. The current post-merge/post-checkout warning is safe but generic. Should it include a more explicit triage sequence such as notes changes --summary, notes changes <file>, notes deobfuscate, and only then intentional notes unlock --force when accepting refresh?
  3. Preflight / doctor command. A normal Git pre-merge hook is not enough: pre-merge-commit does not cover fast-forward pulls, rebases, checkouts, or all tracked-blob update paths. Would a notes preflight or notes doctor command be useful to detect dirty generated readables, stale state rows, dual-present conflicts, and hook/merge-driver drift before intentional pull/merge/rebase work?

Non-goal

Do not assume a true Git pre-merge hook can solve stale-readable state. The likely small win is better explicit diagnostics/preflight around Git operations while preserving the existing fail-closed post-mutation behavior.

Done when

  • We either add focused tests/docs for one concrete reproduced gap, or explicitly close this as unnecessary after checking rebase/post-rewrite and current UX.
  • Any resulting issue/PR is narrower than this audit umbrella.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions