feat: add consolidated carve-changesets CLI - #42
Merged
Conversation
## Summary - Port the frozen prepare-changesets implementation behind one classified CLI - Harden GitHub, preflight, push-chain, and file-based message boundaries - Wire materialization and live status validation to the published carve contracts - Port focused tests and evals to the new skill root ## Why - Provide the implementation surface required by issue #30 without changing the frozen source skill - Make remote mutation dry-run by default and preserve the base and source branches
## Summary - Make status plan-free and bind strict validation to materialized live chains - Bind pull request publication to exact local and remote heads and verify the created PR - Point evals at the consolidated interface and standardize db_compare spelling ## Why - Preserve live truth after ephemeral plans are removed - Reject stale or rewritten candidates before they become remote artifacts - Keep the greenfield interface and tests internally consistent
## Summary - Resolve the selected git remote to an exact GitHub host, owner, and repository - Pass that repository explicitly to every pull request create, view, and list call - Cover a non-default enterprise remote while a conflicting origin and GH_REPO exist ## Why - Keep live git validation and GitHub reads and mutations on the same repository - Prevent ambient CLI configuration from redirecting candidate-bound operations
## Summary - Remove the eager patch and hunk precheck from strict validation - Let apply_changeset provide the single strict-apply viability proof - Delete the now-unused patch-check helpers ## Why - Avoid running two implementations of the same patch applicability check - Keep strict validation behavior aligned with actual chain materialization
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.
TL;DR
Adds the consolidated, safety-hardened
carve-changesetsCLI while preserving live chain identity and validation from the merged contract work.Summary
scripts/cli.pysurface for planning, materialization, comparison, validation, status, PR creation, and exact-lease changeset pushesprepare-changesetsuntouchedValidation
just formatjust lint-pyjust lint-mdjust test-carve-changesets— 70 tests passedjust testgit diff --checkskills-ref validatec8ca89566562d7d154bfe1a1711140323e3ba9f8just lintreaches the downstream #35 packaging boundary and fails only withskills/carve-changesets: Missing required file: SKILL.md. Issue #35 owns that file; this exact failure is the authorized exception for #30. No other lint or validation failure is waived.Tickets
Fixes #30