Skip to content
Agentmart
Submit a tool

tuyaopen-skill-maker

How to author or edit a skill in this catalogue: frontmatter contract, id naming rules (tuyaopen- prefix, no slashes), where the payload goes, the…

Skill by tuya

IndexedApache-2.0★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tuya-tuyaopen-skill-maker

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

How to author or edit a skill in this catalogue: frontmatter contract, id naming rules (tuyaopen- prefix, no slashes), where the payload goes, the Shortcuts-table rule (command names only, never flag lists), progressive disclosure into references/, how to word an out-of-scope handoff, index.json registration fields, version-bump rules, and local validation commands. Use when adding a new skill, editing an existing SKILL.md, or registering an item in skills/index.json. 如何在本目录新增或修改一个 skill:frontmatter 契约、id 命名规则(tuyaopen- 前缀、不含斜杠)、载荷放在哪里、Shortcuts 表规则(只写命令名不写 flag 清单)、references/ 渐进披露、"超出本技能范围"的写法、index.json 注册字段、 version 升号规则、本地校验命令。新增技能、修改现有 SKILL.md 或注册 index.json 条目时使用。

Use cases: documents, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/tuyaopen-skill-maker

What's inside

Skill name
tuyaopen-skill-maker
Description
How to author or edit a skill in this catalogue: frontmatter contract, id naming rules (tuyaopen- prefix, no slashes), where the payload goes, the Shortcuts-table rule (command names only, never flag lists), progressive disclosure into references/, how to word an out-of-scope handoff, index.json registration fields, version-bump rules, and local validation commands. Use when adding a new skill, editing an existing SKILL.md, or registering an item in skills/index.json. 如何在本目录新增或修改一个 skill:frontmatter 契约、id 命名规则(tuyaopen- 前缀、不含斜杠)、载荷放在哪里、Shortcuts 表规则(只写命令名不写 flag 清单)、references/ 渐进披露、"超出本技能范围"的写法、index.json 注册字段、 version 升号规则、本地校验命令。新增技能、修改现有 SKILL.md 或注册 index.json 条目时使用。
License
Apache-2.0
Compatibility
IDE capability broker and line-neutral platform tooling; Python 3 (for scripts/validate-skills-index.py, scripts/check-skill-version-bumps.py); Node.js (for tools/manifest-gen/bin/manifest-gen.js)
Metadata
owner: core-team · version: 1.7.3 · deprecated: false · min-cli-version: 0.1.0-beta.17
Instructions
409 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

## No `tuyaopen-cli` CLI coverage

This shared skill uses IDE surfaces, Broker capability IDs, and line-neutral platform tooling; direct CLI invocation is not part of this payload.

# TuyaOpen Skill Maker

This skill teaches the catalogue how to grow itself: writing a new
`SKILL.md`, registering it in `skills/index.json`, and passing the local
validators before opening a PR against `tuya/tuyaopen-ide-manifests`. It does
not cover any one skill's subject matter — for that, see the routing table in
skill `tuyaopen-start` (§ *Routing table*).

## Shared capability shortcuts

| Intent | Command |
|---|---|
| List every command's contract (use this to find which group/command your new skill should point at) | `IDE command reference [--group <g>]` |
| One command's flags/mutating/riskLevel | `IDE command reference --group <g> --command <c>` |

Flags aren't listed here — run `IDE command reference --group <g> --command <c>`
for the current set. Resolve `tuyaopen-cli` first per `tuyaopen-start` § 1 (it is
usually not on `PATH`).

## 1. Frontmatter contract

```yaml
---
name: <id>                    # MUST equal the payload directory name (see § 2)
description: >-
  <English description, keywords a retrieval system would match on>
  <Chinese description, same content — retrieval must work in both languages>
license: Apache-2.0
compatibility:
  - <runtime/tool prerequisites, one per line>
---
```

- `name` **must equal** the skill's `id`, which **must equal** the payload
  directory name (`skills/<group>/<id>/`). Since the 2026-08-14 reorg
  all three are mechanically the same string — getting them out of sync is a
  typo away, not a structural necessity, so double-check it.
- `description` carries **both** languages in one field (unlike the
  `index.json` `name`/`summary`/`whenToUse`, which are separate `en`/`zh-CN`
  keys) — include Chinese keywords even in an otherwise-English skill so
  retrieval matches a Chinese-language request too.
- `license` — every existing skill in this catalogue uses `Apache-2.0`;
  match it unless you have a specific reason not to.
