Skip to content

Unify workflow scripts under a single Python implementation per command #3277

Description

@mnriem

Goal

Replace the paired bash (.sh) + PowerShell (.ps1) scripts with one Python script per occurrence, eliminating dual-maintenance and the jq/manual-JSON divergence. The specify CLI is already Python, so the interpreter is guaranteed present — no new runtime dependency.

Scope

~4,500 lines across ~10 script pairs:

  • Core scripts/{bash,powershell}/ — common, check-prerequisites, create-new-feature, setup-plan, setup-tasks
  • extensions/agent-context/scripts/ — update-agent-context
  • extensions/git/scripts/ — git-common, initialize-repo, auto-commit, create-new-feature-branch

Strategy

Incremental. Introduce py as a third script type alongside sh/ps, port one script end-to-end as a proof of concept with output-parity tests, then migrate the rest. Only after parity is proven do we consider deprecating sh/ps.

Contract to preserve

Agents parse script stdout (FEATURE_DIR:…, AVAILABLE_DOCS:…, JSON shapes, and the --json / --paths-only / --require-tasks / --include-tasks flags). Behavioral parity is the acceptance bar for every port.

Sub-issues

Out of scope (for now)

Removing .sh/.ps1 files. They stay until py reaches full parity and adoption.

Activity

  1. self-assigned this
    on Jul 2, 2026
  2. mnriem commented on Jul 22, 2026

    @mnriem
    CollaboratorAuthor

    All seven sub-issues (#3278–#3284) are closed and every in-scope deliverable is merged to main:

    Behavioral parity is covered by dedicated parity tests. Removing the .sh/.ps1 files remains intentionally out of scope until py reaches full adoption. Closing as complete.

    Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8).

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions