Skip to content

Add migration manifest tooling for downstream projects#984

Merged
f4-lex merged 19 commits into
mainfrom
migration-automation
Apr 15, 2026
Merged

Add migration manifest tooling for downstream projects#984
f4-lex merged 19 commits into
mainfrom
migration-automation

Conversation

@f4-lex

@f4-lex f4-lex commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add migration manifest format (packages/app/manifests/*.yaml) with initial manifests for v9.4.5 and v9.5.0
  • Add /author-migration skill that generates manifest drafts by diffing git tags
  • Companion plugin repo: Frachtwerk/essencium-frontend-migration-plugin

Closes #983

Test plan

  • Invoke /author-migration 9.5.0 and verify it produces a manifest matching packages/app/manifests/9.5.0.yaml
  • Validate both YAML manifests parse correctly
  • Install the migration plugin in a downstream project and test /migrate-essencium-frontend

f4-lex added 7 commits April 8, 2026 09:47
Design for AI-powered migration tooling that helps downstream
projects update their essencium-frontend based codebases. Covers
change classification (7 categories), migration manifest format,
authoring skill for this repo, and marketplace plugin for downstream.
Create a Claude Code skill that automates migration manifest authoring.
When invoked, it diffs git tags, classifies changes into 7 categories
(dependency_migration, infrastructure, translation, env_variable,
new_file, file_removal, file_tracking), and generates a YAML manifest
in packages/app/manifests/.
@vercel

vercel Bot commented Apr 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview Apr 14, 2026 7:40pm
docs Ready Ready Preview Apr 14, 2026 7:40pm
essencium-frontend-app Ready Ready Preview, Comment Apr 14, 2026 7:40pm

@PhilKsr

PhilKsr commented Apr 14, 2026

Copy link
Copy Markdown
Member

Missing manifests for existing release tags
The following release tags have no corresponding manifest:

Tag Gap
7.7.1 between 7.7.0 and 7.8.0
7.9.2 between 7.9.1 and 7.10.0
9.4.1 between 9.4.0 and 9.4.4
9.4.2 between 9.4.0 and 9.4.4
9.4.3 between 9.4.0 and 9.4.4
9.4.6 after 9.4.5

Plugin impact:
The plugin lists manifests via GitHub API and builds the migration path from them. A downstream project on e.g. 9.4.2 won't find a matching manifest and either can't start the migration, or skips straight to 9.4.4 — unclear whether changes from 9.4.0->9.4.4 are then fully covered.

Options:

  • Add empty manifests (changes: []) so the chain is gapless
  • Or explicitly document in the plugin that only certain versions have manifests, and adjust the matching logic

@PhilKsr

PhilKsr commented Apr 14, 2026

Copy link
Copy Markdown
Member

pr field is inconsistently present
Some manifests have a pr link on every entry (e.g. 6.0.0.yaml)
Others omit it on most entries (e.g. 7.4.0.yaml)
Suggestion: Clarify in author skill: "pr is recommended wherever a PR exists; omit only for multi-PR changes or direct pushes"

@PhilKsr PhilKsr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well-designed system. The split between "manifest authoring" (upstream) and "manifest consuming" (downstream) is clean. The 7 change types cover the relevant migration scenarios, the version chain from 6.0.0 to 9.5.0 is nearly complete, and the plugin workflow (DETECT -> EXECUTE -> COMPLETE) is logically structured.

There are a few places where the two repos are inconsistent, and some data issues in the manifests.

Comment thread packages/app/manifests/8.1.0.yaml Outdated
Comment thread .claude/skills/author-migration/SKILL.md
Comment thread CLAUDE.md
- Fix 8.1.0 manifest from field (was 7.10.0, should be 8.0.0)
- Add default field to env_variable schema in author skill
- Clarify pr field guidance (include wherever a PR exists)
- Document release tag convention in CLAUDE.md
@f4-lex

f4-lex commented Apr 14, 2026

Copy link
Copy Markdown
Contributor Author

Going with option 2 — not all versions will have manifests, and that is by design. Patch releases that only touch library internals or docs do not need one.

Updated the plugin (Frachtwerk/essencium-frontend-migration-plugin@25d64c1) to:

  • Explicitly document that not all versions have manifests
  • Improve the migration path logic: when the user's current version has no manifest, the plugin finds the next available manifest and starts from there
  • Show a clear message in the migration path output (e.g., "Your version 9.4.2 has no manifest — starting from the next available: 9.4.4")

Plugin bumped to 0.2.0.

@f4-lex

f4-lex commented Apr 14, 2026

Copy link
Copy Markdown
Contributor Author

Updated the author skill guidance: pr links should be included wherever a PR exists. Omit only for changes that span multiple PRs or were direct pushes without a PR.

The existing manifests have inconsistent coverage because many were batch-generated from git history where PR attribution was not always extractable. Going forward, the skill will prompt the author to include them.

@f4-lex f4-lex requested a review from PhilKsr April 14, 2026 19:42
@f4-lex f4-lex merged commit 5948157 into main Apr 15, 2026
13 of 14 checks passed
@f4-lex f4-lex deleted the migration-automation branch April 15, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AI-powered migration tooling for downstream projects

2 participants