feat(cli): #200 migrate status command#216
Merged
Merged
Conversation
Implements wrap-god migrate status reading <schema>.state.json without running migrations. - --schema, --project, --json, --verbose flags - Human-readable summary with per-rule grouping - JSON summary for tooling - Exit codes: 0 no-manual, 2 manual present, 1 corrupt/schema-missing - Highlights <state> synthetic SkippedRewrite for corruption-recovery awareness - 17 TinyBDD scenarios (all green) - docs/guide/cli.md updated with migrate status section - docs/migration/state.md cross-linked - WrapGod.Cli.csproj: added WrapGod.Migration.Engine project reference - CliCommandTests.cs: added status to ExpectedMigrateCommands Closes #200 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Test Results792 tests 791 ✅ 2m 17s ⏱️ Results for commit da540c4. ♻️ This comment has been updated with latest results. |
…project-dir alignment Addresses review on PR #216: - Adds progressPct + library/from/to to JSON output per plan - Adds "N / M rules applied (P%)" line in human output (or "n/a" when 0 rules) - Renames --project to --project-dir to match plan and #199 sibling command - Adds Status_ZeroRules_HandlesNa test scenario - Adds Status_ProgressRatio_PopulatedWhenTotalRulesNonZero test scenario - Help test verifies --verbose and --project-dir present - TODO comment in CliCommandTests.ExpectedMigrateCommands for #199 coordination - Drops JsonIgnoreCondition.WhenWritingNull so progressPct/library/from/to are emitted as explicit null when not applicable (tooling distinguishes missing vs n/a) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
wrap-god migrate statussubcommand that reads<schema>.state.jsonwithout running any migration--jsonoutput modes with--verboseper-rule detail flag<state>syntheticSkippedRewriteentries from corruption-recovery runs (Migration Engine: State tracking (state file, idempotent re-runs) #197)--projectflag for relative--schemaresolutionTest plan
MigrateStatusCliTests.cs, all green--jsonparses as JSON with applied/skipped/manual fields--verboseincludes per-rule IDs from all three lists--schemaflag exits non-zero--jsonwith no state outputs{ "status": "no-runs-recorded" }<state>synthetic SkippedRewrite outputs recovery mention--helplists--schemaand--json--projectresolves relative--schemaCliCommandTests.cs:ExpectedMigrateCommandsupdated to includestatusGenerated with Claude Code