Treat this file as a lightweight common prerequisite for all DWS operations. For clear single-product requests, directly use the corresponding
dingtalk-* skill; only when DWS is referred to generically, for cross-product flows, URL pre-checks, or unclear intent, use this
skill as the entry point for second-level routing.
All DWS operations must comply with the following
- Operate DingTalk products only through the
dwsCLI; do not bypass with curl, private HTTP APIs, or a browser. - All structured machine-readable commands use
--format json, and results are judged by the actual returned fields. - Second/millisecond timestamps in responses must be converted to human-readable date-times with time zone before being presented to the user; by default use the
current session time zone (in this environment,
Asia/Shanghai), and retain the original value when necessary; it is forbidden to hand only a bare timestamp to the Agent or user for determining the specific date. - Do not guess commands, flags, field names, UUIDs, nodeIds, userIds, email addresses, phone numbers, or URLs.
- When the user has clearly stated the product content intent, the intent takes precedence over the URL form.
.mdand other local-format files are treated as ordinary files and go throughdrive: firstdws drive downloaddownload locally for processing, then usedws drive uploadto upload back. - When unsure about a command or parameter, first run the closest-level
dws <path> --help; it is forbidden to directly assemble natural-language synonyms into commands. - IDs used in subsequent steps must come from the actual returns of the previous step; when multiple people share a name, there are multiple targets, or the type is unclear, disambiguate first.
- In multi-account scenarios, when only an organization is passed, use the default account of that organization's unique
isOrgCurrent=true; if a multi-account organization has no default account, first ask the user to specify an account; it is forbidden to choose the first item, the most recently logged-in, or the most recently used account. For account selection and cross-organization rules, see../dingtalk-profile/SKILL.md。 - Do not output, relay, or record credentials such as tokens, refresh tokens, or appSecret. When the host has already injected authentication, do not require the user to provide credentials again.
- Write operations must conform to the user's explicit intent. For deletions, approval decisions, and other irreversible/high-impact operations, first present
the object, action, and impact, and only append after obtaining explicit consent
--yes; silent confirmation is not allowed. - After write operations such as create, update, or send, read back or query the status as required by the product skill; do not claim success based solely on the exit code.
Progressive Loading
Only read the files needed for the current task; do not load all shared references at once:
| Current situation | Required reading |
|---|---|
| A single product is already clear | The corresponding ../dingtalk-*/SKILL.md; do not read the routing reference |
| DWS is referred to generically and a product needs to be selected | routing.md |
| Cross-product, multi-step, summary, or report | workflow-routing.md |
| The input contains DingTalk URLs such as alidocs or shanji and the type is unclear | url-patterns.md |
| Product boundaries are still difficult to determine | intent-guide.md The relevant section of |
| Authentication, global flags, or output format issues | global-reference.md |
| The command has already returned an error | error-codes.md; look up only the section corresponding to the error |
| Suspect the capability is not supported | capability-limits.md |
| Batch/multi-source collection | conventions.md |
| Fixed short workflow | lite-recipes.md Corresponding section |
Product commands, scripts, and field details are in the corresponding product skill, not in dws-shared for duplicate maintenance.
Routing order when this skill serves as the entry point
- First identify a clear product content intent; a clear intent goes directly to the corresponding product. Only when the input contains a DingTalk URL and the type is unclear or the intent may conflict with the link type, read
url-patterns.mdto identify the node type. - The request contains multiple sequential steps, cross-product data passing, or a summary report: even if the URL has been identified, also read
workflow-routing.md, and combine the required product skills according to the action guide; the current release package does not include an independent scenario skill. - The request is a single-product operation but the product is unclear: read
routing.md, then explicitly read the target productSKILL.md。 doc/drive/wiki、aitable/sheet、calendar/conference/minutesand other boundaries are still unclear: only readintent-guide.mdthe corresponding section.- If it still cannot be determined, ask the user, and do not guess the product or command.
Cross-skill execution
- Relative in the body
Readlinks are runtime dependencies;metadata.requires.skillsis not loaded automatically. - After selecting the target product, the target skill's commands, parameters, and risk rules take precedence.
- Multi-step processes pass real return values in order; read-only collection that can be parallelized is executed according to the corresponding workflow/reference, while write operations are serial by default and verified step by step.
- Clear operations already inlined in the product skill are executed directly; only when encountering parameters or boundaries not covered by that skill, read the deeper reference.
Shortest error path
unknown command/unknown flag: run the corresponding level--help, and after correction retry at most once.- Authentication or permission error: read
global-reference.mdanderror-codes.mdthe corresponding section. - Other errors: add
--verboseretry once; if it still fails, stop and report the real error, and do not continuously try alternative commands. - Clearly unsupported capabilities: explain the boundary, and do not bypass it through other interfaces.