You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rails g docs_kit:install --sync (#24, PR #39) is deliberately version-agnostic: it reconciles a site against the current gem template with no notion of which docs-kit version the site was last synced from. That was the right v1 call — it keeps the tool simple and there was no version history to migrate across yet.
Post-1.0, release-to-release migrations become a real need: when a future version renames a config knob, changes a route shape, or restructures a template, --sync should be able to apply the ordered migration steps between the site's last-synced version and the current one — not just diff against head.
Goal (to be designed for 1.0+)
Record the docs-kit version a site was last synced at (e.g. a stamp in the initializer or a .docs-kit-version file).
A migration registry: ordered, versioned transforms (1.2 → 1.3, 1.3 → 2.0, …) the generator applies in sequence.
Problem / Goal
rails g docs_kit:install --sync(#24, PR #39) is deliberately version-agnostic: it reconciles a site against the current gem template with no notion of which docs-kit version the site was last synced from. That was the right v1 call — it keeps the tool simple and there was no version history to migrate across yet.Post-1.0, release-to-release migrations become a real need: when a future version renames a config knob, changes a route shape, or restructures a template,
--syncshould be able to apply the ordered migration steps between the site's last-synced version and the current one — not just diff against head.Goal (to be designed for 1.0+)
.docs-kit-versionfile).1.2 → 1.3,1.3 → 2.0, …) the generator applies in sequence.--syncdetects the gap and runs only the applicable migrations, still warn-only for anything it can't safely automate (the fix(generator): idempotent install + a consumer re-sync guide #24 drift-report pattern).Why deferred
--sync+SyncReportdrift detection covers the "adopt what's new" case well enough pre-1.0.Context
lib/generators/docs_kit/install/install_generator.rb(--syncflag),lib/generators/docs_kit/install/sync_report.rb.Filing against the 1.0 milestone so the intent isn't lost.
https://claude.ai/code/session_01FPQb6z3YwcKRMbvoJhdxnX