Home / All Skills / Design & Motion / frame-flowchart-sticky
Design & Motion · nexu-io/html-anything

frame-flowchart-sticky

SVG curve connections + sticky note nodes + cursor interactions, reminiscent of a whiteboard brainstorming session.

L1 Basic · Source registration onlyV1 Commit-PinnedDual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE;GitHub API spdx_id=Apache-2.0)Commit 553ed98c28
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

This skill is not an executable program, but a prompt injected into the local coding-agent CLI: the host takes the body of SKILL.md, prepends site-wide shared design instructions, appends the user content, assembles it into a prompt sent to the authenticated agent, and captures the agent's stdout as HTML.

next/src/lib/templates/shared.ts
【输入格式】: ${opts.format} 【用户内容】: ${opts.content}
Assembly template = shared instructions → skill body → input format → user content; the web endpoint /api/convert invokes the same function: prompt = assemblePrompt({ body: skill.body, content, format });

The shared instruction layer (which belongs to no single skill, but governs every template) mandates the output as a 'self-contained single-file HTML', explicitly forbidding the agent from using filesystem tools like Write/Edit/Bash, streaming HTML directly via conversational message content.

next/src/lib/templates/shared.ts
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
This dictates the capability boundaries of this skill batch: outputs are purely textual, leaving persistence and rendering to the host frontend; the restriction is a soft prompt constraint rather than a hard sandbox boundary.

Beyond SKILL.md, a 'content-driven count' override rule applies: any page, frame, or card counts specified in the template are treated strictly as reference lower bounds; actual volume is dictated by user content to prevent the agent from condensing user information.

next/src/lib/templates/shared.ts
- 模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
Crucial for frame-* single-frame templates: it designates the layout descriptions in the template as a 'reusable layout pool' rather than a hard production ceiling.

The loading convention adheres to 'one skill = one directory': SKILL.md (YAML frontmatter for the selector + prompt template in the body), optional example.md (sample input), and example.html (directly viewable preview sample); adding templates requires only a directory without modifying TS code.

next/src/lib/templates/loader.ts
* SKILL.md — frontmatter (id, scenario, tags, …) + prompt body * example.md — (optional) sample input content * example.html — (optional) pre-rendered preview, shown inline in the picker
The loader's loadSkillFromDir only reads these three file types, offering no other asset-loading channels—asset accessibility for this skill is verified based on this.

The selection pipeline (CLI side) operates as a three-tier funnel: high-signal keywords (2 points per hit, threshold of 3) → fallback to tags/scenario scoring → if still uncertain, the first 800 characters of user content are passed to the local agent for single-sentence classification.

cli/src/skills-matcher.ts
const CONFIDENCE_THRESHOLD = 3;
The exact AI fallback prompt: const prompt = `Please describe in one sentence (no more than 15 words) what type of document the following content most resembles, answering only with the type name:`

The preview pipeline is decoupled from generation: /api/templates/<id>/preview serves example.html verbatim as text/html to an iframe; the frontend iframe uses sandbox="allow-scripts allow-same-origin".

next/src/components/preview-pane.tsx
sandbox="allow-scripts allow-same-origin"
Route comment: * Returns the skill's `example.html` verbatim so it can be loaded into an (Host-side trade-off: under allow-scripts + allow-same-origin, preview scripts can lift sandbox restrictions).

The template renders processes as a 'whiteboard + sticky notes': a 1920×1080 canvas with a beige whiteboard paper #f4ede1 or cool gray whiteboard #f0f2f4 background, layered with an ultra-subtle hex grid (rgba(0,0,0,0.04)) to create a whiteboard texture.

next/src/lib/templates/skills/frame-flowchart-sticky/SKILL.md
【画布】1920×1080。背景: 米黄白板纸 `#f4ede1` 或冷灰白板 `#f0f2f4`; 加非常浅的 hex grid `rgba(0,0,0,0.04)` 让它有白板感。
Base color + hex grid form the foundation of the whiteboard feel; establish the material before placing content.

