@code-migration/wow-migrator 0.2.4 → 0.2.6
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 +7 -5
- package/skills/android-project-analyst/bind.md +1 -1
- package/skills/android-project-analyst/dependencies.yaml +11 -1
- package/skills/android-project-analyst/output-contract.md +18 -3
- package/skills/android-project-analyst/roles/analysis-workspace-state.md +11 -7
- package/skills/android-project-analyst/roles/data-contract-flow.md +80 -13
- package/skills/android-project-analyst/workflow.md +3 -2
- package/skills/android-to-kmp-migrator/SKILL.md +14 -12
- package/skills/android-to-kmp-migrator/bind.md +1 -0
- package/skills/android-to-kmp-migrator/dependencies.yaml +14 -0
- package/skills/android-to-kmp-migrator/output-contract.md +53 -8
- package/skills/android-to-kmp-migrator/roles/completion-report.md +1 -1
- package/skills/android-to-kmp-migrator/roles/global-migration-phase.md +54 -0
- package/skills/android-to-kmp-migrator/roles/migration-prep.md +15 -3
- package/skills/android-to-kmp-migrator/roles/migration-verification.md +41 -6
- package/skills/android-to-kmp-migrator/roles/module-implementation.md +19 -4
- package/skills/android-to-kmp-migrator/workflow.md +9 -8
- package/skills/kmp-test-validator/SKILL.md +7 -5
- package/skills/kmp-test-validator/dependencies.yaml +10 -0
- package/skills/kmp-test-validator/output-contract.md +7 -4
- package/skills/kmp-test-validator/roles/validation-business-testing.md +15 -3
- package/skills/kmp-test-validator/roles/validation-fidelity-gate.md +27 -2
- package/skills/kmp-test-validator/workflow.md +2 -2
- package/skills/migration-task-adapter/SKILL.md +5 -3
- package/skills/migration-task-adapter/dependencies.yaml +7 -0
- package/skills/operating-instructions/SKILL.md +55 -0
|
@@ -28,12 +28,14 @@ You are the `global-migration-phase` node subagent. Your job is **target KMP pro
|
|
|
28
28
|
**Integrate mode**:
|
|
29
29
|
- Target KMP glue files edited/created to wire `ui_transition_edges`, `control_logic_handoffs`, `data_call_edges` from analyst cross-module globals and per-module migration representations.
|
|
30
30
|
- **Entry point wiring complete**: KMP app shell, launcher/root navigation, startup graph, deep-link handlers, and platform entry wrappers match Legacy Android entry evidence from analyst `presentation_resource` `entry_points[]`, manifest launcher intent, and TPA `entry_point_anchors[]`.
|
|
31
|
+
- **Analytics SDK wiring complete** when analyst evidence shows analytics dependencies: global analytics init, DI bindings, and shared track/report facade wired in target glue (`analytics_sdk_wiring[]`).
|
|
31
32
|
- `global_system_integration.json` / `.md` with `kmp_target_project_path`, `integration_changed_files`, `target_edit_summary`, wired edges, `entry_point_wiring[]`, shared contracts applied, evidence paths, blockers.
|
|
32
33
|
- `integration_changed_files` limited to glue under `kmp_target_project_path`; module body gaps routed via `rerun_requests` to `module-implementation` or `migration-prep`.
|
|
33
34
|
|
|
34
35
|
**Align mode**:
|
|
35
36
|
- True comparison: analyst artifacts vs **migrated target KMP files** on disk; `alignment_verdict` explicit.
|
|
36
37
|
- **Entry point alignment verified**: each Legacy Android entry point has a resolved KMP counterpart; launch flow, root/start destination, deep links, and Application/startup hooks are compared with `entry_point_alignment_results[]` and folded into `global_alignment_results.entry_points`.
|
|
38
|
+
- **Analytics alignment verified**: global analytics SDK init, DI, and shared track/report facade compared with legacy `project_architecture` analytics deps and per-module `analytics_restoration_summary`; results in `analytics_alignment_results[]` and `global_alignment_results.analytics`.
|
|
37
39
|
- `comparison_evidence[]` pairs analyst claim paths with resolved target file paths under `kmp_target_project_path`.
|
|
38
40
|
- Entry point mismatches → `rerun_global_integration: true` (integrate must rewire app shell); module-scoped entry screens → `rerun_modules[]`.
|
|
39
41
|
- `rerun_modules[]` and `rerun_global_integration` when omissions found.
|
|
@@ -91,6 +93,17 @@ You are the `global-migration-phase` node subagent. Your job is **target KMP pro
|
|
|
91
93
|
"evidence_paths": []
|
|
92
94
|
}
|
|
93
95
|
],
|
|
96
|
+
"analytics_sdk_wiring": [
|
|
97
|
+
{
|
|
98
|
+
"legacy_sdk": "",
|
|
99
|
+
"legacy_init_path": "",
|
|
100
|
+
"target_init_path": "",
|
|
101
|
+
"target_facade_symbol": "",
|
|
102
|
+
"di_binding_path": "",
|
|
103
|
+
"status": "wired | partial | deferred | not_applicable",
|
|
104
|
+
"evidence_paths": []
|
|
105
|
+
}
|
|
106
|
+
],
|
|
94
107
|
"integration_changed_files": [],
|
|
95
108
|
"rerun_requests": [],
|
|
96
109
|
"blocking_gaps": []
|
|
@@ -116,6 +129,13 @@ You are the `global-migration-phase` node subagent. Your job is **target KMP pro
|
|
|
116
129
|
"aligned_count": 0,
|
|
117
130
|
"total_count": 0,
|
|
118
131
|
"gaps": []
|
|
132
|
+
},
|
|
133
|
+
"analytics": {
|
|
134
|
+
"verdict": "passed | passed_with_assumptions | failed | not_applicable",
|
|
135
|
+
"restored_event_count": 0,
|
|
136
|
+
"total_event_count": 0,
|
|
137
|
+
"sdk_wired": true,
|
|
138
|
+
"gaps": []
|
|
119
139
|
}
|
|
120
140
|
},
|
|
121
141
|
"entry_point_alignment_results": [
|
|
@@ -134,6 +154,20 @@ You are the `global-migration-phase` node subagent. Your job is **target KMP pro
|
|
|
134
154
|
"gap": ""
|
|
135
155
|
}
|
|
136
156
|
],
|
|
157
|
+
"analytics_alignment_results": [
|
|
158
|
+
{
|
|
159
|
+
"event_id": "",
|
|
160
|
+
"event_name": "",
|
|
161
|
+
"legacy_source_path": "",
|
|
162
|
+
"migration_module_id": "",
|
|
163
|
+
"target_path": "",
|
|
164
|
+
"target_symbol": "",
|
|
165
|
+
"alignment_status": "aligned | partial | missing",
|
|
166
|
+
"params_match": true,
|
|
167
|
+
"evidence_paths": [],
|
|
168
|
+
"gap": ""
|
|
169
|
+
}
|
|
170
|
+
],
|
|
137
171
|
"omissions": [],
|
|
138
172
|
"poor_restoration": [],
|
|
139
173
|
"rerun_modules": [],
|
|
@@ -168,6 +202,9 @@ Edit only integration glue in the KMP target:
|
|
|
168
202
|
- Deep links / intent filters / notification taps → KMP deep-link handlers and route arguments.
|
|
169
203
|
- Cross-platform entry: common `App()` composable and platform wrappers must route to the same logical entry as Android.
|
|
170
204
|
- Consume TPA `entry_point_anchors[]` and per-module `presentation_resource` `entry_points[]`; record every wired pair in `entry_point_wiring[]`.
|
|
205
|
+
- **Analytics SDK / global 埋点 glue (when analyst shows analytics deps)**:
|
|
206
|
+
- Wire shared analytics init (Application/startup), DI module bindings, and common `track`/`report` facade used by module implementations.
|
|
207
|
+
- Record every wired SDK/init/facade pair in `analytics_sdk_wiring[]`.
|
|
171
208
|
|
|
172
209
|
Do **not** edit module-internal screens, repositories, or ViewModels — those are `module-implementation` scope. If a handoff requires module body changes, emit `rerun_requests` for the owning `migration_module_id`.
|
|
173
210
|
|
|
@@ -185,6 +222,21 @@ Read-only verification after integrate. For each Legacy Android entry in analyst
|
|
|
185
222
|
- `failed` — any required launcher/root/deep-link mismatch; set `rerun_global_integration: true`.
|
|
186
223
|
6. Entry point failures block package **M6** until integrate rewires app shell.
|
|
187
224
|
|
|
225
|
+
## Analytics Alignment Rules (align mode)
|
|
226
|
+
|
|
227
|
+
Read-only verification after integrate. Aggregate per-module `migration_verification` → `analytics_restoration_summary` and legacy analyst analytics evidence:
|
|
228
|
+
|
|
229
|
+
1. Resolve legacy 埋点 inventory from `behavior_logic` side_effects and `project_architecture` analytics dependencies.
|
|
230
|
+
2. Resolve KMP track/report calls and `analytics_sdk_wiring[]` from integrate output and module `analytics_coverage[]`.
|
|
231
|
+
3. Compare event name, trigger, param keys, and SDK init path for each event.
|
|
232
|
+
4. Record `analytics_alignment_results[]` with `alignment_status` and evidence path pairs in `comparison_evidence[]`.
|
|
233
|
+
5. Set `global_alignment_results.analytics.verdict`:
|
|
234
|
+
- `not_applicable` — no analytics in migration scope with evidence.
|
|
235
|
+
- `passed` — all required events restored and SDK wired.
|
|
236
|
+
- `passed_with_assumptions` — documented deferrals only.
|
|
237
|
+
- `failed` — missing events or SDK wiring; add to `poor_restoration[]` and route `rerun_modules[]` or `rerun_global_integration`.
|
|
238
|
+
6. Analytics failures block package **M6** when legacy scope had analytics and restoration is incomplete.
|
|
239
|
+
|
|
188
240
|
## Inline Persona for Teammate
|
|
189
241
|
|
|
190
242
|
```text
|
|
@@ -198,6 +250,7 @@ hooks in androidMain/iosMain). Do NOT mix patterns.
|
|
|
198
250
|
INTEGRATE — EDIT THE TARGET KMP PROJECT:
|
|
199
251
|
- Wire cross-module UI transitions, control logic handoffs, and data calls inside kmp_target_project_path.
|
|
200
252
|
- Wire entry points: Android launcher/Application/root nav/deep links → KMP app shell (entry_point_wiring[]).
|
|
253
|
+
- Wire analytics SDK/init/DI/facade when legacy uses analytics (analytics_sdk_wiring[]).
|
|
201
254
|
- integration_changed_files = every target glue file you created or modified.
|
|
202
255
|
- Glue only: nav, DI, shared contracts, app shell, entry wiring. No module body reimplementation.
|
|
203
256
|
- Legacy Android and analyst artifacts are read-only evidence.
|
|
@@ -205,6 +258,7 @@ INTEGRATE — EDIT THE TARGET KMP PROJECT:
|
|
|
205
258
|
ALIGN — READ-ONLY:
|
|
206
259
|
- Compare analyst evidence vs migrated target KMP files on disk.
|
|
207
260
|
- Verify entry_point_alignment_results[] vs Android entry_points + manifest + entry_point_wiring[].
|
|
261
|
+
- Verify analytics_alignment_results[] vs per-module analytics_restoration_summary + analytics_sdk_wiring[].
|
|
208
262
|
- Write post_integration_alignment.* and alignment_report under report_dir.
|
|
209
263
|
- Entry point mismatch → rerun_global_integration. NO target edits. NO full project build.
|
|
210
264
|
|
|
@@ -10,7 +10,7 @@ You are the `migration-prep` node subagent. You merge **presentation integration
|
|
|
10
10
|
|
|
11
11
|
- `migration_prep.json` and `migration_prep.md` written under `output_dir`.
|
|
12
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
|
|
13
|
+
- **State/data section**: state mappings, model mappings, API contract expectations, logic handoff, `analytics_expectations[]`. State holder expectations MUST follow the run's `design_mode` (default `mvi`): `mvi` → sealed `State`/`Action` + state-machine handoff (`references/kmp-mvi-flowredux.md`); `mvvm` → immutable `UiState` + `ViewModel` event-method handoff (`references/kmp-mvvm.md`). All scaffold and contracts target a KMP project per `references/kmp-expert.md` base conventions — place shared tokens/resources/models/routes in `commonMain`, reserve `androidMain`/`iosMain` for platform actuals, and prefer the multiplatform stack (Ktor, kotlinx-serialization, kotlinx-datetime) over Android-only types.
|
|
14
14
|
- Changed files recorded; cross-module impacts noted.
|
|
15
15
|
- No full UI layouts or repository/API behavior.
|
|
16
16
|
|
|
@@ -53,7 +53,18 @@ When planning allows prep-time file changes, you MAY create or update target sca
|
|
|
53
53
|
"state_mappings": [],
|
|
54
54
|
"model_mappings": [],
|
|
55
55
|
"api_contract_expectations": [],
|
|
56
|
-
"logic_handoff": []
|
|
56
|
+
"logic_handoff": [],
|
|
57
|
+
"analytics_expectations": [
|
|
58
|
+
{
|
|
59
|
+
"event_id": "",
|
|
60
|
+
"event_name": "",
|
|
61
|
+
"trigger": "",
|
|
62
|
+
"params": [],
|
|
63
|
+
"legacy_source_path": "",
|
|
64
|
+
"expected_placement": "onActionEffect | viewModel_side_effect | composable_launchedEffect | screen_enter | lifecycle | global_sdk_init",
|
|
65
|
+
"sdk_hint": ""
|
|
66
|
+
}
|
|
67
|
+
]
|
|
57
68
|
},
|
|
58
69
|
"changed_files": [],
|
|
59
70
|
"blocking_gaps": []
|
|
@@ -70,7 +81,8 @@ See [output-contract.md](../output-contract.md). Artifact basename: `migration_p
|
|
|
70
81
|
ROLE: migration-prep node. Merge presentation + state/data prep in ONE invocation.
|
|
71
82
|
|
|
72
83
|
PRESENTATION: tokens, resources, media, routes, UI handoff.
|
|
73
|
-
STATE/DATA: state holders, models, mappers, API expectations, logic handoff
|
|
84
|
+
STATE/DATA: state holders, models, mappers, API expectations, logic handoff, analytics_expectations
|
|
85
|
+
(legacy 埋点 inventory from behavior_logic side_effects + project_architecture analytics deps).
|
|
74
86
|
State holder shape follows design_mode (default mvi): mvi → sealed State/Action + state machine
|
|
75
87
|
(references/kmp-mvi-flowredux.md); mvvm → UiState + ViewModel methods (references/kmp-mvvm.md).
|
|
76
88
|
Target is a KMP project per references/kmp-expert.md: scaffold in commonMain, platform actuals only in
|
|
@@ -15,6 +15,7 @@ You are the `migration-verification` node subagent. You verify one `migration_mo
|
|
|
15
15
|
- `ui_render`
|
|
16
16
|
- `ui_restoration`
|
|
17
17
|
- `logic_restoration`
|
|
18
|
+
- `analytics_restoration`
|
|
18
19
|
|
|
19
20
|
## Forbidden Check IDs
|
|
20
21
|
|
|
@@ -29,6 +30,7 @@ If a dispatch contract includes forbidden check ids, return `blocked` and cite [
|
|
|
29
30
|
- `migration_verification.json` and `migration_verification.md` written under `output_dir`.
|
|
30
31
|
- Every required `check_id` has `passed | failed | blocked`.
|
|
31
32
|
- `ui_restoration` and `logic_restoration` cite upstream analyst paths and list gaps explicitly.
|
|
33
|
+
- `analytics_restoration` inventories Legacy Android 埋点 from upstream `behavior_logic` (user-action/lifecycle `side_effects`, screen-exposure hooks) and `project_architecture` (`analytics` dependencies), compares each event to migrated KMP track/report calls in target files, and records missing or mismatched events in `analytics_restoration_summary`.
|
|
32
34
|
- `syntax_check` validates changed Kotlin/files statically without assembling the whole project.
|
|
33
35
|
- `target_files_exist` confirms every aggregated module `changed_files[]` path exists on disk under `kmp_target_project_path`.
|
|
34
36
|
- Failures route to owning roles per `SKILL.md`; Leader writes `module_completion_record.json` only when all checks pass.
|
|
@@ -58,7 +60,7 @@ If a dispatch contract includes forbidden check ids, return `blocked` and cite [
|
|
|
58
60
|
"upstream_module_representation_path": "",
|
|
59
61
|
"check_results": [
|
|
60
62
|
{
|
|
61
|
-
"check_id": "target_files_exist | source_set | syntax_check | api_contract | ui_render | ui_restoration | logic_restoration",
|
|
63
|
+
"check_id": "target_files_exist | source_set | syntax_check | api_contract | ui_render | ui_restoration | logic_restoration | analytics_restoration",
|
|
62
64
|
"status": "passed | failed | blocked",
|
|
63
65
|
"evidence": [],
|
|
64
66
|
"failures": [],
|
|
@@ -68,6 +70,28 @@ If a dispatch contract includes forbidden check ids, return `blocked` and cite [
|
|
|
68
70
|
],
|
|
69
71
|
"ui_restoration_summary": { "status": "passed | failed", "gaps": [] },
|
|
70
72
|
"logic_restoration_summary": { "status": "passed | failed", "gaps": [] },
|
|
73
|
+
"analytics_restoration_summary": {
|
|
74
|
+
"status": "passed | failed | skipped",
|
|
75
|
+
"legacy_event_count": 0,
|
|
76
|
+
"restored_count": 0,
|
|
77
|
+
"partial_count": 0,
|
|
78
|
+
"missing_count": 0,
|
|
79
|
+
"events": [
|
|
80
|
+
{
|
|
81
|
+
"event_id": "",
|
|
82
|
+
"event_name": "",
|
|
83
|
+
"trigger": "",
|
|
84
|
+
"legacy_source_path": "",
|
|
85
|
+
"target_path": "",
|
|
86
|
+
"target_symbol": "",
|
|
87
|
+
"params_match": true,
|
|
88
|
+
"status": "restored | partial | missing | unknown",
|
|
89
|
+
"gap": ""
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"sdk_wiring": { "legacy_sdk": "", "target_sdk_path": "", "status": "wired | partial | missing | not_applicable" },
|
|
93
|
+
"gaps": []
|
|
94
|
+
},
|
|
71
95
|
"log_files": [],
|
|
72
96
|
"blocking_gaps": []
|
|
73
97
|
}
|
|
@@ -79,8 +103,8 @@ Write only under `output_dir = <output_root>/modules/<migration_module_id>/node-
|
|
|
79
103
|
|
|
80
104
|
## Output Files And Contents
|
|
81
105
|
|
|
82
|
-
- `migration_verification.json`: check results, restoration summaries, routing, log paths.
|
|
83
|
-
- `migration_verification.md`: agent-readable verification handoff; must state build
|
|
106
|
+
- `migration_verification.json`: check results, restoration summaries, analytics inventory parity, routing, log paths.
|
|
107
|
+
- `migration_verification.md`: agent-readable verification handoff; must state build and runtime analytics reporting are deferred to kmp-test-validator.
|
|
84
108
|
- Optional static analysis logs under `output_dir/logs/` (listed in `log_files`).
|
|
85
109
|
|
|
86
110
|
## Inline Persona for Teammate
|
|
@@ -89,9 +113,20 @@ Write only under `output_dir = <output_root>/modules/<migration_module_id>/node-
|
|
|
89
113
|
ROLE: migration-verification node.
|
|
90
114
|
|
|
91
115
|
Run module-scoped checks ONLY: target_files_exist, source_set, syntax_check, api_contract,
|
|
92
|
-
ui_render, ui_restoration, logic_restoration. Compare UI/logic to
|
|
93
|
-
|
|
94
|
-
|
|
116
|
+
ui_render, ui_restoration, logic_restoration, analytics_restoration. Compare UI/logic/埋点 to
|
|
117
|
+
upstream analyst module_representation, behavior_logic, and project_architecture analytics deps.
|
|
118
|
+
|
|
119
|
+
ANALYTICS_RESTORATION:
|
|
120
|
+
1. Build legacy 埋点 inventory from behavior_logic user_actions/lifecycle side_effects and
|
|
121
|
+
project_architecture analytics SDK dependencies.
|
|
122
|
+
2. For each legacy event, locate equivalent KMP track/report call in module_implementation_logic
|
|
123
|
+
changed_files or shared analytics wrapper under kmp_target_project_path.
|
|
124
|
+
3. Compare event name, trigger point, and param keys; mark restored | partial | missing.
|
|
125
|
+
4. Record sdk_wiring when global analytics init/DI is required.
|
|
126
|
+
5. status skipped only when inventory is empty with evidence (no analytics in module scope).
|
|
127
|
+
|
|
128
|
+
DO NOT run incremental_build or full project compile — kmp-test-validator owns build and
|
|
129
|
+
runtime analytics reporting verification.
|
|
95
130
|
|
|
96
131
|
INPUTS: migration_module_id, changed_files, planning/TPA/UI/logic outputs,
|
|
97
132
|
upstream_module_representation_path, analyst dimension paths, target path, output_dir.
|
|
@@ -44,8 +44,8 @@ Both modes follow `references/kmp-expert.md` for base KMP/CMP conventions. If `d
|
|
|
44
44
|
- UI binds to TPA anchors and planning `source_to_target_map`; no business logic beyond compile-safe UI state shells.
|
|
45
45
|
|
|
46
46
|
**Logic mode**:
|
|
47
|
-
- Target KMP files edited/created for repositories, use cases, ViewModels/state holders, mappers, API clients,
|
|
48
|
-
- `module_implementation_logic.json` / `.md` with `kmp_target_project_path`, `changed_files`, `target_edit_summary`, data flows, API integrations, logic coverage, platform boundaries.
|
|
47
|
+
- Target KMP files edited/created for repositories, use cases, ViewModels/state holders, mappers, API clients, platform `expect`/`actual` boundaries, and **analytics/埋点 side effects** (track/report calls, screen-exposure hooks) mapped from upstream `behavior_logic`.
|
|
48
|
+
- `module_implementation_logic.json` / `.md` with `kmp_target_project_path`, `changed_files`, `target_edit_summary`, data flows, API integrations, logic coverage, `analytics_coverage[]` (legacy event → target track call), platform boundaries.
|
|
49
49
|
- Binds to approved UI binding surfaces from UI mode; no Android-only APIs in `commonMain`.
|
|
50
50
|
- No TODO placeholders in production paths.
|
|
51
51
|
|
|
@@ -99,6 +99,19 @@ Both modes follow `references/kmp-expert.md` for base KMP/CMP conventions. If `d
|
|
|
99
99
|
"data_flows": [],
|
|
100
100
|
"api_integrations": [],
|
|
101
101
|
"logic_coverage": [],
|
|
102
|
+
"analytics_coverage": [
|
|
103
|
+
{
|
|
104
|
+
"legacy_event_id": "",
|
|
105
|
+
"event_name": "",
|
|
106
|
+
"trigger": "",
|
|
107
|
+
"legacy_source_path": "",
|
|
108
|
+
"target_path": "",
|
|
109
|
+
"target_symbol": "",
|
|
110
|
+
"params_mapped": [],
|
|
111
|
+
"placement": "onActionEffect | viewModel_side_effect | composable_launchedEffect | screen_enter | lifecycle | other",
|
|
112
|
+
"status": "restored | partial | deferred"
|
|
113
|
+
}
|
|
114
|
+
],
|
|
102
115
|
"diagnostics": [],
|
|
103
116
|
"blocking_gaps": []
|
|
104
117
|
}
|
|
@@ -113,8 +126,8 @@ Populate UI fields in `ui` mode; logic fields in `logic` mode. `changed_files` a
|
|
|
113
126
|
- `module_implementation_ui.md` — agent-readable UI migration handoff: legacy screen/section → target composable/resource path table, edited files list, binding surfaces, known fidelity gaps, next logic dependencies.
|
|
114
127
|
|
|
115
128
|
**Logic mode** under `<module_root>/node-results/module-implementation/logic/`:
|
|
116
|
-
- `module_implementation_logic.json` — machine implementation record: `kmp_target_project_path`, `target_edit_summary`, `changed_files` with logic placement, data flows, API integrations, logic coverage vs upstream `behavior_logic`, platform boundary decisions, blockers.
|
|
117
|
-
- `module_implementation_logic.md` — agent-readable logic migration handoff: legacy behavior/use-case → target repository/ViewModel/state path table, edited files list, platform splits, unresolved gaps.
|
|
129
|
+
- `module_implementation_logic.json` — machine implementation record: `kmp_target_project_path`, `target_edit_summary`, `changed_files` with logic placement, data flows, API integrations, logic coverage vs upstream `behavior_logic`, `analytics_coverage[]` vs legacy 埋点, platform boundary decisions, blockers.
|
|
130
|
+
- `module_implementation_logic.md` — agent-readable logic migration handoff: legacy behavior/use-case → target repository/ViewModel/state path table, **legacy 埋点 → target track/report table**, edited files list, platform splits, unresolved gaps.
|
|
118
131
|
|
|
119
132
|
## Target Edit Rules By Mode
|
|
120
133
|
|
|
@@ -130,6 +143,7 @@ Populate UI fields in `ui` mode; logic fields in `logic` mode. `changed_files` a
|
|
|
130
143
|
- ViewModels, presenters, or state holders bound to approved UI surfaces.
|
|
131
144
|
- Repositories, data sources, mappers, DTO/domain models.
|
|
132
145
|
- API client integrations and error/loading state propagation.
|
|
146
|
+
- **Analytics/埋点**: restore legacy track/report calls at the same behavioral trigger points — e.g. MVI `onActionEffect` / `onEnter`, MVVM ViewModel side-effect methods after state transitions, screen-enter `LaunchedEffect`, lifecycle hooks. Reuse shared analytics wrapper from prep when present.
|
|
133
147
|
- `expect`/`actual` declarations and platform-specific implementations in `androidMain`/`iosMain` when required.
|
|
134
148
|
|
|
135
149
|
## Inline Persona for Teammate
|
|
@@ -152,6 +166,7 @@ UI MODE:
|
|
|
152
166
|
|
|
153
167
|
LOGIC MODE:
|
|
154
168
|
- Port behavior from upstream behavior_logic evidence into target repositories/ViewModels/state/platform code.
|
|
169
|
+
- Restore legacy 埋点 at matching triggers; record every event in analytics_coverage[].
|
|
155
170
|
- Bind only to approved UI binding surfaces from prior UI mode output.
|
|
156
171
|
- changed_files = every target file you created or modified.
|
|
157
172
|
|
|
@@ -94,11 +94,11 @@ graph TD
|
|
|
94
94
|
|---|---|---|
|
|
95
95
|
| 5a | TPA `module_anchors` | Package **M2** per module |
|
|
96
96
|
| 5b | `migration-planning-gate` | Planning + dep/platform in one pass |
|
|
97
|
-
| 5c | `migration-prep` | Presentation + state/data
|
|
97
|
+
| 5c | `migration-prep` | Presentation + state/data + `analytics_expectations[]` |
|
|
98
98
|
| 5d | `module-node-review-fix` | After prep if file-changing |
|
|
99
99
|
| 5e | `module-implementation` `ui` | Edit/create target KMP UI files; then review/fix |
|
|
100
|
-
| 5f | `module-implementation` `logic` | Edit/create target KMP logic
|
|
101
|
-
| 5g | `migration-verification` | Static + restoration; **no full build** |
|
|
100
|
+
| 5f | `module-implementation` `logic` | Edit/create target KMP logic + **埋点** restoration; then review/fix |
|
|
101
|
+
| 5g | `migration-verification` | Static + restoration incl. **analytics_restoration** (埋点 parity); **no full build** |
|
|
102
102
|
| 5h | Leader | `module_completion_record.json` |
|
|
103
103
|
| 5i | `completion-report` `readiness` + module representation | Package **M3** |
|
|
104
104
|
|
|
@@ -109,16 +109,16 @@ Repeat until package **M4**.
|
|
|
109
109
|
### 6a Integrate
|
|
110
110
|
|
|
111
111
|
- **Role**: `global-migration-phase` `mode: integrate`
|
|
112
|
-
- **Action**: edit target KMP cross-module glue (nav, DI, shared contracts)
|
|
113
|
-
- **Output**: `global-migration-phase/integrate/global_system_integration.*` with `integration_changed_files[]` and `
|
|
112
|
+
- **Action**: edit target KMP cross-module glue (nav, DI, shared contracts), **wire app-shell entry points** (launcher, Application/startup, root NavHost start destination, deep links), and **analytics SDK/init/facade** when legacy uses analytics, under `kmp_target_project_path`, using TPA `entry_point_anchors[]` and analyst `presentation_resource` `entry_points[]`
|
|
113
|
+
- **Output**: `global-migration-phase/integrate/global_system_integration.*` with `integration_changed_files[]`, `entry_point_wiring[]`, and `analytics_sdk_wiring[]`
|
|
114
114
|
- **Gate**: package **M5**
|
|
115
115
|
|
|
116
116
|
### 6b Align
|
|
117
117
|
|
|
118
118
|
- **Role**: `global-migration-phase` `mode: align`
|
|
119
|
-
- **Action**: read-only comparison including **entry point alignment** — verify each Android entry resolves to the correct KMP shell path
|
|
120
|
-
- **Output**: `global-migration-phase/align/post_integration_alignment.*` with `entry_point_alignment_results[]`
|
|
121
|
-
- **Gate**: package **M6**; entry point or cross-module mismatch → `rerun_global_integration` or module loop
|
|
119
|
+
- **Action**: read-only comparison including **entry point alignment** and **analytics alignment** — verify each Android entry resolves to the correct KMP shell path; verify legacy 埋点 inventory matches migrated track/report calls and global analytics SDK wiring
|
|
120
|
+
- **Output**: `global-migration-phase/align/post_integration_alignment.*` with `entry_point_alignment_results[]`, `analytics_alignment_results[]`, `global_alignment_results.entry_points`, `global_alignment_results.analytics`, plus `report/alignment_report.*`
|
|
121
|
+
- **Gate**: package **M6**; entry point, analytics SDK, or cross-module mismatch → `rerun_global_integration` or module loop
|
|
122
122
|
|
|
123
123
|
## Step 7 — Report + mandatory validator handoff (MG17)
|
|
124
124
|
|
|
@@ -140,4 +140,5 @@ Any target question → TPA `mode: consult` (append `consultation_log`).
|
|
|
140
140
|
- Dispatch only role IDs from `SKILL.md`.
|
|
141
141
|
- Mode rules: `ui` before `logic`; `integrate` before `align`; `review`/`fix` separate.
|
|
142
142
|
- `migration-verification` never runs `incremental_build`.
|
|
143
|
+
- Per-module and global **analytics_restoration** (埋点) parity verified before **M3** / **M6**; runtime analytics **reporting** deferred to `kmp-test-validator`.
|
|
143
144
|
- `handoff_gates` match output-contract.
|
|
@@ -11,27 +11,27 @@ roles:
|
|
|
11
11
|
- id: validation-workspace-state
|
|
12
12
|
kind: ai_agent
|
|
13
13
|
purpose: Validation ledger — node status, handoff gates VG0–VG5, supplement/remediation cycle counts, stale inputs, blockers. No audit, build, fix, or verdict.
|
|
14
|
-
skills: []
|
|
14
|
+
skills: [operating-instructions]
|
|
15
15
|
tools: [git]
|
|
16
16
|
- id: validation-fidelity-gate
|
|
17
17
|
kind: ai_agent
|
|
18
18
|
purpose: Fidelity gate — mode trust (pre-build Android/SPEC vs KMP) or restoreability (post-build module/function audit, migrator supplement routing). Read-only.
|
|
19
|
-
skills: []
|
|
19
|
+
skills: [operating-instructions]
|
|
20
20
|
tools: [rg, git]
|
|
21
21
|
- id: validation-code-gate
|
|
22
22
|
kind: ai_agent
|
|
23
23
|
purpose: Code gate — mode build (3-scenario compile/preview) or fix (edit target KMP project to resolve build/preview failures). Only fix mode edits production code.
|
|
24
|
-
skills: []
|
|
24
|
+
skills: [operating-instructions]
|
|
25
25
|
tools: [rg, git]
|
|
26
26
|
- id: validation-business-testing
|
|
27
27
|
kind: ai_agent
|
|
28
28
|
purpose: Optional business testing — behavioral submodule (user test cases) and ui_comparison submodule (Figma) after VG3.
|
|
29
|
-
skills: []
|
|
29
|
+
skills: [operating-instructions]
|
|
30
30
|
tools: [rg, git]
|
|
31
31
|
- id: validation-report
|
|
32
32
|
kind: ai_agent
|
|
33
33
|
purpose: Final verdict synthesis — passed/failed/blocked from verified fidelity, code-gate, business-testing, and fix evidence.
|
|
34
|
-
skills: []
|
|
34
|
+
skills: [operating-instructions]
|
|
35
35
|
tools: [git]
|
|
36
36
|
---
|
|
37
37
|
|
|
@@ -43,6 +43,8 @@ The team is a **serial pipeline with two controller loops**: code-gate fix remed
|
|
|
43
43
|
|
|
44
44
|
**Canonical file recording system**: [output-contract.md](output-contract.md) defines paths, migrator `V0` inputs, handoff gates `VG0`–`VG5`, and mode contracts. The Leader MUST read `output-contract.md` before the first dispatch.
|
|
45
45
|
|
|
46
|
+
**Baseline operating instructions**: [../operating-instructions/SKILL.md](../operating-instructions/SKILL.md) is the shared conduct layer for this skill and every dispatched validator role. The Leader MUST read it before pre-flight and include it in each role dispatch as baseline instructions; role files, workflow gates, and output contracts add to it, not replace it.
|
|
47
|
+
|
|
46
48
|
## Protocol Summary
|
|
47
49
|
|
|
48
50
|
0. **Pre-flight** — [dependencies.yaml](dependencies.yaml); verify migrator `V0`; lock output root.
|
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
# Leader reads this in Workflow Step 0 → run_manifest.json dependency_preflight.
|
|
4
4
|
|
|
5
5
|
skills:
|
|
6
|
+
- name: operating-instructions
|
|
7
|
+
required: true
|
|
8
|
+
used_by:
|
|
9
|
+
- Leader
|
|
10
|
+
- validation-workspace-state
|
|
11
|
+
- validation-fidelity-gate
|
|
12
|
+
- validation-code-gate
|
|
13
|
+
- validation-business-testing
|
|
14
|
+
- validation-report
|
|
15
|
+
purpose: Shared baseline conduct layer loaded before validator pre-flight, fidelity/code gates, optional business testing, remediation, and final reporting work.
|
|
6
16
|
- name: ui-reconstruction-score
|
|
7
17
|
required: false
|
|
8
18
|
used_by:
|
|
@@ -116,8 +116,8 @@ output_root = <output_dir or ~/.a2c_agents/validation>/kmp-test-validator
|
|
|
116
116
|
| `VG0` | Migrator `V0` verified; `upstream_migration_index.json` written |
|
|
117
117
|
| `VG1` | `fidelity-gate/trust/validation_fidelity_trust.json` — no unresolved `test_trust_blockers` |
|
|
118
118
|
| `VG2` | `code-gate/build/validation_code_build.json` — `build.status: passed`; preview passed or justified `skipped` |
|
|
119
|
-
| `VG3` | `fidelity-gate/restoreability/validation_restoreability_audit.json` — `restoreability_verdict: passed` |
|
|
120
|
-
| `VG4` | `business-testing/validation_business_testing.json` — submodule outcomes or explicit `skipped` |
|
|
119
|
+
| `VG3` | `fidelity-gate/restoreability/validation_restoreability_audit.json` — `restoreability_verdict: passed`; when `analytics_reporting_required`, `analytics_reporting_summary.verdict: passed | not_applicable` |
|
|
120
|
+
| `VG4` | `business-testing/validation_business_testing.json` — submodule outcomes or explicit `skipped`; `analytics_reporting` MUST run when migrator requires it |
|
|
121
121
|
| `VG5` | `report/kmp_validation_report.json` issued |
|
|
122
122
|
|
|
123
123
|
**Fail closed**: `passed` requires `VG2` + `VG3`; enabled `VG4` submodules must have no unresolved failures.
|
|
@@ -216,7 +216,7 @@ The validator maintains a durable bug-fix experience ledger for compile/preview
|
|
|
216
216
|
|
|
217
217
|
### `validation_restoreability_audit.json` (mode `restoreability`)
|
|
218
218
|
|
|
219
|
-
`migrator_supplement_request` when new migration work required. Controller invokes `android-to-kmp-migrator` — not code-gate `fix`.
|
|
219
|
+
`migrator_supplement_request` when new migration work required. When `migration_report.validation_inputs.analytics_reporting_required`, MUST include `analytics_reporting_results[]` and `analytics_reporting_summary` — failed analytics reporting blocks `restoreability_verdict: passed`. Controller invokes `android-to-kmp-migrator` — not code-gate `fix`.
|
|
220
220
|
|
|
221
221
|
### `validation_business_testing.json`
|
|
222
222
|
|
|
@@ -224,11 +224,14 @@ The validator maintains a durable bug-fix experience ledger for compile/preview
|
|
|
224
224
|
{
|
|
225
225
|
"submodules": {
|
|
226
226
|
"behavioral": { "enabled": false, "status": "passed | failed | skipped | blocked" },
|
|
227
|
-
"ui_comparison": { "enabled": false, "status": "passed | failed | skipped | blocked" }
|
|
227
|
+
"ui_comparison": { "enabled": false, "status": "passed | failed | skipped | blocked" },
|
|
228
|
+
"analytics_reporting": { "enabled": false, "status": "passed | failed | skipped | blocked" }
|
|
228
229
|
}
|
|
229
230
|
}
|
|
230
231
|
```
|
|
231
232
|
|
|
233
|
+
`analytics_reporting` is **enabled** when migrator `validation_inputs.analytics_reporting_required` is true — not optional skip when legacy scope had 埋点.
|
|
234
|
+
|
|
232
235
|
---
|
|
233
236
|
|
|
234
237
|
## Leader Obligations
|
|
@@ -12,14 +12,15 @@ You are the `validation-business-testing` node subagent. You own optional post-`
|
|
|
12
12
|
|---|---|---|
|
|
13
13
|
| `behavioral` | `validation_requirements`, test cases, acceptance criteria | Decompose Android-anchored cases; execute via trusted test commands |
|
|
14
14
|
| `ui_comparison` | `figma_refs` (file key, node IDs, or exported assets) | Compare implementation screenshots vs design (e.g. `ui-reconstruction-score` when available) |
|
|
15
|
+
| `analytics_reporting` | `migration_report.json` → `validation_inputs.analytics_reporting_required: true` | Verify legacy 埋点 events fire and reach SDK/report pipeline on key user flows post-build |
|
|
15
16
|
|
|
16
|
-
When neither
|
|
17
|
+
When neither behavioral/ui_comparison inputs exist and analytics_reporting is not required: all submodules `enabled: false`, `status: skipped`, reason `no_business_testing_inputs`.
|
|
17
18
|
|
|
18
19
|
## Success Criteria
|
|
19
20
|
|
|
20
21
|
- `validation_business_testing.json` and `.md` under `output_dir`.
|
|
21
22
|
- Submodules run only after `VG2` and `VG3` are true.
|
|
22
|
-
- Behavioral expectations anchored to Android/SPEC; UI comparison anchored to Figma refs.
|
|
23
|
+
- Behavioral expectations anchored to Android/SPEC; UI comparison anchored to Figma refs; **analytics_reporting** anchored to `migration_report.json` → `analytics_restoration_summary.event_catalog`.
|
|
23
24
|
- Failures routed to `validation-code-gate` mode `fix` when target-code fixable.
|
|
24
25
|
- Logs under `logs_dir/business-testing/` and `logs_dir/ui-comparison/` when run.
|
|
25
26
|
|
|
@@ -58,6 +59,14 @@ When neither input exists: both submodules `enabled: false`, `status: skipped`,
|
|
|
58
59
|
"comparison_results": [],
|
|
59
60
|
"score_report_path": "",
|
|
60
61
|
"log_files": []
|
|
62
|
+
},
|
|
63
|
+
"analytics_reporting": {
|
|
64
|
+
"enabled": false,
|
|
65
|
+
"status": "passed | failed | skipped | blocked",
|
|
66
|
+
"event_catalog_ref": "",
|
|
67
|
+
"flow_results": [],
|
|
68
|
+
"reporting_log_path": "",
|
|
69
|
+
"log_files": []
|
|
61
70
|
}
|
|
62
71
|
},
|
|
63
72
|
"changed_files": [],
|
|
@@ -73,7 +82,10 @@ Shared return shape applies. `changed_files` lists only test files created in ta
|
|
|
73
82
|
```text
|
|
74
83
|
ROLE: validation-business-testing node.
|
|
75
84
|
|
|
76
|
-
Optional business verification after VG3. Enable behavioral when user test cases exist.
|
|
85
|
+
Optional business verification after VG3. Enable behavioral when user test cases exist.
|
|
86
|
+
Enable ui_comparison when Figma refs exist. Enable analytics_reporting when migrator sets
|
|
87
|
+
analytics_reporting_required — exercise key flows and confirm 埋点 reach SDK/report pipeline.
|
|
88
|
+
Route failures to validation-code-gate fix mode.
|
|
77
89
|
|
|
78
90
|
INPUTS: kmp_target_project_path, validation_fidelity_trust_path, validation_code_build_path, validation_restoreability_audit_path, validation_requirements, figma_refs, migration_report_path, output_dir, logs_dir.
|
|
79
91
|
|
|
@@ -25,7 +25,8 @@ You are the `validation-fidelity-gate` node subagent. You merge the migration in
|
|
|
25
25
|
### Mode `restoreability`
|
|
26
26
|
|
|
27
27
|
- `validation_restoreability_audit.json` and `.md` under `output_dir/restoreability/`.
|
|
28
|
-
- Comparison uses analyst globals, migrator completion records, alignment artifacts,
|
|
28
|
+
- Comparison uses analyst globals, migrator completion records, alignment artifacts, built target evidence, and **`migration_report.json` → `analytics_restoration_summary`** when `validation_inputs.analytics_reporting_required` is true.
|
|
29
|
+
- **Analytics reporting verification**: for each event in `event_catalog`, confirm KMP target wires track/report at the documented trigger and SDK init path is reachable post-build; record `analytics_reporting_results[]` with `report_path_reachable` and `flow_verified` status.
|
|
29
30
|
- Missing modules/functions emit `migrator_supplement_request` — never route to code-gate `fix` mode deletes.
|
|
30
31
|
|
|
31
32
|
## Boundary
|
|
@@ -82,6 +83,27 @@ You are the `validation-fidelity-gate` node subagent. You merge the migration in
|
|
|
82
83
|
"missing_modules": [],
|
|
83
84
|
"missing_functions": [],
|
|
84
85
|
"poor_restoration": [],
|
|
86
|
+
"analytics_reporting_results": [
|
|
87
|
+
{
|
|
88
|
+
"event_id": "",
|
|
89
|
+
"event_name": "",
|
|
90
|
+
"migration_module_id": "",
|
|
91
|
+
"legacy_source_path": "",
|
|
92
|
+
"target_path": "",
|
|
93
|
+
"static_restored": true,
|
|
94
|
+
"report_path_reachable": true,
|
|
95
|
+
"flow_verified": true,
|
|
96
|
+
"status": "passed | failed | blocked",
|
|
97
|
+
"gap": ""
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"analytics_reporting_summary": {
|
|
101
|
+
"required": false,
|
|
102
|
+
"total_events": 0,
|
|
103
|
+
"passed_count": 0,
|
|
104
|
+
"failed_count": 0,
|
|
105
|
+
"verdict": "passed | failed | not_applicable"
|
|
106
|
+
},
|
|
85
107
|
"migrator_supplement_request": {
|
|
86
108
|
"required": false,
|
|
87
109
|
"modules_to_supplement": [],
|
|
@@ -106,7 +128,10 @@ Shared return shape applies.
|
|
|
106
128
|
ROLE: validation-fidelity-gate node (mode: trust | restoreability).
|
|
107
129
|
|
|
108
130
|
trust: verify V0 migration scenario, normalize brief, audit Android/SPEC vs KMP fidelity before build is trusted.
|
|
109
|
-
restoreability: after VG2, re-verify modules/functions vs analyst+migrator evidence;
|
|
131
|
+
restoreability: after VG2, re-verify modules/functions vs analyst+migrator evidence; when
|
|
132
|
+
migration_report.validation_inputs.analytics_reporting_required, verify each 埋点 in event_catalog
|
|
133
|
+
reaches the analytics SDK/report pipeline post-build (analytics_reporting_results[]); route gaps
|
|
134
|
+
to migrator supplement.
|
|
110
135
|
|
|
111
136
|
INPUTS: mode, kmp_target_project_path, upstream_migration_index_path, migration_report_path, spec_paths, validation_code_build_path (restoreability only), supplement_cycle_count, output_dir.
|
|
112
137
|
|
|
@@ -52,7 +52,7 @@ Initialize ledger with `handoff_gates` VG0–VG5; track `fix_cycles` and `migrat
|
|
|
52
52
|
|
|
53
53
|
- **Executor**: `validation-fidelity-gate` mode `restoreability`
|
|
54
54
|
- **Prerequisite**: `VG2`
|
|
55
|
-
- **Output**: `fidelity-gate/restoreability/validation_restoreability_audit.*`
|
|
55
|
+
- **Output**: `fidelity-gate/restoreability/validation_restoreability_audit.*` (incl. `analytics_reporting_results[]` when migrator requires analytics reporting)
|
|
56
56
|
- **On gaps**: migrator supplement loop (max 3) → refresh upstream → rerun trust/build as scoped
|
|
57
57
|
- **Gate**: `VG3`
|
|
58
58
|
|
|
@@ -60,7 +60,7 @@ Initialize ledger with `handoff_gates` VG0–VG5; track `fix_cycles` and `migrat
|
|
|
60
60
|
|
|
61
61
|
- **Executor**: `validation-business-testing`
|
|
62
62
|
- **Prerequisite**: `VG3`
|
|
63
|
-
- **Submodules**: `behavioral` (user test cases), `ui_comparison` (Figma refs)
|
|
63
|
+
- **Submodules**: `behavioral` (user test cases), `ui_comparison` (Figma refs), `analytics_reporting` (migrator `analytics_reporting_required` — verify 埋点 reporting on key flows)
|
|
64
64
|
- **Output**: `business-testing/validation_business_testing.*`
|
|
65
65
|
- **Gate**: `VG4` or explicit skip
|
|
66
66
|
|
|
@@ -11,17 +11,17 @@ roles:
|
|
|
11
11
|
- id: task-route-orchestrator
|
|
12
12
|
kind: ai_agent
|
|
13
13
|
purpose: Task route and orchestration — mode route (classify intent, paths, downstream sequence) or orchestrate (dispatch contracts, observed downstream outputs). No downstream role work.
|
|
14
|
-
skills: []
|
|
14
|
+
skills: [operating-instructions]
|
|
15
15
|
tools: [rg, git]
|
|
16
16
|
- id: adapter-workspace-state
|
|
17
17
|
kind: ai_agent
|
|
18
18
|
purpose: Workspace ledger — stage inspections, intermediate asset records, path compliance, freshness, reruns. No routing, orchestration, or final verdict.
|
|
19
|
-
skills: []
|
|
19
|
+
skills: [operating-instructions]
|
|
20
20
|
tools: [git]
|
|
21
21
|
- id: adapter-report
|
|
22
22
|
kind: ai_agent
|
|
23
23
|
purpose: Final adapter report from verified route, orchestration, workspace, stage, and downstream evidence. No new routing or workflow execution.
|
|
24
|
-
skills: []
|
|
24
|
+
skills: [operating-instructions]
|
|
25
25
|
tools: [git]
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -31,6 +31,8 @@ Front-door adapter for the KMP Migration Toolkit. It does not replace `android-p
|
|
|
31
31
|
|
|
32
32
|
**Canonical file recording system**: [output-contract.md](output-contract.md) defines every adapter output path, required content, write order, and **handoff package gates** (`A0`–`A6`). The Leader MUST read `output-contract.md` before the first dispatch and MUST NOT claim completion without updating `handoff_gates` in `adapter_workspace_state.json`.
|
|
33
33
|
|
|
34
|
+
**Baseline operating instructions**: [../operating-instructions/SKILL.md](../operating-instructions/SKILL.md) is the shared conduct layer for this skill and every dispatched adapter role. The Leader MUST read it before route/pre-flight work and include it in each role dispatch as baseline instructions; role files and output contracts add to it, not replace it.
|
|
35
|
+
|
|
34
36
|
## Task Routes
|
|
35
37
|
|
|
36
38
|
| Route | Downstream |
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# dependencies.yaml — migration-task-adapter startup check
|
|
2
2
|
|
|
3
3
|
skills:
|
|
4
|
+
- name: operating-instructions
|
|
5
|
+
required: true
|
|
6
|
+
used_by:
|
|
7
|
+
- task-route-orchestrator
|
|
8
|
+
- adapter-workspace-state
|
|
9
|
+
- adapter-report
|
|
10
|
+
purpose: Shared baseline conduct layer loaded before adapter routing, workspace-state, orchestration, and reporting work.
|
|
4
11
|
- name: android-project-analyst
|
|
5
12
|
required: false
|
|
6
13
|
used_by:
|