Skip to content

Releases: f/to-wordpress

v0.5.6

Choose a tag to compare

@f f released this 25 Apr 18:45

Highlights

  • Adds README screenshots for the main migration TUI and Tune the Press flow.
  • Keeps the current classic-theme + shortcode migration direction documented clearly.
  • Includes the latest agent fixes and tuning flow from the 0.5.x line.

Included in the 0.5.x line

  • Claude Code is the default agent, with Copilot and Codex also supported.
  • Agent adapters live under src/agents/.
  • Classic PHP theme generation with shortcode-based reusable parts.
  • Jekyll _plugins/*.rb source is passed into the plugin phase for custom endpoint/generator migration.
  • Verify and Testfix check menu URLs, homepage links, important endpoints, and PHP/WordPress error text.
  • Tune the Press post-run flow: draft a tune plan, confirm with Y, and stream implementation logs into Press.
  • Animated Cantos running indicators and persisted sidebar state on rerun.
  • Copilot model-name normalization (claude-opus-4-7claude-opus-4.7).

Verification

  • Typecheck passed.
  • Test suite passed: 36/36.
  • Build passed.

v0.3.2 — Test & Fix final phase + fidelity upgrades

Choose a tag to compare

@f f released this 22 Apr 08:41

What’s new

  • Added a new final testfix phase (Test & Fix) after Verify/Fix.
  • The phase endpoint-tests the migrated WordPress site and catches:
    • 404 responses
    • 500 responses
    • request timeouts
    • network failures
    • fatal-error markers in rendered HTML
  • Added a fully agentic repair loop for endpoint failures using Copilot and automatic re-test passes.

Reliability and fidelity upgrades

  • Added post-theme refinement loop to close visual structure gaps against prerendered source output.
  • Improved stream token concatenation in both TUI and headless output (fixes broken chunk spacing/line artifacts).
  • Added migration-complete summary card/output with:
    • site URL
    • admin URL
    • username
    • password

Internal updates

  • Phase model/state/ETA now includes testfix.
  • Migration state loader now backfills missing phase entries for older state files.
  • Default package/CLI release version bumped to 0.3.2.

v0.3.1 — Copilot-assisted phase repair

Choose a tag to compare

@f f released this 21 Apr 22:31

Copilot-assisted repair on phase failure

When any phase fails the retry prompt now defaults to handing the error (plus the last ~120 log lines) to Copilot CLI with a dedicated + "repair.md" + prompt. Copilot diagnoses the root cause, makes a surgical fix inside + "theme//plugin// normalized content / workdir" +, and then the outer loop re-runs the failing phase.

New prompt options on failure

  • Retry (ask Copilot to diagnose & patch first) — default.
  • Retry without Copilot repair — use when you fixed it by hand.
  • Skip and continue — unchanged.
  • Abort migration — unchanged.

Changes

  • + "src/prompts/repair.md" + — phase-aware diagnostic checklist covering detect / plan / boot / theme / plugin / normalize / import / verify / fix. Includes the common + "import.phpwp-env-mapping failure" + with explicit remediation (check + ".wp-env.jsonmappings forwp-content/to-wordpress" + , run + "npx @wordpress/env start --update" + , verify in-container with + "ls" + ).
  • + "src/phases/repair.ts" + + "runRepair(ctx, bus, { phase, error, attempt })" + . 10-minute timeout, 30-continue autopilot cap; its own failures are non-fatal so the user never gets deadlocked.
  • + "src/tui/bus.ts" + — 400-entry tail ring buffer exposed via + "recentLogs(n, phase)" + so the repair prompt gets real log context, not just a one-line error.
  • + "src/cli.tsx" + — new prompt options wired in; honors + "--skip-copilot" + as a bypass.

Upgrade

Already using + "npx to-wordpress" + ? Nothing to do — + "npxalways resolves the latest tag." +

+ "```bash\nnpx to-wordpress@latest\n```" +

v0.3.0 — Ingest anything

Choose a tag to compare

@f f released this 21 Apr 22:01

Ingest anything

to-wordpress now migrates far beyond SSGs. Point it at a spreadsheet, a folder of Word docs, a library of PDFs, a GitHub repo's README, a WordPress WXR export, a Medium or Substack dump, or an EPUB and you'll get a working WordPress site.

14 new detectors

  • SSG frameworks: `hexo`, `astro`, `docusaurus`, `mkdocs`
  • CMS / platform exports: `wp-wxr`, `medium-export`, `substack-export`
  • Raw documents: `docx-folder`, `xlsx-sheet`, `pdf-folder`, `epub-book`, `text-folder`
  • Generic: `markdown-folder` (Obsidian/Notion), `github-repo` (README → landing page)

11 per-format conversion prompts

For every binary/tabular source format, a dedicated `convert-.md` prompt tells Copilot how to extract text (pandoc / pdftotext / openpyxl / etc.), what to write, how to populate front matter, and a self-check list. Live in `src/prompts/`.

New pipeline step

`src/phases/convert.ts` runs before `normalize` and drives Copilot with the matching prompt for every raw source, writing canonical markdown into `WORDPRESS_MIGRATION/converted//` then handing it off to the regular normalize loop unchanged.

Detector briefing

Every detector now emits a one-paragraph `detectorBriefing` that is threaded into the `plan`, `theme`, and `plugin` prompts so Copilot knows — for example — to produce a SaaS landing page when migrating a GitHub repo, not a blog.

Install

```bash
npx to-wordpress@latest ./path/to/any/source
```

Full changelog: v0.2.0...v0.3.0