Delegate capability mutations through authoritative App operations, bridge portable RegisterCommand metadata into the TUI registry, and enforce monotonic migration-frontier transitions against the baseline revision.
Task 3.5/3.6 - live bidirectional frontier/source verification.
- Structural Rust item parser (pure stdlib): free functions, inherent
methods, trait-impl methods with qualified item paths (module layout
derived); brace/paren/generic aware; comment+string blanking
- Concrete-App detection on first parameter type (&mut App /
&mut crate::tui::app::App)
- Bidirectional frontier check: pending group covers all its handlers;
documented split requires ALL slices pending with handlers; stale
removal (handler remains but group not pending), stale entry (pending
group with no handler), and partial split all fail with diagnostics
- Selector resolution: checked-in selector records resolve to exactly
one source item with a concrete-App signature; missing/ambiguous fail
- 8 new hermetic source-scan fixtures (47 total): parse free/trait/
inherent, non-App ignored, missing file, matching frontier, cheating
removal, stale entry, live source agreement
Verified: test_check_command_migration_manifest.py 47/47 OK; live gate
PASS (frontier exactly matches source; all nine groups pending);
fmt/contract/boundary/clippy all green.
Generated with Claude Code