@code-migration/wow-migrator 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/android-to-kmp-migrator/SKILL.md +18 -5
- package/skills/android-to-kmp-migrator/bind.md +5 -0
- package/skills/android-to-kmp-migrator/dependencies.yaml +26 -1
- package/skills/android-to-kmp-migrator/output-contract.md +16 -2
- package/skills/android-to-kmp-migrator/roles/completion-report.md +2 -0
- package/skills/android-to-kmp-migrator/roles/migration-workspace-state.md +2 -0
- package/skills/android-to-kmp-migrator/workflow.md +16 -3
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: android-to-kmp-migrator
|
|
3
3
|
description: |
|
|
4
|
-
Module-first Swarm Skill that migrates Legacy Android into an existing KMP target using upstream analyst P6 artifacts, target-project-assistant alignment, planning/prep/implementation roles, global integrate+align phase, and kmp-test-validator handoff — without full-project build during migration.
|
|
5
|
-
Use
|
|
6
|
-
Do NOT use for Legacy Android analysis only, KMP-only feature work, or non-migration refactors.
|
|
7
|
-
version: "0.
|
|
4
|
+
Module-first Swarm Skill that migrates Legacy Android into an existing KMP target using upstream analyst P6 artifacts, target-project-assistant alignment, planning/prep/implementation roles, global integrate+align phase, and mandatory kmp-test-validator handoff — without full-project build during migration.
|
|
5
|
+
Use only after android-project-analyst has finished and package P6 is ready, when the user wants module-first porting then whole-system assembly followed by validation.
|
|
6
|
+
Do NOT invoke before android-project-analyst completes P6. Do NOT treat migrator completion as final without invoking kmp-test-validator at V0. Do NOT use for Legacy Android analysis only, KMP-only feature work, or non-migration refactors.
|
|
7
|
+
version: "0.7"
|
|
8
8
|
kind: swarm-skill
|
|
9
9
|
disable-model-invocation: true
|
|
10
10
|
roles:
|
|
@@ -71,7 +71,19 @@ Module-first migrator for Legacy Android → KMP target assembly.
|
|
|
71
71
|
5. **Per module** (assembly_order): TPA `module_anchors` → **planning-gate** → **prep** → review/fix → **implementation `ui`** → review/fix → **implementation `logic`** → review/fix → verification → completion record → readiness → module representation.
|
|
72
72
|
6. **Global phase `integrate`** → **`align`** + alignment report.
|
|
73
73
|
7. Global representation + completion-report `report` mode.
|
|
74
|
-
8. **kmp-test-validator** when **V0** ready.
|
|
74
|
+
8. **kmp-test-validator** — **mandatory** when **V0** ready (MG17).
|
|
75
|
+
|
|
76
|
+
## Skill Chain (mandatory)
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
android-project-analyst (P6) → android-to-kmp-migrator (M0–V0) → kmp-test-validator (V0)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
| Order | Skill | Gate | Rule |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| 1 | `android-project-analyst` | **P6** | MUST finish before migrator dispatch. If P6 missing/stale → run analyst first; migrator returns `blocked`. |
|
|
85
|
+
| 2 | `android-to-kmp-migrator` | **M0**–**V0** | Runs only on analyst P6 artifacts; produces `migration_report.*` at **V0**. |
|
|
86
|
+
| 3 | `kmp-test-validator` | **V0** | MUST be invoked after migrator **V0**; migration incomplete without validator dispatch. |
|
|
75
87
|
|
|
76
88
|
## Roles
|
|
77
89
|
|
|
@@ -110,6 +122,7 @@ Module-first migrator for Legacy Android → KMP target assembly.
|
|
|
110
122
|
|
|
111
123
|
## Shared Rules
|
|
112
124
|
|
|
125
|
+
- **Skill chain**: `android-project-analyst` **P6** before migrator; `kmp-test-validator` **after** migrator **V0** — both mandatory.
|
|
113
126
|
- Analyst **P6** required; TPA owns all target Q&A.
|
|
114
127
|
- Mode boundaries non-negotiable: `ui`/`logic`, `integrate`/`align`, `review`/`fix`.
|
|
115
128
|
- No full project build in migrator.
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
## Behavioral Constraints
|
|
20
20
|
|
|
21
|
+
- **Skill chain (mandatory)**:
|
|
22
|
+
- **Before migrator**: `android-project-analyst` MUST finish and produce package **P6** (`handoff_gates.P6.ready = true`). If P6 is missing or stale, return `blocked` and dispatch analyst — do not start migrator nodes.
|
|
23
|
+
- **After migrator**: when package **V0** is ready, Leader MUST invoke `kmp-test-validator` (MG17). Migrator completion without validator dispatch is invalid.
|
|
21
24
|
- **Role schedule**: dispatch only role IDs listed in [SKILL.md](SKILL.md).
|
|
22
25
|
- **Mode discipline**:
|
|
23
26
|
- `module-implementation`: `ui` then `logic` — separate invocations
|
|
@@ -38,6 +41,8 @@
|
|
|
38
41
|
| Verification restoration failed | Rerun `module-implementation` or `migration-prep`; no completion record |
|
|
39
42
|
| Align omissions | Rerun `rerun_modules` or `global-migration-phase integrate` |
|
|
40
43
|
| Build requested in migrator | Block; route to kmp-test-validator |
|
|
44
|
+
| Migrator invoked before analyst P6 | Block; dispatch `android-project-analyst` first |
|
|
45
|
+
| V0 ready but validator not invoked | Block; dispatch `kmp-test-validator` at MG17 |
|
|
41
46
|
|
|
42
47
|
## Dependencies
|
|
43
48
|
|
|
@@ -6,7 +6,18 @@
|
|
|
6
6
|
# replaces durable node artifacts or upstream android-project-analyst package P6 inputs.
|
|
7
7
|
# Full KMP project compile/build is NOT a migrator dependency; kmp-test-validator owns that at package V0.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
# Skill chain (mandatory — Leader enforces at Step 0 and MG17)
|
|
10
|
+
skills:
|
|
11
|
+
- name: android-project-analyst
|
|
12
|
+
required: true
|
|
13
|
+
phase: prerequisite
|
|
14
|
+
handoff_package: P6
|
|
15
|
+
must_complete_before: android-to-kmp-migrator
|
|
16
|
+
purpose: |
|
|
17
|
+
android-to-kmp-migrator MUST NOT be invoked until android-project-analyst has
|
|
18
|
+
finished and produced package P6 (handoff_gates.P6.ready = true). If P6 is
|
|
19
|
+
missing or stale, dispatch or re-run android-project-analyst first — do not
|
|
20
|
+
start migrator module dispatch.
|
|
10
21
|
|
|
11
22
|
# Read-only upstream inputs (not MCP — verified at Step 1)
|
|
12
23
|
upstream_inputs:
|
|
@@ -69,6 +80,18 @@ tools:
|
|
|
69
80
|
# Target Gradle wrapper: path discovery reference only during migrator.
|
|
70
81
|
# migration-verification MUST NOT invoke assemble/test; kmp-test-validator uses the wrapper at V0.
|
|
71
82
|
|
|
83
|
+
downstream_handoff:
|
|
84
|
+
- consumer: kmp-test-validator
|
|
85
|
+
handoff_package: V0
|
|
86
|
+
required: true
|
|
87
|
+
must_invoke_after: android-to-kmp-migrator
|
|
88
|
+
when: package M6 passed and migration_report.* ready
|
|
89
|
+
purpose: |
|
|
90
|
+
After android-to-kmp-migrator finishes (handoff_gates.V0.ready = true), the Leader
|
|
91
|
+
MUST invoke kmp-test-validator. Migration is incomplete without validator dispatch.
|
|
92
|
+
Do not treat migrator completion as final until validator is invoked or blocked
|
|
93
|
+
with explicit validator blockers recorded in migration_report and workspace ledger.
|
|
94
|
+
|
|
72
95
|
degraded_modes:
|
|
73
96
|
- trigger: analyst P6 not ready
|
|
74
97
|
effect: blocked — do not dispatch migration nodes; repair upstream analyst handoff first
|
|
@@ -80,3 +103,5 @@ degraded_modes:
|
|
|
80
103
|
effect: migration-prep records resource_gaps for remote media URLs
|
|
81
104
|
- trigger: jetbrains MCP missing or wrong open project
|
|
82
105
|
effect: TPA and planning-gate use file-system target evidence only; record MCP gap in migration_report or alignment_report
|
|
106
|
+
- trigger: migrator finished but kmp-test-validator not invoked
|
|
107
|
+
effect: blocked — Leader must dispatch kmp-test-validator at MG17; record validator_handoff pending in workspace ledger
|
|
@@ -27,7 +27,19 @@ Per legacy `module_id`, migrator may consume:
|
|
|
27
27
|
|
|
28
28
|
Record all resolved upstream paths in `run_manifest.json` → `upstream_analyst_artifacts`.
|
|
29
29
|
|
|
30
|
-
**Fail closed**: if analyst `handoff_gates.P6.ready` is false or paths are missing, migrator returns `blocked` — do not start module dispatch.
|
|
30
|
+
**Fail closed**: if analyst `handoff_gates.P6.ready` is false or paths are missing, migrator returns `blocked` — do not start module dispatch. Dispatch or re-run `android-project-analyst` until **P6** is ready.
|
|
31
|
+
|
|
32
|
+
## Skill Chain (mandatory)
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
android-project-analyst (P6) → android-to-kmp-migrator (M0–V0) → kmp-test-validator (V0)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
| Skill | When | Rule |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| `android-project-analyst` | **Before** migrator | MUST finish; package **P6** required. Migrator MUST NOT be invoked until P6 is ready. |
|
|
41
|
+
| `android-to-kmp-migrator` | Migration body | Consumes P6 artifacts only; produces **V0** via `migration_report.*`. |
|
|
42
|
+
| `kmp-test-validator` | **After** migrator | MUST be invoked when **V0** is true (MG17). Migration is incomplete without validator dispatch. |
|
|
31
43
|
|
|
32
44
|
---
|
|
33
45
|
|
|
@@ -208,6 +220,8 @@ output_root = <output_dir or ~/.a2c_agents/migration>/android-to-kmp-migrator
|
|
|
208
220
|
|
|
209
221
|
**Fail closed**: `kmp-test-validator` MUST NOT start when `V0` is false. It owns full project build, preview, and behavioral tests.
|
|
210
222
|
|
|
223
|
+
**Mandatory downstream**: when `V0` is true, the migrator Leader MUST invoke `kmp-test-validator` before treating the migration workflow as complete. Record `validator_handoff.status` in the workspace ledger (`pending | dispatched | blocked`).
|
|
224
|
+
|
|
211
225
|
---
|
|
212
226
|
|
|
213
227
|
## Key Artifact Content Requirements
|
|
@@ -303,7 +317,7 @@ Human/agent-readable synthesis of align mode; routes reruns to `migration_module
|
|
|
303
317
|
5. Run `global-migration-phase` `align` only after integrate; **no code changes** in align mode.
|
|
304
318
|
6. Dispatch only role IDs listed in [SKILL.md](SKILL.md).
|
|
305
319
|
7. Set `handoff_gates` (`M0`–`M6`, `V0`) in workspace ledger and `migration_report.json`.
|
|
306
|
-
8.
|
|
320
|
+
8. **MUST** invoke `kmp-test-validator` when `V0` is true (MG17). Do not end the migration workflow without validator dispatch or explicit validator blockers in `migration_report.json`.
|
|
307
321
|
|
|
308
322
|
## Invalid Artifact Handling
|
|
309
323
|
|
|
@@ -26,6 +26,7 @@ Forbidden:
|
|
|
26
26
|
- Do not run report mode when module/global representations are missing.
|
|
27
27
|
- Do not run report mode when package `M6` is false (`global-migration-phase align` / `alignment_report` missing or failed).
|
|
28
28
|
- Do not mark `ready_for_validation` when `handoff_gates.V0` is false.
|
|
29
|
+
- Do not treat report mode success as final migration completion — Leader must still dispatch `kmp-test-validator` at MG17.
|
|
29
30
|
|
|
30
31
|
Mandatory:
|
|
31
32
|
- Validate `mode`, `migration_module_id`, module/global representation paths, workspace state, and exact `output_dir`.
|
|
@@ -61,6 +62,7 @@ Shared return shape applies.
|
|
|
61
62
|
- `completion_readiness.md`: agent-readable readiness handoff containing coverage tables, invariant checks, incomplete markers, rerun routing, blockers, and whether representation/report gates may proceed.
|
|
62
63
|
- `migration_report.json`: machine-routable final migration handoff containing migration scope, source/target paths, analyst_output_root, upstream_analyst_index, `handoff_gates` (`M0`–`M6`, `V0`), `handoff_package: V0`, module representations, global representation, `alignment_report` path, `global_system_integration` path, changed files by role, coverage summary, validation inputs for kmp-test-validator, `validation_deferred_to: kmp-test-validator`, limitations, blockers.
|
|
63
64
|
- `migration_report.md`: agent-readable final migration report for `kmp-test-validator` and follow-up agents, preserving exact artifact paths, changed-file ownership, validation handoff context, limitations, and blockers.
|
|
65
|
+
- Report mode success signals Leader to **mandatorily invoke** `kmp-test-validator` — migration is incomplete without validator dispatch.
|
|
64
66
|
|
|
65
67
|
## Inline Persona for Teammate
|
|
66
68
|
|
|
@@ -77,6 +77,8 @@ validator_handoff
|
|
|
77
77
|
|
|
78
78
|
Evaluate handoff packages `M0`–`M6` and `V0` per [output-contract.md](../output-contract.md); persist `handoff_gates` with `ready` and `missing_paths[]`.
|
|
79
79
|
|
|
80
|
+
When `handoff_gates.V0.ready` is true, set `validator_handoff.status` to `pending` until Leader dispatches `kmp-test-validator` (then `dispatched`) or records explicit validator blockers (then `blocked`). `overall_status: ready_for_validation` means migrator artifacts are ready but **does not** mean migration is complete — validator dispatch at MG17 is still mandatory.
|
|
81
|
+
|
|
80
82
|
Calculate `finish_rate` only from verified planned work units:
|
|
81
83
|
|
|
82
84
|
```text
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
See [output-contract.md](output-contract.md) and active role IDs in [SKILL.md](SKILL.md).
|
|
4
4
|
|
|
5
|
+
## Skill Chain (mandatory)
|
|
6
|
+
|
|
7
|
+
| Phase | Skill | Gate | Leader rule |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| Prerequisite | `android-project-analyst` | **P6** | MUST finish before `android-to-kmp-migrator` is invoked. Missing/stale P6 → `blocked`; dispatch analyst first. |
|
|
10
|
+
| Migration | `android-to-kmp-migrator` | **M0**–**V0** | Runs only after P6 verified; ends with `migration_report.*` and **V0** ready. |
|
|
11
|
+
| Post-migration | `kmp-test-validator` | **V0** | MUST be invoked after migrator completes **V0** (MG17). Do not end the migration workflow without validator dispatch. |
|
|
12
|
+
|
|
5
13
|
## Overview
|
|
6
14
|
|
|
7
15
|
```mermaid
|
|
@@ -43,7 +51,7 @@ graph TD
|
|
|
43
51
|
- **Executor**: Leader
|
|
44
52
|
- **Input**: [dependencies.yaml](dependencies.yaml) — `tools[]` (`rg`, `git`, `curl`), `optional_mcp.jetbrains`, `upstream_inputs` analyst **P6**
|
|
45
53
|
- **Output**: `run_manifest.json` → `dependency_preflight` (CLI status, MCP availability, P6 readiness pointer)
|
|
46
|
-
- **Gate**: missing CLI tools → degraded modes per dependencies.yaml; analyst P6 not ready → **blocked**
|
|
54
|
+
- **Gate**: missing CLI tools → degraded modes per dependencies.yaml; `android-project-analyst` **P6** not ready → **blocked** — invoke analyst first, do not dispatch migrator nodes
|
|
47
55
|
|
|
48
56
|
## Step 1 — Upstream + output root
|
|
49
57
|
|
|
@@ -92,9 +100,12 @@ Repeat until package **M4**.
|
|
|
92
100
|
- **Output**: `global-migration-phase/align/post_integration_alignment.*`, `report/alignment_report.*`
|
|
93
101
|
- **Gate**: package **M6**; `needs_rerun` → module loop or re-integrate
|
|
94
102
|
|
|
95
|
-
## Step 7 — Report + validator
|
|
103
|
+
## Step 7 — Report + mandatory validator handoff (MG17)
|
|
96
104
|
|
|
97
|
-
- Global representation + `completion-report` `report` → package **V0**
|
|
105
|
+
- Global representation + `completion-report` `report` → package **V0**
|
|
106
|
+
- **Leader MUST invoke `kmp-test-validator`** with `migration_report.*`, analyst SPEC paths, and `kmp_target_project_path`
|
|
107
|
+
- Record `validator_handoff` in workspace ledger (`dispatched | pending | blocked`)
|
|
108
|
+
- Migrator workflow is **incomplete** until validator is dispatched or explicit validator blockers are recorded
|
|
98
109
|
|
|
99
110
|
## TPA consult
|
|
100
111
|
|
|
@@ -102,6 +113,8 @@ Any target question → TPA `mode: consult` (append `consultation_log`).
|
|
|
102
113
|
|
|
103
114
|
## Acceptance Criteria
|
|
104
115
|
|
|
116
|
+
- `android-project-analyst` **P6** verified before any migrator module dispatch.
|
|
117
|
+
- `kmp-test-validator` invoked after **V0** — mandatory MG17 step.
|
|
105
118
|
- Dispatch only role IDs from `SKILL.md`.
|
|
106
119
|
- Mode rules: `ui` before `logic`; `integrate` before `align`; `review`/`fix` separate.
|
|
107
120
|
- `migration-verification` never runs `incremental_build`.
|