Skip to content

feat(init): 👻 bootstrap Git Intent with fix-author - #2

Merged
uklok-agent merged 7 commits into
mainfrom
feat/bootstrap
Sep 1, 2026
Merged

feat(init): 👻 bootstrap Git Intent with fix-author#2
uklok-agent merged 7 commits into
mainfrom
feat/bootstrap

Conversation

@yonathan9669

Copy link
Copy Markdown
Contributor

Summary

Bootstraps Git Intent around its first concrete workflow.

Introduces the project contract, community contribution surface, and
git-fix-author as the first deterministic, recovery-aware reference
operation.

Why

Simple Git intentions frequently require fragile low-level procedures.

Git Intent moves that procedural complexity into reviewed operations that can
be invoked equally by humans and agents:

Express the Git intent, not the surgery.

Included

  • public project positioning, philosophy, architecture, and operation contract;
  • MIT license, contribution guidance, security policy, and code of conduct;
  • Agent Skills-compatible git-fix-author package;
  • one canonical executable for human and agent use;
  • dry-run, interactive, and deterministic non-interactive modes;
  • explicit author/committer semantics without Git configuration mutation;
  • native recovery refs before reachable refs move;
  • atomic updates for affected local branch tips;
  • post-rewrite verification of trees, messages, timestamps, topology, and
    identities;
  • disposable-repository integration tests;
  • skill validation and Linux/macOS CI; and
  • issue forms centered on operation intent and safety contracts.

Lessons incorporated

The reference operation accounts for failure modes identified during both the
original exploration and this implementation:

  • previews never invoke a pager;
  • the engine does not depend on an interactive rebase or editor;
  • the executing user's configured identity cannot leak into rewritten commits;
  • author, committer, and co-author semantics remain distinct;
  • root commits, empty commits, and merge topology are supported;
  • commit messages are copied from raw commit objects rather than pretty output;
  • related local refs move in one transaction and are disclosed in the preview;
  • the current branch and working tree need not change when another branch is
    targeted; and
  • original history remains reachable through a native recovery ref.

Signed commits in the rewritten range necessarily lose their invalidated
signatures, and this limitation is explicit in the CLI and documentation.

Verification

scripts/validate-skills
  Validated 1 skill(s).

scripts/test
  All 10 tests passed.

The integration suite covers the public help surface, root/linear history,
empty commits, dry-run purity, explicit committers, optional checkpoints, merge
topology, related and excluded ref updates, non-current finish branches,
non-ancestor rejection, dirty-state rejection, invalid refs, and confirmation
requirements.

The repository also passes bash -n, git diff --check, YAML parsing for its
issue forms and workflow, ShellCheck 0.11.0, and shfmt 3.14.0. CI repeats the
shell lint/format checks and runs integration tests on Linux and macOS.

Architectural intent

git-fix-author defines a stable behavior contract, not its forever engine.
Future versions may delegate suitable work to established tools when that
improves correctness or safety without weakening the interface.

Backup lifecycle management remains a focused follow-up rather than expanding
the initial rewrite path.

Closes #1

@yonathan9669 yonathan9669 linked an issue Sep 1, 2026 that may be closed by this pull request
31 tasks
@yonathan9669 yonathan9669 self-assigned this Sep 1, 2026
@yonathan9669 yonathan9669 added the good first issue Good for newcomers label Sep 1, 2026
@uklok-agent
uklok-agent merged commit df14f4b into main Sep 1, 2026
0 of 3 checks passed
@uklok-agent
uklok-agent deleted the feat/bootstrap branch September 1, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

good first issue Good for newcomers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(init): establish Git Intent and the operation contract

2 participants