diff options
| author | Adam Malczewski <[email protected]> | 2026-06-10 17:03:23 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-10 17:03:23 +0900 |
| commit | f6b45507210e04e9884256b0132900640de4334b (patch) | |
| tree | 73c5779bf2eec5a1d03732be0f6a8b698b8a2c7f /GLOSSARY.md | |
| parent | bf862168f0fd7b10d02ae04a9d82f7c37b9d85e5 (diff) | |
| download | dispatch-f6b45507210e04e9884256b0132900640de4334b.tar.gz dispatch-f6b45507210e04e9884256b0132900640de4334b.zip | |
feat(skills): skill system + load_skill tool via per-turn tools filter
Skills are markdown in .skills/ dirs (~/.skills + <cwd>/.skills, cwd shadows home;
name = filename). Format: line1 summary, line2 ---, body line3+; load strips the
first two lines; malformed = no summary but still loadable.
Mechanism (first use of the context-assembly filter chain, §3.2):
- kernel: expose HostAPI.applyFilters (delegates to bus.applyFilters)
- session-orchestrator: define/export toolsFilter + ToolAssembly; apply once per turn
before runTurn (cache-stable across steps), threading cwd + conversationId
- skills (new ext): pure parse/merge/render + load_skill tool (live read, path-contained)
+ a toolsFilter filter rewriting load_skill's description + name enum per cwd
- host-bin: register skills in CORE_EXTENSIONS
- transport-http: fix HostAPI test stub for the new applyFilters method (fan-out)
734 vitest + 109 bun = 843 tests; tsc -b EXIT 0; biome clean; clean live boot.
Diffstat (limited to 'GLOSSARY.md')
| -rw-r--r-- | GLOSSARY.md | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/GLOSSARY.md b/GLOSSARY.md index 39e618f..259dc27 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -43,6 +43,9 @@ | **key** | The API key (the secret string) held by a credential. | apiKey / api-key (when meaning the whole credential profile) | | **model name** | The selectable identifier in `<credentialName>/<model>` form — what the model catalog lists and what the CLI / `/chat` `model` field take. | model reference, model id | | **model catalog** | The list of available model names; served by `GET /models`, aggregated per credential from each provider's `listModels()`. | model list | +| **skill** | A reusable instruction document (markdown) under a `.skills/` directory, loaded on demand into the conversation by the `load_skill` tool. Discovered from `~/.skills` (home) and `<cwd>/.skills` (project); on a name clash the cwd skill shadows the home one. A skill's name is its filename without `.md`. | prompt snippet, macro | +| **skill summary** | A skill file's "when to use this skill" line: line 1 of the md, valid only when line 2 is exactly `---`. Advertised (per-turn, cwd-aware) in the `load_skill` tool's description; on load the first two lines are stripped. A file lacking the `---` delimiter shows no summary but stays loadable. | — | +| **tools filter** | The per-turn `FilterDescriptor` (`toolsFilter`, owned by `session-orchestrator`) through which extensions transform a turn's tool set before it reaches `runTurn`. Applied ONCE per turn so the tool definitions stay byte-stable across steps (prompt-cache safe). The first concrete use of the §3.2 context-assembly filter chain. | — | ## Known vocabulary drift |
