chore: reorganize examples and templates into examples/ by type (#54)

- Move example skills to examples/skills/
- Move scaffolding templates to examples/{agents,hands,channels,plugins,providers,integrations,skills}/
- Remove legacy skill.toml from example skills; SKILL.md is the canonical format
- Delete top-level templates/ directory
This commit is contained in:
Evan authored and GitHub committed 2026-04-15 00:41:24 +09:00
1 parent 2f4f94b45b
commit 300e3569fe
14 files changed
-44

No files matched your search

-21
View File
@@ -1,21 +0,0 @@
# meeting-agenda
Generate a structured meeting agenda from a topic and duration. Pure prompt engineering — no code required.
## Configuration
| Field | Value |
|-------|-------|
| Type | `promptonly` |
| Entry | N/A (template-only) |
## Input
- **topic** (string, required) — The meeting topic
- **duration_minutes** (string, required) — Meeting duration in minutes
## Usage
```bash
librefang skill test ./skills/custom-skill-prompt --input '{"topic": "Q1 planning", "duration_minutes": "30"}'
```
-16
View File
@@ -1,16 +0,0 @@
---
name: meeting-agenda
description: Generate a structured meeting agenda from a topic and duration.
---
Create a structured meeting agenda for the following:
Topic: {{topic}}
Duration: {{duration_minutes}} minutes
Requirements:
- Include time allocations for each section
- Start with a brief intro/alignment (2-3 min)
- End with action items and next steps (3-5 min)
- Keep sections focused and actionable
- Format as a numbered list with time in brackets
-24
View File
@@ -1,24 +0,0 @@
## Custom Prompt Skill Example
##
## The prompt body and metadata (name, description) live in SKILL.md.
## This skill.toml only declares the runtime, input schema, and optional
## metadata that don't fit in Markdown frontmatter.
##
## To test: librefang skill test ./skills/custom-skill-prompt \
## --input '{"topic": "Q1 planning", "duration_minutes": "30"}'
##
## For the full reference, see: docs/skill-development.md
[skill]
name = "meeting-agenda"
version = "0.1.0"
description = "Generate a structured meeting agenda from a topic and duration."
author = "your-name"
tags = ["meeting", "productivity", "example"]
[runtime]
type = "promptonly"
[input]
topic = { type = "string", description = "The meeting topic", required = true }
duration_minutes = { type = "string", description = "Meeting duration in minutes", required = true }
-20
View File
@@ -1,20 +0,0 @@
# word-counter
Count words, sentences, and characters in text. A minimal example of a Python runtime skill.
## Configuration
| Field | Value |
|-------|-------|
| Type | `python` |
| Entry | `main.py` |
## Input
- **text** (string, required) — The text to analyze
## Usage
```bash
librefang skill test ./skills/custom-skill-python --input '{"text": "Hello world. How are you?"}'
```
-11
View File
@@ -1,11 +0,0 @@
---
name: word-counter
description: Count words, sentences, and characters in text.
---
# Word Counter
Counts words, sentences, and characters in the provided text.
The prompt body is unused for this skill — execution is delegated to
`main.py` via the `python` runtime declared in `skill.toml`.
-21
View File
@@ -1,21 +0,0 @@
"""
Word Counter Skill — a minimal example of a Python skill for LibreFang.
This skill receives a text input and returns word/sentence/character counts.
"""
import re
def run(input: dict) -> str:
text = input.get("text", "")
words = len(text.split())
sentences = len([s for s in re.split(r"[.!?]+", text.strip()) if s.strip()]) if text.strip() else 0
characters = len(text)
return (
f"Words: {words}\n"
f"Sentences: {sentences}\n"
f"Characters: {characters}"
)
-20
View File
@@ -1,20 +0,0 @@
## Custom Python Skill Example
##
## This skill counts words in a given text and returns basic statistics.
## To test: librefang skill test ./examples/custom-skill-python --input '{"text": "Hello world"}'
##
## For the full reference, see: docs/skill-development.md
[skill]
name = "word-counter"
version = "0.1.0"
description = "Count words, sentences, and characters in text."
author = "your-name"
tags = ["text", "utility", "example"]
[runtime]
type = "python"
entry = "main.py"
[input]
text = { type = "string", description = "The text to analyze", required = true }