Repository navigation
Migrate darrow-git mechanics to Python + uv #181
Description
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.
Activity
refactor(git): migrate guarded workflows to Python (#193)