Morgan Westlee Lunt 4a8250babf
code-modernization: add /modernize-uplift for same-stack version migrations
Adds a third build method alongside transform (cross-stack rewrite) and
reimagine (greenfield): uplift, for same-stack version bumps (.NET Framework
4.8 -> .NET 8, Spring Boot 2->3, Python 2->3) where the right move is to
PRESERVE the code and fix only the version deltas, not extract intent and
rewrite.

- commands/modernize-uplift.md: delta-catalog-driven, dual-target test harness
  (one suite on both runtimes; baseline-on-old is the oracle), leaf-first build
  graph ordering, minimal-diff discipline (architecture-critic flags gratuitous
  divergence), and a 'this is a rewrite, use transform' escape hatch.
- agents/version-delta-analyst.md: finds the source->target breaking changes
  that THIS code hits; drives the ecosystem migration tool (upgrade-assistant /
  OpenRewrite / pyupgrade / ng update) and owns the residue; read-only.
- workflows/uplift-deltas.js: parallel finder per delta category, each verified
  against the cited code so deltas that don't apply here are dropped.
- Wired into assess (recommended-pattern routing), brief (per-phase command +
  leaf-first ordering), preflight (dual-run + tool readiness), status, README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 23:12:16 +00:00

2.3 KiB

description argument-hint
Where am I in the modernization workflow — artifact inventory, staleness, secrets hygiene, next step <system-dir>

Report where the modernization of $1 stands, in one screen. This is a read-only command — inspect, never modify.

1 — Artifact inventory

Check analysis/$1/ and modernized/$1*/ and build a table — one row per workflow stage, with the artifact's presence and modification time:

Stage Artifacts
preflight PREFLIGHT.md
assess ASSESSMENT.md, ARCHITECTURE.mmd
map topology.json, TOPOLOGY.html, *.mmd, extract_topology.*
extract-rules BUSINESS_RULES.md, DATA_OBJECTS.md
brief MODERNIZATION_BRIEF.md (note whether the approval block is signed)
harden SECURITY_FINDINGS.md, security_remediation.patch
uplift DELTA_CATALOG.md; modernized/$1/UPLIFT_NOTES.md (note per-project: builds on target? baseline reproduced?)
transform / reimagine each modernized/$1*/<module>/ dir — note test presence and whether TRANSFORMATION_NOTES.md exists

2 — Staleness

Flag any artifact older than an upstream artifact it derives from:

  • MODERNIZATION_BRIEF.md older than ASSESSMENT.md, topology.json, or BUSINESS_RULES.md → the brief no longer reflects discovery; recommend re-running /modernize-brief.
  • TOPOLOGY.html older than topology.json → re-run the injection step from /modernize-map.
  • Any TRANSFORMATION_NOTES.md older than BUSINESS_RULES.md → the module may not implement the latest rule set; list which.

3 — Secrets hygiene

  • Does analysis/.gitignore exist and cover SECRETS.local.md / *.local.patch? (git check-ignore when in a git repo.)
  • If SECRETS.local.md exists: confirm it is NOT tracked (git ls-files --error-unmatch, expect failure) and has never been committed (git log --all --oneline -- <path>, expect empty). If either check fails, say so prominently and recommend rotation plus history scrubbing.

4 — Verdict

End with three lines:

  • Where you are — the furthest completed stage and roughly how much of the system it covers (e.g. "mapped 100%, 2 of 14 modules transformed").
  • What's stale — or "nothing".
  • Next command — the single most useful next step, with a one-line reason.