Template
feat: Added skills support
This commit is contained in:
@@ -36,7 +36,7 @@ coyote --install-from https://github.com/<you>/coyote-config-template --filter a
|
|||||||
coyote --install-from https://github.com/<you>/coyote-config-template --filter mcp_config
|
coyote --install-from https://github.com/<you>/coyote-config-template --filter mcp_config
|
||||||
```
|
```
|
||||||
|
|
||||||
Valid filter values: `agents`, `roles`, `macros`, `functions`, `mcp_config`.
|
Valid filter values: `agents`, `roles`, `skills`, `macros`, `functions`, `mcp_config`.
|
||||||
|
|
||||||
Skip per-file conflict prompts with `--install-force`:
|
Skip per-file conflict prompts with `--install-force`:
|
||||||
|
|
||||||
@@ -60,6 +60,9 @@ coyote-config-template/
|
|||||||
│ └── scripts/ # Optional graph-node scripts
|
│ └── scripts/ # Optional graph-node scripts
|
||||||
├── roles/
|
├── roles/
|
||||||
│ └── <role-name>.md # Role with frontmatter + prompt body
|
│ └── <role-name>.md # Role with frontmatter + prompt body
|
||||||
|
├── skills/
|
||||||
|
│ └── <skill-name>/
|
||||||
|
│ └── SKILL.md # Skill with frontmatter + body
|
||||||
├── macros/
|
├── macros/
|
||||||
│ └── <macro-name>.yaml # Positional/rest-args + REPL command steps
|
│ └── <macro-name>.yaml # Positional/rest-args + REPL command steps
|
||||||
└── functions/
|
└── functions/
|
||||||
@@ -78,6 +81,7 @@ prompted to keep yours, take the remote's, or rename the remote entry.
|
|||||||
|--------|-----------------------------------|---------------------------------------------------------|
|
|--------|-----------------------------------|---------------------------------------------------------|
|
||||||
| Agent | `agents/hello-agent/config.yaml` | Tiny LLM-loop agent that greets the user. |
|
| Agent | `agents/hello-agent/config.yaml` | Tiny LLM-loop agent that greets the user. |
|
||||||
| Role | `roles/explainer.md` | Role that explains technical concepts simply. |
|
| Role | `roles/explainer.md` | Role that explains technical concepts simply. |
|
||||||
|
| Skill | `skills/rust-fmt/SKILL.md` | Skill demonstrating `enabled_tools` + `auto_unload`. |
|
||||||
| Macro | `macros/greet.yaml` | Macro showing positional and rest-arg variables. |
|
| Macro | `macros/greet.yaml` | Macro showing positional and rest-arg variables. |
|
||||||
| Tool | `functions/tools/greet.sh` | Bash tool using Coyote's argc-style annotations. |
|
| Tool | `functions/tools/greet.sh` | Bash tool using Coyote's argc-style annotations. |
|
||||||
| MCP | `functions/mcp.json` | One vanilla server + one with a vault secret reference. |
|
| MCP | `functions/mcp.json` | One vanilla server + one with a vault secret reference. |
|
||||||
@@ -98,6 +102,14 @@ declarative graph agents, put a `graph.yaml` instead
|
|||||||
Each `roles/<name>.md` is a YAML frontmatter block followed by the role
|
Each `roles/<name>.md` is a YAML frontmatter block followed by the role
|
||||||
instructions ([Roles wiki](https://github.com/Dark-Alex-17/coyote/wiki/Roles)).
|
instructions ([Roles wiki](https://github.com/Dark-Alex-17/coyote/wiki/Roles)).
|
||||||
|
|
||||||
|
### Skills
|
||||||
|
Each skill lives in its own subdirectory under `skills/`, with a
|
||||||
|
`SKILL.md` file containing YAML frontmatter (`description`,
|
||||||
|
`enabled_tools`, `enabled_mcp_servers`, `auto_unload`) followed by a
|
||||||
|
body of instructions that get injected into the model's system prompt
|
||||||
|
while the skill is loaded
|
||||||
|
([Skills wiki](https://github.com/Dark-Alex-17/coyote/wiki/Skills)).
|
||||||
|
|
||||||
### Macros
|
### Macros
|
||||||
Each `macros/<name>.yaml` is a list of REPL commands to execute, with
|
Each `macros/<name>.yaml` is a list of REPL commands to execute, with
|
||||||
optional positional/rest variables
|
optional positional/rest variables
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
description: Run rustfmt and cargo check before finalizing Rust edits. Grants shell access and auto-unloads after the model finishes.
|
||||||
|
enabled_tools: execute_command
|
||||||
|
auto_unload: true
|
||||||
|
---
|
||||||
|
You are finalizing edits to a Rust codebase. Before declaring the work complete, ALWAYS run the formatter and a check
|
||||||
|
build using the `execute_command` tool.
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
1. After making edits, run `cargo fmt` to normalize formatting.
|
||||||
|
2. Run `cargo check` to surface compilation errors quickly (faster than `cargo build`).
|
||||||
|
3. If `cargo check` fails, read the errors and fix before reporting completion.
|
||||||
|
4. Only after both succeed, summarize the change.
|
||||||
|
|
||||||
|
## Why this skill auto-unloads
|
||||||
|
|
||||||
|
`auto_unload: true` in the frontmatter means this skill removes itself from the registry after the model produces a
|
||||||
|
final response (no more tool calls). The user's next message starts with a clean context — the next prompt won't have
|
||||||
|
"run rustfmt" guidance polluting unrelated discussions.
|
||||||
|
|
||||||
|
Reload it explicitly via `.skill load rust-fmt` (or the model can `skill__load` it) when working on Rust again.
|
||||||
Reference in New Issue
Block a user