$npx -y skills add zuharz/ccode-to-codex --skill migration-dashboardCodex-native migration analysis dashboard for Claude→Codex skills and agents. Reads migration-state.json to report progress, drift, velocity, nativeness-review state, validator results, and next-batch recommendations. Use for "migration status", "what should I migrate next", "m
| 1 | <!-- Generated by the ccode-to-codex mirror sync on 2026-04-14 from input revision 9a2403fb. --> |
| 2 | # Migration Dashboard |
| 3 | |
| 4 | **Purpose**: Answer "where are we, what drifted, what should be migrated |
| 5 | next, and when should nativeness review take over?" from the tracker plus live |
| 6 | repo state. |
| 7 | |
| 8 | ## Conversation-First Entry |
| 9 | |
| 10 | Bare dashboard requests should open with intent routing, not raw flags. Follow |
| 11 | the shared contract at |
| 12 | `../migrate-to-codex/references/conversational-migration-contract.md`. |
| 13 | |
| 14 | Default menu for underspecified requests: |
| 15 | |
| 16 | 1. Status |
| 17 | 2. What should I migrate next? |
| 18 | 3. Review nativeness backlog |
| 19 | 4. Show unreviewed migrated artifacts |
| 20 | 5. Show migrated agents needing nativeness review |
| 21 | 6. Show migrated skills needing nativeness review |
| 22 | 7. Validate migrated artifacts |
| 23 | 8. Refresh tracker and show status |
| 24 | |
| 25 | Routing rules: |
| 26 | |
| 27 | - If the user already says `what next`, `review nativeness`, `unreviewed migrated |
| 28 | artifacts`, `agents needing nativeness review`, `skills needing nativeness review`, |
| 29 | `validate migrations`, or `refresh`, route directly. |
| 30 | - In Plan mode, use `request_user_input` only for the action choice. |
| 31 | - Outside Plan mode, render the same menu as numbered text. |
| 32 | - Require explicit confirmation before `--refresh` because it writes the |
| 33 | tracker file. |
| 34 | - After any non-empty nativeness queue, stay inside that queue subtree and |
| 35 | prompt for `review next`, `review <number>`, `review <name>`, or `back`. |
| 36 | - Bare numbers are reserved for the root dashboard menu; queue picks must use |
| 37 | the `review ...` prefix. |
| 38 | |
| 39 | ## Advanced CLI |
| 40 | |
| 41 | - Canonical front door: `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py` |
| 42 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py` |
| 43 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --plan` |
| 44 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --review-backlog` |
| 45 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --unreviewed --json` |
| 46 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --agent-nativeness` |
| 47 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --skill-nativeness` |
| 48 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --validate --json` |
| 49 | - `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --refresh --json` |
| 50 | - Power-user raw analyzer: `python3 .codex/skills/migration-dashboard/scripts/analyze_migration.py --json` |
| 51 | |
| 52 | ## Sandbox Policy |
| 53 | |
| 54 | Recommended mode: `workspace-write` |
| 55 | |
| 56 | Rationale: the dashboard reads repo state and tracker data, and `--refresh` |
| 57 | updates `migration-state.json` through the repo tracker script. |
| 58 | |
| 59 | ## Runtime Contract |
| 60 | |
| 61 | 1. Preserve direct script execution. This workflow is script-driven, not |
| 62 | sub-agent-driven for status, planning, validation, and refresh modes. |
| 63 | 2. The analyzer is the source of truth for status, planning, drift, velocity, |
| 64 | and validator aggregation. |
| 65 | 3. Shared tracker-state helpers live in |
| 66 | `tools/migration_support/`; analyzer |
| 67 | scripts bootstrap that package before importing tracker helpers. |
| 68 | 4. Mode routing stays stable: |
| 69 | - default / `--status`: structural progress, nativeness-review state, tier breakdown, drift, velocity |
| 70 | - `--plan`: next batch recommendation with dependency ordering |
| 71 | - `--review-backlog`: prioritized nativeness-review queue across skills and agents |
| 72 | - `--unreviewed`: exhaustive pending nativeness-review queue across migrated skills and agents |
| 73 | - `--agent-nativeness`: migrated agents currently parked in `pending_native_review` |
| 74 | - `--skill-nativeness`: migrated skills currently parked in `pending_native_review` |
| 75 | - `--validate`: validator pass/fail across migrated skills plus review-state context |
| 76 | - `--refresh`: `tools/migration_support/tracker.py --write`, then status |
| 77 | 5. Tracker data comes from `migration-state.json`. Missing or malformed |
| 78 | tracker state is a first-class UX case: explain it briefly, offer the repair |
| 79 | action, and do not collapse into an opaque stack trace. |
| 80 | 6. Queue-selection state should come from the analyzer's JSON contract, not by |
| 81 | reparsing rendered text. Cache the most recent displayed queue with |
| 82 | session-scoped state such as `session_state_store` in the parent chat |
| 83 | workflow so `review next`, `review <number>`, and `review <name>` resolve |
| 84 | deterministically. |
| 85 | 7. A queued nativeness review is bounded orchestration work. When the user says |
| 86 | `review next`, `review <number>`, or `review <name>` for a displayed queue, |
| 87 | this workflow is authorized to route into the sibling migration skill's |
| 88 | read-only nativeness-review flow without a |