# Task Template: 抽取/复用模块（轻量版）

task:
  id: extract-module
  intent: "从本仓库抽取模块到目标项目，尽量不改动原仓库代码"

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

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

procedure:
  - step: "从 openspec-lite/manifest.yaml 选择 module_id 并列出 entrypoints"
  - step: "读取入口文件，分析 import 依赖与运行时依赖（样式、插件、types、alias）"
  - step: "按 extraction_style 抽取（优先 copy-module）"
  - step: "在目标项目补齐依赖（package.json、alias、types include）"
  - step: "给出最小验收命令并说明风险"

acceptance:
  - "目标项目可启动（serve）"
  - "模块能力可用（根据 module_id 的验收点）"
