Skip to content

feat(artifacts)!: replace prompts with skills and migrate managed installs - #113

Merged
eschaar merged 9 commits into
mainfrom
feat/replace-prompts-with-skills
Oct 17, 2026
Merged

eschaar merged 9 commits into
mainfrom
feat/replace-prompts-with-skills

Conversation

@eschaar

@eschaar eschaar commented Oct 17, 2026

Copy link
Copy Markdown
Owner

Summary

Why

The Copilot harness requires reusable prompt workflows to move to skills. Managed upgrades must clean up retired artifacts without deleting user changes. This also aligns supported Python runtimes and incorporates pending dependency updates.

Version impact

  • None
  • Patch
  • Minor
  • Major

eschaar and others added 8 commits October 17, 2026 15:34
…talls

Retire the prompt artifact family, reuse eleven existing skill workflows, and convert six unique workflows to explicit-only skills.

Install replacement skills before retiring unchanged, tracked legacy prompts. Preserve custom or modified files, unsafe paths, and unresolved conflicts for manual review and retries.

Validation: 698 tests pass with 100% coverage; Ruff, mypy, template validation, and installed manifest verification pass.

BREAKING CHANGE: Remove prompt artifact selectors, vstack.prompts, PromptGenerator, and PROMPT_SCHEMA. Use the documented replacement skills and run vstack init to migrate managed prompts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain Python 3.11 compatibility and extend tox and CI coverage through 3.15. Update pyenv patch versions, package metadata, lockfile, and support documentation.

Validation: 698 tests with 100% coverage on each supported minor; lint, typecheck, formatting, Markdown lint, package builds, and boundary wheel smoke tests pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the maintenance-only artifact-integrity template from distribution and retain its hand-authored skill outside manifest ownership. Map the retired prompt to inspect and reuse conservative obsolete cleanup for previously managed copies.

Document repository-only artifact ownership and cover fresh installs, forced installs, pruning, and modified legacy copies. Validation: 702 tests with 100% coverage, including Python 3.11 and 3.15; lint, typing, formatting, packaging, and manifest checks pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Clarify that workflow checks use project configuration, installed agents, role documents, and handoff definitions rather than vstack source templates. Bump the skill revision, regenerate artifacts, and align catalog documentation.

Synchronize one stale generated refactor version footer; its procedure is unchanged. Validation: all five converted skill contracts pass and complete source/output verification succeeds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply Dependabot PR #109 while preserving the Python 3.11+ support range. Regenerate the lock with Poetry and verify type checking.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply Dependabot PR #110 with an immutable action SHA while retaining Python 3.14 CI defaults.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply Dependabot PR #111 with its required python-discovery 1.6.1 update. Preserve current Python support metadata and avoid unrelated newer dependency upgrades.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply Dependabot PR #112: Ruff 0.16.10, mypy 2.4.0, and tox 4.64.10. Regenerate the lock with required mypy dependency updates while retaining Python 3.11+ compatibility and prior dependency commits.

Validation: install the locked development environment; lint, typecheck, and formatting pass. All five Python 3.11-3.15 test environments pass 702 tests with 100% coverage.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Two moderate migration issues remain: unhandled permission errors and legacy prompt deletion before replacements are fully resolved.

1 open issue
What changed in this PR

This breaking change replaces prompt artifacts with skills and migrates managed installations. It also updates documentation, dependencies, and Python support.

Changes:

  • Retire prompt generation and convert workflows to skills.
  • Add checksum-protected retirement of managed legacy prompts.
  • Keep artifact-integrity repository-local and clarify workflow-check scope.
  • Default to Python 3.14 and support Python 3.11–3.15.

Unresolved issues:

  • Moderate, 1 vote — src/vstack/cli/init.py:588: Permission errors during symlink probes can abort installation before replacement manifest entries are saved on Python 3.11–3.13. Catch OSError and preserve the legacy entry for retry.
  • Moderate, 2 votes — src/vstack/cli/init.py:820: Replacements containing unresolved placeholders can trigger deletion of working legacy prompts. Require fully resolved replacements before retiring prompts.