Node specifications are explicitly locked: 240×180px sticky notes, randomized across four colors (yellow #fcd34d / peach #fca5a5 / mint #a7f3d0 / sky #a5b4fc), slight rotation of ±2deg, drop-shadow, top tape linear-gradient decoration, and handwritten typography (Kalam/Caveat/Patrick Hand, Chinese LXGW WenKai).

next/src/lib/templates/skills/frame-flowchart-sticky/SKILL.md
- 每节点 = 一张 240×180px 便利贴, 4 套颜色随机分配: 黄 `#fcd34d` / 桃 `#fca5a5` / 薄荷 `#a7f3d0` / 天 `#a5b4fc`。
Dimensions, rotation, drop-shadow, and tape are rigidly defined to guarantee that spontaneous 'scribbled sticky' aesthetic.

Connecting lines utilize SVG Bezier paths: stroke #2a2a2a, width 2.5, round caps; solid lines denote sequence, stroke-dasharray 8 6 denotes conditional branches; arrows use marker-end black triangles; explicit rendering rules are set for branching (one node splitting into two) and merging (two converging into one).

next/src/lib/templates/skills/frame-flowchart-sticky/SKILL.md
- 用 `<path>` Bezier 曲线连接节点, stroke `#2a2a2a`, width 2.5, `stroke-linecap: round`, `stroke-dasharray: 0` (实线) 或 `8 6` (虚线 = 条件分支)。 - 箭头终端用 `marker-end`, 黑色三角小箭头。
Lines carry semantics: solid = sequence, dashed = condition; explicit drawing rules apply to arrows, splits, and merges.

The whiteboard aesthetic relies on intentional 'imperfection': nodes do not require center alignment, though connectors must stay clear without crossing; an optional Figma-style collaboration cursor (SVG arrow + name tag) can hover beside nodes.

next/src/lib/templates/skills/frame-flowchart-sticky/SKILL.md
- 一个"光标"装饰 (`<svg>` arrow + name tag), 浮在某节点旁, 模拟 figma 协作光标。
'Imperfect yet structured' represents the core aesthetic tension of this template (casual arrangement, non-overlapping lines).

Node counts are bounded within a range (minimum 5, maximum 12), and the content must originate from the user's authentic workflow—node text is taken directly from user input.

next/src/lib/templates/skills/frame-flowchart-sticky/SKILL.md
- 至少 5 个节点, 最多 12 个。
Node count bounds + requirement for authentic user content prevent the model from hallucinating steps.

2Core Capabilities

011920×1080 whiteboard canvas + hex grid texture (two background color options)
02Sticky note nodes: 240×180, randomized across four colors, ±2deg rotation, drop-shadow, and tape decoration
03Locked handwritten font families (Kalam / Caveat / Patrick Hand / LXGW WenKai)
04SVG Bezier connectors: solid/dashed lines distinguishing sequence vs. conditional branches, marker-end arrows
05Branching and merging (one-to-two, two-to-one) drawing specifications
06Collaborative cursor decorations (simulating Figma multi-user collaboration)
07Forbidden: full-screen dark themes, neon colors, corporate dashboard styles, Inter/serif fonts, external icon libraries
08Selector keywords: flowchart / process map / sticky / post-it / process

3External Dependencies

KindDependency / Endpoint
networkGoogle Fonts(Caveat / Patrick Hand / Inter / IBM Plex Mono,示例页实际引用)
networkTailwind Play CDN(共享指令强制;示例页亦引用)
networkhyperframes 目录页(frontmatter 出处标注,非运行时请求)

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Can be auto-loaded
For Administrators
Register source and version
Evidence & Triggers (File Paths & Excerpts)
  • SKILL.md: Pure prompt instructions and rule text, without script execution or external side effects.
Audit Notes: The audit scope is this skill's own directory (criteria: what actually happens when executed according to SKILL.md): SKILL.md contains pure prompt text, accompanied by example.md/example.html as sample and preview templates. The directory contains no scripts, no runtime network calls, no credential reading, and no agent-side disk writes; SKILL.md also specifies no external generation/service backends (in contrast to the orange precedents ai-image-generation / seedance, which send assets to external generation backends consuming account quotas; this template dispatches no assets externally). Informational items not affecting risk tiering: example.html in the directory links externally to cdn.tailwindcss.com and fonts.googleapis.com (Batch 4 criteria: external links in example.html are output samples and excluded from risk grading); the shared instruction layer similarly instructs outputs to link Tailwind and Google Fonts in the head via CDN (- Import Tailwind v3 Play (https://cdn.tailwindcss.com) and required Google Fonts via CDN in `<head>`), which is host shell behavior. Host context (excluded from grading, see verdict.risks): preview iframe uses sandbox="allow-scripts allow-same-origin"; host launches the agent with full permissions ("bypassPermissions" / "--yolo"). Additional note: SKILL.md conversely mandates avoiding external icon libraries (inline SVG only); the directory contains no scripts, no credentials, and no disk writes.

5Second-Pass Verification

  • [ok] 节点/连线/交互规格 — 重读 SKILL.md【节点】【连接线】【可选交互】三段,引用逐字一致(含 240×180px、±2deg、stroke-dasharray 8 6)。
  • [ok] 『不要外部图标库』结论 — SKILL.md 明写『单文件 HTML, 不要外部图标库 (用 inline SVG)』;示例页除 Tailwind/字体外无第三方资源引用。
  • [ok] 节点数区间与共享指令是否冲突 — 共享指令规定模板数字是参考下限、数量由内容决定;本模板的 5-12 是可读性范围,二者不冲突(已在 traits 说明)。
  • [ok] 外部端点存在性 — example.html 实测命中 fonts.googleapis.com 与 cdn.tailwindcss.com;hyperframes 链接仅在 frontmatter。
  • [ok] 安全面 — 目录内 3 个文件无自写脚本、无 fetch/表单外发、无凭证读取、无写盘。
  • [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
  • [unlocatable] 安装量 — 无公开安装量数据源,installs=null。

6Verdict & Scenarios

  • Translates the 'hand-drawn whiteboard aesthetic' into reproducible, quantitative specifications: dimensions, rotation angles, drop shadows, tape, paper base color, and hex grid, ensuring consistent output style.
  • Connectors convey semantics in addition to styling: solid = sequence, dasharray 8 6 = conditional branch, covering split, merge, and loop topologies.
  • Clear visual exclusions (prohibiting full-screen dark themes, neon colors, corporate dashboard styles, and Inter/serif fonts) prevent falling back into generic flowcharts.
  • Comprehensive font and language coverage: choice of three Western handwriting fonts + Chinese LXGW WenKai prevents Chinese process descriptions from falling back to default sans-serif typefaces.
  • Best for: Suitable for onboarding videos, operational process walkthroughs, and system architecture breakdowns where the process needs to look human-drawn; also ideal for training materials and process snippets in product launch videos.
    Not for: Not suitable for formal, precise, maintainable engineering flowcharts (it intentionally embraces hand-drawn styles over strict alignment); unsuitable for corporate dashboard requirements (explicitly excluded by the template); unsuitable for massive workflows with excessive nodes (capped at 12; exceeding this causes messy connector overlapping).
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload frame-flowchart-sticky.tar.gz
    sha256: 7a10e7dfc2816a51…
    Option B · Copy Guide for Agent
    install.json
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.