Skip to content

Migrate darrow-discovery renderer to Python + uv #176

Closed

Description

@BjRo

Parent: #168

Outcome

Migrate darrow-discovery's deterministic frontier renderer to the Python + uv plugin pattern while preserving the conversational discovery and planning contracts.

Priority

2 of 14 remaining plugins. Its small, pure renderer is the lowest-risk runtime pilot after the authoring foundation is ready.

Scope

Replace the substantial logic in skills/plan-implementation/scripts/render-frontier with a contained Python implementation. Preserve the host-facing darrow-render-plan-frontier command through the smallest portable entrypoint needed by supported hosts.

Done criteria

  • Preserve accepted arguments, exact rendered structure, validation failures, stderr/stdout separation, and exit codes.
  • Cover single-line validation, option/choice matching, question counts, recommendation restrictions, and deferred-category restrictions with behavioral tests.
  • Add the plugin package to the repository Python inventory and satisfy formatting, strict typing, complexity, property-test, and independent line/branch coverage gates.
  • Prove fresh plugin installation and execution without repository-relative references.
  • Validate path and argument behavior on Linux, macOS, and native Windows.
  • Keep discovery and implementation-planning skill evals behaviorally unchanged.
  • Update documentation and both manifests with the same semantic version.

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