@acedatacloud/skills 2026.716.3 → 2026.716.4

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.716.3",
3
+ "version": "2026.716.4",
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",
@@ -55,16 +55,28 @@ Operate Xiaohongshu through the generic `browser.*` tools in the user's attached
55
55
 
56
56
  ## Browse, search, detail, and profile
57
57
 
58
+ ### Reconstruct note cards from the semantic tree
59
+
60
+ On `https://www.xiaohongshu.com`, note cards commonly appear as repeated local sequences rather than one complete node. Reconstruct only recommendations, search results, and profile note grids with this deterministic scan:
61
+
62
+ 1. A card starts only at a **named** link whose same-origin path is exactly `/explore/<note-id>`, with one non-empty alphanumeric ID segment. An empty-name link never starts a card, regardless of its element type. When empty and named links share the same href, keep only the named link as the title and canonical URL.
63
+ 2. The card candidate range begins after that named title link and ends immediately before the next named valid note link. Within that bounded range, assign an author only when there is exactly one named same-origin `/user/profile/<user-id>` link with one non-empty alphanumeric ID segment. With zero or multiple candidates, report the author as unavailable or ambiguous rather than choosing one.
64
+ 3. A `section` node inside that same bounded range may concatenate title, author, and engagement text. Never replace the named title or author with aggregate text. Use an engagement number as a named metric only when its visible label or control identifies that metric; otherwise report it only as an unlabeled visible engagement value, never as likes/comments/favorites.
65
+ 4. Legal/footer links, category tabs, blank buttons, reserved paths such as settings, and repeated hrefs are not note results. If valid named note links are present, do not claim the list is missing merely because parent containers are noisy.
66
+ 5. Do not apply this heuristic to `creator.xiaohongshu.com` or an unfamiliar page type. If the canonical patterns are absent or change, read once after the expected page transition, then report the structure as unsupported instead of inventing cards or identifiers.
67
+
68
+ Apply this reconstruction before reporting that a supported `www.xiaohongshu.com` result list has no card data.
69
+
58
70
  ### Recommendations
59
71
 
60
- Read the attached home/recommendation page. Scroll in bounded steps with `browser.scroll`, reading after each step. Return the requested notes with title, author, visible engagement, and canonical note URL when available. Do not scrape indefinitely.
72
+ Read the attached home/recommendation page. Scroll in bounded steps with `browser.scroll`, reading after each step. Return the requested notes with title, author or an explicit unavailable/ambiguous author state, visible engagement, and canonical note URL when available. Do not scrape indefinitely.
61
73
 
62
74
  ### Search and filters
63
75
 
64
76
  1. Extract the keyword and optional filters: sort, note type, publish time, search scope, and location.
65
77
  2. Open the search UI, fill the visible search control with `browser.form_input`, submit with a fresh button ref or `browser.key`, and read the result page.
66
78
  3. Apply only requested filters using fresh refs, one control at a time. Read after each transition.
67
- 4. Return title, author, visible engagement, note URL, and any visible identifiers needed for a subsequent detail or interaction. Never invent IDs or tokens.
79
+ 4. Return title, author or an explicit unavailable/ambiguous author state, visible engagement, note URL, and any visible identifiers needed for a subsequent detail or interaction. Never invent IDs or tokens.
68
80
 
69
81
  ### Note details and comments
70
82
 
@@ -108,6 +108,15 @@ def test_browser_skill_matches_complete_local_runtime() -> None:
108
108
  assert "visibility" in text
109
109
  assert "products" in text
110
110
  assert "search and filters" in text
111
+ assert "/explore/<note-id>" in text
112
+ assert "/user/profile/<user-id>" in text
113
+ assert "empty-name link never starts a card" in text
114
+ assert "exactly one named same-origin" in text
115
+ assert "author as unavailable or ambiguous" in text
116
+ assert "explicit unavailable/ambiguous author state" in text
117
+ assert "unlabeled visible engagement value" in text
118
+ assert "do not apply this heuristic to `creator.xiaohongshu.com`" in text
119
+ assert "do not claim the list is missing" in text
111
120
  assert "note details and comments" in text
112
121
  assert "user profile" in text
113
122
  assert "like and favorite" in text