@xenonbyte/da-vinci-workflow 0.1.2

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 (48) hide show
  1. package/README.md +306 -0
  2. package/SKILL.md +377 -0
  3. package/agents/openai.yaml +7 -0
  4. package/bin/da-vinci.js +8 -0
  5. package/commands/claude/da-vinci.md +23 -0
  6. package/commands/claude/dv/breakdown.md +21 -0
  7. package/commands/claude/dv/build.md +17 -0
  8. package/commands/claude/dv/design.md +20 -0
  9. package/commands/claude/dv/tasks.md +19 -0
  10. package/commands/claude/dv/verify.md +16 -0
  11. package/commands/codex/prompts/da-vinci.md +24 -0
  12. package/commands/codex/prompts/dv-breakdown.md +19 -0
  13. package/commands/codex/prompts/dv-build.md +13 -0
  14. package/commands/codex/prompts/dv-design.md +14 -0
  15. package/commands/codex/prompts/dv-tasks.md +16 -0
  16. package/commands/codex/prompts/dv-verify.md +15 -0
  17. package/commands/gemini/da-vinci.toml +26 -0
  18. package/commands/gemini/dv/breakdown.toml +19 -0
  19. package/commands/gemini/dv/build.toml +13 -0
  20. package/commands/gemini/dv/design.toml +14 -0
  21. package/commands/gemini/dv/tasks.toml +13 -0
  22. package/commands/gemini/dv/verify.toml +15 -0
  23. package/docs/workflow-examples.md +104 -0
  24. package/examples/greenfield-spec-markupflow/README.md +40 -0
  25. package/examples/greenfield-spec-markupflow/design-brief.md +24 -0
  26. package/examples/greenfield-spec-markupflow/design-registry.md +15 -0
  27. package/examples/greenfield-spec-markupflow/design.md +32 -0
  28. package/examples/greenfield-spec-markupflow/page-map.md +19 -0
  29. package/examples/greenfield-spec-markupflow/pencil-bindings.md +13 -0
  30. package/examples/greenfield-spec-markupflow/pencil-design.md +29 -0
  31. package/examples/greenfield-spec-markupflow/proposal.md +33 -0
  32. package/examples/greenfield-spec-markupflow/site/index.html +192 -0
  33. package/examples/greenfield-spec-markupflow/site/product-detail.html +165 -0
  34. package/examples/greenfield-spec-markupflow/specs/marketing-site/spec.md +37 -0
  35. package/examples/greenfield-spec-markupflow/tasks.md +28 -0
  36. package/examples/greenfield-spec-markupflow/verification.md +37 -0
  37. package/lib/cli.js +100 -0
  38. package/lib/install.js +286 -0
  39. package/package.json +31 -0
  40. package/references/artifact-templates.md +364 -0
  41. package/references/checkpoints.md +141 -0
  42. package/references/design-inputs.md +55 -0
  43. package/references/modes.md +84 -0
  44. package/references/page-mapping.md +47 -0
  45. package/references/pencil-design-to-code.md +64 -0
  46. package/references/platform-adapters.md +66 -0
  47. package/scripts/postinstall.js +9 -0
  48. package/scripts/validate-assets.js +9 -0
