Repository navigation
Conversation
Shared interface (RequiredFieldIssue / FieldValidationResult) used by verify to classify differences explained by a source item missing a required field. Minimal faithful copy; the version on the validation branch wins at merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecks, report) - mapping-index: Map-backed bidirectional indices over every mapping type, read-only - canonicalize: neutral comparison form (target IDs, linked refs, asset URL translation and host aliasing, null/empty/CRLF/case/numeric normalization); shares no code with the push transforms - checks: mapping integrity, models/containers/templates, content (fields, counts, list order), page fields and zones (section-ID or exact-name pairing, never positional), sitemap (parent, sibling order, missing) - verify-report: findings, tallies, exit codes, console table, JSON report - writeJsonSummary accepts any report object Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Status guard (bounded 10-minute wait in preview and fetch mode, re-pull once if an update lands during the pull), full pull of both instances, per-locale checks, console + JSON report. Exit 0 pass, 1 differences, 2 could not verify. Accepts only existing flags via a dedicated verifyArgs set; never writes to an instance or to the mapping files. Also satisfies PROD-2549. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <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.
Problem
Brightstar has had migrations where the sync reported success but components on pages ended up in the wrong order, and they couldn't be sure the page and sitemap order was right.
--preflightonly says what a sync intends to do. Nothing checks what it actually did, so the only way to confirm a migration is a manual regression pass over 100+ pages, which took them about two weeks last time. For the SPL blue/green cutover on Nov 23 we need a step that proves the new instance matches before traffic switches.Change
New command
agility verify --sourceGuid X --targetGuid Y. It adds no new flags: it reuses--locales,--channel,--models,--pages,--containersand--jsonSummary. It never writes to either instance or to the mapping files.Pull guard
pullignores a failed status check, but verify doesn't (see PROD-2754).Comparison
validateContentItemAgainstModel) or an item in a deleted container.Testing
npx jest: 126 suites / 2,389 tests pass (main: 116 / 2,252).tsc --noEmitis clean.7a2c6fef-us2 → df079bec-us2(en-us, pt-br). The full pull took 54s the first time, mostly downloading assets, and about 4s on the repeat run; the comparison took 0.2s. Exit 1: 15 failures, 15 warnings, 67 source defects. On 10-02 the sync for this pair reported 77 ok / 0 failed, but the failures are real target defects:/scratchers(en-us) has empty zones on the target, missing 5 components. Three pt-br pages are missing 4 components between them.home_homebanneritems lostmobileBackgroundImage, and one item links a list that only exists on the target.Known limits / follow-ups
--models,--pagesor--containers, the checks for extra target items and per-container counts are skipped. The scoped modes haven't been run against live data.validate-required-fields.tsis also in PROD-2542: validate content against the target model before sending it; harden batch result alignment #234. Take PROD-2542: validate content against the target model before sending it; harden batch result alignment #234's copy at merge.Closes PROD-2552. Covers PROD-2549.
🤖 Generated with Claude Code