# Task Template: 抽取主题系统（VabTheme + settings 主题闭包）

task:
  id: extract-theme
  intent: "从本仓库抽取 Theme 系统到目标项目，确保事件总线 + settings theme 闭包完整"

inputs:
  required:
    - target_project_type  # vue-cli | vite | other
    - extraction_style     # copy-module | copy-snippet

scope:
  entrypoints:
    - library/components/VabTheme/
    - src/store/modules/settings.ts
    - library/plugins/vab.ts
    - library/styles/variables/

dependency_closure_checklist:
  runtime:
    - "Pinia settings store 是否存在并已在入口初始化"
    - "vab 插件是否安装（$pub/$sub/$baseLoading 注入）"
    - "i18n translate 是否可用"
    - "Element Plus Drawer/表单控件是否可用"
  bundler:
    - "settings.updateTheme() 的 require('@vab/styles/variables/vab-*-variables.module.scss') 在目标构建器中是否可用"
  alias:
    - "@ -> src"
    - "@vab -> library"

outputs:
  required_sections:
    - changed_files
    - extracted_modules
    - dependency_closure
    - acceptance_commands
    - risks

acceptance:
  - "触发 $pub('theme') 能打开 Theme Drawer"
  - "修改主题并保存后，刷新页面主题持久化且样式变量生效"
