Trigger Conditions
Triggered when the user says "create project board", "make a board", "project board", "board generation", "board".
The user will provide content in one of the following forms:
- A piece of oral notes/scattered thinking (chat text in the conversation)
- A logical outline (a project description that already has structure)
- Mixed mode: both an outline and oral supplements
SVG Icon Resources
When brand/tool/platform names are involved in the board, use thesvg MCP to obtain high-quality brand SVG icons, rather than hand-drawn placeholders.
MCP Tool Invocation
search_icons(query: "github") → 搜索图标,返回 slug + variants
get_icon(slug: "github", variant: "mono") → 获取原始 SVG 代码
get_icon_url(slug: "github") → 获取 CDN 嵌入 URL
list_categories() → 浏览所有分类
Usage Rules
| Scenario | Approach |
|---|---|
| Brand name appears (GitHub, Notion, Feishu, etc.) | Call search_icons to find the corresponding slug,get_icon get mono or default variant |
| Person/role placeholder icon | Do not use brand icons; use pure CSS dots/color blocks |
| Decorative small icons (arrows, checkmarks, etc.) | Use inline SVG primitives (<svg> + <path>), keep a single file with zero dependencies |
Embedding Method
<!-- 方式 1:内联 SVG(推荐,零依赖) -->
<svg width="18" height="18" viewBox="0 0 24 24" fill="none">
<!-- 从 get_icon 获取的 path 内容 -->
</svg>
<!-- 方式 2:CDN URL(图标多时减少文件体积) -->
<img src="https://cdn.thesvg.org/icons/{slug}.svg" alt="{name}" width="18" height="18" style="opacity:0.7" />
Variant Selection: Dark mode prefers default or light variant; light mode prefers default or dark。mono variant can be used in both modes; use CSS filter or directly adjust fill/stroke to adapt to the theme.
Scenarios Where Not Applicable
- Personal names/roles → use colored block dots, not icons
- Abstract concepts (such as "barriers" and "time windows") → use semantic color markers, not icons
- Those not found in the icon library → use concise inline SVG primitives; do not force a fit
Step 1: Structure Sorting
After receiving the user's content,do not immediately write code. First do structure sorting and output a "board blueprint" for the user to confirm:
Analysis Framework
Extract the following dimensions from the content provided by the user:
- Decided Items(Decided): decisions/facts that have already been determined and are no longer under discussion
- Open Questions(Open Questions): questions that need to be answered, marked with urgency (must / can-wait / confirm)
- Dependency Chain(Dependencies): which things are prerequisites for other things, and the upstream/downstream relationships
- Action Route(Actions): specific things to do, grouped by time/stage
- Deliverables(Deliverables): what you should have in hand after completion
Blueprint Output Format
## 看板蓝图:{项目名}
### 板块规划
1. {板块名} — {一句话说明}
2. {板块名} — {一句话说明}
...
### 信息密度
- 已决项:{数量} 条
- 待决项:{数量} 条(must: X / can-wait: X)
- 依赖链:{层级数} 层
- 行动项:{数量} 条
- 交付物:{数量} 项
### 缺失信息
- {指出用户内容中模糊或缺失的地方,一次性列出}
→ 确认后开始生成看板。
After the user confirms the blueprint, proceed to Step 2. If the user says "just like this", "just do it", or "no problem", that is regarded as confirmation.
Step 2: Board Generation
Technical Constraints
- Format: a single
.htmlfile, zero dependencies, opened directly in the browser - Font: MiSans local + Outfit Google Fonts + CJK system fallback
- Theme: Dark/Light dual themes, localStorage persists user preference
- Size: max-width 1200px, responsive (< 960px single-column collapse)
- Print:
@media printhide footer/toggle, cardsbreak-inside: avoid
Design System (mandatory)
The following design system must be strictly followed; this is the parameterized specification calibrated by taste-skill:
Color System
:root variables (dark mode is default):
:root {
--bg: #0e0e14;
--surface: rgba(255,255,255,0.04);
--surface-hover: rgba(255,255,255,0.06);
--surface-elevated: rgba(255,255,255,0.08);
--border: rgba(255,255,255,0.08);
--border-hover: rgba(255,255,255,0.14);
--text-primary: #e8e6e1;
--text-secondary: #8a8680;
--text-tertiary: #4a4744;
--accent: #4ade80;
--accent-dim: rgba(74,222,128,0.15);
--accent-glow: rgba(74,222,128,0.08);
--amber: #f59e0b;
--amber-dim: rgba(245,158,11,0.12);
--rose: #f43f5e;
--rose-dim: rgba(244,63,94,0.12);
--blue: #60a5fa;
--blue-dim: rgba(96,165,250,0.12);
--purple: #a78bfa;
--purple-dim: rgba(167,139,250,0.12);
--radius: 16px;
--radius-sm: 10px;
--font: 'MiSans', 'Outfit', 'PingFang SC', 'Noto Sans SC', system-ui, sans-serif;
--mono: 'MiSans', 'SF Mono', 'Fira Code', ui-monospace, monospace;
--transition: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
--shadow-tinted: 0 8px 32px -8px rgba(14,14,20,0.6);
--shadow-elevated: 0 20px 60px -12px rgba(14,14,20,0.8);
}
Light mode is overridden via html[data-theme="light"] , see the reference implementation for details.
Semantic Color Mapping
| Semantic | Color | dim | Usage |
|---|---|---|---|
| Done/Pass/Positive | accent (green) | accent-dim | Decided items, completed, deliverables |
| Warning/In progress | amber | amber-dim | In progress, pending confirmation, needs attention |
| Urgent/Undecided/Blocked | rose | rose-dim | Undecided, must-close, blockers |
| Info/Normal/Reference | blue | blue-dim | General information, references, links |
| Supplementary/Special | purple | purple-dim | Category tags, date markers |
Typography Hierarchy
- Page title:
1.8rem; font-weight: 700; letter-spacing: -0.04em - Section title:
1.1rem; font-weight: 600; letter-spacing: -0.01em - Card title:
1rem; font-weight: 600; letter-spacing: -0.01em - Body:
0.88rem; color: var(--text-secondary); line-height: 1.6 - Secondary text:
0.82rem; color: var(--text-secondary) - Labels/Metadata:
0.72rem; font-weight: 700; font-family: var(--mono); letter-spacing: 0.05em - Column header labels:
0.65rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase
Bold correction
strong, b { font-weight: 600; font-size: 0.92em; letter-spacing: -0.01em; }
Surface Hierarchy
| Level | Treatment | Usage |
|---|---|---|
| Standard card | background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px 32px; backdrop-filter: blur(20px) |
Main content container |
| Compact item | padding: 14px 16px; border-radius: var(--radius-sm) |
Small cards for decided items, deliverables |
| Inline bar | padding: 10px 14px; border-radius: var(--radius-sm); border: 1px solid var(--border) |
Deliverables, annotation bars |
Interaction States
- Card hover:
border-color: var(--border-hover); box-shadow: var(--shadow-tinted) - Buttons/tags
:active:transform: scale(0.96)(tactile feedback) - Highlighted card:
border-color: rgba(accent,0.25)or the corresponding semantic color value - Theme toggle: circular button in the top-right corner, SVG sun/moon icon
Section Component Library
Based on the blueprint plan, select and combine from the following components:
1. Header (required)
<header class="header">
<div class="header-left">
<h1>{项目名}</h1>
<p>{一句话定位}</p>
</div>
<div class="header-meta">
<span class="meta-badge amber">{周期标记}</span>
<button class="theme-toggle" onclick="toggleTheme()">
<!-- 太阳/月亮 SVG -->
</button>
</div>
</header>
2. Section container (required)
Use <section class="section">for each section, internal structure:
<section class="section">
<div class="section-header">
<span class="section-num" style="color:var(--{语义色})">{序号}</span>
<span class="section-title">{板块名}</span>
<span class="section-sub">{一句话说明}</span>
</div>
<!-- 板块内容 -->
</section>
3. Decided Items Grid
3-column grid, each item has a green check dot + primary text + gray supplementary note:
<div class="decided-grid">
<div class="decided-item">
<div>{主文字}<div class="decided-detail">{补充说明}</div></div>
</div>
</div>
4. Dependency Chain
Hierarchical nodes + arrow connections, nodes graded by semantic color:
<div class="dep-chain">
<div class="dep-row">
<div class="dep-node {critical|important|normal|output}">
<span class="dep-num">{序号}</span>{名称}
<span class="dep-sub">{补充}</span>
</div>
</div>
<div class="dep-arrow-down">↓</div>
<!-- 下游节点 -->
</div>
5. Swim Lane Comparison Table
Multi-dimensional comparison card, left ID label + main content + multi-column attributes:
<div class="lane-thead">
<div class="lane-th">#</div>
<div class="lane-th">{列1标题}</div>
<div class="lane-th">{列2标题}</div>
<div class="lane-th">{列3标题}</div>
</div>
<div class="lane-grid">
<div class="lane-card">
<div class="lane-id" style="background:var(--{色}-dim);color:var(--{色})">{ID}</div>
<div class="lane-main">
<div class="lane-name">{名称}</div>
<div class="lane-desc">{描述}</div>
</div>
<div class="lane-cell">
<div class="lane-cell-label">{列标签}</div>
<div class="lane-cell-value {strong|warn|weak|neutral}">{值}</div>
</div>
<!-- 更多 lane-cell -->
</div>
</div>
Cell value semantic colors:strong = accent (strong advantage),warn = amber (risky),weak = rose (weak/short window),neutral = text-secondary (neutral)
6. Status Table
Display issue/task lists in table form, with status pills:
<div class="card" style="padding:0;overflow:hidden">
<table class="q-table">
<thead>
<tr><th style="width:40%">{列1}</th><th style="width:20%">{列2}</th><th style="width:25%">{列3}</th><th>{列4}</th></tr>
</thead>
<tbody>
<tr>
<td class="q-name">{问题名}</td>
<td><span class="q-status {undecided|waiting|progress|minor|已决}">{状态}</span></td>
<td class="q-urgency {must|can-wait|confirm}">{紧急度描述}</td>
<td style="color:var(--text-tertiary);font-size:0.82rem">{归属}</td>
</tr>
</tbody>
</table>
</div>
Status pill styles:
undecided: rose-dim backgroundwaiting: amber-dim backgroundprogress: blue-dim background已决: accent-dim background (inlinestyle)minor: surface background
7. Time/Phase Card
Group by timeline or phase, one large card per phase:
<div class="schedule-grid"> <!-- 2列 -->
<div class="schedule-day">
<div class="day-header">
<span class="day-badge {sat|sun|自定义色}">{标签}</span>
{阶段名}
</div>
<div class="session-card">
<div class="session-header">
<div class="session-num s{N}">{编号}</div>
<div class="session-title">{标题}</div>
</div>
<div class="session-desc">{描述}</div>
<div class="session-tasks">
<div class="session-task">{任务项}</div>
</div>
<div class="session-output">{产出物}</div>
</div>
</div>
</div>
session-num color cycle: s1=rose, s2=amber, s3=purple, s4=blue, s5=amber, s6=accent (assign as needed)
Task items support completion markers:
- Completed:
style="color:var(--accent)"+✓prefix - In progress:
style="color:var(--amber)"+◐prefix - Not started: no extra styling +
○prefix
8. Deliverables grid
3-column small cards, number + name + source description:
<div class="deliverable-grid">
<div class="deliverable">
<div class="deliverable-num">{序号}</div>
<div class="deliverable-name">{名称}</div>
<div class="deliverable-for">{← 来源}</div>
</div>
</div>
9. Footer (required)
<footer class="footer">
<span>{品牌} · {项目名} · {日期}</span>
<span>{署名}</span>
</footer>
Component selection rules
Automatically determine which components to use based on the blueprint:
| Blueprint contains this content | Use component |
|---|---|
| Decided items | Decided items grid |
| Open questions list | Status table |
| Upstream/downstream dependencies | Dependency chain |
| Multi-option/multi-dimension comparison | Swimlane comparison table |
| Divided by time/phase | Timeline cards |
| What you have in hand when done | Deliverables grid |
Section order principles: decided foundation → dependency chain/overview → core decisions → open questions → action roadmap → deliverables
Interaction features
- Theme toggle: dark/light, persisted via localStorage
- Card hover: border brightens + shadow lifts
:activehaptic: scale(0.96) simulates physical press- Clickable rows:
cursor: pointer+ onclick navigation (if there is a link) - status badge clickable to toggle(optional): click to cycle through statuses
Step 3: Output
- Write the complete HTML to the
00_专注区/directory, file name format:{项目名}.html - Tell the user the file location
- Ask whether fine-tuning is needed
Anti-patterns (prohibited)
- Emoji are prohibited; use semantic color markers + icons instead
- Pure black
#000or pure white#ffftext is prohibited - Solid-color gray card backgrounds are prohibited (must use rgba white overlay)
- Solid-color borders are prohibited (must use rgba transparency borders)
- The Inter font is prohibited
- Three-column equal-width card layouts are prohibited (except for compact items in decided-grid or deliverable-grid)
- Use of
h-screenis prohibited (must usemin-height: 100dvh) - Generic
rgba(0,0,0,x)shadows are prohibited in dark mode (must use tinted shadows) - Generic AI phrasing is prohibited ("elevate", "seamless", "next-gen", etc.)
Reference implementation
Complete CSS + HTML component reference:assets/component-reference.html(contains visual effects and HTML structure examples for all components)
When generating the dashboard, directly copy the CSS and component HTML structure from this file, replacing the placeholder content with actual project content. This is the authoritative style source—do not invent CSS yourself; take it from this file.