lcap-frontend-library 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +271 -0
  2. package/bin/lcap-frontend-library.mjs +3 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +27 -0
  5. package/dist/init.d.ts +6 -0
  6. package/dist/init.js +79 -0
  7. package/dist/sync.d.ts +4 -0
  8. package/dist/sync.js +70 -0
  9. package/dist/utils.d.ts +19 -0
  10. package/dist/utils.js +101 -0
  11. package/package.json +34 -0
  12. package/packages/lcap-frontend-library/LEARNINGS.md +11 -0
  13. package/packages/lcap-frontend-library/SKILL.md +86 -0
  14. package/packages/lcap-frontend-library/commands/migrate.check.md +287 -0
  15. package/packages/lcap-frontend-library/commands/migrate.green.md +190 -0
  16. package/packages/lcap-frontend-library/commands/migrate.plan.md +169 -0
  17. package/packages/lcap-frontend-library/commands/migrate.red.md +160 -0
  18. package/packages/lcap-frontend-library/commands/migrate.scan.md +151 -0
  19. package/packages/lcap-frontend-library/commands/migrate.spec.md +144 -0
  20. package/packages/lcap-frontend-library/commands/migrate.tasks.md +179 -0
  21. package/packages/lcap-frontend-library/commands/speckit.create.md +201 -0
  22. package/packages/lcap-frontend-library/commands/speckit.implement.md +88 -0
  23. package/packages/lcap-frontend-library/commands/speckit.plan.md +79 -0
  24. package/packages/lcap-frontend-library/commands/speckit.self-check.md +177 -0
  25. package/packages/lcap-frontend-library/commands/speckit.specify.md +91 -0
  26. package/packages/lcap-frontend-library/commands/speckit.tasks.md +61 -0
  27. package/packages/lcap-frontend-library/references/frontend-design/LICENSE.txt +177 -0
  28. package/packages/lcap-frontend-library/references/frontend-design/SKILL.md +42 -0
  29. package/packages/lcap-frontend-library/references/lcap-extension-component/SKILL.md +360 -0
  30. package/packages/lcap-frontend-library/references/lcap-extension-component/api.md +331 -0
  31. package/packages/lcap-frontend-library/references/lcap-extension-component/block.md +160 -0
  32. package/packages/lcap-frontend-library/references/lcap-extension-component/i18n.md +95 -0
  33. package/packages/lcap-frontend-library/references/lcap-extension-component/icon.md +27 -0
  34. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/container.md +728 -0
  35. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/element.md +312 -0
  36. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/expression.md +154 -0
  37. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/index.md +113 -0
  38. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/modal.md +189 -0
  39. package/packages/lcap-frontend-library/references/lcap-extension-component/ide/popover.md +171 -0
  40. package/packages/lcap-frontend-library/references/lcap-extension-component/ide.md +799 -0
  41. package/packages/lcap-frontend-library/references/lcap-extension-component/implementation-rules.md +242 -0
  42. package/packages/lcap-frontend-library/references/lcap-extension-component/index.md +27 -0
  43. package/packages/lcap-frontend-library/references/lcap-extension-component/nasl-view-component.md +895 -0
  44. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/accessibility.md +185 -0
  45. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/child.md +82 -0
  46. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/data-source.md +261 -0
  47. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/event.md +171 -0
  48. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/form.md +266 -0
  49. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/function.md +80 -0
  50. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/link.md +137 -0
  51. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/slot.md +128 -0
  52. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/theme-variables-ant-design.md +1470 -0
  53. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/theme-variables-cloud-ui.md +259 -0
  54. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/theme-variables-element-plus.md +580 -0
  55. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/theme-variables-element-ui.md +1007 -0
  56. package/packages/lcap-frontend-library/references/lcap-extension-component/platform/theme-variables-mobile-ui.md +85 -0
  57. package/packages/lcap-frontend-library/references/lcap-extension-component/theme.md +234 -0
  58. package/packages/lcap-frontend-library/references/lcap-extension-component/workflow-guardrails.md +328 -0
  59. package/packages/lcap-frontend-library/references/nasl-logic-authoring/SKILL.md +201 -0
  60. package/packages/lcap-frontend-library/scripts/bash/create-component-files.sh +95 -0
  61. package/packages/lcap-frontend-library/scripts/bash/create-extension-project.sh +109 -0
  62. package/packages/lcap-frontend-library/scripts/bash/create-logic-files.sh +149 -0
  63. package/packages/lcap-frontend-library/scripts/bash/create-spec.sh +109 -0
  64. package/packages/lcap-frontend-library/scripts/bash/get-available-port.sh +35 -0
  65. package/packages/lcap-frontend-library/scripts/bash/list-specs.sh +19 -0
  66. package/packages/lcap-frontend-library/scripts/node/setup-extension-project.mjs +166 -0
  67. package/packages/lcap-frontend-library/templates/component-self-check.md +31 -0
  68. package/packages/lcap-frontend-library/templates/component-template.md +96 -0
  69. package/packages/lcap-frontend-library/templates/library-report-template.md +52 -0
  70. package/packages/lcap-frontend-library/templates/logic-template.md +44 -0
  71. package/packages/lcap-frontend-library/templates/migration-manifest-template.md +84 -0
  72. package/packages/lcap-frontend-library/templates/migration-plan-template.md +138 -0
  73. package/packages/lcap-frontend-library/templates/migration-report-template.md +227 -0
  74. package/packages/lcap-frontend-library/templates/migration-spec-template.md +135 -0
  75. package/packages/lcap-frontend-library/templates/migration-tasks-template.md +129 -0
  76. package/packages/lcap-frontend-library/templates/plan-template.md +299 -0
  77. package/packages/lcap-frontend-library/templates/self-check-report-template.md +148 -0
  78. package/packages/lcap-frontend-library/templates/tasks-template.md +81 -0
  79. package/packages/lcap-frontend-library/workflows/create/flow.md +199 -0
  80. package/packages/lcap-frontend-library/workflows/evolve/flow.md +249 -0
  81. package/packages/lcap-frontend-library/workflows/generate/flow.md +10 -0
  82. package/packages/lcap-frontend-library/workflows/harness/flow.md +82 -0
  83. package/packages/lcap-frontend-library/workflows/migrate/flow.md +302 -0
  84. package/packages/lcap-frontend-library/workflows/migrate/knowledge-base.md +564 -0