- `compatibility` — a plain list of runtime/tool prerequisites (SDK
  activation state, TTY requirement, tool version floors). Optional but every
  existing skill has one.
- Suggested but not required by the validator: `metadata.requires.bins` (a
  list of binaries the skill assumes are on `PATH`) and `metadata.cliHelp`
  (the `--help`/`schema get` invocation an agent should run first) — neither
  is enforced today, but both make an agent's first turn faster.

## 2. id naming rules

- The `id` **is** the payload directory name: `skills/<group>/<id>/SKILL.md`.
  No nesting deeper than that — a sub-skill bundled inside a parent (e.g.
  `tuyaopen-embedded-hardware/references/peripherals/onchip-gpio/`) is fine, but it is not
  separately indexed and does not get its own top-level `<id>` directory.
- **No slashes in the id.** `.claude/skills/` (Claude Code's loader) walks
  exactly one level deep and silently skips anything nested further — a
  slash-bearing id like the pre-reorg `miniapp/ray-common` would install
  invisibly there.
- **Must be `tuyaopen-` prefixed.** This is not cosmetic: the **global**
  install hub (`~/.cursor/skills/`, see skill `tuyaopen-start` § 6) is the
  same directory the community `npx skills` tool (vercel-labs/skills) installs
  into. An unprefixed name (the pre-reorg `smart-panel-dev` is the example on
  record — it became `miniapp-development-workflow` for exactly this reason, with
  `smart-panel-dev` kept as an `aliases` entry) can collide with, and be
  silently overwritten by, an unrelated third-party skill of the same name. The
  prefix is the whole defense.
- The same argument applies **one level down**, to bundled sub-skills, because
  some hosts do not stop at the top level: Codex scans `$HOME/.agents/skills`
  recursively and registers every nested `SKILL.md` as an independent skill, so
  a sub-skill's `name` is a globally visible identifier there too. Hence the
  `tuyaopen/<slug>` namespace form under `references/peripherals/` — measured
  2026-08-17, when `peripheral-sd` was still announcing itself as
  `SD Card Storage`.

## 2a. The three layers, and which one you are writing

Every skill in this catalogue sits on exactly one of three layers. Deciding
which **before** you write is what keeps two skills from describing the same
thing differently — the failure mode this section exists for is real: for
months `iot-product-workflow` and `tuyaopen-cloud` declared the same
three CLI groups and both described creating a product, and nothing said which
one was authoritative.

| Layer | Named | Owns | One-line test |
|---|---|---|---|
| Mechanism | `tuyaopen-start` | CLI identity, the `--json` envelope, exit codes, the risk gate, command and skill self-discovery, the routing table, environment triage | True regardless of what you are building |
| **Phase** | `tuyaopen-workflow-<domain>-dev` | Step order, the state machine, each step's deliverable, **which steps only a human can do**, what is handed to the next phase | Delete it and the agent no longer knows *what to do next* |
| **Capability** | `tuyaopen-<domain>` | Which command groups the domain has, how a single command is invoked, what it requires first, domain concepts and traps, reference data | Delete it and the agent no longer knows *how to execute this step* |

Task skills (`tuyaopen-embedded-build`, `tuyaopen-miniapp-smart-ui`, …) hang
off the capability layer: one job, done one way.

### The two prohibitions that keep phase and capability apart

> **A workflow names commands but never explains them.**
> Write "Step 4 — create the product: follow `tuyaopen-cloud`'s create path".
> Do **not** copy that skill's invocation details, its reference tables, or its
> traps into the workflow.
>
> **A capability skill states preconditions but never order.**
> Write "`sync-schema` requires a bound product". Do **not** write "first bind
> the product, then sync-schema, then build".

The same fact can be phrased either way, which is exactly why the rule needs a
test rather than a feeling:

**Does the sentence still hold if someone arrives at this command out of
order?** If yes it is a precondition and belongs to the capability layer. If it
only holds while walking the sequence, it is order and belongs to the workflow.

### Workflows may name each other — the one exception

From tuya/tuyaopen-ide-manifests, Apache-2.0.

More from tuya/tuyaopen-ide-manifests

Signals

Stars
2
Forks
7
Open issues
0
Last commit (this folder)
Sep 16, 2026 (1 month ago)
Last release
Oct 20, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.7.3
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tuya

Cite this page

tuyaopen-skill-maker. Agent Mart. https://agentmart.dev/skills/tuya-tuyaopen-skill-maker (last updated 2026-10-24)