v0.2.24 - Improve skills editor trigger filters with per-trigger helper widgets and presets

This commit is contained in:
Didactyl User
2026-04-05 08:54:24 -04:00
parent 49db641876
commit 70e41ad8b8
8 changed files with 420 additions and 25 deletions
+6 -12
View File
@@ -92,8 +92,8 @@ Trigger event occurs (DM, cron, subscription, webhook, chain)
│ ├─ Bump all skill headings down one level (# -> ##)
│ └─ Concatenate skills with `---` separators
├─ Split Roles
│ └─ Parse `system:` and `user:` markers to build API messages array
├─ Build API roles
│ └─ Runtime constructs OpenAI-compatible `messages` (system + user + assistant/tool loop)
├─ Attach tool schemas (filtered by skill requires_tool tags)
@@ -105,10 +105,9 @@ Trigger event occurs (DM, cron, subscription, webhook, chain)
### Visualization
The assembled context is a single, coherent markdown document before being split into API messages:
The assembled context starts as a single markdown document (skills + resolved variables), then the runtime maps it into API role messages.
```markdown
system:
# Didactyl Agent
- **npub**: `npub1...`
@@ -123,11 +122,10 @@ You speak concisely and directly.
Respond helpfully to the admin.
Use tools as needed.
user:
Who mentioned me today?
```
For DM triggers, the runtime appends the incoming DM text as the `user` message. For non-DM triggers, it appends the trigger payload as the `user` message.
### Why Order Matters
- Earlier skills in the adoption list appear first in the context window.
@@ -248,17 +246,13 @@ Output files are written to:
### Snapshot Formats
Initial snapshots (`*_init.md`) are the assembled markdown context document, including role markers and heading bump effects:
Initial snapshots (`*_init.md`) are the assembled markdown context document (with heading-bump effects). They reflect authored skill markdown before runtime message-role packaging:
```markdown
# Didactyl Agent
system:
## Anvil Agent
...
user:
Who was WSB historically?
```
Turn snapshots (`*_tNNN.md`) are human-readable markdown renderings of the OpenAI-compatible `messages` array used for that loop turn:
+3 -3
View File
@@ -68,7 +68,7 @@ The `content` field of a skill event IS the template — markdown instructions t
```json
{
"kind": 31123,
"content": "system:\n## Spelling and Grammar Checker\n\nYou are a spelling and grammar checker.\n\n### Rules\n\n- Fix spelling errors\n- Fix grammar errors\n- Preserve original formatting\n- Return **ONLY** the corrected text, no explanations\n\nuser:\n{{message}}",
"content": "## Spelling and Grammar Checker\n\nYou are a spelling and grammar checker.\n\n### Rules\n\n- Fix spelling errors\n- Fix grammar errors\n- Preserve original formatting\n- Return **ONLY** the corrected text, no explanations\n\nInput text:\n{{message}}",
"tags": [
["d", "spellcheck"],
["description", "Check spelling and grammar"],
@@ -80,8 +80,8 @@ The `content` field of a skill event IS the template — markdown instructions t
}
```
- **`content`** — the template in markdown. May include `{{...}}` template variables and `system:` / `user:` role markers. This is what goes into the context window.
- **Role Markers** `system:`, `user:`, and `assistant:` are parsed only when they appear at the start of a line. Content without a marker defaults to `system:`.
- **`content`** — the template in markdown. May include `{{...}}` template variables. This is what goes into the context window.
- **Role ownership** — skill authors should write plain markdown instructions, not `system:` / `user:` / `assistant:` markers. The runtime owns role construction and appends trigger payloads (for DM triggers, raw message text) as the `user` message at execution time.
- **Heading Levels** — The runtime owns the `#` (h1) heading for the document title. All headings in skill content are automatically bumped down one level (`#` becomes `##`, `##` becomes `###`) during context assembly. Skill authors should use `##` for their top-level sections.
- **`["description", "..."]`** — human-readable description for discovery and UI display.
- Each `["tag", "value"]` is a separate tag on the Nostr event.
+2 -2
View File
@@ -114,7 +114,7 @@ These tools manage skill and trigger lifecycle; skill semantics and trigger exec
| Tool | Description |
|---|---|
| `skill_create` | Create or update a skill definition as kind `31123`/`31124` and optionally auto-adopt it (content should be markdown with optional `system:`/`user:`/`assistant:` role markers) |
| `skill_create` | Create or update a skill definition as kind `31123`/`31124` and optionally auto-adopt it (content should be markdown instructions; runtime handles role packaging) |
| `skill_edit` | Edit an existing self skill by d tag and republish it as kind `31123`/`31124` (content should remain markdown-first) |
| `skill_list` | List available skills discovered online (agent + admin), with adoption status and optional filters |
| `skill_adopt` | Adopt a skill by adding its address to kind `10123` adoption list |
@@ -469,7 +469,7 @@ These examples show the JSON structure for tool calls.
"name": "skill_create",
"arguments": {
"d": "weather-skill",
"content": "system:\n## Weather Assistant\n\nYou provide concise weather summaries.\n\nuser:\n{{message}}",
"content": "## Weather Assistant\n\nYou provide concise weather summaries.\n\nInput:\n{{message}}",
"description": "Fetches weather data",
"trigger": "dm",
"filter": "{\"from\":\"admin\"}",