@@ -0,0 +1,302 @@
1
+ # Vue2 依赖库 → Vue3 迁移:流程编排(Superpowers-Native)
2
+
3
+ > 基于 Superpowers 等价性证明范式。与 create/evolve 共用阶段骨架,命令为 migrate.*。
4
+ > 但每个阶段的内在逻辑忠于"受限收敛"而非"自由创作"。
5
+
6
+ ---
7
+
8
+ ## 输入
9
+
10
+ 用户指定 **Vue2 依赖库源码路径**(`sourceDir`),例如:
11
+ > 把 /path/to/cw_audio_library 迁移到 Vue3
12
+ > 迁移 cw_audio_view 组件
13
+ > /migrate.scan /path/to/source
14
+
15
+ ## 输出
16
+
17
+ 一个**完整可构建的 LCAP 扩展依赖库项目**,满足:
18
+ - 所有单元测试通过(`npm run test`)
19
+ - 构建成功(`npm run build`)
20
+ - E2E 测试通过(`npm run test:e2e`)
21
+ - 行为等价矩阵全行 ✅ 或 ⚠️(无 ❌)
22
+ - 5 维自检报告全部 PASS
23
+ - 与 Vue2 行为 1:1 对齐
24
+
25
+ ---
26
+
27
+ ## Superpowers 核心公理
28
+
29
+ ```
30
+ 公理 1: Vue2 源码 = 唯一行为真值(不可推断、不可臆测)
31
+ 公理 2: 测试 = 真值的形式化编码(测试定义目标,非验证手段)
32
+ 公理 3: GREEN = 等价性的构造性证明(测试全通过 ⟹ 行为等价)
33
+ 公理 4: 断路器 = 不可能性的早期识别(路径不通 → 停止 → 质疑)
34
+ 公理 5: 证据铁律 = 每个声明须可验证(终端退出码 ≠ "应该通过")
35
+ ```
36
+
37
+ ---
38
+
39
+ ## 执行规则
40
+
41
+ - **命令驱动**:每个阶段对应一个 `commands/migrate.*.md`,按其指令执行
42
+ - **TDD 铁律**:先写测试确认 FAIL → 再写代码至 PASS(不可跳过/逆序)
43
+ - **RED/GREEN 物理分离**:RED 未完成不能进 GREEN,这是结构性强制
44
+ - **三门禁**:`npm run test` + `npm run build` + `npm run test:e2e` 全部 exit 0
45
+ - **零容忍**:失败测试不可删除/跳过/注释,必须修复至通过
46
+ - **断路器**:同一错误模式连续 3 次修复失败 → 停止 → 质疑方案
47
+ - **知识库优先**:步骤标注「→ §xxx」时,必须先读 `knowledge-base.md` 对应章节
48
+ - **禁止条款**:每个命令有明确"不允许做什么",体现受限收敛本质
49
+ - **行为等价矩阵**:贯穿 tasks→red→green→check,确保无行为遗漏
50
+ - **真值溯源**:每个决策必须可追溯到 Vue2 源码或 §section-id
51
+ - **所有文档落入工程内部**:`<vue3-project>/specs/` 目录
52
+
53
+ ---
54
+
55
+ ## 7 命令总览
56
+
57
+ ```
58
+ ┌─── 库级(执行 1 次)──────────────────────────────────────────┐
59
+ │ migrate.scan 全景扫描 + 工程创建 + 迁移清单初始化 │
60
+ └──────────────────────────────────────────────────────────────┘
61
+
62
+ ┌─── 资产级(每资产循环)──────────────────────────────────────┐
63
+ │ migrate.spec Vue2 行为真值提取 → spec.md │
64
+ │ migrate.plan 转换映射 + 路径锁定 → plan.md ⛔审批 │
65
+ │ migrate.tasks TDD 编排 + 行为等价矩阵 → tasks.md │
66
+ │ migrate.red Phase RED:行为编码为测试(确认 FAIL) │
67
+ │ migrate.green Phase GREEN:代码收敛至 PASS │
68
+ │ migrate.check 三门禁 + 等价性审计 → report.md │
69
+ └──────────────────────────────────────────────────────────────┘
70
+ ```
71
+
72
+ **无 migrate.status 命令**——状态追踪通过 `specs/manifest.md` 实现,各命令自动读写。
73
+
74
+ ## 先验引用策略(按阶段 + 资产类型)
75
+
76
+ | 阶段 | 作用 | KB | 附加 references |
77
+ |------|------|-----|-----------------|
78
+ | scan | 全景+类型+工程 | §process-* 子集 | logic 扫时 nasl-logic-authoring |
79
+ | spec | 行为真值 | 全文(仅提取) | logic → nasl-logic-authoring |
80
+ | plan | 转换方案 | 全文 | component → lcap-extension-component;logic → nasl-logic-authoring |
81
+ | tasks | 矩阵+TDD | §process-matrix/e2e | logic/shared 无 E2E |
82
+ | red | FAIL 测试 | §process-e2e | logic/shared vitest only |
83
+ | green | PASS 实现 | 全文 | 同 plan |
84
+ | check | 审计+产物 | 全文 | component §alignment-checklist;logic L1–L3;shared S1–S3 |
85
+
86
+ ## 资产类型(→ §process-asset-types)
87
+
88
+ | 类型 | 说明 |
89
+ |------|------|
90
+ | component | 扩展组件(默认路径) |
91
+ | logic | @NaslLogic 逻辑函数 |
92
+ | shared-composable | 多组件共享 Mixin(scan 升格) |
93
+
94
+ scan 写入 manifest:`类型`、`depends_on`、`推荐序号`。spec 前检查 depends_on 已 verified。
95
+
96
+ ## migrate.check = self-check + build-verify
97
+
98
+ | create/evolve 阶段 | migrate 对应 |
99
+ |--------------------|--------------|
100
+ | self-check(6) | check §A 三门禁 + §B 等价审计 |
101
+ | build-verify(7) | check §C 产物验证 + §E 库级收尾 |
102
+ | — | check §D 跨资产回归(migrate 特有) |
103
+
104
+ ---
105
+
106
+ ## 阶段 1:SCAN
107
+
108
+ 执行 `commands/migrate.scan.md`(传入 sourceDir)
109
+
110
+ **执行逻辑**:
111
+ 1. 扫描 Vue2 源码,识别全部组件与逻辑函数
112
+ 2. 对每个资产定位 stories 真值来源(→ §stories-truth)
113
+ 3. 创建/检测 Vue3 目标工程(→ §process-scaffold)
114
+ 4. 确保测试基础设施(vitest + playwright + 动态端口)
115
+ 5. 初始化 `specs/manifest.md` 迁移清单
116
+
117
+ **成功标准**:
118
+ - Vue3 扩展工程已创建(含 `package.json`、`src/`、`node_modules/`、`playwright.config.ts`、`e2e/`)
119
+ - `npm run dev` 可启动 Storybook
120
+ - `specs/manifest.md` 已创建,包含全部待迁移资产
121
+ - 每个资产的 stories 真值路径已确定
122
+ - shared-composable 资产已识别(若适用)
123
+ - manifest 含推荐迁移顺序与 library_status
124
+
125
+ ---
126
+
127
+ ## 阶段 2:SPEC
128
+
129
+ 执行 `commands/migrate.spec.md`(传入资产名)
130
+
131
+ **执行逻辑**:
132
+ 1. 完整读取 Vue2 源文件(组件代码 + stories + mixin + 样式)
133
+ 2. 系统性提取行为规格(props/events/methods/slots/响应式/生命周期/mixin调用点)
134
+ 3. 记录 stories 真值(block + example 完整内容)
135
+ 4. 输出 spec.md(纯事实,禁止推断/评价/建议转换方案)
136
+
137
+ **成功标准**:
138
+ - `specs/<NN>-<资产名>/spec.md` 已创建
139
+ - Mixin 全量方法已列出(含调用点分析)
140
+ - Props/Events/Methods/Slots 完整提取
141
+ - 第三方集成的初始化/销毁序列完整记录
142
+ - `specs/manifest.md` 该资产状态 → `🔍 spec-done`
143
+
144
+ **核心纪律**:只记录、不判断。"它现在做什么" ≠ "它应该怎么转"。
145
+
146
+ ---
147
+
148
+ ## 阶段 3:PLAN
149
+
150
+ 执行 `commands/migrate.plan.md`(传入资产名)
151
+
152
+ **执行逻辑**:
153
+ 1. 读取 spec.md(行为真值)
154
+ 2. 按 knowledge-base 映射转换策略(→ §mixin-composable, §vue3-children-clone, §css-vars;component 另读 lcap-extension-component)
155
+ 3. 逐条核对 §pitfalls
156
+ 4. 规划文件结构与路径锁定
157
+ 5. ⛔ 用户审批门禁
158
+
159
+ **成功标准**:
160
+ - `specs/<NN>-<资产名>/plan.md` 已创建
161
+ - 每个转换决策引用 §section-id
162
+ - 文件路径规划表完整(含测试层标注)
163
+ - 风险/陷阱命中表已填写
164
+ - 用户已确认方案
165
+ - `specs/manifest.md` 该资产状态 → `🔄 planned`
166
+
167
+ ---
168
+
169
+ ## 阶段 4:TASKS
170
+
171
+ 执行 `commands/migrate.tasks.md`(传入资产名)
172
+
173
+ **执行逻辑**:
174
+ 1. 读取 spec.md + plan.md
175
+ 2. 从 spec.md 提取全部行为条目,初始化行为等价矩阵
176
+ 3. 按 TDD 阶段编排 Phase RED / Phase GREEN 任务组
177
+ 4. 确保矩阵每行有对应 RED 测试任务
178
+
179
+ **成功标准**:
180
+ - `specs/<NN>-<资产名>/tasks.md` 已创建
181
+ - 行为等价矩阵已初始化(spec 每行为有对应行)
182
+ - Phase RED / GREEN 任务组结构清晰
183
+ - RED 组完成前不可进入 GREEN 组(铁律已标注)
184
+ - `specs/manifest.md` 该资产状态 → `📋 tasks-ready`
185
+
186
+ ---
187
+
188
+ ## 阶段 5:RED
189
+
190
+ 执行 `commands/migrate.red.md`(传入资产名)
191
+
192
+ **执行逻辑**:
193
+ 1. 读取 spec.md + plan.md + tasks.md(RED 组)
194
+ 2. 编写 Vitest 单测(按优先级 P1-P5)
195
+ 3. 编写 E2E 测试骨架(pageerror + console 监听,过滤网络资源 404)
196
+ 4. 运行 `npm run test` → 确认全部 FAIL
197
+ 5. 填充行为等价矩阵"RED 测试编码"列
198
+
199
+ **成功标准**:
200
+ - 测试文件已创建(vitest + e2e)
201
+ - `npm run test` → exit ≠ 0(测试存在且 FAIL)
202
+ - 若测试意外 PASS → 断言太宽泛,重写
203
+ - tasks.md RED 组标记 [x]
204
+ - 行为等价矩阵"测试编码"列已填充
205
+ - `specs/manifest.md` 该资产状态 → `🔴 red-done`
206
+
207
+ ---
208
+
209
+ ## 阶段 6:GREEN
210
+
211
+ 执行 `commands/migrate.green.md`(传入资产名)
212
+
213
+ **执行逻辑**:
214
+ 1. 读取测试文件 + plan.md + tasks.md(GREEN 组)
215
+ 2. 按资产类型 scaffold(component → create-component-files;logic → create-logic-files;shared → Edit)
216
+ 3. 按 plan.md 文件路径表顺序实现(component:api.ts → ideusage → composables → template → stories → css)
217
+ 4. 迭代直到 `npm run test` → PASS
218
+ 5. 填充行为等价矩阵"GREEN 实现"列
219
+
220
+ **成功标准**:
221
+ - `npm run test` → exit 0(全部 PASS)
222
+ - tasks.md GREEN 组标记 [x]
223
+ - 行为等价矩阵"实现"列已填充
224
+ - `specs/manifest.md` 该资产状态 → `🟢 green-done`
225
+
226
+ **断路器**:3 次同一错误 → 停止 → 等待用户决策
227
+
228
+ ---
229
+
230
+ ## 阶段 7:CHECK
231
+
232
+ 执行 `commands/migrate.check.md`(传入资产名)
233
+
234
+ **零信任要求**:CHECK 阶段遵循零信任验证协议——必须重新读取 spec/plan/tasks/源码(禁止基于 GREEN 阶段记忆判断),三门禁必须在本阶段重新执行并记录退出码。
235
+
236
+ **执行逻辑**:
237
+ 1. 三门禁(npm run test + build + test:e2e → 全部 exit 0)
238
+ 2. 行为等价矩阵逐行验证(填充"等价状态"列)
239
+ 3. 五维度对抗性审计
240
+ 4. 发现问题 → 修复 → 重跑三门禁 → 闭环
241
+
242
+ **成功标准**:
243
+ - §A–§D 按资产类型完成;component 含产物验证 4 项证据
244
+ - §E:全部资产 verified 时产出 `specs/library-report.md` 且 `library_status=🏁`
245
+ - 支持 `--finalize-library` 显式库级收尾
246
+ - 行为等价矩阵无 ❌ 行
247
+ - `specs/<NN>-<资产名>/report.md` 已生成
248
+ - `specs/manifest.md` 该资产状态 → `✅ verified`
249
+
250
+ ---
251
+
252
+ ## 产出结构
253
+
254
+ ```
255
+ <vue3-project>/
256
+ ├── src/
257
+ │ ├── components/<asset>/
258
+ │ │ ├── api.ts ← lcap-extension-component 规范
259
+ │ │ ├── index.vue ← 仅 UI 组装
260
+ │ │ ├── index.ts ← 桶文件具名导出(→ §plugin-barrel)
261
+ │ │ ├── ideusage.json ← lcap-extension-component 规范
262
+ │ │ ├── composables/useXxx.ts ← Mixin 拆分
263
+ │ │ ├── stories/block.stories.js ← 1:1 静态
264
+ │ │ ├── stories/example.stories.js ← 功能 demo
265
+ │ │ └── __tests__/index.spec.ts ← vitest
266
+ │ └── logics/ ← §logics-boundary + nasl-logic-authoring
267
+ ├── e2e/<asset>.spec.ts ← playwright
268
+ └── specs/ ← 迁移文档(工程内部)
269
+ ├── manifest.md ← 迁移清单 + 状态追踪
270
+ └── <NN>-<资产名>/
271
+ ├── spec.md ← Vue2 行为真值
272
+ ├── plan.md ← 转换策略
273
+ ├── tasks.md ← TDD 编排 + 行为等价矩阵
274
+ └── report.md ← 等价性证明报告
275
+ ```
276
+
277
+ ---
278
+
279
+ ## 模板一览
280
+
281
+ | 模板文件 | 使用阶段 | 用途 |
282
+ |:---|:---|:---|
283
+ | `templates/migration-manifest-template.md` | SCAN(初始化) | 迁移清单 + 状态追踪格式 |
284
+ | `templates/migration-spec-template.md` | SPEC(输出) | Vue2 行为规格提取的标准格式 |
285
+ | `templates/migration-plan-template.md` | PLAN(输出) | 转换策略 + 文件规划 + 风险 |
286
+ | `templates/migration-tasks-template.md` | TASKS(输出) | TDD 编排 + 行为等价矩阵 |
287
+ | `templates/migration-report-template.md` | CHECK(输出) | 三门禁证据 + 矩阵验证 + 五维审计 |
288
+ | `templates/library-report-template.md` | CHECK §E | 库级验证报告 |
289
+
290
+ ---
291
+
292
+ ## 核心约束
293
+
294
+ - Vue2 源码是行为的唯一真值,不可凭 AI 知识推断行为
295
+ - 严格遵循 NASL 类型系统:仅允许 `nasl.core.*`、`nasl.collection.*`,禁止 Object/any
296
+ - 组件必须使用 CSS 变量实现主题适配,禁止硬编码颜色/间距(→ §css-vars)
297
+ - v-model 使用 `value` + `update:value` 约定,非 `modelValue`(→ §pitfalls)
298
+ - 桶文件必须具名导出,禁止 `export *`(→ §plugin-barrel)
299
+ - Mixin 必须确认调用点再迁移,死代码不建 composable(→ §mixin-composable)
300
+ - 测试零容忍:禁止删除/跳过失败用例,Timeout 按逻辑 Bug 排查修复
301
+ - 每个 PASS/FAIL 声明必须有终端执行证据,禁止"应该通过"
302
+ - 行为等价矩阵不允许有 ❌ 行留到最终(必须修复或标记有意差异)