본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고