File Description
tests/​vstack/​prompts/​test_generator.py Remove retired generator tests.
tests/​vstack/​prompts/​test_constants.py Remove prompt constant tests.
tests/​vstack/​prompts/​test_config.py Remove prompt configuration tests.
tests/​vstack/​prompts/​test___init__.py Remove prompt export tests.
tests/​vstack/​cli/​test_status.py Use an active artifact filter.
tests/​vstack/​cli/​test_service.py Expect four artifact families.
tests/​vstack/​cli/​test_parser.py Test retired selector rejection.
tests/​vstack/​cli/​test_interface.py Update filter and exclusion expectations.
tests/​vstack/​cli/​test_constants.py Extend the skill catalog.
tests/​vstack/​artifacts/​test_generator.py Verify converted skill contracts.
tests/​vstack/​artifacts/​test_config.py Remove prompt schema tests.
tests/​vstack/​artifacts/​conftest.py Remove prompt fixture helper.
tests/​_fixtures/​golden/​prompts/​quick-review.prompt.md Remove retired fixture.
tests/​_fixtures/​golden/​prompts/​api-design-review.prompt.md Remove retired fixture.
src/​vstack/​prompts/​generator.py Remove prompt generator.
src/​vstack/​prompts/​constants.py Remove prompt constants.
src/​vstack/​prompts/​config.py Remove prompt configuration.
src/​vstack/​prompts/​__init__.py Remove prompt package exports.
src/​vstack/​cli/​parser.py Reject retired prompt selectors.
src/​vstack/​cli/​interface.py Warn about retired exclusions.
src/​vstack/​cli/​init.py Implement managed prompt retirement.
src/​vstack/​cli/​constants.py Register skills and replacement mappings.
src/​vstack/​cli/​catalog.py Update filter examples.
src/​vstack/​artifacts/​models.py Update artifact terminology.
src/​vstack/​artifacts/​config.py Remove prompt schema.
src/​vstack/​artifacts/​__init__.py Remove prompt schema export.
src/​vstack/​_templates/​skills/​workflow-check/​template.md Define consumer-focused workflow auditing.
src/​vstack/​_templates/​skills/​workflow-check/​config.yaml Configure explicit invocation.
src/​vstack/​_templates/​skills/​upgrade-plan/​template.md Define read-only upgrade planning.
src/​vstack/​_templates/​skills/​upgrade-plan/​config.yaml Configure explicit invocation.
src/​vstack/​_templates/​skills/​release-check/​template.md Define report-only release auditing.
src/​vstack/​_templates/​skills/​release-check/​config.yaml Configure explicit invocation.
src/​vstack/​_templates/​skills/​reasoning/​template.md Convert reasoning guidance to skill terminology.
src/​vstack/​_templates/​skills/​reasoning/​config.yaml Configure explicit invocation.
src/​vstack/​_templates/​skills/​migration-plan/​template.md Define read-only migration planning.
src/​vstack/​_templates/​skills/​migration-plan/​config.yaml Configure explicit invocation.
src/​vstack/​_templates/​skills/​advise/​template.md Reference the reasoning skill.
src/​vstack/​_templates/​skills/​advise/​config.yaml Update template revision.
src/​vstack/​_templates/​prompts/​test-gaps/​template.md Remove overlapping prompt workflow.
src/​vstack/​_templates/​prompts/​test-gaps/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​template-impact/​template.md Remove overlapping prompt workflow.
src/​vstack/​_templates/​prompts/​template-impact/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​repo-assessment/​template.md Remove overlapping prompt workflow.
src/​vstack/​_templates/​prompts/​repo-assessment/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​quick-review/​template.md Remove overlapping review prompt.
src/​vstack/​_templates/​prompts/​quick-review/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​ops-readiness/​template.md Remove overlapping audit prompt.
src/​vstack/​_templates/​prompts/​ops-readiness/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​migration-safety/​template.md Remove overlapping migration prompt.
src/​vstack/​_templates/​prompts/​migration-safety/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​incident-timeline/​template.md Remove overlapping incident prompt.
src/​vstack/​_templates/​prompts/​incident-timeline/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​dependency-audit/​template.md Remove overlapping dependency prompt.
src/​vstack/​_templates/​prompts/​dependency-audit/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​ci-triage/​template.md Remove overlapping debugging prompt.
src/​vstack/​_templates/​prompts/​ci-triage/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​artifact-integrity/​template.md Remove distributed source-maintenance audit.
src/​vstack/​_templates/​prompts/​artifact-integrity/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​architecture-risk/​template.md Remove overlapping architecture prompt.
src/​vstack/​_templates/​prompts/​architecture-risk/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​prompts/​api-design-review/​template.md Remove overlapping API review prompt.
src/​vstack/​_templates/​prompts/​api-design-review/​config.yaml Remove prompt metadata.
src/​vstack/​_templates/​project/​.vstack/​config.yaml Remove retired exclusion example.
README.md Update positioning and migration links.
README-pypi.md Synchronize package overview.
pyproject.toml Update dependencies and Python support.
Makefile Extend Python test matrix.
docs/​user/​tutorials/​first-planner-run.md Update artifact-selection link.
docs/​user/​start-here.md Update artifact-selection link.
docs/​user/​reference/​work-items.md Link migration guidance.
docs/​user/​reference/​skills-overview.md Document converted and repository-only skills.
docs/​user/​reference/​README.md Update reference navigation.
docs/​user/​reference/​prompts-overview.md Remove retired prompt catalog.
docs/​user/​reference/​prompt-migration.md Document replacements and migration safeguards.
docs/​user/​reference/​instructions-overview.md Link migration guidance.
docs/​user/​reference/​configuration.md Explain retired exclusions.
docs/​user/​reference/​cli-commands.md Document automatic prompt retirement.
docs/​user/​README.md Update documentation navigation.
docs/​user/​how-to/​upgrade.md Add prompt migration guidance.
docs/​user/​how-to/​reinitialize.md Update filters and retirement guidance.
docs/​user/​how-to/​README.md Update artifact-selection link.
docs/​user/​how-to/​partial-upgrade.md Explain skill-scoped migration.
docs/​user/​how-to/​global-install.md Remove retired filter example.
docs/​user/​how-to/​choose-agent-or-skill.md Update artifact-selection guidance.
docs/​product/​requirements.md Update migration and runtime requirements.
docs/​design/​workflow.md Document skill workflows and runtime changes.
docs/​design/​skills.md Update skill catalog and ownership boundaries.
docs/​design/​overview.md Document migration mechanics.
docs/​design/​cicd.md Update runtimes and required-check documentation.
docs/​changes/​retire-prompts_skill_migration_20261017.md Record migration scope and acceptance criteria.
docs/​architecture/​overview.md Update artifact architecture.
docs/​architecture/​homebrew-publish-plan.md Update example Python dependency.
docs/​architecture/​adr/​032-skills-replace-prompts.md Record prompt retirement decision.
docs/​architecture/​adr/​007-python-runtime.md Document runtime support policy.
CONTRIBUTING.md Update setup and verification guidance.
.python-version Update interpreter pins.
.pre-commit-config.yaml Adjust relocated template exclusions.
.github/​workflows/​verify.yml Extend Python compatibility matrix.
.github/​workflows/​security.yml Update scanner runtime and TruffleHog pin.
.github/​workflows/​README.md Update runtime documentation.
.github/​workflows/​publish.yml Use Python 3.14.
.github/​workflows/​commit.yml Update quality-tool runtime.
.github/​workflows/​check.yml Use Python 3.14.
.github/​skills/​workflow-check/​SKILL.md Add generated workflow audit skill.
.github/​skills/​vision/​SKILL.md Refresh generator metadata.
.github/​skills/​verify/​SKILL.md Refresh generator metadata.
.github/​skills/​upgrade-plan/​SKILL.md Add generated upgrade planning skill.
.github/​skills/​threat-model/​SKILL.md Refresh generator metadata.
.github/​skills/​terragrunt/​SKILL.md Refresh generator metadata.
.github/​skills/​terraform/​SKILL.md Refresh generator metadata.
.github/​skills/​space-setup/​SKILL.md Refresh generator metadata.
.github/​skills/​simplify/​SKILL.md Refresh generator metadata.
.github/​skills/​security/​SKILL.md Refresh generator metadata.
.github/​skills/​secret-scan/​SKILL.md Refresh generator metadata.
.github/​skills/​requirements/​SKILL.md Refresh generator metadata.
.github/​skills/​release-notes/​SKILL.md Refresh generator metadata.
.github/​skills/​release-check/​SKILL.md Add generated release audit skill.
.github/​skills/​refactor/​SKILL.md Refresh generator metadata.
.github/​skills/​reasoning/​SKILL.md Convert reasoning artifact to skill.
.github/​skills/​rca/​SKILL.md Refresh generator metadata.
.github/​skills/​rancher/​SKILL.md Refresh generator metadata.
.github/​skills/​pr/​SKILL.md Refresh generator metadata.
.github/​skills/​postmortem/​SKILL.md Refresh generator metadata.
.github/​skills/​performance/​SKILL.md Refresh generator metadata.
.github/​skills/​openapi/​SKILL.md Refresh generator metadata.
.github/​skills/​onboard/​SKILL.md Refresh generator metadata.
.github/​skills/​migration-plan/​SKILL.md Add generated migration planning skill.
.github/​skills/​migrate/​SKILL.md Refresh generator metadata.
.github/​skills/​lazy/​SKILL.md Refresh generator metadata.
.github/​skills/​k8s/​SKILL.md Refresh generator metadata.
.github/​skills/​inspect/​SKILL.md Refresh generator metadata.
.github/​skills/​incident/​SKILL.md Refresh generator metadata.
.github/​skills/​helm/​SKILL.md Refresh generator metadata.
.github/​skills/​guardrails/​SKILL.md Refresh generator metadata.
.github/​skills/​gh-release/​SKILL.md Refresh generator metadata.
.github/​skills/​gh-issues/​SKILL.md Refresh generator metadata.
.github/​skills/​gdpr/​SKILL.md Refresh generator metadata.
.github/​skills/​explore/​SKILL.md Refresh generator metadata.
.github/​skills/​docs/​SKILL.md Refresh generator metadata.
.github/​skills/​design/​SKILL.md Refresh generator metadata.
.github/​skills/​dependency/​SKILL.md Refresh generator metadata.
.github/​skills/​dependabot/​SKILL.md Refresh generator metadata.
.github/​skills/​debug/​SKILL.md Refresh generator metadata.
.github/​skills/​copilot-ops/​SKILL.md Refresh generator metadata.
.github/​skills/​conventional-commit/​SKILL.md Refresh generator metadata.
.github/​skills/​container/​SKILL.md Refresh generator metadata.
.github/​skills/​consult/​SKILL.md Refresh generator metadata.
.github/​skills/​concise/​SKILL.md Refresh generator metadata.
.github/​skills/​codeql/​SKILL.md Refresh generator metadata.
.github/​skills/​code-review/​SKILL.md Refresh generator metadata.
.github/​skills/​cloudformation/​SKILL.md Refresh generator metadata.
.github/​skills/​cicd/​SKILL.md Refresh generator metadata.
.github/​skills/​changedoc/​SKILL.md Refresh generator metadata.
.github/​skills/​aws-cli/​SKILL.md Refresh generator metadata.
.github/​skills/​ask/​SKILL.md Refresh generator metadata.
.github/​skills/​artifact-integrity/​SKILL.md Make audit hand-authored and repository-local.
.github/​skills/​architecture/​SKILL.md Refresh generator metadata.
.github/​skills/​analyse/​SKILL.md Refresh generator metadata.
.github/​skills/​advise/​SKILL.md Update reasoning reference and metadata.
.github/​skills/​adr/​SKILL.md Refresh generator metadata.
.github/​prompts/​workflow-check.prompt.md Remove retired generated prompt.
.github/​prompts/​upgrade-plan.prompt.md Remove retired generated prompt.
.github/​prompts/​test-gaps.prompt.md Remove retired generated prompt.
.github/​prompts/​template-impact.prompt.md Remove retired generated prompt.
.github/​prompts/​repo-assessment.prompt.md Remove retired generated prompt.
.github/​prompts/​release-check.prompt.md Remove retired generated prompt.
.github/​prompts/​quick-review.prompt.md Remove retired generated prompt.
.github/​prompts/​ops-readiness.prompt.md Remove retired generated prompt.
.github/​prompts/​migration-safety.prompt.md Remove retired generated prompt.
.github/​prompts/​migration-plan.prompt.md Remove retired generated prompt.
.github/​prompts/​incident-timeline.prompt.md Remove retired generated prompt.
.github/​prompts/​dependency-audit.prompt.md Remove retired generated prompt.
.github/​prompts/​ci-triage.prompt.md Remove retired generated prompt.
.github/​prompts/​architecture-risk.prompt.md Remove retired generated prompt.
.github/​prompts/​api-design-review.prompt.md Remove retired generated prompt.
.github/​instructions/​typescript.instructions.md Refresh generator metadata.
.github/​instructions/​testing.instructions.md Refresh generator metadata.
.github/​instructions/​terragrunt.instructions.md Refresh generator metadata.
.github/​instructions/​terraform.instructions.md Refresh generator metadata.
.github/​instructions/​security.instructions.md Refresh generator metadata.
.github/​instructions/​rancher.instructions.md Refresh generator metadata.
.github/​instructions/​python.instructions.md Refresh generator metadata.
.github/​instructions/​markdown.instructions.md Refresh generator metadata.
.github/​instructions/​k8s.instructions.md Refresh generator metadata.
.github/​instructions/​java.instructions.md Refresh generator metadata.
.github/​instructions/​helm.instructions.md Refresh generator metadata.
.github/​instructions/​git.instructions.md Refresh generator metadata.
.github/​copilot-instructions.md Clarify skill references and ownership.
.github/​agents/​tester.agent.md Refresh generator metadata.
.github/​agents/​release.agent.md Refresh generator metadata.
.github/​agents/​product.agent.md Refresh generator metadata.
.github/​agents/​planner.agent.md Refresh generator metadata.
.github/​agents/​engineer.agent.md Refresh generator metadata.
.github/​agents/​designer.agent.md Refresh generator metadata.
.github/​agents/​architect.agent.md Refresh generator metadata.

Review effort: Balanced

Comment thread src/vstack/cli/init.py Outdated
Reject unresolved rendered replacements and inspect installed content when an unchanged skill is skipped. Preserve legacy prompts and manifest ownership until regeneration produces a usable replacement.

Add six missing-partial regressions covering install, update, skip, dry-run, and repair retries. Full quality gate passes on Python 3.11-3.15 with 708 tests and 100% coverage per interpreter.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@eschaar
eschaar merged commit 8837770 into main Oct 17, 2026
18 checks passed
@eschaar
eschaar deleted the feat/replace-prompts-with-skills branch October 17, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants