F
SCORE 0 / 100
$skillox install dingtalk-todoSoon
Sign in to followFollowing emails you when a re-scan drops the grade. Opt-out is per-creator on /account/billing.
Why grade F?
score · 0 / 100The current grade reflects 4 critical findings (any 2+ CRITs → F).
4 CRIT0 HIGH1 MED0 LOW
To reach a higher grade
- DReach Dtarget score 30
Resolve 3 of your 4 CRIT findings — any single CRIT still keeps you at D.
- CReach Ctarget score 55
Resolve all 4 CRIT findings.
- BReach Btarget score 75
Resolve all 4 CRIT.
- AReach Atarget score 95
Resolve all 4 CRIT.
Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.
Latest scan findings
Scan crawl-qfdw5qvs4vvgftdqv7hqw1xy · Thu, 28 May 2026 17:50:07 GMT · 1ms
critURL embeds a credential variableThe skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.▾
URL embeds a credential variable
The skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.
48```bash
49# 1. 获取旧版 token
50OLD_TOKEN=$(curl -s "https://oapi.dingtalk.com/gettoken?appkey=${APP_KEY}&appsecret=${APP_SECRET}" | grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)← URL interpolates a credential into the query string
51
52# 2. userId → unionId
critURL embeds a credential variableThe skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.▾
URL embeds a credential variable
The skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.
51
52# 2. userId → unionId
53UNION_ID=$(curl -s -X POST "https://oapi.dingtalk.com/topapi/v2/user/get?access_token=${OLD_TOKEN}" \← URL interpolates a credential into the query string
54 -H 'Content-Type: application/json' \
55 -d "{\"userid\":\"${USER_ID}\"}" | grep -o '"unionid":"[^"]*"' | cut -d'"' -f4)
critURL embeds a credential variableThe skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.▾
URL embeds a credential variable
The skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.
94UNION_ID=$(grep '^DINGTALK_MY_OPERATOR_ID=' "$CONFIG" 2>/dev/null | cut -d= -f2-)
95if [ -z "$UNION_ID" ]; then
96 OLD_TOKEN=$(curl -s "https://oapi.dingtalk.com/gettoken?appkey=${APP_KEY}&appsecret=${APP_SECRET}" | grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)← URL interpolates a credential into the query string
97 UNION_ID=$(curl -s -X POST "https://oapi.dingtalk.com/topapi/v2/user/get?access_token=${OLD_TOKEN}" \
98 -H 'Content-Type: application/json' \
critURL embeds a credential variableThe skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.▾
URL embeds a credential variable
The skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.
95if [ -z "$UNION_ID" ]; then
96 OLD_TOKEN=$(curl -s "https://oapi.dingtalk.com/gettoken?appkey=${APP_KEY}&appsecret=${APP_SECRET}" | grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)
97 UNION_ID=$(curl -s -X POST "https://oapi.dingtalk.com/topapi/v2/user/get?access_token=${OLD_TOKEN}" \← URL interpolates a credential into the query string
98 -H 'Content-Type: application/json' \
99 -d "{\"userid\":\"${USER_ID}\"}" | grep -o '"unionid":"[^"]*"' | cut -d'"' -f4)
medNo capability manifest declaredThe skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.rule: no-manifest▾
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule:
no-manifestskillox.io/c/dingtalk-todo