-
Notifications
You must be signed in to change notification settings - Fork 125
Description
Summary
The Copilot Coding Agent runs in a cloud-based GitHub Actions environment configured by copilot-setup-steps.yml. This workflow pre-installs tools to match devcontainer capabilities. It currently lacks uv installation and Python dependency resolution, meaning the Coding Agent cannot run Python linting or testing commands.
Context
Issue #388 (closed) established the copilot-setup-steps.yml pattern for tool parity between local and agent environments. Issue #514 (closed, v3.0.0) addressed specific parity gaps between the devcontainer and copilot-setup-steps. The copilot-instructions.md documents an explicit Environment Synchronization section stating that when adding tools to either environment, both should be evaluated for the same change.
With PR #868 introducing Python skills and #887 adding uv to the devcontainer, this workflow must be updated to maintain parity. The Copilot Agent environment already has Python 3.11 available (documented in copilot-instructions.md), but needs uv for package management and dependency resolution.
Changes Required
| File | Change |
|---|---|
.github/workflows/copilot-setup-steps.yml |
Add uv installation step |
.github/workflows/copilot-setup-steps.yml |
Add uv sync step for Python dependency resolution using dynamic discovery |
.github/copilot-instructions.md |
Update Pre-installed Tools section to document uv availability |
The uv installation should use a pinned version and verified download method consistent with the devcontainer approach (#887). The uv sync step should discover and iterate over all pyproject.toml files under .github/skills/ using the same pattern as the devcontainer:
find .github/skills -name pyproject.toml -execdir uv sync \;This ensures parity with the devcontainer (#887) and automatically resolves dependencies for new Python skills without workflow modifications.
Acceptance Criteria
-
uvis installed and available on PATH in the Copilot Agent environment -
uv syncresolves Python dependencies for allpyproject.tomlfiles found under.github/skills/ -
npm run lint:pyandnpm run test:pywork in the Copilot Agent environment -
copilot-instructions.mdPre-installed Tools section listsuv - Environment Synchronization section reflects Python tooling additions
- Adding a new Python skill with
pyproject.tomlis automatically resolved without workflow changes - The workflow continues to complete within reasonable time bounds
Dependencies
- Should be coordinated with feat(devcontainer): Add Python development extensions and uv package manager #887 (devcontainer changes) to maintain parity
- Python npm scripts (feat(scripts): Add npm run scripts for Python linting and testing #886) will consume the tools installed here
Related
- PR feat(skills): add PowerPoint automation skill with YAML-driven deck generation #868 — PowerPoint automation skill (first Python skill)
- feat(devcontainer): Add Python development extensions and uv package manager #887 — DevContainer Python extensions and uv installation
- feat(scripts): Add npm run scripts for Python linting and testing #886 — npm scripts for Python linting and testing
- fix(devcontainer): resolve tool parity gaps between devcontainer and copilot-setup-steps #514 — Prior devcontainer/copilot-setup parity work (closed)
- [Issue]: Ensure Tool Parity Between DevContainer, Custom Agents, and GitHub Copilot Coding Agent #388 — Established copilot-setup-steps pattern (closed)