跳到正文
cccskills
免费在 GitHub 公开中文介绍

ui-copy

撰写和审阅英文界面文案,让用户看懂发生了什么以及接下来能做什么。覆盖按钮、错误、设置、通知和无障碍标签,并保持用词与格式一致,保留已有文案中有意设计的语气。

原文查看原文说明

Copy rules for every user-visible string in riptide-ui, riptide-cloud, packages/ui, and server strings that reach a toast. ACTIVATE when adding, changing, or reviewing a button, menu item, dialog, toast, error, empty state, placeholder, tooltip, aria-label, setting, hotkey description, banner, or onboarding text. Not for apps/docs, the CLI, or comments.

humanlayer/humanlayer星标 12,707(GitHub 12,707 + cccskills 0)
集成工具Jira

实测评分 未实测

查看安装方法

适用场景

  • 编写清晰的按钮和菜单文案
  • 说明错误及用户可采取的操作
  • 检查术语和格式是否统一
  • 审阅空状态与屏幕阅读器标签

中文介绍

功能

此技能用于撰写和审阅界面中显示的英文文案,包括按钮、菜单、错误、通知和设置。文案应说明对使用者意味着什么,以及接下来可以做什么,而不是描述系统内部状态。技能还为大小写、标点、数字、按键名称、产品术语和屏幕阅读器标签制定了具体规则。

适用场景

当不同界面的用词不一致,或错误信息没有说明下一步操作时,可以使用此技能。审阅已有文案时,它会区分机械性错误和语气判断,只修改确实需要修正的部分。对于刻意采用独特表达的文案,也会避免一律改成相同语气。

使用示例

  • “请重写这条错误信息,让用户明白影响和下一步操作。”
  • “检查这些按钮和设置项的措辞是否一致。”
  • “审阅空列表提示和对应的屏幕阅读器标签。”

注意事项

适用范围包括 riptide-ui、riptide-cloud、packages/ui,以及会显示为通知的服务器端文案。不涵盖 apps/docs、CLI 和注释。规则包含 HumanLayer 专用术语表。宣传文案和主要标题通常不在范围内,除非存在事实错误。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
A良好资料涉及文案撰写与审阅,未说明对外发送或破坏性操作。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足资料列出目标代码库和术语表,但未说明安装步骤或要求。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月29日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

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

包含的文件(1)

  • SKILL.md14.1 KB

SKILL.md(原文)

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

First rule: write to the person, never about the system. Every string answers "what does this mean for me and what can I do now?", never "what state is the code in?". A string that narrates internal state, preconditions, or implementation progress is a log line, not copy, even when it is accurate. Before any rule below, reread the string as the user and ask what they would do next. Workspace setup is running independently. No session has started. → Setting up your workspace. Your session starts when it finishes. Worktree configuration is required to use "Now". → Add a workspace config to create worktrees now. Task creation sync timed out → Could not confirm the task was created. Check the task list before retrying. Comment sync still loading → Comments are loading. Workspace setup row is parked on an error → Workspace setup failed. Converging, Delivery rejected: … → never.

Voice: a competent colleague at the next desk. Says the actual thing, names the key, admits limits. Never apologizes, sells, or shouts. Model string: Updating will interrupt 3 active sessions on this device. Finish your work before updating, or choose Later.

Changing a string that already ships

Writing a new string: apply everything below. Changing one that exists: read this first. A rule matching a line is not on its own a reason to rewrite it.

  • Two kinds of finding. Mechanical — a raw enum, Title Case, ..., ENTER, (s), an internal name, Failed to, "please", a dead route. One right answer, no taste, fix it. Voice — hero lines, warnings, tips, empty states, anything with a deliberate point of view. Here the rule is a prompt to look, not a verdict.
  • Change the defect, not the sentence. If one word is wrong, fix that word. …how Riptide queries data… You probably don't want to mess with these. needed Riptide → HumanLayer and nothing else.
  • If the rewrite is only more conformant, stop. It must be clearer, more honest, or more useful to the reader. "Now it follows the guide" is not a benefit anyone experiences.
  • Never bulk-rewrite voice. Mechanical findings batch; voice findings go one at a time, with the tension named, for a person to decide. An audit that proposes 180 rewrites has stopped reading and started matching.
  • Hero and marketing copy is out of scope unless it is factually wrong. The install page and the composer headline are written on purpose.
  • When you are unsure which kind you have, it is voice. Leave it and say why you looked.