@@ -0,0 +1,192 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>MarkupFlow - 首页</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script>
9
+ tailwind.config = {
10
+ theme: {
11
+ extend: {
12
+ colors: {
13
+ bg: '#06070A',
14
+ panel: '#10131A',
15
+ panelSoft: '#171D28',
16
+ panelMuted: '#131826',
17
+ line: '#2A3142',
18
+ textSoft: '#A1A1AA',
19
+ textMuted: '#71717A',
20
+ paper: '#F4F7FB',
21
+ ink: '#11131A',
22
+ inkSoft: '#556070',
23
+ accentA: '#A855F7',
24
+ accentB: '#EC4899'
25
+ },
26
+ fontFamily: {
27
+ display: ['"Funnel Sans"', 'Inter', 'sans-serif'],
28
+ body: ['Inter', 'sans-serif'],
29
+ mono: ['"IBM Plex Mono"', 'monospace']
30
+ },
31
+ boxShadow: {
32
+ float: '0 24px 64px rgba(0,0,0,.42)'
33
+ },
34
+ backgroundImage: {
35
+ accent: 'linear-gradient(135deg, #A855F7 0%, #EC4899 100%)',
36
+ preview: 'linear-gradient(135deg, #E8E1FF 0%, #D9F3FF 100%)'
37
+ }
38
+ }
39
+ }
40
+ };
41
+ </script>
42
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
43
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
44
+ <link href="https://fonts.googleapis.com/css2?family=Funnel+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
45
+ </head>
46
+ <body class="bg-bg text-white font-body">
47
+ <main class="mx-auto max-w-[1520px] px-5 pb-16 pt-7 sm:px-8 lg:px-10">
48
+ <header class="flex flex-col gap-5 py-2 lg:flex-row lg:items-center lg:justify-between">
49
+ <div class="flex items-center gap-3">
50
+ <span class="h-3.5 w-3.5 rounded-full bg-accent"></span>
51
+ <span class="font-display text-xl font-bold sm:text-2xl">MarkupFlow</span>
52
+ </div>
53
+ <div class="flex flex-wrap items-center gap-4 text-sm text-textSoft sm:gap-5 sm:text-[15px]">
54
+ <a href="#capabilities" class="transition hover:text-white">能力矩阵</a>
55
+ <a href="#mcp-service" class="transition hover:text-white">MCP 服务</a>
56
+ <a href="product-detail.html" class="transition hover:text-white">工作流</a>
57
+ <a href="#cta" class="rounded-full bg-white px-4 py-3 text-sm font-semibold text-black transition hover:opacity-90">预约演示</a>
58
+ </div>
59
+ </header>
60
+
61
+ <section class="grid gap-8 pt-6 lg:grid-cols-[520px,minmax(0,1fr)] lg:items-center">
62
+ <div class="space-y-5">
63
+ <p class="font-mono text-[11px] uppercase tracking-[0.22em] text-accentA sm:text-xs">Desktop software for annotated design delivery</p>
64
+ <h1 class="max-w-[9ch] font-display text-[42px] font-bold leading-[0.98] sm:text-[56px] lg:text-[68px]">
65
+ 把 HTML 与 Figma 一键转成可标注、可服务的设计稿。
66
+ </h1>
67
+ <p class="max-w-[34rem] text-base leading-7 text-textSoft sm:text-lg">
68
+ 面向桌面软件团队的设计交付工作台。把 HTML 页面、Figma 设计稿与标注设计稿统一到一个可追溯的产物里,并通过 MCP 对外提供结构化设计数据。
69
+ </p>
70
+ <div class="flex flex-col gap-3 sm:flex-row sm:items-center">
71
+ <a href="#cta" class="inline-flex items-center justify-center rounded-full bg-accent px-6 py-3.5 text-sm font-semibold text-white transition hover:opacity-95">开始生成桌面稿</a>
72
+ <a href="product-detail.html" class="inline-flex items-center justify-center rounded-full border border-line px-6 py-3.5 text-sm font-semibold text-[#D7DBE3] transition hover:border-white/30 hover:text-white">查看转换流程</a>
73
+ </div>
74
+ <p class="font-mono text-xs text-textMuted sm:text-[13px]">HTML 输入 · Figma 输入 · 标注输出 · MCP 数据服务</p>
75
+ </div>
76
+
77
+ <div class="rounded-[24px] bg-panel p-4 shadow-float sm:p-6">
78
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-textMuted sm:text-xs">Live product flow</p>
79
+ <div class="mt-4 grid gap-4 lg:grid-cols-[220px,96px,minmax(0,1fr)]">
80
+ <div class="space-y-4">
81
+ <article class="rounded-[18px] bg-panelSoft p-[18px]">
82
+ <p class="font-mono text-[15px] font-medium leading-6 text-white">HTML 页面<br />自动结构解析<br />转成可标注设计稿</p>
83
+ </article>
84
+ <article class="rounded-[18px] bg-panelSoft p-[18px]">
85
+ <p class="font-mono text-[15px] font-medium leading-6 text-white">Figma 稿件<br />统一图层与组件<br />输出标注设计稿</p>
86
+ </article>
87
+ <article class="rounded-[18px] bg-panelSoft p-[18px]">
88
+ <p class="font-mono text-[15px] font-medium leading-6 text-white">设计标注<br />结构化数据整理<br />通过 MCP 对外服务</p>
89
+ </article>
90
+ </div>
91
+ <div class="hidden flex-col items-center justify-center gap-3 lg:flex">
92
+ <p class="font-mono text-xs tracking-[0.18em] text-accentA">TRANSFORM</p>
93
+ <div class="h-24 w-px bg-white/10"></div>
94
+ <p class="font-mono text-xs tracking-[0.12em] text-textMuted">ANNOTATE · SERVE</p>
95
+ </div>
96
+ <article class="rounded-[20px] bg-paper p-5 text-ink">
97
+ <h2 class="font-display text-[26px] font-bold sm:text-[28px]">Annotated Design Output</h2>
98
+ <p class="mt-3 text-sm leading-6 text-inkSoft sm:text-[15px]">
99
+ 输出可交付、可协作、可编排的标注设计稿,让设计资产既能给人看,也能给系统读。
100
+ </p>
101
+ <div class="mt-5 rounded-2xl bg-preview p-[18px]">
102
+ <p class="font-mono text-[11px] tracking-[0.15em] text-[#5F3DC4] sm:text-xs">Spec + Layers + Annotation</p>
103
+ <p class="mt-3 max-w-[26rem] text-base font-medium leading-7 text-ink sm:text-lg">
104
+ 页面结构、组件层级、尺寸标注、命名语义与交互说明,被统一为一个可共享的设计资产。
105
+ </p>
106
+ </div>
107
+ <div class="mt-5 flex flex-wrap gap-2.5">
108
+ <span class="rounded-full bg-[#EAEAF0] px-3 py-2 font-mono text-[11px] font-medium text-[#202532]">Layer Mapping</span>
109
+ <span class="rounded-full bg-[#EAEAF0] px-3 py-2 font-mono text-[11px] font-medium text-[#202532]">Measurement Notes</span>
110
+ <span class="rounded-full bg-[#EAEAF0] px-3 py-2 font-mono text-[11px] font-medium text-[#202532]">MCP Ready</span>
111
+ </div>
112
+ </article>
113
+ </div>
114
+ </div>
115
+ </section>
116
+
117
+ <section id="capabilities" class="mt-14 rounded-[24px] bg-panel p-6 sm:p-8">
118
+ <div class="max-w-[760px] space-y-3">
119
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-accentA sm:text-xs">Capabilities</p>
120
+ <h2 class="font-display text-[32px] font-bold leading-[1.05] sm:text-[42px]">一个桌面软件,完成三类设计资产转换。</h2>
121
+ <p class="text-base leading-7 text-textSoft sm:text-[17px]">
122
+ 从已有页面、设计稿到结构化标注资产,再把标注资产变成对开发工具友好的 MCP 数据接口。
123
+ </p>
124
+ </div>
125
+ <div class="mt-6 grid gap-5 lg:grid-cols-3">
126
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
127
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">INPUT 01</p>
128
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">HTML 转标注设计稿</h3>
129
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">解析页面结构、组件层级和主要视觉区域,生成可交付、可复查的标注设计稿。</p>
130
+ </article>
131
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
132
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">INPUT 02</p>
133
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">Figma 转标注设计稿</h3>
134
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">统一图层命名、组件映射与尺寸说明,把视觉稿整理成更适合团队交付和协作的标注产物。</p>
135
+ </article>
136
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
137
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">OUTPUT 03</p>
138
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">标注设计稿提供 MCP 数据服务</h3>
139
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">把标注设计稿中的页面结构、组件信息、尺寸标注与语义说明,通过 MCP 方式提供给开发与自动化工具。</p>
140
+ </article>
141
+ </div>
142
+ </section>
143
+
144
+ <section id="mcp-service" class="mt-14 grid gap-6 rounded-[24px] bg-paper p-6 text-ink sm:p-8 lg:grid-cols-[420px,minmax(0,1fr)]">
145
+ <div class="space-y-4">
146
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-[#7C3AED] sm:text-xs">MCP Data Service</p>
147
+ <h2 class="font-display text-[30px] font-bold leading-[1.05] sm:text-[40px]">标注设计稿不只是交付物,它还是一个可查询的数据源。</h2>
148
+ <p class="text-base leading-7 text-inkSoft sm:text-[17px]">
149
+ 通过 MCP,把页面结构、组件映射、尺寸说明与语义标注供给给开发工具、自动化脚本和设计校验流程。
150
+ </p>
151
+ <p class="text-[15px] font-medium leading-7 text-ink">适合桌面端研发、设计校对、交付验收与自动生成场景。</p>
152
+ </div>
153
+ <div class="rounded-[20px] bg-[#0F1420] p-5 text-white">
154
+ <p class="font-mono text-[11px] uppercase tracking-[0.18em] text-[#717FA0] sm:text-xs">Service payload examples</p>
155
+ <div class="mt-4 space-y-3">
156
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
157
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Page Structure</p>
158
+ <p class="mt-2 text-base font-medium leading-7">sections · slots · layout hierarchy · screen regions</p>
159
+ </article>
160
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
161
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Component Map</p>
162
+ <p class="mt-2 text-base font-medium leading-7">component ids · variants · reusable blocks · states</p>
163
+ </article>
164
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
165
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Measurement Notes</p>
166
+ <p class="mt-2 text-base font-medium leading-7">sizes · spacing · alignment · annotation notes</p>
167
+ </article>
168
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
169
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Interaction Semantics</p>
170
+ <p class="mt-2 text-base font-medium leading-7">events · behavior notes · delivery hints · developer hooks</p>
171
+ </article>
172
+ </div>
173
+ </div>
174
+ </section>
175
+
176
+ <section id="cta" class="mt-14 rounded-[24px] bg-panelMuted px-6 py-10 text-center sm:px-10 sm:py-12">
177
+ <div class="mx-auto max-w-[760px]">
178
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-accentA sm:text-xs">Ready to ship annotated design</p>
179
+ <h2 class="mt-3 font-display text-[32px] font-bold leading-[1.08] sm:text-[42px]">让设计资产从静态稿,升级成团队可交付、可协作、可服务的系统。</h2>
180
+ <p class="mt-4 text-base leading-7 text-textSoft sm:text-[17px]">
181
+ 从 HTML、Figma 到标注设计稿,再到对开发工具开放的 MCP 数据服务,形成完整的桌面端设计交付闭环。
182
+ </p>
183
+ <div class="mt-6 flex flex-col items-center justify-center gap-3 sm:flex-row">
184
+ <a href="#" class="inline-flex items-center justify-center rounded-full bg-accent px-6 py-3.5 text-sm font-semibold text-white transition hover:opacity-95">下载桌面版</a>
185
+ <a href="#" class="inline-flex items-center justify-center rounded-full border border-line px-6 py-3.5 text-sm font-semibold text-[#D7DBE3] transition hover:border-white/30 hover:text-white">联系团队演示</a>
186
+ </div>
187
+ <p class="mt-5 font-mono text-[11px] tracking-[0.12em] text-textMuted sm:text-xs">HTML → Annotated Design · Figma → Annotated Design · Annotated Design → MCP</p>
188
+ </div>
189
+ </section>
190
+ </main>
191
+ </body>
192
+ </html>
@@ -0,0 +1,165 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>MarkupFlow - Product Detail</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script>
9
+ tailwind.config = {
10
+ theme: {
11
+ extend: {
12
+ colors: {
13
+ bg: '#06070A',
14
+ panel: '#10131A',
15
+ panelSoft: '#171D28',
16
+ panelMuted: '#131826',
17
+ line: '#2A3142',
18
+ textSoft: '#A1A1AA',
19
+ textMuted: '#71717A',
20
+ paper: '#F4F7FB',
21
+ ink: '#11131A',
22
+ inkSoft: '#556070',
23
+ accentA: '#A855F7',
24
+ accentB: '#EC4899'
25
+ },
26
+ fontFamily: {
27
+ display: ['"Funnel Sans"', 'Inter', 'sans-serif'],
28
+ body: ['Inter', 'sans-serif'],
29
+ mono: ['"IBM Plex Mono"', 'monospace']
30
+ },
31
+ backgroundImage: {
32
+ accent: 'linear-gradient(135deg, #A855F7 0%, #EC4899 100%)',
33
+ preview: 'linear-gradient(135deg, #EDE9FE 0%, #DBEAFE 100%)'
34
+ }
35
+ }
36
+ }
37
+ };
38
+ </script>
39
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
40
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
41
+ <link href="https://fonts.googleapis.com/css2?family=Funnel+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
42
+ </head>
43
+ <body class="bg-bg text-white font-body">
44
+ <main class="mx-auto max-w-[1520px] px-5 pb-16 pt-7 sm:px-8 lg:px-10">
45
+ <header class="flex flex-col gap-5 py-2 lg:flex-row lg:items-center lg:justify-between">
46
+ <div class="flex items-center gap-3">
47
+ <span class="h-3.5 w-3.5 rounded-full bg-accent"></span>
48
+ <span class="font-display text-xl font-bold sm:text-[22px]">MarkupFlow / Product Detail</span>
49
+ </div>
50
+ <p class="font-mono text-[11px] tracking-[0.12em] text-textMuted">DESKTOP EDITOR · ANNOTATION PIPELINE · MCP SERVICE</p>
51
+ </header>
52
+
53
+ <section class="grid gap-7 pt-3 lg:grid-cols-[520px,minmax(0,1fr)] lg:items-start">
54
+ <div class="space-y-4">
55
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-accentA sm:text-xs">Product Detail</p>
56
+ <h1 class="max-w-[11ch] font-display text-[40px] font-bold leading-[0.98] sm:text-[50px] lg:text-[60px]">把导入、标注、发布三段工作流压进一个桌面工作台。</h1>
57
+ <p class="max-w-[34rem] text-base leading-7 text-textSoft sm:text-lg">
58
+ 第二页聚焦产品内部结构:HTML 导入、Figma 导入、标注编辑、结构化检查、MCP 发布,各自如何在一条桌面端工作流里接力完成。
59
+ </p>
60
+ <div class="space-y-2.5 font-mono text-[13px] text-[#D7DBE3]">
61
+ <p>01&nbsp;&nbsp;Import queue for HTML and Figma sources</p>
62
+ <p>02&nbsp;&nbsp;Annotation editor with structure and measurement views</p>
63
+ <p>03&nbsp;&nbsp;MCP publisher exposing machine-readable design payloads</p>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="rounded-[24px] bg-panel p-6">
68
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-textMuted sm:text-xs">Desktop Workspace</p>
69
+ <div class="mt-4 grid gap-4 lg:grid-cols-[240px,minmax(0,1fr)]">
70
+ <div class="space-y-3">
71
+ <article class="rounded-2xl bg-panelSoft p-[18px]">
72
+ <h2 class="font-display text-[22px] font-bold">Import Queue</h2>
73
+ <p class="mt-2 text-sm leading-6 text-[#9CA3AF]">HTML batches · Figma files · source metadata</p>
74
+ </article>
75
+ <article class="rounded-2xl bg-panelSoft p-[18px]">
76
+ <h2 class="font-display text-[22px] font-bold">Validation</h2>
77
+ <p class="mt-2 text-sm leading-6 text-[#9CA3AF]">layer naming · component mapping · note completeness</p>
78
+ </article>
79
+ </div>
80
+ <article class="rounded-[18px] bg-paper p-[18px] text-ink">
81
+ <h2 class="font-display text-[28px] font-bold sm:text-[30px]">Markup Editor</h2>
82
+ <p class="mt-3 text-[15px] leading-7 text-[#4B5563]">
83
+ 在一个工作台里查看页面结构、标注说明、尺寸数据与交互语义,让设计稿既能交付给人,也能发布给系统。
84
+ </p>
85
+ <div class="mt-4 rounded-[14px] bg-preview p-[18px]">
86
+ <p class="font-mono text-[11px] text-[#5B21B6] sm:text-xs">Annotation Layer + Measurement Layer + Semantic Notes</p>
87
+ <p class="mt-3 text-base font-medium leading-7 text-ink sm:text-lg">
88
+ 导入来源经过结构归一、标注补全与语义整理后,输出为一份可回查、可协作、可供下游系统读取的桌面设计资产。
89
+ </p>
90
+ </div>
91
+ </article>
92
+ </div>
93
+ </div>
94
+ </section>
95
+
96
+ <section class="mt-14 rounded-[24px] bg-panel p-6 sm:p-8">
97
+ <div class="max-w-[760px] space-y-3">
98
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-accentA sm:text-xs">Pipeline</p>
99
+ <h2 class="font-display text-[32px] font-bold leading-[1.05] sm:text-[42px]">三段式转换流程,把来源资产整理成可消费的标注数据。</h2>
100
+ <p class="text-base leading-7 text-textSoft sm:text-[17px]">
101
+ 每一段都承担不同职责:导入归一、标注补全、服务发布。它们共同构成桌面端交付工作流。
102
+ </p>
103
+ </div>
104
+ <div class="mt-6 grid gap-5 lg:grid-cols-3">
105
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
106
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">STEP 01</p>
107
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">Import &amp; Normalize</h3>
108
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">读取 HTML 页面或 Figma 设计稿,抽取结构、层级、元信息,并统一为内部可处理的设计对象。</p>
109
+ </article>
110
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
111
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">STEP 02</p>
112
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">Annotate &amp; Review</h3>
113
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">在桌面编辑器中补充尺寸、命名语义、层级说明、组件映射与交互注释,让设计稿具备完整交付含义。</p>
114
+ </article>
115
+ <article class="rounded-[20px] bg-panelSoft p-[22px]">
116
+ <p class="font-mono text-[11px] tracking-[0.14em] text-textMuted">STEP 03</p>
117
+ <h3 class="mt-4 font-display text-[26px] font-bold leading-[1.08]">Publish &amp; Serve</h3>
118
+ <p class="mt-4 text-[15px] leading-7 text-textSoft">把标注设计稿中的页面结构、组件信息、尺寸说明和语义字段,经由 MCP 暴露给开发工具链与自动化服务。</p>
119
+ </article>
120
+ </div>
121
+ </section>
122
+
123
+ <section class="mt-14 grid gap-6 rounded-[24px] bg-paper p-6 text-ink sm:p-8 lg:grid-cols-[420px,minmax(0,1fr)]">
124
+ <div class="space-y-4">
125
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-[#7C3AED] sm:text-xs">Workspace Modules</p>
126
+ <h2 class="font-display text-[30px] font-bold leading-[1.05] sm:text-[40px]">桌面工作台内部分为编辑区、检查区、服务区。</h2>
127
+ <p class="text-base leading-7 text-inkSoft sm:text-[17px]">
128
+ 不是一个静态导出器,而是一套让设计交付逐步走向结构化与服务化的桌面工作台。
129
+ </p>
130
+ </div>
131
+ <div class="rounded-[20px] bg-[#0F1420] p-5 text-white">
132
+ <div class="space-y-3">
133
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
134
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Editor Surface</p>
135
+ <p class="mt-2 text-base font-medium leading-7">layout view · note layer · semantic fields · component outline</p>
136
+ </article>
137
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
138
+ <p class="font-mono text-[11px] text-[#7C8AAF]">Review Checks</p>
139
+ <p class="mt-2 text-base font-medium leading-7">naming rules · mapping gaps · annotation completeness · drift alerts</p>
140
+ </article>
141
+ <article class="rounded-[14px] bg-[#151C2B] px-4 py-[14px]">
142
+ <p class="font-mono text-[11px] text-[#7C8AAF]">MCP Publisher</p>
143
+ <p class="mt-2 text-base font-medium leading-7">structured payloads · queryable fields · downstream tool consumption</p>
144
+ </article>
145
+ </div>
146
+ </div>
147
+ </section>
148
+
149
+ <section class="mt-14 rounded-[24px] bg-panelMuted px-6 py-10 text-center sm:px-10 sm:py-12">
150
+ <div class="mx-auto max-w-[760px]">
151
+ <p class="font-mono text-[11px] uppercase tracking-[0.2em] text-accentA sm:text-xs">Desktop delivery loop</p>
152
+ <h2 class="mt-3 font-display text-[32px] font-bold leading-[1.08] sm:text-[42px]">当页面、设计稿和标注数据被统一管理,交付就不再只是截图和说明文档。</h2>
153
+ <p class="mt-4 text-base leading-7 text-textSoft sm:text-[17px]">
154
+ 让桌面端设计工作台承担导入、编辑、校验、发布职责,把标注设计稿真正推到开发链路中。
155
+ </p>
156
+ <div class="mt-6 flex flex-col items-center justify-center gap-3 sm:flex-row">
157
+ <a href="#" class="inline-flex items-center justify-center rounded-full bg-accent px-6 py-3.5 text-sm font-semibold text-white transition hover:opacity-95">预约产品演示</a>
158
+ <a href="#" class="inline-flex items-center justify-center rounded-full border border-line px-6 py-3.5 text-sm font-semibold text-[#D7DBE3] transition hover:border-white/30 hover:text-white">查看 MCP 接入</a>
159
+ </div>
160
+ <p class="mt-5 font-mono text-[11px] tracking-[0.12em] text-textMuted sm:text-xs">Import → Normalize → Annotate → Review → Publish → Serve</p>
161
+ </div>
162
+ </section>
163
+ </main>
164
+ </body>
165
+ </html>
@@ -0,0 +1,37 @@
1
+ # Spec
2
+
3
+ ## Capability
4
+ - Name: MarkupFlow launch marketing site
5
+
6
+ ## Behavior
7
+ - the homepage must explain the three core product capabilities: HTML to annotated design, Figma to annotated design, and annotated design as MCP data service
8
+ - the homepage must establish that the product is for desktop-software teams
9
+ - the homepage must route users to a deeper workflow page
10
+ - the product detail page must explain the import, annotation, and publish pipeline
11
+ - the product detail page must describe the desktop workspace and its major modules
12
+ - both pages must preserve a consistent product voice and visual system
13
+
14
+ ## States
15
+ - Success: both pages render the intended content blocks and cross-link correctly
16
+ - Error: not applicable for this static forward test
17
+ - Restricted: not applicable for this static forward test
18
+
19
+ ## Inputs
20
+ - product description
21
+ - capability list
22
+ - Pencil screen structure and copy
23
+
24
+ ## Outputs
25
+ - static homepage
26
+ - static product detail page
27
+ - implementation-to-Pencil traceability
28
+
29
+ ## Acceptance
30
+ - the homepage includes hero, capabilities, MCP service, and CTA sections
31
+ - the product detail page includes desktop workspace, pipeline, modules, and CTA sections
32
+ - each page maps to one Pencil screen with a stable identifier
33
+ - implementation text and structure remain aligned with the requested product narrative
34
+
35
+ ## Edge Cases
36
+ - if the active Pencil source changes names or screen ids, `pencil-bindings.md` must be updated before implementation continues
37
+ - if the live `.pen` file becomes unavailable, the current HTML outputs remain the fallback implementation baseline
@@ -0,0 +1,28 @@
1
+ # Tasks
2
+
3
+ ## 1. Scope And Page Definition
4
+ - [x] capture the desktop-product design brief
5
+ - [x] define the proposal and delivery scope
6
+ - [x] write the marketing-site behavior spec
7
+ - [x] define the canonical page map
8
+ - [x] `PASS` discovery checkpoint
9
+ - [x] `PASS` spec checkpoint
10
+
11
+ ## 2. Pencil Source And Mapping
12
+ - [x] register the active Pencil source
13
+ - [x] record the active Pencil screens and implementation notes
14
+ - [x] bind implementation pages to Pencil screens
15
+ - [x] `PASS` design checkpoint
16
+ - [x] `PASS` mapping checkpoint
17
+
18
+ ## 3. Static Page Implementation
19
+ - [x] implement the homepage from requirements plus Pencil structure
20
+ - [x] implement the product detail page from requirements plus Pencil structure
21
+ - [x] preserve cross-page navigation and shared visual language
22
+ - [x] `PASS` execution checkpoint after top-level page implementation
23
+
24
+ ## 4. Verification
25
+ - [x] confirm requirement coverage against the spec
26
+ - [x] confirm design coverage against the Pencil pages
27
+ - [x] record known gaps and next steps
28
+ - [x] `PASS` task checkpoint
@@ -0,0 +1,37 @@
1
+ # Verification
2
+
3
+ ## Mode
4
+ - `greenfield-spec`
5
+
6
+ ## Checkpoint Summary
7
+ - discovery checkpoint: `PASS`
8
+ - spec checkpoint: `PASS`
9
+ - design checkpoint: `PASS`
10
+ - mapping checkpoint: `PASS`
11
+ - task checkpoint: `PASS`
12
+ - execution checkpoint: `PASS`
13
+
14
+ ## Requirement Coverage
15
+ - homepage explains the three core capabilities
16
+ - homepage positions the product as desktop-software-oriented
17
+ - homepage links to the workflow detail page
18
+ - product detail page explains import, annotate, and publish flow
19
+ - product detail page explains desktop workspace modules
20
+
21
+ ## Design Coverage
22
+ - the homepage implementation follows the Pencil screen structure for hero, capabilities, MCP service, and CTA
23
+ - the product detail implementation follows the Pencil screen structure for workspace hero, pipeline, modules, and CTA
24
+ - implementation pages are explicitly bound to Pencil screen ids
25
+
26
+ ## Drift Findings
27
+ - no blocking requirement drift recorded in this forward test
28
+ - no blocking design drift recorded in this forward test
29
+
30
+ ## Known Gaps
31
+ - the `.pen` file is not yet committed into the repository
32
+ - the implementation is static `HTML + Tailwind`, not a production componentized application
33
+ - mobile behavior is acceptable for a launch-page example but was not the design priority
34
+
35
+ ## Conclusion
36
+ - Da Vinci successfully ran the `greenfield-spec` flow from product description to Pencil-backed static implementation
37
+ - the example demonstrates that requirements, Pencil bindings, tasks, and code outputs can stay aligned in one repository
package/lib/cli.js ADDED
@@ -0,0 +1,100 @@
1
+ const {
2
+ VERSION,
3
+ installPlatforms,
4
+ uninstallPlatforms,
5
+ getStatus,
6
+ validateAssets
7
+ } = require("./install");
8
+
9
+ function getOption(args, name) {
10
+ const direct = args.find((arg) => arg.startsWith(`${name}=`));
11
+ if (direct) {
12
+ return direct.slice(name.length + 1);
13
+ }
14
+
15
+ const index = args.indexOf(name);
16
+ if (index >= 0) {
17
+ return args[index + 1];
18
+ }
19
+
20
+ return undefined;
21
+ }
22
+
23
+ function formatStatus(status) {
24
+ return [
25
+ `Da Vinci v${status.version}`,
26
+ `Home: ${status.homeDir}`,
27
+ `Codex: prompt=${status.codex.prompt ? "yes" : "no"} skill=${status.codex.skill ? "yes" : "no"}`,
28
+ `Claude: command=${status.claude.command ? "yes" : "no"} actions=${status.claude.actionSet ? "yes" : "no"}`,
29
+ `Gemini: command=${status.gemini.command ? "yes" : "no"} actions=${status.gemini.actionSet ? "yes" : "no"}`
30
+ ].join("\n");
31
+ }
32
+
33
+ function printHelp() {
34
+ console.log(
35
+ [
36
+ "Da Vinci CLI",
37
+ "",
38
+ "Usage:",
39
+ " da-vinci install --platform codex,claude,gemini",
40
+ " da-vinci uninstall --platform codex,claude,gemini",
41
+ " da-vinci status",
42
+ " da-vinci validate-assets",
43
+ " da-vinci --version",
44
+ "",
45
+ "Options:",
46
+ " --platform <value> codex, claude, gemini, or all",
47
+ " --home <path> override HOME for installation targets"
48
+ ].join("\n")
49
+ );
50
+ }
51
+
52
+ async function runCli(argv) {
53
+ const [command] = argv;
54
+ const homeDir = getOption(argv, "--home");
55
+
56
+ if (!command || command === "help" || command === "--help" || command === "-h") {
57
+ printHelp();
58
+ return;
59
+ }
60
+
61
+ if (command === "--version" || command === "-v" || command === "version") {
62
+ console.log(`Da Vinci v${VERSION}`);
63
+ return;
64
+ }
65
+
66
+ if (command === "install") {
67
+ const platformValue = getOption(argv, "--platform") || "all";
68
+ const result = installPlatforms(platformValue, { homeDir });
69
+ console.log(
70
+ `Installed Da Vinci v${result.version} for ${result.platforms.join(", ")} at ${result.homeDir}`
71
+ );
72
+ return;
73
+ }
74
+
75
+ if (command === "uninstall") {
76
+ const platformValue = getOption(argv, "--platform") || "all";
77
+ const result = uninstallPlatforms(platformValue, { homeDir });
78
+ console.log(
79
+ `Uninstalled Da Vinci v${result.version} for ${result.platforms.join(", ")} from ${result.homeDir}`
80
+ );
81
+ return;
82
+ }
83
+
84
+ if (command === "status") {
85
+ console.log(formatStatus(getStatus({ homeDir })));
86
+ return;
87
+ }
88
+
89
+ if (command === "validate-assets") {
90
+ const result = validateAssets();
91
+ console.log(`Da Vinci v${result.version} assets are complete (${result.requiredAssets} required files).`);
92
+ return;
93
+ }
94
+
95
+ throw new Error(`Unknown command: ${command}`);
96
+ }
97
+
98
+ module.exports = {
99
+ runCli
100
+ };