skills v3

This commit is contained in:
2026-05-11 00:48:30 +02:00
parent ffc8b51731
commit 4b57d59aba
4 changed files with 228 additions and 128 deletions

89
.idea/SKILL.md generated
View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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: