--customize now scaffolds an archive of every section of the source SKILL.md so dropped/trimmed functionality stays recoverable. A new --restore <fork-id> command re-evaluates that archive against the project's current signals and surfaces (or splices back) any sections whose relevance has grown — e.g. a Vue section dropped from a React-only fork can be patched back when Vue is added to the project, without re-customizing from scratch.
Added
--customizearchive scaffold — every fork now also gets<fork>/_archive/SKILL.original.md(verbatim source) and<fork>/_archive/dropped.json(every section with its original content, the action taken at customize time, the stack/framework keywords it mentions, and a snapshot of the project signals in effect). Schema:customize-archive/1.0. Format is intentionally simple so power users and other tools can read it without the engine.--restore FORK_ID— re-scans the project for current signals, re-scores every archived section against them, and lists patch candidates (sections whose relevance has grown, or whose original stack is now in the project). Preview-only by default.--restore FORK_ID --apply— splices the patch candidates into the fork's SKILL.md under a dated## Restored from archivebanner. Engine produces the patch; the agent then integrates it into the proper place and removes the banner (same split as--customize)._extract_section_stack_signals/_STACK_KEYWORDS— internal helper + vocabulary that recognizes ~60 framework/language/infra keywords in section prose so the archive knows what stack each section was for. Aligned with the tag/language vocabulary_scan_projectproduces.
Changed
- Plugin version 4.5.0 → 4.6.0 in
plugin.json,registry.py VERSIONconstant, and the Python tier'sSKILL.mdmetadata. Lite tier and claude.ai edition are unchanged in this release. - SKILL.md
--customizesection now documents the_archive/scaffold and the--restorecompanion. references/commands.mdauthoring table updated to list--customizeand--restore.
Notes
- Forks created before 4.6.0 have no
_archive/; running--restoreon them prints a friendly note suggesting a re-run of--customizeto regenerate the archive. The behavior is non-destructive. - The archive deliberately preserves all sections (not just the dropped ones) so future re-analysis has the original full context, but only sections originally marked
drop-or-rewrite,rewrite-stack, orkeep-trimare flaggedrestorable: true.