From 4b57d59aba7ac49496f003c8c61651af614f52fe Mon Sep 17 00:00:00 2001 From: marvinpoo Date: Mon, 11 May 2026 00:48:30 +0200 Subject: [PATCH] skills v3 --- .idea/SKILL.md | 89 +++++++++++++++++++++++++++++++------------------ SKILL.md | 89 +++++++++++++++++++++++++++++++------------------ public/SKILL.md | 89 +++++++++++++++++++++++++++++++------------------ src/SKILL.md | 89 +++++++++++++++++++++++++++++++------------------ 4 files changed, 228 insertions(+), 128 deletions(-) diff --git a/.idea/SKILL.md b/.idea/SKILL.md index f2274eb..69a59b8 100644 --- a/.idea/SKILL.md +++ b/.idea/SKILL.md @@ -106,44 +106,69 @@ For OpenClaw, inspect `raw` for domain-specific fields: - Placeables: production types, power/water fields, craftable recipe relationships. - NPCs: `raw.description`, `raw.npcTags`, category metadata. -## Discord Output Contract +## Discord Markdown Output Contract -When OpenClaw asks for an answer intended for Discord, return Discord embed JSON instead of plain text. The bot should be able to send the returned payload directly. +Rich Discord embeds are not available yet. When OpenClaw asks for Discord output, return a plain Discord message string formatted with Discord-supported Markdown only. Do not return embed JSON. -Use this shape: +Use supported Markdown: -```json -{ - "embeds": [ - { - "title": "Assassin's Rifle", - "url": "https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en", - "description": "Short useful summary for Discord.", - "color": 15198183, - "fields": [ - { "name": "Dataset", "value": "item", "inline": true }, - { "name": "Language", "value": "en", "inline": true }, - { - "name": "Source ID", - "value": "LongRifle_Unique_Poison_03", - "inline": false - } - ], - "footer": { "text": "Dune API" } - } - ] -} +- Headings with `#`, `##`, or `###` for short section titles. +- Bold with asterisks, for example `**Assassin's Rifle**`. Do not use underscores for bold. +- Italic sparingly for secondary text. +- Unordered lists with `-` for fields and search results. +- Ordered lists for ranked results. +- Inline code for ids, dataset names, stat keys, and short values. +- Fenced code blocks for compact JSON or command examples. +- Links with `[label](url)` when a clean label helps. +- Blockquotes with `>` or `>>>` for quoted descriptions. +- Strikethrough only when it adds useful meaning. + +Avoid unsupported or unreliable formatting: + +- No Markdown tables. +- No HTML. +- No horizontal rules. +- No task lists. +- No footnotes, heading ids, definition lists, subscript, superscript, or highlight syntax. +- No images in Markdown. +- Do not rely on Markdown paragraph syntax or special line-break syntax; use normal newline-separated lines. + +Default Discord result format: + +```text +## Assassin's Rifle +**Type:** `item` +**Language:** `en` +**Source ID:** `LongRifle_Unique_Poison_03` +**Category:** `weapon` / `rifle` + +**Stats** +- Damage: `128.25` +- Accuracy: `1.2` +- Clip Size: `2` + +[Open in Dune API](https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en) ``` -Embed rules: +Search result format: -- Use `name` or `raw.name` as the embed title. -- Use the matching Dune API URL as the embed URL. -- Keep descriptions short; do not dump the full `raw` object. -- Put compact facts in fields and omit empty fields. -- Return at most 5 embeds for search results. -- Keep field values below Discord limits. -- Use decimal colors: item `15198183`, skill `3447003`, recipe `5763719`, placeable `15844367`, npc `10181046`. +```text +## Search Results: poison +1. **Poison Mine** (`skill`) - `skills_ability_poisonmine` +2. **Assassin's Rifle** (`item`) - `LongRifle_Unique_Poison_03` + +Use `/api/{dataset}/{id}?language=en` for details. +``` + +Discord response rules: + +- Keep responses concise enough for Discord message limits. +- Show at most 10 compact search results unless the user asks for more. +- For detailed records, prefer the most useful 5 to 8 fields. +- Do not dump the full `raw` object. +- Omit empty, null, unknown, or noisy fields. +- Include a Dune API link for single-record answers. +- Prefer singular datasets: `item`, `skill`, `recipe`, `placeable`, `npc`. Dataset field ideas: diff --git a/SKILL.md b/SKILL.md index 3151e3a..5a70c13 100644 --- a/SKILL.md +++ b/SKILL.md @@ -40,44 +40,69 @@ items, skills, recipes, placeables, npcs Use singular datasets for complete stats and relationships. Use plural datasets only when a compact Questlog page-summary record is enough. -## Discord Output Contract +## Discord Markdown Output Contract -When OpenClaw asks for an answer intended for Discord, return Discord embed JSON instead of plain text. The bot should be able to send the returned payload directly. +Rich Discord embeds are not available yet. When OpenClaw asks for Discord output, return a plain Discord message string formatted with Discord-supported Markdown only. Do not return embed JSON. -Use this shape: +Use supported Markdown: -```json -{ - "embeds": [ - { - "title": "Assassin's Rifle", - "url": "https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en", - "description": "Short useful summary for Discord.", - "color": 15198183, - "fields": [ - { "name": "Dataset", "value": "item", "inline": true }, - { "name": "Language", "value": "en", "inline": true }, - { - "name": "Source ID", - "value": "LongRifle_Unique_Poison_03", - "inline": false - } - ], - "footer": { "text": "Dune API" } - } - ] -} +- Headings with `#`, `##`, or `###` for short section titles. +- Bold with asterisks, for example `**Assassin's Rifle**`. Do not use underscores for bold. +- Italic sparingly for secondary text. +- Unordered lists with `-` for fields and search results. +- Ordered lists for ranked results. +- Inline code for ids, dataset names, stat keys, and short values. +- Fenced code blocks for compact JSON or command examples. +- Links with `[label](url)` when a clean label helps. +- Blockquotes with `>` or `>>>` for quoted descriptions. +- Strikethrough only when it adds useful meaning. + +Avoid unsupported or unreliable formatting: + +- No Markdown tables. +- No HTML. +- No horizontal rules. +- No task lists. +- No footnotes, heading ids, definition lists, subscript, superscript, or highlight syntax. +- No images in Markdown. +- Do not rely on Markdown paragraph syntax or special line-break syntax; use normal newline-separated lines. + +Default Discord result format: + +```text +## Assassin's Rifle +**Type:** `item` +**Language:** `en` +**Source ID:** `LongRifle_Unique_Poison_03` +**Category:** `weapon` / `rifle` + +**Stats** +- Damage: `128.25` +- Accuracy: `1.2` +- Clip Size: `2` + +[Open in Dune API](https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en) ``` -Embed rules: +Search result format: -- Use `name` or `raw.name` as the embed title. -- Use the matching Dune API URL as the embed URL. -- Keep descriptions short; do not dump the full `raw` object. -- Put compact facts in fields and omit empty fields. -- Return at most 5 embeds for search results. -- Keep field values below Discord limits. -- Use decimal colors: item `15198183`, skill `3447003`, recipe `5763719`, placeable `15844367`, npc `10181046`. +```text +## Search Results: poison +1. **Poison Mine** (`skill`) - `skills_ability_poisonmine` +2. **Assassin's Rifle** (`item`) - `LongRifle_Unique_Poison_03` + +Use `/api/{dataset}/{id}?language=en` for details. +``` + +Discord response rules: + +- Keep responses concise enough for Discord message limits. +- Show at most 10 compact search results unless the user asks for more. +- For detailed records, prefer the most useful 5 to 8 fields. +- Do not dump the full `raw` object. +- Omit empty, null, unknown, or noisy fields. +- Include a Dune API link for single-record answers. +- Prefer singular datasets: `item`, `skill`, `recipe`, `placeable`, `npc`. Dataset field ideas: diff --git a/public/SKILL.md b/public/SKILL.md index c5665f8..c81d670 100644 --- a/public/SKILL.md +++ b/public/SKILL.md @@ -106,44 +106,69 @@ For OpenClaw, inspect `raw` for domain-specific fields: - Placeables: production types, power/water fields, craftable recipe relationships. - NPCs: `raw.description`, `raw.npcTags`, category metadata. -## Discord Output Contract +## Discord Markdown Output Contract -When OpenClaw asks for an answer intended for Discord, return Discord embed JSON instead of plain text. The bot should be able to send the returned payload directly. +Rich Discord embeds are not available yet. When OpenClaw asks for Discord output, return a plain Discord message string formatted with Discord-supported Markdown only. Do not return embed JSON. -Use this shape: +Use supported Markdown: -```json -{ - "embeds": [ - { - "title": "Assassin's Rifle", - "url": "https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en", - "description": "Short useful summary for Discord.", - "color": 15198183, - "fields": [ - { "name": "Dataset", "value": "item", "inline": true }, - { "name": "Language", "value": "en", "inline": true }, - { - "name": "Source ID", - "value": "LongRifle_Unique_Poison_03", - "inline": false - } - ], - "footer": { "text": "Dune API" } - } - ] -} +- Headings with `#`, `##`, or `###` for short section titles. +- Bold with asterisks, for example `**Assassin's Rifle**`. Do not use underscores for bold. +- Italic sparingly for secondary text. +- Unordered lists with `-` for fields and search results. +- Ordered lists for ranked results. +- Inline code for ids, dataset names, stat keys, and short values. +- Fenced code blocks for compact JSON or command examples. +- Links with `[label](url)` when a clean label helps. +- Blockquotes with `>` or `>>>` for quoted descriptions. +- Strikethrough only when it adds useful meaning. + +Avoid unsupported or unreliable formatting: + +- No Markdown tables. +- No HTML. +- No horizontal rules. +- No task lists. +- No footnotes, heading ids, definition lists, subscript, superscript, or highlight syntax. +- No images in Markdown. +- Do not rely on Markdown paragraph syntax or special line-break syntax; use normal newline-separated lines. + +Default Discord result format: + +```text +## Assassin's Rifle +**Type:** `item` +**Language:** `en` +**Source ID:** `LongRifle_Unique_Poison_03` +**Category:** `weapon` / `rifle` + +**Stats** +- Damage: `128.25` +- Accuracy: `1.2` +- Clip Size: `2` + +[Open in Dune API](https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en) ``` -Embed rules: +Search result format: -- Use `name` or `raw.name` as the embed title. -- Use the matching Dune API URL as the embed URL. -- Keep descriptions short; do not dump the full `raw` object. -- Put compact facts in fields and omit empty fields. -- Return at most 5 embeds for search results. -- Keep field values below Discord limits. -- Use decimal colors: item `15198183`, skill `3447003`, recipe `5763719`, placeable `15844367`, npc `10181046`. +```text +## Search Results: poison +1. **Poison Mine** (`skill`) - `skills_ability_poisonmine` +2. **Assassin's Rifle** (`item`) - `LongRifle_Unique_Poison_03` + +Use `/api/{dataset}/{id}?language=en` for details. +``` + +Discord response rules: + +- Keep responses concise enough for Discord message limits. +- Show at most 10 compact search results unless the user asks for more. +- For detailed records, prefer the most useful 5 to 8 fields. +- Do not dump the full `raw` object. +- Omit empty, null, unknown, or noisy fields. +- Include a Dune API link for single-record answers. +- Prefer singular datasets: `item`, `skill`, `recipe`, `placeable`, `npc`. Dataset field ideas: diff --git a/src/SKILL.md b/src/SKILL.md index f2274eb..69a59b8 100644 --- a/src/SKILL.md +++ b/src/SKILL.md @@ -106,44 +106,69 @@ For OpenClaw, inspect `raw` for domain-specific fields: - Placeables: production types, power/water fields, craftable recipe relationships. - NPCs: `raw.description`, `raw.npcTags`, category metadata. -## Discord Output Contract +## Discord Markdown Output Contract -When OpenClaw asks for an answer intended for Discord, return Discord embed JSON instead of plain text. The bot should be able to send the returned payload directly. +Rich Discord embeds are not available yet. When OpenClaw asks for Discord output, return a plain Discord message string formatted with Discord-supported Markdown only. Do not return embed JSON. -Use this shape: +Use supported Markdown: -```json -{ - "embeds": [ - { - "title": "Assassin's Rifle", - "url": "https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en", - "description": "Short useful summary for Discord.", - "color": 15198183, - "fields": [ - { "name": "Dataset", "value": "item", "inline": true }, - { "name": "Language", "value": "en", "inline": true }, - { - "name": "Source ID", - "value": "LongRifle_Unique_Poison_03", - "inline": false - } - ], - "footer": { "text": "Dune API" } - } - ] -} +- Headings with `#`, `##`, or `###` for short section titles. +- Bold with asterisks, for example `**Assassin's Rifle**`. Do not use underscores for bold. +- Italic sparingly for secondary text. +- Unordered lists with `-` for fields and search results. +- Ordered lists for ranked results. +- Inline code for ids, dataset names, stat keys, and short values. +- Fenced code blocks for compact JSON or command examples. +- Links with `[label](url)` when a clean label helps. +- Blockquotes with `>` or `>>>` for quoted descriptions. +- Strikethrough only when it adds useful meaning. + +Avoid unsupported or unreliable formatting: + +- No Markdown tables. +- No HTML. +- No horizontal rules. +- No task lists. +- No footnotes, heading ids, definition lists, subscript, superscript, or highlight syntax. +- No images in Markdown. +- Do not rely on Markdown paragraph syntax or special line-break syntax; use normal newline-separated lines. + +Default Discord result format: + +```text +## Assassin's Rifle +**Type:** `item` +**Language:** `en` +**Source ID:** `LongRifle_Unique_Poison_03` +**Category:** `weapon` / `rifle` + +**Stats** +- Damage: `128.25` +- Accuracy: `1.2` +- Clip Size: `2` + +[Open in Dune API](https://dune.api.coppnic.cc/api/item/LongRifle_Unique_Poison_03?language=en) ``` -Embed rules: +Search result format: -- Use `name` or `raw.name` as the embed title. -- Use the matching Dune API URL as the embed URL. -- Keep descriptions short; do not dump the full `raw` object. -- Put compact facts in fields and omit empty fields. -- Return at most 5 embeds for search results. -- Keep field values below Discord limits. -- Use decimal colors: item `15198183`, skill `3447003`, recipe `5763719`, placeable `15844367`, npc `10181046`. +```text +## Search Results: poison +1. **Poison Mine** (`skill`) - `skills_ability_poisonmine` +2. **Assassin's Rifle** (`item`) - `LongRifle_Unique_Poison_03` + +Use `/api/{dataset}/{id}?language=en` for details. +``` + +Discord response rules: + +- Keep responses concise enough for Discord message limits. +- Show at most 10 compact search results unless the user asks for more. +- For detailed records, prefer the most useful 5 to 8 fields. +- Do not dump the full `raw` object. +- Omit empty, null, unknown, or noisy fields. +- Include a Dune API link for single-record answers. +- Prefer singular datasets: `item`, `skill`, `recipe`, `placeable`, `npc`. Dataset field ideas: