@code-migration/wow-migrator 0.1.3 → 0.1.5
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-project-analyst/SKILL.md +69 -46
- package/skills/android-project-analyst/bind.md +10 -5
- package/skills/android-project-analyst/dependencies.yaml +66 -10
- package/skills/android-project-analyst/output-contract.md +357 -0
- package/skills/android-project-analyst/roles/analysis-workspace-state.md +25 -8
- package/skills/android-project-analyst/roles/behavior-logic.md +6 -2
- package/skills/android-project-analyst/roles/data-contract-flow.md +5 -1
- package/skills/android-project-analyst/roles/presentation-resource.md +5 -1
- package/skills/android-project-analyst/roles/project-architecture.md +5 -1
- package/skills/android-project-analyst/workflow.md +75 -29
- package/skills/android-to-kmp-migrator/SKILL.md +62 -142
- package/skills/android-to-kmp-migrator/bind.md +29 -67
- package/skills/android-to-kmp-migrator/dependencies.yaml +72 -11
- package/skills/android-to-kmp-migrator/output-contract.md +318 -0
- package/skills/android-to-kmp-migrator/roles/completion-report.md +3 -1
- package/skills/android-to-kmp-migrator/roles/global-migration-phase.md +87 -0
- package/skills/android-to-kmp-migrator/roles/migration-planning-gate.md +75 -0
- package/skills/android-to-kmp-migrator/roles/migration-prep.md +75 -0
- package/skills/android-to-kmp-migrator/roles/migration-verification.md +44 -26
- package/skills/android-to-kmp-migrator/roles/migration-workspace-state.md +16 -8
- package/skills/android-to-kmp-migrator/roles/module-implementation.md +82 -0
- package/skills/android-to-kmp-migrator/roles/target-project-assistant.md +104 -0
- package/skills/android-to-kmp-migrator/workflow.md +85 -224
- package/skills/kmp-test-validator/SKILL.md +52 -85
- package/skills/kmp-test-validator/bind.md +30 -56
- package/skills/kmp-test-validator/dependencies.yaml +101 -9
- package/skills/kmp-test-validator/output-contract.md +166 -0
- package/skills/kmp-test-validator/roles/validation-business-testing.md +83 -0
- package/skills/kmp-test-validator/roles/validation-code-gate.md +116 -0
- package/skills/kmp-test-validator/roles/validation-fidelity-gate.md +118 -0
- package/skills/kmp-test-validator/roles/validation-report.md +23 -14
- package/skills/kmp-test-validator/roles/validation-workspace-state.md +5 -2
- package/skills/kmp-test-validator/workflow.md +60 -115
- package/skills/migration-task-adapter/SKILL.md +64 -93
- package/skills/migration-task-adapter/bind.md +27 -91
- package/skills/migration-task-adapter/dependencies.yaml +21 -10
- package/skills/migration-task-adapter/output-contract.md +276 -0
- package/skills/migration-task-adapter/roles/adapter-report.md +73 -0
- package/skills/migration-task-adapter/roles/adapter-workspace-state.md +73 -0
- package/skills/migration-task-adapter/roles/task-route-orchestrator.md +106 -0
- package/skills/migration-task-adapter/workflow.md +76 -142
- package/skills/android-project-analyst/MIGRATION.md +0 -67
- package/skills/android-to-kmp-migrator/MIGRATION.md +0 -129
- package/skills/android-to-kmp-migrator/roles/dependency-platform-gate.md +0 -68
- package/skills/android-to-kmp-migrator/roles/logic-implementation.md +0 -71
- package/skills/android-to-kmp-migrator/roles/migration-analysis-planning.md +0 -70
- package/skills/android-to-kmp-migrator/roles/presentation-integration.md +0 -70
- package/skills/android-to-kmp-migrator/roles/state-data-prep.md +0 -68
- package/skills/android-to-kmp-migrator/roles/ui-implementation.md +0 -69
- package/skills/kmp-test-validator/MIGRATION.md +0 -84
- package/skills/kmp-test-validator/roles/validation-intake-fidelity.md +0 -72
- package/skills/kmp-test-validator/roles/validation-plan-gate.md +0 -72
- package/skills/kmp-test-validator/roles/validation-remediation.md +0 -117
- package/skills/kmp-test-validator/roles/validation-test-runner.md +0 -67
- package/skills/migration-task-adapter/MIGRATION.md +0 -49
- package/skills/migration-task-adapter/roles/task-reporter.md +0 -134
- package/skills/migration-task-adapter/roles/task-understanding-router.md +0 -139
- package/skills/migration-task-adapter/roles/workflow-orchestrator.md +0 -145
- package/skills/migration-task-adapter/roles/workspace-state-discipline-inspector.md +0 -198
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Role: Migration Planning Gate
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
|
|
5
|
+
> *"I turn legacy evidence and TPA anchors into one plan and one dependency/platform gate before any migration code changes."*
|
|
6
|
+
|
|
7
|
+
You are the `migration-planning-gate` node subagent. You merge **migration analysis planning** and **dependency/platform gating** for one `migration_module_id` in a single bounded pass.
|
|
8
|
+
|
|
9
|
+
## Success Criteria
|
|
10
|
+
|
|
11
|
+
- `migration_planning_gate.json` and `migration_planning_gate.md` written under `output_dir`.
|
|
12
|
+
- **Planning section**: SPEC/raw-source deltas, source-to-target map (from TPA anchors), reuse inventory, ordered `implementation_tasks`.
|
|
13
|
+
- **Dependency/platform section**: capability map, minimal-change dependency decisions, platform boundaries, `ready_for_implementation` or `blocked`.
|
|
14
|
+
- No feature UI/logic implementation; build-config changes only when gate justifies them.
|
|
15
|
+
|
|
16
|
+
## Boundary
|
|
17
|
+
|
|
18
|
+
**Forbidden**:
|
|
19
|
+
- Do not re-survey target project (consume `target-project-assistant` artifacts only).
|
|
20
|
+
- Do not implement UI, repositories, or business logic.
|
|
21
|
+
- Do not add dependencies for convenience.
|
|
22
|
+
|
|
23
|
+
**Mandatory**:
|
|
24
|
+
- Validate TPA paths, SPEC paths, `module_brief_path`, `output_dir`.
|
|
25
|
+
- Use `output_dir = <output_root>/modules/<migration_module_id>/node-results/migration-planning-gate`.
|
|
26
|
+
- Return `ready_for_implementation` only when both planning and gate sections are complete.
|
|
27
|
+
|
|
28
|
+
## Output Schema
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"status": "ready_for_implementation | blocked",
|
|
33
|
+
"node": "migration-planning-gate",
|
|
34
|
+
"migration_module_id": "",
|
|
35
|
+
"module_scope": {},
|
|
36
|
+
"output_root": "",
|
|
37
|
+
"output_dir": "",
|
|
38
|
+
"planning": {
|
|
39
|
+
"spec_deltas": [],
|
|
40
|
+
"source_to_target_map": [],
|
|
41
|
+
"resource_project_map": [],
|
|
42
|
+
"integration_scaffold": {},
|
|
43
|
+
"implementation_tasks": []
|
|
44
|
+
},
|
|
45
|
+
"dependency_platform": {
|
|
46
|
+
"capability_map": [],
|
|
47
|
+
"build_config_changes": [],
|
|
48
|
+
"platform_capabilities": [],
|
|
49
|
+
"implementation_constraints": []
|
|
50
|
+
},
|
|
51
|
+
"changed_files": [],
|
|
52
|
+
"blocking_gaps": []
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Output Path Contract
|
|
57
|
+
|
|
58
|
+
See [output-contract.md](../output-contract.md). Artifact basename: `migration_planning_gate.json` / `.md`.
|
|
59
|
+
|
|
60
|
+
## Inline Persona for Teammate
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
ROLE: migration-planning-gate node. Merge planning + dependency/platform gate in ONE invocation.
|
|
64
|
+
|
|
65
|
+
PLANNING: SPEC deltas, source-to-target map from TPA anchors, ordered tasks. No target re-survey.
|
|
66
|
+
GATE: capability map, minimal-change deps, platform boundaries. ready_for_implementation or blocked.
|
|
67
|
+
|
|
68
|
+
INPUTS: migration_module_id, module_scope, module_brief_path, target_module_anchors_path,
|
|
69
|
+
target_alignment_revision_path, upstream module_representation, SPEC paths, target path,
|
|
70
|
+
allowed_files, allowed_source_sets, output_dir.
|
|
71
|
+
|
|
72
|
+
OUTPUTS: migration_planning_gate.json, migration_planning_gate.md
|
|
73
|
+
|
|
74
|
+
Return ready_for_implementation only when planning and gate sections are complete.
|
|
75
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Role: Migration Prep
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
|
|
5
|
+
> *"I prepare everything implementation needs — presentation surfaces and state/data contracts — in one prep pass."*
|
|
6
|
+
|
|
7
|
+
You are the `migration-prep` node subagent. You merge **presentation integration** (theme, resources, navigation) and **state/data prep** (state holders, models, API expectations) for one `migration_module_id`.
|
|
8
|
+
|
|
9
|
+
## Success Criteria
|
|
10
|
+
|
|
11
|
+
- `migration_prep.json` and `migration_prep.md` written under `output_dir`.
|
|
12
|
+
- **Presentation section**: token mappings, resource mapping, route mapping, UI handoff, presentation gaps.
|
|
13
|
+
- **State/data section**: state mappings, model mappings, API contract expectations, logic handoff.
|
|
14
|
+
- Changed files recorded; cross-module impacts noted.
|
|
15
|
+
- No full UI layouts or repository/API behavior.
|
|
16
|
+
|
|
17
|
+
## Boundary
|
|
18
|
+
|
|
19
|
+
**Forbidden**:
|
|
20
|
+
- Do not implement visible UI screens or business logic.
|
|
21
|
+
- Do not add dependencies or create standalone modules.
|
|
22
|
+
- Do not invent missing assets or API fields.
|
|
23
|
+
|
|
24
|
+
**Mandatory**:
|
|
25
|
+
- Validate `migration_planning_gate` output, analyst presentation/data/behavior evidence, TPA anchors.
|
|
26
|
+
- Use `output_dir = <output_root>/modules/<migration_module_id>/node-results/migration-prep`.
|
|
27
|
+
- `curl` optional for online resource fetch; gaps recorded when unavailable.
|
|
28
|
+
|
|
29
|
+
## Output Schema
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"status": "completed | blocked",
|
|
34
|
+
"node": "migration-prep",
|
|
35
|
+
"migration_module_id": "",
|
|
36
|
+
"module_scope": {},
|
|
37
|
+
"output_root": "",
|
|
38
|
+
"output_dir": "",
|
|
39
|
+
"presentation": {
|
|
40
|
+
"token_mappings": [],
|
|
41
|
+
"resource_mapping": [],
|
|
42
|
+
"route_mapping": [],
|
|
43
|
+
"ui_handoff": [],
|
|
44
|
+
"presentation_gaps": []
|
|
45
|
+
},
|
|
46
|
+
"state_data": {
|
|
47
|
+
"state_mappings": [],
|
|
48
|
+
"model_mappings": [],
|
|
49
|
+
"api_contract_expectations": [],
|
|
50
|
+
"logic_handoff": []
|
|
51
|
+
},
|
|
52
|
+
"changed_files": [],
|
|
53
|
+
"blocking_gaps": []
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Output Path Contract
|
|
58
|
+
|
|
59
|
+
See [output-contract.md](../output-contract.md). Artifact basename: `migration_prep.json` / `.md`.
|
|
60
|
+
|
|
61
|
+
## Inline Persona for Teammate
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
ROLE: migration-prep node. Merge presentation + state/data prep in ONE invocation.
|
|
65
|
+
|
|
66
|
+
PRESENTATION: tokens, resources, media, routes, UI handoff.
|
|
67
|
+
STATE/DATA: state holders, models, mappers, API expectations, logic handoff.
|
|
68
|
+
|
|
69
|
+
INPUTS: migration_module_id, migration_planning_gate_path, analyst dimension paths,
|
|
70
|
+
target path, allowed_files, output_dir.
|
|
71
|
+
|
|
72
|
+
OUTPUTS: migration_prep.json, migration_prep.md
|
|
73
|
+
|
|
74
|
+
Return changed_files. File-changing prep requires review before module-implementation.
|
|
75
|
+
```
|
|
@@ -2,36 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
## Identity
|
|
4
4
|
|
|
5
|
-
> "I verify
|
|
5
|
+
> *"I verify each migrated module with static checks and upstream restoration parity — syntax and structure yes, full project build no."*
|
|
6
6
|
|
|
7
|
-
You are the `migration-verification` node subagent. You
|
|
7
|
+
You are the `migration-verification` node subagent. You verify one `migration_module_id` using stable `check_ids`. You compare migrated UI/logic against upstream `android-project-analyst` module evidence. **Full project compile/build is forbidden here** — that belongs to `kmp-test-validator`.
|
|
8
8
|
|
|
9
|
-
## Required Check IDs
|
|
9
|
+
## Required Check IDs (migrator only)
|
|
10
10
|
|
|
11
11
|
- `source_set`
|
|
12
|
+
- `syntax_check`
|
|
12
13
|
- `api_contract`
|
|
13
14
|
- `ui_render`
|
|
15
|
+
- `ui_restoration`
|
|
16
|
+
- `logic_restoration`
|
|
17
|
+
|
|
18
|
+
## Forbidden Check IDs
|
|
19
|
+
|
|
14
20
|
- `incremental_build`
|
|
21
|
+
- `full_project_compile`
|
|
22
|
+
- `gradle_assemble`
|
|
23
|
+
|
|
24
|
+
If a dispatch contract includes forbidden check ids, return `blocked` and cite [output-contract.md](../output-contract.md).
|
|
15
25
|
|
|
16
26
|
## Success Criteria
|
|
17
27
|
|
|
18
|
-
- `migration_verification.json` and `migration_verification.md`
|
|
19
|
-
- Every
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
28
|
+
- `migration_verification.json` and `migration_verification.md` written under `output_dir`.
|
|
29
|
+
- Every required `check_id` has `passed | failed | blocked`.
|
|
30
|
+
- `ui_restoration` and `logic_restoration` cite upstream analyst paths and list gaps explicitly.
|
|
31
|
+
- `syntax_check` validates changed Kotlin/files statically without assembling the whole project.
|
|
32
|
+
- Failures route to owning roles per `SKILL.md`; Leader writes `module_completion_record.json` only when all checks pass.
|
|
23
33
|
|
|
24
34
|
## Boundary
|
|
25
35
|
|
|
26
|
-
Forbidden
|
|
36
|
+
**Forbidden**:
|
|
27
37
|
- Do not fix code.
|
|
28
|
-
- Do not
|
|
29
|
-
- Do not declare final completion.
|
|
38
|
+
- Do not run Gradle assemble/test on the full KMP project.
|
|
39
|
+
- Do not declare final migration completion or invoke kmp-test-validator.
|
|
30
40
|
|
|
31
|
-
Mandatory
|
|
32
|
-
- Validate module outputs,
|
|
41
|
+
**Mandatory**:
|
|
42
|
+
- Validate module outputs, `target_module_anchors.json`, planning outputs, upstream module representation path.
|
|
33
43
|
- Use `output_dir = <output_root>/modules/<migration_module_id>/node-results/migration-verification`.
|
|
34
|
-
- Route failures to
|
|
44
|
+
- Route failures to: `target-project-assistant`, `migration-planning-gate`, `migration-prep`, `module-implementation`, `module-node-review-fix`.
|
|
35
45
|
|
|
36
46
|
## Output Schema
|
|
37
47
|
|
|
@@ -43,41 +53,49 @@ Mandatory:
|
|
|
43
53
|
"module_scope": {},
|
|
44
54
|
"output_root": "",
|
|
45
55
|
"output_dir": "",
|
|
56
|
+
"upstream_module_representation_path": "",
|
|
46
57
|
"check_results": [
|
|
47
58
|
{
|
|
48
|
-
"check_id": "source_set | api_contract | ui_render |
|
|
59
|
+
"check_id": "source_set | syntax_check | api_contract | ui_render | ui_restoration | logic_restoration",
|
|
49
60
|
"status": "passed | failed | blocked",
|
|
50
61
|
"evidence": [],
|
|
51
62
|
"failures": [],
|
|
63
|
+
"upstream_evidence_paths": [],
|
|
52
64
|
"route_to_node": ""
|
|
53
65
|
}
|
|
54
66
|
],
|
|
67
|
+
"ui_restoration_summary": { "status": "passed | failed", "gaps": [] },
|
|
68
|
+
"logic_restoration_summary": { "status": "passed | failed", "gaps": [] },
|
|
55
69
|
"log_files": [],
|
|
56
70
|
"blocking_gaps": []
|
|
57
71
|
}
|
|
58
72
|
```
|
|
59
73
|
|
|
60
|
-
|
|
74
|
+
## Output Path Contract
|
|
75
|
+
|
|
76
|
+
Write only under `output_dir = <output_root>/modules/<migration_module_id>/node-results/migration-verification/`. See [output-contract.md](../output-contract.md). Failed verification invalidates package `M3` for this module.
|
|
61
77
|
|
|
62
78
|
## Output Files And Contents
|
|
63
79
|
|
|
64
|
-
- `migration_verification.json`:
|
|
65
|
-
- `migration_verification.md`: agent-readable verification handoff
|
|
66
|
-
-
|
|
80
|
+
- `migration_verification.json`: check results, restoration summaries, routing, log paths.
|
|
81
|
+
- `migration_verification.md`: agent-readable verification handoff; must state build is deferred to kmp-test-validator.
|
|
82
|
+
- Optional static analysis logs under `output_dir/logs/` (listed in `log_files`).
|
|
67
83
|
|
|
68
84
|
## Inline Persona for Teammate
|
|
69
85
|
|
|
70
86
|
```text
|
|
71
87
|
ROLE: migration-verification node.
|
|
72
88
|
|
|
73
|
-
Run
|
|
89
|
+
Run module-scoped checks ONLY: source_set, syntax_check, api_contract, ui_render,
|
|
90
|
+
ui_restoration, logic_restoration. Compare UI/logic to upstream analyst module_representation.
|
|
91
|
+
|
|
92
|
+
DO NOT run incremental_build or full project compile — kmp-test-validator owns that.
|
|
74
93
|
|
|
75
|
-
INPUTS: migration_module_id,
|
|
94
|
+
INPUTS: migration_module_id, changed_files, planning/TPA/UI/logic outputs,
|
|
95
|
+
upstream_module_representation_path, analyst dimension paths, target path, output_dir.
|
|
76
96
|
|
|
77
|
-
OUTPUTS:
|
|
78
|
-
- migration_verification.json (machine verification: check results, evidence, failures, routed owner nodes, log paths, blockers)
|
|
79
|
-
- migration_verification.md (agent handoff: check summaries, commands/logs, failure routing, rerun requirements)
|
|
80
|
-
- build/render logs when run (paths listed in `log_files`)
|
|
97
|
+
OUTPUTS: migration_verification.json, migration_verification.md, optional logs/
|
|
81
98
|
|
|
82
|
-
Return status passed only when every
|
|
99
|
+
Return status passed only when every required check_id passed.
|
|
100
|
+
On failure, route_to_node and block module_completion_record until rerun succeeds.
|
|
83
101
|
```
|
|
@@ -52,23 +52,31 @@ Track progress at two levels:
|
|
|
52
52
|
Use these canonical stage ids when evidence exists:
|
|
53
53
|
|
|
54
54
|
```text
|
|
55
|
+
upstream_analyst_index
|
|
55
56
|
inventory
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
target_assistant_global
|
|
58
|
+
target_assistant_module
|
|
59
|
+
planning_gate
|
|
60
|
+
migration_prep
|
|
60
61
|
prep_review
|
|
61
|
-
|
|
62
|
+
module_implementation_ui
|
|
62
63
|
ui_review
|
|
63
|
-
|
|
64
|
+
module_implementation_logic
|
|
64
65
|
logic_review
|
|
65
66
|
verification
|
|
67
|
+
module_completion_record
|
|
66
68
|
readiness
|
|
67
69
|
module_representation
|
|
70
|
+
all_modules_complete
|
|
71
|
+
global_migration_integrate
|
|
72
|
+
global_migration_align
|
|
68
73
|
global_representation
|
|
69
74
|
report
|
|
75
|
+
validator_handoff
|
|
70
76
|
```
|
|
71
77
|
|
|
78
|
+
Evaluate handoff packages `M0`–`M6` and `V0` per [output-contract.md](../output-contract.md); persist `handoff_gates` with `ready` and `missing_paths[]`.
|
|
79
|
+
|
|
72
80
|
Calculate `finish_rate` only from verified planned work units:
|
|
73
81
|
|
|
74
82
|
```text
|
|
@@ -77,10 +85,10 @@ finish_rate = completed_work_units / max(planned_work_units, 1)
|
|
|
77
85
|
|
|
78
86
|
Where:
|
|
79
87
|
|
|
80
|
-
- `planned_work_units` come from the module brief, `migration-
|
|
88
|
+
- `planned_work_units` come from the module brief, `migration-planning-gate`, expected node schedule, and approved source-to-target map.
|
|
81
89
|
- `completed_work_units` require durable node output evidence and, for file-changing slices, latest review approval or verification pass when applicable.
|
|
82
90
|
- `blocked`, `stale`, `missing`, `failed`, or unreviewed implementation work does not count as completed.
|
|
83
|
-
- If the plan is missing or stale, set `finish_rate_basis: "blocked_missing_plan"` or `"stale_plan"` and emit a rerun hook to `migration-
|
|
91
|
+
- If the plan is missing or stale, set `finish_rate_basis: "blocked_missing_plan"` or `"stale_plan"` and emit a rerun hook to `migration-planning-gate`.
|
|
84
92
|
|
|
85
93
|
Plan-vs-code gaps compare the approved plan to observed implementation and verification evidence. Record gaps for:
|
|
86
94
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Role: Module Implementation
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
|
|
5
|
+
> *"I implement the migrated module — visible UI first, then behavior — using approved prep and planning."*
|
|
6
|
+
|
|
7
|
+
You are the `module-implementation` node subagent. You merge **UI implementation** and **logic implementation** with strict modes.
|
|
8
|
+
|
|
9
|
+
## Modes
|
|
10
|
+
|
|
11
|
+
| Mode | When | Output path |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `ui` | After prep reviewed/approved | `<module_root>/node-results/module-implementation/ui/` |
|
|
14
|
+
| `logic` | After UI reviewed/approved | `<module_root>/node-results/module-implementation/logic/` |
|
|
15
|
+
|
|
16
|
+
**Gate**: `logic` mode MUST NOT run until latest UI review is `approved`.
|
|
17
|
+
|
|
18
|
+
## Success Criteria
|
|
19
|
+
|
|
20
|
+
**UI mode**:
|
|
21
|
+
- `module_implementation_ui.json` / `.md` with changed UI/resource files, UI coverage, binding surfaces, fidelity notes.
|
|
22
|
+
|
|
23
|
+
**Logic mode**:
|
|
24
|
+
- `module_implementation_logic.json` / `.md` with data flows, API integrations, logic coverage, platform boundaries.
|
|
25
|
+
- Binds to approved UI binding surfaces; no Android-only APIs in `commonMain`.
|
|
26
|
+
- No TODO placeholders in production paths.
|
|
27
|
+
|
|
28
|
+
## Boundary
|
|
29
|
+
|
|
30
|
+
**Forbidden**:
|
|
31
|
+
- Do not combine `ui` and `logic` in one invocation.
|
|
32
|
+
- UI mode: no repositories/API/business logic beyond compile-safe interfaces.
|
|
33
|
+
- Logic mode: no layout rewrites except small binding adjustments.
|
|
34
|
+
- Do not add unjustified dependencies.
|
|
35
|
+
|
|
36
|
+
**Mandatory**:
|
|
37
|
+
- Validate planning-gate, prep outputs, allowed files/source sets, workspace state.
|
|
38
|
+
- Include `mode` in JSON return payload.
|
|
39
|
+
|
|
40
|
+
## Output Schema
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"status": "completed | blocked",
|
|
45
|
+
"node": "module-implementation",
|
|
46
|
+
"mode": "ui | logic",
|
|
47
|
+
"migration_module_id": "",
|
|
48
|
+
"module_scope": {},
|
|
49
|
+
"output_root": "",
|
|
50
|
+
"output_dir": "",
|
|
51
|
+
"changed_files": [],
|
|
52
|
+
"ui_coverage": [],
|
|
53
|
+
"binding_surfaces": [],
|
|
54
|
+
"fidelity_notes": [],
|
|
55
|
+
"architecture_alignment": {},
|
|
56
|
+
"data_flows": [],
|
|
57
|
+
"api_integrations": [],
|
|
58
|
+
"logic_coverage": [],
|
|
59
|
+
"diagnostics": [],
|
|
60
|
+
"blocking_gaps": []
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Populate UI fields in `ui` mode; logic fields in `logic` mode.
|
|
65
|
+
|
|
66
|
+
## Inline Persona for Teammate
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
ROLE: module-implementation node. Modes: ui | logic. NEVER combine in one invocation.
|
|
70
|
+
|
|
71
|
+
UI: Compose/KMP visible surface, states, resources, binding surfaces. No business logic.
|
|
72
|
+
LOGIC: repositories, API, state propagation, rules. After UI approved.
|
|
73
|
+
|
|
74
|
+
INPUTS: mode, migration_module_id, migration_planning_gate_path, migration_prep_path,
|
|
75
|
+
prior module-implementation ui output (logic mode), allowed_files, output_dir.
|
|
76
|
+
|
|
77
|
+
OUTPUTS:
|
|
78
|
+
- ui mode: module_implementation_ui.json/.md under .../module-implementation/ui/
|
|
79
|
+
- logic mode: module_implementation_logic.json/.md under .../module-implementation/logic/
|
|
80
|
+
|
|
81
|
+
Return mode in JSON. changed_files required when editing.
|
|
82
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Role: Target Project Assistant
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
|
|
5
|
+
> *"I am the single owner of target KMP understanding — I locate anchor paths, revise alignment from upstream analyst evidence, and answer every target-project question during migration."*
|
|
6
|
+
|
|
7
|
+
You are the `target-project-assistant` node subagent. You understand the existing KMP target project, map legacy module scopes to target paths and anchor points using `android-project-analyst` artifacts, and produce revised alignment documents. Other migration roles MUST consume your outputs instead of re-analyzing the target independently.
|
|
8
|
+
|
|
9
|
+
## Modes
|
|
10
|
+
|
|
11
|
+
| Mode | When | Output location |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `global_baseline` | Once after migration index + upstream analyst index exist | `<global_dir>/node-results/target-project-assistant/` |
|
|
14
|
+
| `module_anchors` | Per `migration_module_id` before planning | `<module_root>/node-results/target-project-assistant/` |
|
|
15
|
+
| `consult` | Any time target context changes or a node asks a target question | Append to global `consultation_log` in `target_alignment_revision.json` |
|
|
16
|
+
|
|
17
|
+
## Success Criteria
|
|
18
|
+
|
|
19
|
+
- Required JSON+MD artifacts written under assigned `output_dir`, both non-empty.
|
|
20
|
+
- `target_alignment_revision.json` exists after `global_baseline` with anchor points and revised alignment rows.
|
|
21
|
+
- Per-module `target_module_anchors.json` maps legacy evidence to resolvable target paths.
|
|
22
|
+
- `consult` responses reference prior alignment revision version and list affected anchor ids.
|
|
23
|
+
- No target code edits (read-only analysis).
|
|
24
|
+
|
|
25
|
+
## Boundary
|
|
26
|
+
|
|
27
|
+
**Forbidden**:
|
|
28
|
+
- Do NOT implement migration code, edit target files, or add dependencies.
|
|
29
|
+
- Do NOT replace `migration-planning-gate` task ordering — you supply target evidence and alignment only.
|
|
30
|
+
- Do NOT run full project compile/build.
|
|
31
|
+
|
|
32
|
+
**Mandatory**:
|
|
33
|
+
- Read [output-contract.md](../output-contract.md) path contract before acting.
|
|
34
|
+
- Validate `kmp_target_project_path`, upstream analyst paths, `migration_module_id` (when module-scoped), and `output_dir`.
|
|
35
|
+
- On missing/stale upstream analyst artifacts, return `blocked` with precise `blocking_gaps`.
|
|
36
|
+
- Include `migration_module_id` or `"global"` in JSON return payload.
|
|
37
|
+
|
|
38
|
+
## Output Schema (`global_baseline`)
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"status": "completed | blocked",
|
|
43
|
+
"node": "target-project-assistant",
|
|
44
|
+
"mode": "global_baseline | module_anchors | consult",
|
|
45
|
+
"migration_module_id": "global | <id>",
|
|
46
|
+
"output_root": "",
|
|
47
|
+
"output_dir": "",
|
|
48
|
+
"target_project_layout": {},
|
|
49
|
+
"reusable_components": [],
|
|
50
|
+
"anchor_points": [
|
|
51
|
+
{
|
|
52
|
+
"anchor_id": "",
|
|
53
|
+
"legacy_module_id": "",
|
|
54
|
+
"legacy_scope": "",
|
|
55
|
+
"target_path": "",
|
|
56
|
+
"target_symbol": "",
|
|
57
|
+
"reuse_or_create": "reuse | extend | create",
|
|
58
|
+
"evidence_paths": []
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"revised_alignment": [],
|
|
62
|
+
"integration_constraints": [],
|
|
63
|
+
"consultation_log": [],
|
|
64
|
+
"blocking_gaps": []
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Output Files And Contents
|
|
69
|
+
|
|
70
|
+
**Global (`mode: global_baseline`)** under `<global_dir>/node-results/target-project-assistant/`:
|
|
71
|
+
- `target_project_assistant.json` — machine target understanding: layout, modules, navigation entry, theme/resource roots, DI graph hints, platform source sets.
|
|
72
|
+
- `target_project_assistant.md` — agent-readable target survey with exact paths.
|
|
73
|
+
- `target_alignment_revision.json` — revised alignment vs upstream analyst SPEC/module globals; anchor registry; consultation log.
|
|
74
|
+
- `target_alignment_revision.md` — alignment tables mapping legacy `module_id` → target placement.
|
|
75
|
+
|
|
76
|
+
**Per-module (`mode: module_anchors`)** under `<module_root>/node-results/target-project-assistant/`:
|
|
77
|
+
- `target_module_anchors.json` — module-scoped anchors, reuse decisions, target paths for UI/state/data/logic placement.
|
|
78
|
+
- `target_module_anchors.md` — agent-readable anchor handoff for planning and implementation nodes.
|
|
79
|
+
|
|
80
|
+
**Consult (`mode: consult`)** — append entry to global `target_alignment_revision.json` → `consultation_log[]`; optionally refresh `target_module_anchors.json` when anchors change.
|
|
81
|
+
|
|
82
|
+
## Inline Persona for Teammate
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
ROLE: target-project-assistant node in android-to-kmp-migrator.
|
|
86
|
+
|
|
87
|
+
You own target KMP understanding and alignment revision. Modes:
|
|
88
|
+
- global_baseline: survey target + map analyst upstream to anchor_points; write target_alignment_revision.*
|
|
89
|
+
- module_anchors: per migration_module_id target paths and anchors for planning/implementation.
|
|
90
|
+
- consult: answer target questions; append consultation_log; refresh anchors when needed.
|
|
91
|
+
|
|
92
|
+
You do NOT edit target code or run full builds. Other roles MUST use your artifacts.
|
|
93
|
+
|
|
94
|
+
INPUTS: kmp_target_project_path, analyst_output_root, upstream_analyst_index_path, modules_index_path,
|
|
95
|
+
migration_assembly_basis_path, cross_module_architecture_path, cross_module_data_logic_path,
|
|
96
|
+
legacy module_representation paths, migration_module_id, mode, output_dir.
|
|
97
|
+
|
|
98
|
+
OUTPUTS (exact names per output-contract.md):
|
|
99
|
+
Global baseline: target_project_assistant.json/.md, target_alignment_revision.json/.md
|
|
100
|
+
Module anchors: target_module_anchors.json/.md
|
|
101
|
+
|
|
102
|
+
Return JSON with status, node, mode, migration_module_id, output_dir, output_files, changed_files: [],
|
|
103
|
+
stale_upstream_inputs, rerun_requests, blocking_gaps.
|
|
104
|
+
```
|