Skip to content

Migrate darrow-git mechanics to Python + uv #181

Closed

Description

@BjRo

Parent: #168

Outcome

Migrate darrow-git's deterministic Git and GitHub mechanics to Python + uv without weakening its mutation safeguards or publication evidence.

Priority

7 of 14 remaining plugins. This is the largest high-risk mutation surface, so it follows several smaller migrations that establish subprocess, filesystem, and packaging patterns.

Scope

Migrate the substantial branch, commit, PR, task-branch, and PR-evidence scripts. Retain git and gh as wrapped provider CLIs and preserve skill-owned authority decisions.

Done criteria

  • Preserve all public script commands, stable records, exact commit/branch/PR binding, refusal behavior, exit codes, and no-force/no-bypass guarantees.
  • Use argument-vector subprocess execution and native path/temp-file handling across Linux, macOS, and Windows.
  • Maintain worktree resolution, index snapshot safety, hook-failure recovery, duplicate-PR prevention, publication verification, and candidate-bound evidence invariants.
  • Coordinate with darrow-git/create-pr: Investigate and fix propagation bug #171 and darrow-git: Too much noise on git operations #174; keep those bug fixes independently reviewable and add their final behavior as migration regressions rather than silently absorbing scope.
  • Register the contained package and satisfy every Establish and enforce repository-wide Python quality standards #172 Python quality gate with deterministic integration fixtures.
  • Validate fresh plugin installation with real local Git repositories and mocked GitHub boundaries on all supported platforms.
  • Keep all Git skill evals passing and update specs, docs, and matching manifest versions.

Migration blueprint

Use the implementation merged in PR #173 as the default blueprint for Python + uv plugin mechanics. Reuse its self-contained package layout, committed uv lock, runtime/development dependency separation, python-packages.txt inventory, Ruff and strict mypy gates, separate 95% line and branch coverage gates, and fresh copied-artifact validation. Extend that pattern with native-Windows fresh-artifact validation where this rollout requires Windows support. Document any plugin-specific deviation explicitly instead of introducing a competing convention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions