@acedatacloud/skills 2026.704.2 → 2026.704.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acedatacloud/skills",
3
- "version": "2026.704.2",
3
+ "version": "2026.704.3",
4
4
  "description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -0,0 +1,28 @@
1
+ # Recording produced outputs (`publish_artifact`)
2
+
3
+ Write/publish-capable Skills should record their concrete deliverable so the
4
+ user can later find and aggregate everything the agent produced (in the "My
5
+ Outputs" view at `/chatgpt/artifacts`).
6
+
7
+ After a publish/send/generate action **succeeds and you have the live result
8
+ URL**, call the built-in `publish_artifact` tool exactly ONCE for that
9
+ deliverable:
10
+
11
+ ```
12
+ publish_artifact(
13
+ kind="article", # article | image | video | audio | document | email | message | dataset | link | other
14
+ channel="<platform>", # e.g. zhihu, csdn, medium, x, mastodon
15
+ title="<human title>",
16
+ url="<the REAL returned URL>",
17
+ status="delivered" # delivered | draft | failed
18
+ )
19
+ ```
20
+
21
+ Rules:
22
+
23
+ - Use the **real URL returned by the publish step** — never fabricate a URL.
24
+ - Call it once per distinct deliverable, right after delivery is confirmed.
25
+ - Do NOT call it for intermediate steps, drafts you didn't submit, or narration.
26
+ - If publishing failed, either skip it or record `status="failed"`.
27
+
28
+ The tool is non-interactive and works in unattended (scheduled-task) runs.
@@ -106,3 +106,17 @@ skips this.
106
106
  common `tid` values.
107
107
  - **Never print `BILIBILI_COOKIES`** — it is full account access.
108
108
  - **ToS**: acts only on the user's own account with their own captured cookie.
109
+
110
+
111
+ ## Record the output
112
+
113
+ After you successfully publish and obtain the live result URL, call the built-in
114
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
115
+
116
+ ```
117
+ publish_artifact(kind="article", channel="bilibili", title="<title>", url="<the REAL returned URL>", status="delivered")
118
+ ```
119
+
120
+ Use the real returned URL — never fabricate one. Call it once per published item,
121
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
122
+ See `_shared/artifacts.md`.
@@ -78,3 +78,17 @@ curl -sS -H "Authorization: Bearer $GOOGLE_BLOGGER_TOKEN" \
78
78
  or reconnect with the account that has the blog.
79
79
  - `content` must be HTML; passing raw Markdown will render literally.
80
80
  - Paginate with `&pageToken=$PAGE_TOKEN` from the previous `.nextPageToken`.
81
+
82
+
83
+ ## Record the output
84
+
85
+ After you successfully publish and obtain the live result URL, call the built-in
86
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
87
+
88
+ ```
89
+ publish_artifact(kind="article", channel="blogger", title="<title>", url="<the REAL returned URL>", status="delivered")
90
+ ```
91
+
92
+ Use the real returned URL — never fabricate one. Call it once per published item,
93
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
94
+ See `_shared/artifacts.md`.
@@ -112,3 +112,17 @@ extracts the `rkey`. An empty result / `deleted:true` is success.
112
112
  there; all XRPC calls target that host, not `bsky.social`.
113
113
  - The CLI creates a fresh short-lived session on **every** invocation, so an
114
114
  expiring `accessJwt` is never a concern — just run the command again.
115
+
116
+
117
+ ## Record the output
118
+
119
+ After you successfully publish and obtain the live result URL, call the built-in
120
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
121
+
122
+ ```
123
+ publish_artifact(kind="message", channel="bluesky", title="<title>", url="<the REAL returned URL>", status="delivered")
124
+ ```
125
+
126
+ Use the real returned URL — never fabricate one. Call it once per published item,
127
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
128
+ See `_shared/artifacts.md`.
@@ -91,3 +91,17 @@ image that fails to upload keeps its original URL (never blocks the post).
91
91
  - **Never print `CSDN_COOKIES`** — it is full account access.
92
92
  - **ToS**: cookie automation acts only on the user's own account with their own
93
93
  captured cookie; the user owns that risk.
94
+
95
+
96
+ ## Record the output
97
+
98
+ After you successfully publish and obtain the live result URL, call the built-in
99
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
100
+
101
+ ```
102
+ publish_artifact(kind="article", channel="csdn", title="<title>", url="<the REAL returned URL>", status="delivered")
103
+ ```
104
+
105
+ Use the real returned URL — never fabricate one. Call it once per published item,
106
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
107
+ See `_shared/artifacts.md`.
@@ -76,3 +76,17 @@ curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+j
76
76
  bulk publishes or you'll get `429`.
77
77
  - `body_markdown` is the source of truth — if you put a `---` front-matter block
78
78
  at the top, its fields override the JSON `article` fields.
79
+
80
+
81
+ ## Record the output
82
+
83
+ After you successfully publish and obtain the live result URL, call the built-in
84
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
85
+
86
+ ```
87
+ publish_artifact(kind="article", channel="devto", title="<title>", url="<the REAL returned URL>", status="delivered")
88
+ ```
89
+
90
+ Use the real returned URL — never fabricate one. Call it once per published item,
91
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
92
+ See `_shared/artifacts.md`.
@@ -145,3 +145,17 @@ gql 'query GetPost($id: ObjectId!) { post(id: $id) { title url views reactionCou
145
145
  via status codes; always surface them.
146
146
  - **Idempotency** — re-running `publishPost` creates a *new* post each time; to
147
147
  change an existing one use `updatePost` with its `id`.
148
+
149
+
150
+ ## Record the output
151
+
152
+ After you successfully publish and obtain the live result URL, call the built-in
153
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
154
+
155
+ ```
156
+ publish_artifact(kind="article", channel="hashnode", title="<title>", url="<the REAL returned URL>", status="delivered")
157
+ ```
158
+
159
+ Use the real returned URL — never fabricate one. Call it once per published item,
160
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
161
+ See `_shared/artifacts.md`.
@@ -73,3 +73,17 @@ python3 $JJ publish --title "标题" --content-file a.md \
73
73
  - Publishing without a category + tag is rejected in 审核; prefer `--draft-only`.
74
74
  - **Never print `JUEJIN_COOKIES`** — it is full account access.
75
75
  - **ToS**: acts only on the user's own account with their own captured cookie.
76
+
77
+
78
+ ## Record the output
79
+
80
+ After you successfully publish and obtain the live result URL, call the built-in
81
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
82
+
83
+ ```
84
+ publish_artifact(kind="article", channel="juejin", title="<title>", url="<the REAL returned URL>", status="delivered")
85
+ ```
86
+
87
+ Use the real returned URL — never fabricate one. Call it once per published item,
88
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
89
+ See `_shared/artifacts.md`.
@@ -71,3 +71,17 @@ If the versioned endpoint is unavailable for the app, the older
71
71
  Page posts need `w_organization_social` + an admin role (not in this connector).
72
72
  - The `LinkedIn-Version` header is mandatory for `/rest/*`; a stale value
73
73
  returns a version error — bump to the current `YYYYMM`.
74
+
75
+
76
+ ## Record the output
77
+
78
+ After you successfully publish and obtain the live result URL, call the built-in
79
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
80
+
81
+ ```
82
+ publish_artifact(kind="article", channel="linkedin", title="<title>", url="<the REAL returned URL>", status="delivered")
83
+ ```
84
+
85
+ Use the real returned URL — never fabricate one. Call it once per published item,
86
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
87
+ See `_shared/artifacts.md`.
@@ -101,3 +101,17 @@ https://docs.joinmastodon.org/methods/media/
101
101
  get `429`.
102
102
  - `verify_credentials` returns HTML in fields like `note`; the plaintext source
103
103
  lives under the `source` object.
104
+
105
+
106
+ ## Record the output
107
+
108
+ After you successfully publish and obtain the live result URL, call the built-in
109
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
110
+
111
+ ```
112
+ publish_artifact(kind="message", channel="mastodon", title="<title>", url="<the REAL returned URL>", status="delivered")
113
+ ```
114
+
115
+ Use the real returned URL — never fabricate one. Call it once per published item,
116
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
117
+ See `_shared/artifacts.md`.
@@ -93,3 +93,17 @@ to a link paragraph (never blocks the post).
93
93
  genuinely expired (reconnect).
94
94
  - **Never print `MEDIUM_COOKIES`** — it is full account access.
95
95
  - **ToS**: acts only on the user's own account with their own captured cookie.
96
+
97
+
98
+ ## Record the output
99
+
100
+ After you successfully publish and obtain the live result URL, call the built-in
101
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
102
+
103
+ ```
104
+ publish_artifact(kind="article", channel="medium", title="<title>", url="<the REAL returned URL>", status="delivered")
105
+ ```
106
+
107
+ Use the real returned URL — never fabricate one. Call it once per published item,
108
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
109
+ See `_shared/artifacts.md`.
@@ -120,3 +120,17 @@ curl -sS -X POST "https://api.notion.com/v1/pages" \
120
120
  - Most write failures (400/404) come from a property type mismatch —
121
121
  e.g. sending `{"select": "Open"}` instead of `{"select": {"name": "Open"}}`.
122
122
  Read the database schema once via `GET /v1/databases/<id>` if unsure.
123
+
124
+
125
+ ## Record the output
126
+
127
+ After you successfully publish and obtain the live result URL, call the built-in
128
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
129
+
130
+ ```
131
+ publish_artifact(kind="document", channel="notion", title="<title>", url="<the REAL returned URL>", status="delivered")
132
+ ```
133
+
134
+ Use the real returned URL — never fabricate one. Call it once per published item,
135
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
136
+ See `_shared/artifacts.md`.
@@ -77,3 +77,17 @@ curl -sS -H "Authorization: Bearer $REDDIT_TOKEN" -H "User-Agent: $UA" \
77
77
  - Respect rate limits: read the `X-Ratelimit-Remaining` response header; space
78
78
  out bulk submits.
79
79
  - Use `r/test` as a safe target when validating that the connection works.
80
+
81
+
82
+ ## Record the output
83
+
84
+ After you successfully publish and obtain the live result URL, call the built-in
85
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
86
+
87
+ ```
88
+ publish_artifact(kind="message", channel="reddit", title="<title>", url="<the REAL returned URL>", status="delivered")
89
+ ```
90
+
91
+ Use the real returned URL — never fabricate one. Call it once per published item,
92
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
93
+ See `_shared/artifacts.md`.
@@ -93,3 +93,17 @@ python3 $SUB publish --title "Title" --content-file post.md --send-email --confi
93
93
  genuinely expired (reconnect); the CLI never retries a write.
94
94
  - **Never print `SUBSTACK_COOKIES`** — it is full account access.
95
95
  - **ToS**: acts only on the user's own account with their own captured cookie.
96
+
97
+
98
+ ## Record the output
99
+
100
+ After you successfully publish and obtain the live result URL, call the built-in
101
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
102
+
103
+ ```
104
+ publish_artifact(kind="article", channel="substack", title="<title>", url="<the REAL returned URL>", status="delivered")
105
+ ```
106
+
107
+ Use the real returned URL — never fabricate one. Call it once per published item,
108
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
109
+ See `_shared/artifacts.md`.
@@ -122,3 +122,17 @@ user verbatim as the confirmation prompt.
122
122
  return an error (no shareable link exists).
123
123
  - **`edit`/`delete`** generally only apply to the user's own messages (admins can delete others
124
124
  in groups they manage).
125
+
126
+
127
+ ## Record the output
128
+
129
+ After you successfully publish and obtain the live result URL, call the built-in
130
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
131
+
132
+ ```
133
+ publish_artifact(kind="message", channel="telegram", title="<title>", url="<the REAL returned URL>", status="delivered")
134
+ ```
135
+
136
+ Use the real returned URL — never fabricate one. Call it once per published item,
137
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
138
+ See `_shared/artifacts.md`.
@@ -141,3 +141,17 @@ echo "media id=$MEDIA_ID"
141
141
  - **Never publish silently.** Even if the user says "post it", prefer creating a
142
142
  draft and returning the `wp-admin` edit link unless they explicitly asked to
143
143
  go live.
144
+
145
+
146
+ ## Record the output
147
+
148
+ After you successfully publish and obtain the live result URL, call the built-in
149
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
150
+
151
+ ```
152
+ publish_artifact(kind="article", channel="wordpress", title="<title>", url="<the REAL returned URL>", status="delivered")
153
+ ```
154
+
155
+ Use the real returned URL — never fabricate one. Call it once per published item,
156
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
157
+ See `_shared/artifacts.md`.
package/skills/x/SKILL.md CHANGED
@@ -107,3 +107,17 @@ python3 $X delete --id 123456 --confirm # delete one of M
107
107
  suspended. Keep volume human-like.
108
108
  - **Never print `X_COOKIES`** — it is full account access.
109
109
  - **DMs are intentionally not exposed** by this skill.
110
+
111
+
112
+ ## Record the output
113
+
114
+ After you successfully publish and obtain the live result URL, call the built-in
115
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
116
+
117
+ ```
118
+ publish_artifact(kind="message", channel="x", title="<title>", url="<the REAL returned URL>", status="delivered")
119
+ ```
120
+
121
+ Use the real returned URL — never fabricate one. Call it once per published item,
122
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
123
+ See `_shared/artifacts.md`.
@@ -218,3 +218,17 @@ python3 $BLOG edit-answer --id <answer-id> --content-file ans.html --confirm #
218
218
  - **Scope**: Zhihu only. Other Chinese platforms (掘金 / CSDN / …) ship as their
219
219
  own per-platform skills (e.g. `csdn`, `juejin`), each with its own connector —
220
220
  not a `--platform` switch here.
221
+
222
+
223
+ ## Record the output
224
+
225
+ After you successfully publish and obtain the live result URL, call the built-in
226
+ `publish_artifact` tool ONCE so the user can track this deliverable in **My Outputs**:
227
+
228
+ ```
229
+ publish_artifact(kind="article", channel="zhihu", title="<title>", url="<the REAL returned URL>", status="delivered")
230
+ ```
231
+
232
+ Use the real returned URL — never fabricate one. Call it once per published item,
233
+ only after delivery is confirmed; skip it (or use `status="failed"`) if publishing failed.
234
+ See `_shared/artifacts.md`.