Skip to content

Migrate darrow-decisions mechanics to Python + uv #179

Closed

Description

@BjRo

Parent: #168

Outcome

Migrate darrow-decisions' decision-management CLI to Python + uv while preserving canonical-scope resolution and durable ADR behavior.

Priority

5 of 14 remaining plugins. Its single stateful CLI is a contained next step after renderer and provider patterns are proven.

Scope

Migrate bin/decision and its parsing, validation, catalog, supersession, and mutation mechanics. Keep contextual decision authority in the skills.

Done criteria

  • Preserve every command, machine-readable record, diagnostic, exit code, canonical-scope rule, and supersession invariant.
  • Use safe cross-platform path handling and atomic writes; refuse unreadable or malformed decision sources.
  • Add regression and generated tests for front matter, catalogs, status transitions, supersession graphs, path normalization, and malformed inputs.
  • Register and lock the contained package and satisfy every repository Python quality gate.
  • Prove fresh copied-plugin execution and native Windows, Linux, and macOS behavior without sibling-plugin dependencies.
  • Keep decision skill evals passing and update specs, documentation, 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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