🧪 EXPERIMENTAL · Experimental version / Preview — multi mode currently does not meet the stable standard. All dingtalk-* skills have passed the dispatch verifier, but interfaces, naming, and cross-skill references may be adjusted later; for production / shared environments, please prefer mono mode (
dws skill setup --mode mono). Please file an issue for feedback on problems.
PREREQUISITE: Read the
dws-sharedskill first for auth, global flags, product routing, URL preflight, error codes, and safety rules. Thedwsbinary must be on PATH.
⚠️ Command availability is subject to the current dws binary. Service discovery has been taken offline; this document is released with the built-in skill; if
dws <cmd> --helpdoes not exist, it means the current version does not expose this command. If the command exists but the call fails, please follow the endpoint or tool hints in the error to confirm the static endpoint catalog and backend tool registration. Before actual invocation, you can usedws <cmd> --helpor--dry-runto verify.
Command reference:attendance.md。
Shortcuts (preferred when there is no dedicated script/recipe)
The following shortcuts come from a public catalog independent of the Runtime Schema. First route by this skill's intent table, scripts, and recipes: when a dedicated script/recipe that precisely covers the scenario exists, execute according to it; otherwise, when the user's intent matches, shortcuts take precedence over handwritten atomic commands. Use dws shortcut list --service attendance --format json to read parameters, constraints, risks, and examples, and use dws attendance <shortcut> --help to check the current Cobra flags; do not call + on the dws schema。
| Shortcut | Risk | Applicable scenario |
|---|---|---|
dws attendance +check-record |
read | Query a user's clock-in records (clock-in time/location/location method) |
dws attendance +check-result |
read | Query a user's clock-in results (late/early leave/missing clock-in, etc.) |
dws attendance +get-adjustment-rule |
read | Query missed clock-in correction rule details by the correction rule primary key ID |
dws attendance +get-approve-template |
read | Query the approval submission links for missed clock-in correction/leave/overtime/outing/business trip |
dws attendance +get-checkin-record |
read | Query the check-in records of a specified employee over a period of time |
dws attendance +get-leave-records |
read | Query the leave balance change records of a specified employee |
dws attendance +get-overtime-rule |
read | Query overtime rule details by the overtime rule primary key ID |
dws attendance +get-schedule |
read | Get the scheduling records of a specified user over a period of time |
dws attendance +get-self-setting |
read | Query personal rule settings (clock-in reminder/quick clock-in/missing clock-in reminder, etc.) |
dws attendance +get-summary |
read | Query a person's attendance statistics summary (weekly/monthly) |
dws attendance +list-approve |
read | Query a user's attendance approval forms (missed clock-in correction/overtime/leave/business trip outing) |
dws attendance +list-leave-types |
read | Query the list of leave rules available to the current user |
dws attendance +my-attendance |
read | Check my clock-in records for today (clock-in records, automatically resolving the current user) |
dws attendance +query-report-data |
read | Query attendance report data by fields (administrators only) |
dws attendance +search-adjustment-rule |
read | Query the list of missed clock-in correction rules that the current user can manage |
dws attendance +search-class |
read | Query the list of shift details that the current user can manage |
dws attendance +search-group |
read | Query the list of attendance groups that the current user can manage |
dws attendance +search-overtime-rule |
read | Query the list of overtime rules that the current user can manage |
dws attendance +this-month |
read | Check my clock-in records for this month (clock-in records, automatically resolving the current user) |
Intent table
| User says | Command |
|---|---|
| "Check my / someone's clock-ins for a certain day" | dws attendance record get --user <userId> --date <YYYY-MM-DD> |
| "Check attendance groups / attendance rules / clock-in range" | dws attendance rules --date <YYYY-MM-DD> |
| "Check shifts / scheduling / who is on what shift today" | dws attendance shift list --users <userId1,userId2> --start <YYYY-MM-DD> --end <YYYY-MM-DD> |
| "Attendance statistics / weekly and monthly summaries / attendance days" | dws attendance summary --user <userId> --date <YYYY-MM-DD> --stats-type week|month |
| "Leave / overtime / missed punch correction / business trip records or submission links" | dws attendance approve list / dws attendance approve templates --type <类型> |
| "Shifts / missed punch correction rules / overtime rules / attendance groups query and modification" | class / adjustment / overtime / group Subcommand |
| "Scheduling / leave rules / leave balance / check-in / reports" | schedule / vacation / checkin / report Subcommand |
For the complete command set (including write operations and parameters), see references/attendance.md。
High-frequency hard constraints for evaluation
- Currently dws has registered all attendance subcommand groups (
record/check/approve/shift/schedule/class/adjustment/overtime/group/summary/rules/selfsetting/globalsetting/vacation/checkin/report/boss-check), and most queries and write operations can be called directly against the backend.Do not refuse to answer on the grounds that "the open-source version is read-only/does not support write operations." Write operations such as creating shifts, importing schedules, adding people to attendance groups, saving personal rule settings, and setting leave balances can be executed, but you must first show a parameter summary and confirm a second time, then append--yes(or--user-say-yes) to execute; do not write directly without confirmation, and do not pretend success. Some commands return empty or permission errors due to permissions/data (e.g.,reportseries are administrators only), just explain truthfully. - When querying the list of late/absent people, an empty punch result does not equal "no one is late." You must explain separately in combination with schedules,
NotSigned、Absenteeism, and people with no records; missing data should be marked as "no record/unable to determine" and not classified as normal. - When doing department Top N rankings, if the user asks for the top N, you must output N departments; departments with no punch records or no calculable data should be retained in the ranking as 0 or "no data", and you cannot output only the few departments that have data.
summarymust be passed together with--user、--date、--stats-type(week/month); if either is missing, C0002 is returned.shift listThe time span must not exceed 7 days, with at most 50 people;record getqueries only one user for one day at a time.- All dws commands include
--format json, and time/date useYYYY-MM-DDoryyyy-MM-dd HH:mm:ss。
Cross-product collaboration
- Before getting userId, first use
dingtalk-aisearchto resolve the person's name