No injection code ever existed in this repository, so the marker was inert in all 22 multi SKILL.md files. Remove it and correct the skill authoring docs to describe safety rules as plain prose. Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
Skill Authoring Guide
Contract for the bundled agent skills under skills/. Skills are embedded via
skills/embed.go and installed by dws skill setup, so every edit ships with
the binary. Keep skill prose concise: long command references belong in
references/, not in SKILL.md.
Layout
| Path | Role |
|---|---|
skills/mono/ |
Single bundled skill (stable mode) with shared references/ and scripts/ |
skills/multi/dingtalk-<product>/ |
One skill per product (experimental mode) |
skills/multi/dws-shared/ |
Shared prerequisite: auth, global flags, routing, safety |
skills/embed.go |
Embeds mono + multi; do not add new roots |
A product skill directory contains:
dingtalk-<product>/
SKILL.md # frontmatter + concise routing/usage prose
references/ # long command references, playbooks
scripts/ # executable recipes (python), kept minimal
SKILL.md contract
Frontmatter:
---
name: dingtalk-<product>
description: <触发场景>. Use when … Distinct from <相邻skill>(…). 命令前缀:dws <product>。
cli_version: ">=<minimum dws version>"
metadata:
category: product
stability: experimental
requires:
bins:
- dws
---
Body rules:
- State the safety rules directly in concise prose; there is no injected preamble mechanism in this repository.
- State the
dws-sharedprerequisite for multi skills. - Route by intent: shortcuts table first when one covers the scenario, then
scripts/recipes, then atomic commands with
dws schema/--help. - Every referenced
dwscommand must exist in the current binary; verify withdws <cmd> --helpand keep prose version-agnostic ("以当前 dws 二进制为准"). - Mutating commands must point at the leaf Schema
confirmationcontract; do not invent confirmation rules in prose.
Dual-write rule
Skill behavior described in prose must match the CLI it references. When a
command, flag, or confirmation contract changes, update the affected SKILL.md
/ references/ in the same change; when skill routing changes, check whether
Schema selection hints (internal/cli/schema_hints/) need a reviewed update
per schema-contributor-guide.md.
Validation
| Change | Check |
|---|---|
| Any skill edit | make skill-command-integrity |
| Referenced CLI surface changed | ./scripts/policy/check-command-surface.sh --strict |
| Schema hints touched | make generate-schema + schema gates |
| Recipe scripts | run the script's own smoke path or test/skill_e2e when applicable |
make skill-command-integrity builds scripts/policy/skill-command-check and
verifies every dws command referenced by skills resolves against the current
binary. Run it before handoff; do not claim a command exists without it.