SuperAPI AI Directory

board

Office & productivity

View repository

Updated 10-15 09:39

About this skill

Project Board Generation Skill

Trigger Conditions

Triggered when the user says "create project board", "make a board", "project board", "board generation", or "board".

The user will provide content in one of the following forms:

  • A dictated/scattered thought (chat text in the conversation)
  • A logical outline (project description with existing structure)
  • Mixed mode: both an outline and dictated additions

SVG Icon Resources

When brand/tool/platform names are involved in the board, use thesvg MCP to obtain high-quality brand SVG icons instead of hand-drawn placeholders.

MCP Tool Calls

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 fetch 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: For dark mode, prefer default or light variant; for light mode, prefer default or dark。mono variant works in both modes; use CSS filter or directly adjust fill/stroke to adapt to the theme.

Inapplicable Scenarios

  • Person names/roles → use color block dots, not icons
  • Abstract concepts (such as "barriers" or "time windows") → use semantic color markers, not icons
  • Not found in the icon library → use simple inline SVG primitives, do not force a fit

Step 1: Structure Sorting

After receiving the user's content,do not write code immediately. 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:

  1. Decided Items(Decided): decisions/facts that are already settled and no longer under discussion
  2. Open Questions(Open Questions): questions that need answers, marked with urgency (must / can-wait / confirm)
  3. Dependency Chains(Dependencies): which things are prerequisites for other things, upstream and downstream relationships
  4. Action Routes(Actions): specific things to do, grouped by time/stage
  5. Deliverables(Deliverables): what should be 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", "do it directly", or "no problem", it is considered confirmation.

Step 2: Board Generation

Technical Constraints

  • Format: a single .html file, zero dependencies, opened directly in the browser
  • Font: MiSans local + Outfit Google Fonts + CJK system fallback
  • Theme: Dark/light dual themes, localStorage persists user choice
  • Size: max-width 1200px, responsive (< 960px single-column collapse)
  • Print:@media print hide footer/toggle, cards break-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 the 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/Passed/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-pass, blocked items
Information/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 Text:0.88rem; color: var(--text-secondary); line-height: 1.6
  • Auxiliary Text:0.82rem; color: var(--text-secondary)
  • Tags/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 Corrections

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) Decided items, deliverable small cards
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)
  • Button/Tag :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

According to the blueprint plan, select and combine from the following components:

1. Header (mandatory)

<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 (mandatory)

Each section uses <section class="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 with a green check dot + primary text + gray supplementary description:

<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 (Swim Lane)

Multi-dimensional comparison cards, left ID tag + main content + multiple attribute columns:

<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 background
  • waiting: amber-dim background
  • progress: blue-dim background
  • 已决: accent-dim background (inline style)
  • minor: surface background

7. Time/Phase Cards

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 additional 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:

The blueprint contains this content Use component
Decided items Decided items grid
Open questions list Status table
Upstream and 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 ordering principle: decided foundation → dependency chain/overview → core decisions → open questions → action roadmap → deliverables

Interactive features

  • Theme switching: dark/light, persisted via localStorage
  • Card hover: border brightens + shadow lifts
  • :active haptics: scale(0.96) simulates a 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 three: output

  1. Write the complete HTML to the 00_专注区/ directory, filename format:{项目名}.html
  2. Tell the user the file location
  3. Ask whether fine-tuning is needed

Anti-patterns (prohibited)

  • Using emoji is prohibited; use semantic color markers + icons instead
  • Using pure black #000 or pure white #fff text is prohibited
  • Using solid gray card backgrounds is prohibited (must use rgba white overlay layers)
  • Using solid borders is prohibited (must use rgba transparent borders)
  • Using the Inter font is prohibited
  • Using three-column equal-width card layouts is prohibited (except for compact items in decided-grid or deliverable-grid)
  • Using h-screenis prohibited (must use min-height: 100dvh)
  • Using generic rgba(0,0,0,x) shadows in dark mode is prohibited (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(includes visual effects and HTML structure examples for all components)

When generating the board, directly copy the CSS and component HTML structures 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.