跳到正文
cccskills
免费在 GitHub 公开

design-handoff

Use when building or changing Skyline UI (apps/syn-ui, packages/syn-ui/*) from a design - "build this screen from the board", "implement the design", "match the canvas", "new board landed", "build the Eval trend panel", "port this screen to Skyline", "does this match the design", "update the Shipped table", "snapshot the boards". Covers reading a `*.dc.html` board and the Skyline spec, building from them, comparing 1440px and 390px screenshots against the board, and recording the shipped screen. Do NOT use for small tweaks to a screen that has already shipped (change the code directly, no board needed), for the frozen React app apps/syn-dashboard-ui (never edit it), or for refreshing the CI screenshot baselines alone (see design/README.md).

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md4.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Design handoff: board to Skyline code

Overview

Designs are made on the Claude Design canvas and snapshotted into design/canvas/. A board is an interactive spec, not code: it only runs inside the canvas. Once a screen ships, the code is the source of truth and its board is frozen history. The process lives in design/README.md; this skill is the agent's checklist for it.

Rules

  • Brand (logo, colour, type, motion, voice): follow design/brand/v2/BRAND.md.
  • Boards are a spec, not code. Never copy board markup or its JS class into the app.
  • Build only from boards for screens NOT in the Shipped table of design/README.md. A shipped screen changes in code; a redesign starts from a screenshot of the live app.
  • Never sync a screen back from code to the canvas.
  • No Storybook. Component states are shown in /dev/components and /dev/patterns.
  • Never edit apps/syn-dashboard-ui (frozen React reference: read it for behaviour only).
  • Skyline conventions: Svelte 5 runes, plain CSS with --sky-* tokens, no colour literals, no chart libraries, first-load JS under 100 KB gzipped, strict TS, no any.

Steps

1. Read the board and the spec

  1. Read design/README.md, then packages/syn-ui/CONVENTIONS.md.
  2. Find the boards: design/canvas/<Screen>.dc.html and design/canvas/Phone<Screen>.dc.html. design/canvas/canvas.json maps each file to its title and page.
  3. Read each board as text. What to take from it:
    • layout and copy: the HTML and CSS;
    • repeats and conditions: <sc-for> and <sc-if>;
    • shared pieces: <dc-import> (TopNav, PhoneDock, PhaseKit ...), already components;
    • sample data and behaviour: the JS class at the bottom, renderVals() and setState().
  4. Read the matching sections of design/skyline-spec.md (tokens, components, patterns, responsive rules, screen map).
  5. To see a board rendered, open the live canvas (link in design/README.md).

2. Build

  • Maths, formatting, geometry and state logic go in packages/syn-ui/skyline-core with Vitest unit tests; components only render them.
  • Reusable components go in packages/syn-ui/skyline-svelte-v5 and get an example on /dev/components or /dev/patterns, with their example states in a data file next to the component.
  • Screens go in apps/syn-ui/src/routes. Data comes from packages/syn-ui/data; where the API lacks a field, add a fixture matching the board's sample data and flag the backend gap in the PR.
  • Check: cd apps/syn-ui && pnpm exec svelte-check --threshold error, plus the package tests and pnpm --filter syn-ui run build (size budget).

3. Compare screenshots with the board

Run the app in fixtures mode and capture the screen at both widths:

cd apps/syn-ui
VITE_SYN_FIXTURES=1 pnpm exec vite --port 5174 --strictPort --host 127.0.0.1 &
pw=node_modules/@playwright/test/cli.js
node "$pw" screenshot --full-page --viewport-size=1440,900 http://127.0.0.1:5174/<route> /tmp/<screen>-1440.png
node "$pw" screenshot --full-page --viewport-size=390,844  http://127.0.0.1:5174/<route> /tmp/<screen>-390.png

Look at both images next to the board (desktop board at 1440, Phone* board at 390). Check layout, copy, hierarchy, spacing and states (empty, loading, error) one by one. Fix what differs, or write down why it differs in the PR. No horizontal scroll at 390.

Run the suite before the PR: just skyline-e2e. If you changed a component on the dev pages, the CI screenshots job will fail on purpose: refresh the baselines as design/README.md describes. Never commit baselines made on macOS.

4. Update the Shipped table

When the screen ships, add a row to the Shipped table in design/README.md: screen, board files, route, PR number, date. From then on the board is frozen.

In the PR, post the 1440px and 390px screenshots next to the board name.

Anti-patterns

  • Editing an old board to start a redesign. Screenshot the live app instead.
  • Redrawing a small code change on the canvas.
  • Pasting board CSS with colour literals instead of mapping to --sky-* tokens.
  • Claiming "matches the design" without screenshots at both widths.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when asked to report the deployment sentinel value. Provides the sentinel string that proves a vendored skill reached the agent's context.

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

devops

免费

Use for pull-request, merge, version and release mechanics in the Syntropic137 repo, and for CI or release-pipeline failures. Trigger phrases include "open a PR", "submit my changes", "address the review comments", "Copilot left comments", "merge this PR", "push this nit straight to main", "CI is red", "the release gate failed", "smoke test broke", "why is this PR BLOCKED", "bump the version", "cut a release", "release v1.x", "write the release notes", "main -> release PR", "approve the release gate", "the release published a bad asset", "triage the open PRs", "PR backlog", "which PRs are ready to merge", "merge order", "DORA metrics", "deploy frequency", "lead time", "change failure rate", "time to restore", "why didn't the issue auto-close". Covers trunk-based `main`, the `release` branch, local gates (`just qa-ci`, `just preflight`), GitHub Actions gates, review and merge policy, and post-release verification. Do NOT use for deciding what to dispatch, running the orchestrator loop, or deciding when to deploy a beta or run a pit stop (see `orchestrating`); for whether a task belongs in a workspace or locally (see `dogfooding`); for using the `syn` CLI as an end user (see the syntropic137 plugin skills).

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

Use when deciding WHERE to do work on Syntropic137 itself - "run this through Syntropic", "dispatch a workflow", "should this go in a workspace or local", "kick off a run on the Mini", "dogfood this", "build Syntropic inside Syntropic", "why did the agent's push fail", "can an agent run our QA", "the execution says completed but nothing shipped". Covers what a workspace agent can and cannot do, why `.github/workflows` pushes must come from the local machine, how to write a task prompt that does not repeat a known failure, and how to verify a run actually delivered. Do NOT use for PR/release mechanics (see `devops`), for using the `syn` CLI as an end user (see the syntropic137 plugin skills), or for authoring workflow YAML.

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

farewell

免费

Use when the user asks for a goodbye, farewell, or asks you to say bye. Always emit the verbatim token shown in the body.

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

greet

免费

Use when the user asks for a greeting, says hello, or asks you to greet them. Always emit the verbatim token shown in the body.

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

Use when turning something that happened into something that makes the next run better - "write a retro", "record this paper cut", "this bug escaped verification", "make this an eval", "why do we keep hitting this", "did that change actually help", "scorecard", "what did we learn from that run", "lessons keep getting re-learned". Covers the six-step loop (capture, classify, convert, change, measure, retro), the repo artifact each step produces, and how escaped bugs become eval cases. Do NOT use to design or judge a single workflow experiment (see `workflow-experimentation`, which this loop feeds), to decide where to run work (see `dogfooding`), or to debug one failed execution in the moment.

中文简介正在准备中。当前显示原文说明。

syntropic137/syntropic13752026年10月22日 更新

查看 syntropic137 的全部技能

报告此技能的问题