Mechanics

  • Sentence case everywhere: buttons, titles, headings, menu items, labels, badges, tabs, toasts.
  • Proper nouns keep casing: HumanLayer, HumanLayer Cloud, Claude Code, Codex, Fold, GitHub, Linear, Jira, Slack, Stripe, macOS, Starter/Pro/Enterprise, RPI, PRD, TDD.
  • Feature names are common nouns: fast mode, bypass permissions, auto-accept edits, multiplayer prompting, advanced metrics, commit tracking.
  • Never uppercase in the source string: write Needs approval, not NEEDS_APPROVAL; DENY → Deny. Rendering is then a CSS decision in one place, and the default is not to uppercase. The terminal-style caps on badges and eyebrows accreted rather than being designed, and the app reads better without them; keep them only where a surface earns it.
  • Never render a raw enum (needs_approval, xhigh). Add a label map first.
  • Full sentences end with a period. Fragments (buttons, labels, badges, placeholders, toast titles, headings, hotkey descriptions) do not.
  • Ellipsis is …, only on in-progress labels: Saving…. Never ..., never on placeholders.
  • Em dash with spaces for a consequence. · between status facts (This device · online). → for sequences. – for ranges (2–4×). Oxford comma. Straight quotes.
  • No !. & only in a compact two-verb button (Interrupt & send); prose uses "and". No + in prose.
  • Address the user as "you".
  • Actor: you do what you click (install the GitHub App, connect Linear, start a daemon). The agent does the work in a session (fixes, implements, opens a pull request). HumanLayer only does what happens on its own with no click (syncs, checks this device, sends a notification). Otherwise no subject: Could not save draft. Connect GitHub so the agent can open pull requests. HumanLayer checks this device before your first task.
  • Never the company "we" — a faceless narrator reporting or apologising: We couldn't fetch your organizations, Something went wrong on our end, we'll investigate. Rewrite with no subject or with HumanLayer as the subject.
  • The collaborative "we" — you and the agent, as a pair — is allowed, and only in the composer where that pairing is literally what is happening: What should we build today? stays. Do not extend it to status, errors, or settings.
  • Never "please", "sorry", "successfully", "just", "simply", "Something went wrong", "Are you sure". No roadmap hedges: "currently", "not yet", "coming soon". yet in an empty-state fact (No tasks yet) is fine.
  • Do not sand off personality. A line with a point of view is not a defect. You probably don't want to mess with these is doing a real job; flattening it to Change these only when asked to is the machine talking. Fix what is wrong in a line (an internal name, a raw enum) and leave the rest alone. If a rewrite is only blander, do not make it.
  • Use contractions (can't, don't, isn't). The one exception is cannot in irreversibility warnings: This action cannot be undone.
  • No internal names (Riptide, CodeLayer, Launcher V3, Projects V2, Phase 5, route paths, ISO timestamps, WorkOS).
  • Digits, real plurals (1 session, 2 sessions, never (s)), thousands separators. Zero is a word: No sessions, not 0 sessions.
  • Time: relative in lists (3 min ago, yesterday), absolute in the tooltip (Sep 10, 2026, 15:04), durations as 2m 3s.
  • Truncate the end of a title and the middle of a path (~/code/…/riptide-ui). Never truncate a number or a key.
  • Keys: ⌘ ⇧ ⌥ / Ctrl Shift Alt, joined with +, Enter, Esc, uppercase letters. Always give the non-mac form. Never Cmd, ENTER, ↵, ⌃. A key is a keycap element next to the label, never typed into the label string. In this document a key shown after a label means a keycap.

Session status labels

valuelabel
draftDraft
ready_for_launchQueued
waiting_for_workspacePreparing workspace
launching, resumingStarting
runningRunning
ready_for_inputIdle
needs_approvalNeeds approval
interrupt_requestedInterrupting
interruptedInterrupted
failedFailed
lostStalled

Shapes

typeshapeexample
Button, menu itemverb + object; bare verb when the object is the dialog subject; in-flight = gerund + …Create task, Delete, Creating…. Not OK, Yes, Submit, Confirm, Got it
Success toasttitle = object + past participle; partial success: title names the win, description the missDraft saved. Token created / The token list could not be refreshed.
Error1 what happened Could not <verb> <object> 2 what it means for your work 3 what to do or an action buttonCould not send. Your draft was restored. Not Failed to, Unable to, Error, Unknown error
Blocked statethe precondition as an instructionConnect a host to launch
Integration promptConnect <Product> to <payoff>; payoff is one clause naming what appears or what the agent can do; optional cost hint as status factsConnect GitHub to see pull requests and checks here · about a minute · opens github.com
Capability limitlimit + alternativeTerminal is not available for sessions on remote hosts.
Permission denialwho can fix itOnly organization admins can manage billing. Ask an admin.
Retryonly when it can succeed, with a how or when; never bare Please try again.Refresh billing and try again.
Raw backend textnever a title; description or Show details
Confirm dialogtitle <Verb> <object>?; body = consequence, what is preserved, undoable?; confirm = title verb; Cancel + Esc; confirm = ⌘+EnterArchive project? / Existing workspaces are not deleted. / Archive
Reversible actionno dialog; undo toastSession archived + Undo Z
Warninglist the consequences; never an intensifiernot Use with extreme caution!
Empty statefact, then what fills it or what to do, with keyNo tasks yet / Create a task to organize your sessions + Create task T
Loadingname the work or actorCreating worktrees…, Asking the agent…; plain Loading… only when nothing more is true
Step listshort noun phrase; states Pending / In progress / Complete / Failed / SkippedPrepare launch
Placeholdernoun phrase, instruction, or format example; no …, no period; a key hint is keycap + textSearch tasks, you@company.com, ENG-123 or a Linear issue URL, Enter to start typing
Setting labelnoun phrase, not Enable XDefault coding agent
Setting descriptionone sentence: on, and off if not the obvious inverse; experiments say what changes and what does notSend all queued messages together as soon as the session is ready. Turn off to send one at a time.
Org lockYour organization has turned this off.
Tooltip (icon button)action label + keycapToggle terminal ⌘+T
Tooltip (explainer)one or two full sentences
aria-label (control)verb + object, no key, no periodCopy file link
aria-label (region)noun phraseDocument outline
Toggle state (aria){label}: on / : off
Hotkey descriptionverb + object, no articleOpen command palette. Reuse hotkeysCatalog.ts wording
Bannertitle fragment + one-sentence body; route non-admins to a personPayment overdue / Update billing details to avoid blocked writes.
Notification toasttitle = event; body = session or task; action = verb + keyNeeds approval / Jump to session ⌘+⇧+J
Money, ratesas charged$3.84 / commit, 2–4×

Glossary

conceptusenot
productHumanLayer; HumanLayer CloudRiptide, CodeLayer, Codelayer, the app, the application
unit of worktaskticket (= the Linear/Jira issue), project
one agent runsessionconversation, chat, run
unlaunched task/sessiondraft, Untitled draftUntitled session
reusable repo recipeprojectworkspace, recipe
session output documentartifactdocument, doc, file
repo file or attachmentfileartifact
per-task checkoutworkspace, workspace setupworktree setup
git worktreeworktreeworkspace
top-level panetabworkspace
machine that runs sessionshost; this device; remote hostcomputer, machine, worker, daemon host, locally
process on a hostdaemon (only when starting, stopping, installing)host
the AI in prosethe agent; coding agent (category); subagentClaude, bot, model, sub-agent, assistant
the AI as an identity label (speaker, badge, picker)the product name: Claude Code, Codex, Foldclaude code, codelayer
tenantorganizationorg, team, workspace
people in itmember; teammates when invitinguser
rolesadmin, member; owner (of a task/artifact)administrator, org admin
tool-call decisionapprove / deny; allow (standing rule)accept, reject
hide reversiblyarchive / unarchiveun-archive, remove
to trashdeletearchive, dismiss
close a nudgedismissdelete, hide
thread lifecycleresolve / reopenmark as resolved, close
comments to agentsend to agent; send and resolvecopy for agent (= clipboard)
permission modesbypass permissions, auto-accept edits, manualYOLO, Auto-Accept, default
priority tierfast modeFast Mode, priority-tier
reasoning budgeteffortreasoning effort
GitHub PRpull request (prose), PR (labels)merge request
metricsTeam metrics, Advanced metrics, cost per commit, cost per 1,000 lines changedkLOC
filesystem locationdirectory; path (the string)folder

Open product decisions, do not add a third name: the codelayer agent option is labelled Codex, shows as CodeLayer in badges, and becomes Fold under a flag; workflows have two label sets (RPI / PRD / TDD / Freeform / Exploratory and Small / Medium / Large / Exploratory).

Rewrites

beforeafter
Failed to approveCould not approve the tool call. The agent is still waiting.
We couldn't fetch your organizations. Please check your connection and try again.Could not load organizations. Check your connection and retry.
Something went wrong on our end. Please try again later.Could not reach HumanLayer. Try again in a moment.
An unexpected error occurred. The error has been reported and we'll investigate the issue.This page could not be rendered. The error has been reported. + Try again
User role updated successfully / Draft saved!Role updated / Draft saved
APPROVE & DON'T ASK AGAINApprove and don't ask again
Use with extreme caution!The agent will edit files, run commands, and call tools without asking. Turn it off any time with ⌥+Y
ENTER to start typing...Enter to start typing
No hosts available. Please start a daemon first.No hosts online. Start a daemon to launch sessions.
Organization created, but 2 invite(s) failed. Manage invitations at /admin/invitationsOrganization created, but 2 invitations were not sent. + Manage invitations
Agent delivery is added in Phase 5remove the control until it ships

评价

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

评论

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

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

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

0 / 1000 字

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

同一仓库的技能

Automate website navigation, form entry, and clicks through a browser command line tool. Extract page text, capture screenshots, and compare page states to check interactions or test web app behavior across screen sizes.

中文简介正在准备中。当前显示英语简介。

  • Automate form entry and button clicks
  • Extract text from web pages
  • Save page screenshots and PDFs
humanlayer/humanlayer1.3万2026年10月29日 更新

asd-ste100

免费有简介

依据 ASD-STE100 的原则,将含糊或冗长的英文改写为简短、直接的句子。保留事实和条件,指出问题与修改理由,并用表格对照原文和改写内容。

  • 明确给其他智能体的英文指令
  • 简化英文工具说明或错误信息
  • 整理给非英语母语者阅读的内容
humanlayer/humanlayer1.3万2026年10月29日 更新

better-github-skill

免费有简介

通过专用脚本查看 GitHub 拉取请求状态、评审对话和 CI 失败信息。汇总检查结果与未解决的讨论,并查看失败任务或步骤的日志片段;完整日志会保存到文件。

  • 汇总拉取请求状态
  • 查看未解决的评审对话
  • 调查失败的 CI 任务和步骤
humanlayer/humanlayer1.3万2026年10月29日 更新

bump-version

免费有简介

为支持的程序包更新发布基准版本,同步相关文件中的版本字段并核验生成结果;流程还包括提交、推送,以及合并后的发布说明。

  • 提高发布用的程序包基准版本
  • 同步多个文件中的版本字段
  • 推送前核验生成版本
humanlayer/humanlayer1.3万2026年10月29日 更新

calldiff

免费有简介

比较Git提交、分支或工作区代码中的函数调用结构,可查看调用树、追踪函数间的调用路径,并支持22种语言。

  • 比较代码修改前后的调用关系
  • 审查不同分支的调用结构
  • 追踪两个函数之间的调用路径
humanlayer/humanlayer1.3万2026年10月29日 更新

chrome-devtools-cli

免费有简介

通过 `chrome-devtools-mcp` CLI 在终端自动操作浏览器,包括查看页面元素、点击和填写表单、切换标签页及截图,还可检查网络请求、控制台消息、性能和内存。

  • 自动填写表单并跳转页面
  • 截取页面或元素图像
  • 检查网络请求和控制台错误
humanlayer/humanlayer1.3万2026年10月29日 更新

查看 humanlayer 的全部技能

报告此技能的问题