with one click
od-code-migration
// Default reference pipeline for the code-migration taskKind — code-import → design-extract → token-map → rewrite-plan → patch-edit ↔ build-test devloop → diff-review → handoff.
// Default reference pipeline for the code-migration taskKind — code-import → design-extract → token-map → rewrite-plan → patch-edit ↔ build-test devloop → diff-review → handoff.
Single-file horizontal-swipe HTML deck. Built by copying the seed `assets/template.html` (which carries the proven 5-rule iframe nav script) and pasting slide layouts from `references/layouts.md`. Pitch decks, product overviews, study material — when you don't need the magazine aesthetic of `magazine-web-ppt`.
Huashu / huashu-md-html-inspired magazine article layout for turning Markdown or notes into a polished long-form HTML essay.
Twitter quote or data card designed to pair with a post.
Xiaohongshu-style knowledge cards, arranged as a swipeable multi-card carousel.
Turns CSV, Excel, or JSON data into a polished visual report page.
Editorial magazine meets e-ink: 10 layouts and 5 palettes (Ink, Indigo Porcelain, Forest Ink, Kraft Paper, Dune).
| name | od-code-migration |
| description | Default reference pipeline for the code-migration taskKind — code-import → design-extract → token-map → rewrite-plan → patch-edit ↔ build-test devloop → diff-review → handoff. |
| od | {"scenario":"code-migration","mode":"scenario"} |
Spec §1 / §10.1 / §20.3 / §21.3.2 / §23.3.3: the canonical
code-migration flow. The pipeline cannot ship an accept decision
without a passing build — the patch-edit ↔ build-test devloop is
the convergence engine.
{
"stages": [
{ "id": "import", "atoms": ["code-import"] },
{ "id": "tokens", "atoms": ["design-extract", "token-map"] },
{ "id": "plan", "atoms": ["rewrite-plan"] },
{
"id": "verify",
"atoms": ["patch-edit", "build-test"],
"repeat": true,
"until": "(build.passing && tests.passing) || iterations>=8"
},
{ "id": "review", "atoms": ["diff-review"] },
{ "id": "handoff", "atoms": ["handoff"] }
]
}
The scenario uses build.passing && tests.passing as the
convergence signal — promoted into the spec §22.4 vocabulary by
the build-test atom.
A plugin built on this scenario typically declares od.inputs:
repoPath (string, required): pulled from od project import.targetStack (form): collected by rewrite-plan.testCommand / buildCommand (string, optional): overrides
the inferred package.json scripts in the build-test atom.