# Task Template: 抽取布局体系（library/layouts）

task:
  id: extract-layout
  intent: "从本仓库抽取布局体系到目标项目，最小闭包迁移，尽量不改动原仓库代码"

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

scope:
  entrypoints:
    - library/layouts/index.vue
    - library/layouts/VabLayoutVertical/
    - library/layouts/VabLayoutHorizontal/
    - library/layouts/VabLayoutCommon/
    - library/layouts/VabLayoutComprehensive/
    - library/layouts/VabLayoutFloat/
    - library/layouts/VabLayoutColumn/

dependency_closure_checklist:
  runtime:
    - "Element Plus（el-backtop 等）"
    - "Theme 组件（library/components/VabTheme）是否随闭包迁移"
    - "事件总线注入（library/plugins/vab.ts：$pub/$sub/$unsub）是否可用"
    - "Pinia settings store：src/store/modules/settings（theme/layout/collapse/device）"
    - "全局样式变量：library/styles/variables/（布局 SCSS 使用的变量）"
    - "Theme 变量：library/styles/variables/vab-*-variables.module.scss（settings.updateTheme() 依赖）"
  alias:
    - "@ -> src"
    - "@vab -> library"

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

acceptance:
  - "Layout 能渲染"
  - "切换移动端/桌面端时不崩溃（resize/watch 逻辑生效）"
