Fix/on boarding - #37
Merged
Merged
Conversation
…nflict resolution hints
…nflict resolution
…ames in ADRs 001-012
… and contributor workflow
Contributor
There was a problem hiding this comment.
Pull request overview
Improves the vstack first-install experience (especially when .github/ already contains files) by making install --dry-run output more actionable, while also aligning repository documentation/ADRs and hardening the PyPI publish workflow.
Changes:
- Enhance
vstack install --dry-runwith consistent per-artifact action output plus a structured summary (includingtype/namepreserved selectors). - Update docs/ADRs/roadmap for role naming, CLI architecture signatures, and current repo structure.
- Harden PyPI publish workflow (trusted publishing + fallback) and bump dev dependencies.
Reviewed changes
Copilot reviewed 29 out of 30 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/vstack/test_integration.py | Adds integration coverage asserting preserved selector output includes type/name. |
| tests/vstack/cli/test_install.py | Adds unit tests for install summary rendering and install action return values. |
| src/vstack/cli/service.py | Updates module docstring to match current CLI architecture. |
| src/vstack/cli/parser.py | Extends --force-name / --adopt-name help/metavar to support type/name selectors. |
| src/vstack/cli/install.py | Implements action counting + preserved selectors summary; supports type/name targeting in install decisions. |
| src/vstack/artifacts/protocol.py | Updates ArtifactGenerator protocol docstring to reflect all generator implementers. |
| poetry.lock | Bumps cachetools and tox versions. |
| docs/product/roadmap.md | Updates roadmap feature table and adds v2.0.0 shipped feature sections. |
| docs/design/skills.md | Corrects primary role for the security skill. |
| docs/design/design.md | Fixes CLI dispatch/run signature docs, updates diagrams/tables, removes stale placeholder. |
| docs/architecture/architecture.md | Aligns BaseCommand contract docs and removes stale placeholder mention. |
| docs/architecture/adr/012-flat-templates-install-time-generation.md | Maintainer role corrected to architect. |
| docs/architecture/adr/011-skill-restructure.md | Maintainer role corrected; status updated; clarifies guardrails disposition. |
| docs/architecture/adr/010-artifact-flow.md | Maintainer role corrected; adds 4th gate; removes stale runner reference. |
| docs/architecture/adr/009-role-model.md | Maintainer role corrected to architect. |
| docs/architecture/adr/008-agents-over-prompts.md | Maintainer role corrected; updates tool names/structure references. |
| docs/architecture/adr/007-python-runtime.md | Maintainer role corrected; updates repo structure and supported Python range. |
| docs/architecture/adr/006-no-runtime-dependency.md | Maintainer role corrected to architect. |
| docs/architecture/adr/005-vscode-prompt-format.md | Maintainer role corrected to architect. |
| docs/architecture/adr/004-option-a-to-b-pipeline.md | Maintainer role corrected to architect. |
| docs/architecture/adr/003-backend-first-verify.md | Maintainer role corrected to architect. |
| docs/architecture/adr/002-artifact-naming-and-compatibility-policy.md | Maintainer role corrected to architect. |
| docs/architecture/adr/001-vscode-native-variant.md | Maintainer role corrected to architect. |
| SECURITY.md | Updates support matrix to reflect 2.x supported and 1.x unsupported. |
| README.md | Adds first-install dry-run workflow and preserved-files troubleshooting; updates examples for type/name. |
| README-pypi.md | Mirrors README install guidance updates in a PyPI-safe form. |
| CONTRIBUTING.md | Updates developer commands (make test-local, make check) and documents 100% coverage requirement. |
| CHANGELOG.md | Normalizes bullet formatting for recent release entries. |
| .github/workflows/publish.yml | Adds publish concurrency + trusted publishing with API token fallback. |
| .github/copilot-instructions.md | Documents canonical dev commands and CLI architecture conventions for contributors/agents. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Improves the first-install experience for users who already have files in
.github/, fixes documentation consistency issues found across the full doc set, and hardens the PyPI publish pipeline.CLI — dry-run conflict resolution (
feat(cli))vstack install --dry-runnow prints a consistent per-file prefix (install,update,skip,preserve,adopt) and a structured summary block with action counters.type/nameselectors (e.g.agent/engineer,skill/verify) so users can resolve each conflict selectively with--force-nameor--adopt-name.--force-nameand--adopt-nameboth accepttype/nameselectors for disambiguation when multiple artifact types share a name._print_summaryand integration test assertingtype/nameselectors appear in--dry-runstdout.User-facing docs (
patch(docs))--force-name/--adopt-nameexamples updated to showtype/nameselector syntax.ADR consistency (
chore(docs))agents→architectacross all 12 ADRs.scripts/paths andpackage.jsonreference with currentsrc/vstack/structure; Python range updated to 3.11–3.14.TOOL_MAP,gen_skill_docs.py, andscripts/runner.pyreferences.scripts/runner.pyreference.planned for v0.5.0→implemented; guardrails disposition clarified as "retained as active skill".Design doc consistency (
chore(docs))BaseCommand.run()signature fixed (run(args,...)→run(*, context: CommandContext) -> int) in architecture.md and design.md.modelfield type corrected (string→string or list).{{API_CONTRACT_CHECKLIST}}placeholder removed.securityskill primary role corrected:engineer→tester.make test→make test-local,make bootstrapnote, make targets table, 100% coverage requirement.2.x: Yes/1.x: Nosupport matrix updated.CommandServiceandArtifactGenerator.CI (
chore(ci))publish.yml: added trusted publishing with API token fallback andpublish-pypiconcurrency group.Deps (
chore(deps))cachetools7.0.6 → 7.1.0,tox4.53.0 → 4.53.1.Why
Users with pre-existing
.github/files had no clear way to understand what install would skip or how to resolve preserved files selectively. The dry-run output now gives a complete picture and actionable next steps. The documentation fixes address consistency gaps found during a full doc review.Version impact