fix(providers): remove ~anthropic, skip ~ prefixes in sync script (#69)
* fix(providers): remove ~anthropic, skip ~ prefixes in sync script
OpenRouter uses ~ prefixes for internal auto-routing aliases (e.g. ~anthropic).
These are not real providers — they already route through openrouter.toml.
The generated ~anthropic.toml was confusing (looked like a stale backup)
and redundant with the existing openrouter provider.
- Delete providers/~anthropic.toml
- Skip provider IDs starting with ~ in sync-pricing.py --create-missing
* fix(providers): remove morph, aider, kwaipilot
- morph: specialized code-editing/patching tool, not a general LLM provider
- aider: CLI meta-tool wrapper (base_url empty), redundant with claude-code/codex-cli/gemini-cli/qwen-code
- kwaipilot: Kwai internal coding assistant routed via OpenRouter, niche
* fix(sync): add morph/aider/kwaipilot to SKIP_PROVIDERS to prevent re-creation
* feat(sync): merge OpenRouter-only providers into openrouter.toml
Instead of generating standalone .toml files that just wrap the OpenRouter
endpoint, merge their models directly into openrouter.toml with the
standard 'openrouter/{provider}/{model}' ID convention.
- Add _build_model_fields() and _model_lines() helpers to deduplicate
model rendering between standalone and merged paths
- Add merge_into_openrouter() that appends new models idempotently
- generate_provider_toml() now only runs for providers in PROVIDER_API
- --create-missing routes OpenRouter-only providers to merge_into_openrouter
* fix(providers): remove 14 OpenRouter-only standalone files
These providers have no direct public API and all route through
openrouter.ai/api/v1. Per the new sync-pricing.py policy, their models
will be merged into openrouter.toml on the next CI run instead of
living in separate files that just wrap the OpenRouter endpoint.
Removed: allenai, deepcogito, essentialai, inclusionai, inflection,
liquid, meituan, nex-agi, nousresearch, prime-intellect, relace,
switchpoint, tngtech, writer
* fix(providers): remove 7 niche providers with no driver support
No dedicated LLM driver code exists for these providers — they rely
purely on OpenAI-compatible passthrough with no special handling.
Removing them reduces registry noise; users can still reach them via
openrouter.toml if needed.
Removed: microsoft, ibm-granite, xiaomi, upstage, inception, aion-labs, arcee-ai
* fix(providers): remove ai21, chutes, venice
All three use ApiFormat::OpenAI with no special handling — pure passthrough.
No registry entry needed; users can reach them via openrouter.toml or by
adding a custom provider.
* docs(providers): rewrite README with full provider catalog and inclusion criteria
- List all 46 providers grouped by category with descriptions
- Document why each provider exists (direct API, unique endpoint, dedicated driver, local, CLI)
- Add inclusion criteria section explaining when to create standalone files vs merging into openrouter.toml
- Document sync script routing logic
- Update model counts: 49→46 providers, 339→232 models
* docs: add comprehensive READMEs for all registry sections + deepinfra provider
- agents/README.md: 32 agents across 7 categories with capability field reference
- channels/README.md: 44 channels across 5 categories with protocol reference table
- hands/README.md: 18 hands across 5 categories with HAND.toml format guide
- mcp/README.md: 33 MCP servers across 5 categories with transport/auth format
- plugins/README.md: 12 plugins with hook protocol documentation
- skills/README.md: 60 skills across 9 categories with SKILL.md format guide
- providers/deepinfra.toml: add DeepInfra serverless inference (5 models)
This commit is contained in:
38 files changed
+1146
-1215
No files matched your search
+149
-40
@@ -1,52 +1,41 @@
|
||||
# Skills
|
||||
# Skills Registry
|
||||
|
||||
Reusable skill definitions for LibreFang agents. A skill is either a prompt
|
||||
template or a code script that an agent can invoke to perform a specific task.
|
||||
Skills are reusable expertise modules that can be attached to any agent. Each skill carries a system prompt that injects domain knowledge, best practices, and behavioral guidelines into an agent's context at conversation time. Skills are composable — a single agent can load multiple skills simultaneously.
|
||||
|
||||
## File Convention
|
||||
## File Format
|
||||
|
||||
Every skill directory **must** contain a `SKILL.md` (the entry point).
|
||||
A `skill.toml` is **optional** and only needed for structured metadata that
|
||||
does not fit in Markdown frontmatter (runtime, input schema, version, tags).
|
||||
A skill lives in its own subdirectory. The only required file is `SKILL.md`. An optional `skill.toml` provides structured metadata when `[runtime]`, `[input]` schema, or explicit versioning is needed.
|
||||
|
||||
```
|
||||
skills/
|
||||
├── docker/
|
||||
│ └── SKILL.md # Prompt-only expert — no skill.toml needed
|
||||
├── custom-skill-prompt/
|
||||
│ ├── SKILL.md # Prompt body + name/description
|
||||
│ └── skill.toml # Runtime + input schema
|
||||
└── custom-skill-python/
|
||||
├── SKILL.md # Overview (prompt body unused)
|
||||
├── skill.toml # Runtime = python, entry = main.py
|
||||
├── rust-expert/
|
||||
│ └── SKILL.md # required: frontmatter + prompt body
|
||||
├── meeting-agenda/
|
||||
│ ├── SKILL.md # required: frontmatter + prompt body
|
||||
│ └── skill.toml # optional: runtime type, input schema, version
|
||||
└── code-runner/
|
||||
├── SKILL.md # overview (prompt body unused for script skills)
|
||||
├── skill.toml # runtime = python, entry = main.py
|
||||
└── main.py
|
||||
```
|
||||
|
||||
### `SKILL.md` (required)
|
||||
|
||||
The source of truth for the skill's prompt and identity. Must start with YAML
|
||||
frontmatter containing at least `name` and `description`:
|
||||
### SKILL.md format
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: docker
|
||||
description: Docker expert for containers, Compose, and Dockerfiles.
|
||||
name: rust-expert
|
||||
description: "Rust programming expert for ownership, lifetimes, async/await, traits, and unsafe code"
|
||||
---
|
||||
# Rust Programming Expertise
|
||||
|
||||
You are a Docker specialist. You help users build, run, debug, and optimize
|
||||
containers...
|
||||
You are an expert Rust developer with deep understanding of the ownership system...
|
||||
```
|
||||
|
||||
This format is compatible with Claude Code skills, so a `SKILL.md` authored
|
||||
here can be dropped into other tools without modification.
|
||||
The frontmatter must contain `name` and `description`. The Markdown body becomes the injected prompt.
|
||||
|
||||
### `skill.toml` (optional)
|
||||
### skill.toml format (optional)
|
||||
|
||||
Add one only when you need to declare any of:
|
||||
|
||||
- `[runtime]` — `promptonly` / `python` / `node` / `shell` (default is `promptonly`)
|
||||
- `[input]` — typed input parameter schema
|
||||
- `version`, `author`, `tags` — structured metadata
|
||||
Only required when you need `[runtime]`, `[input]` schema, or structured metadata beyond what frontmatter supports:
|
||||
|
||||
```toml
|
||||
[skill]
|
||||
@@ -56,27 +45,147 @@ description = "Generate a structured meeting agenda from a topic and duration."
|
||||
tags = ["meeting", "productivity"]
|
||||
|
||||
[runtime]
|
||||
type = "promptonly"
|
||||
type = "promptonly" # promptonly | python | node | shell
|
||||
|
||||
[input]
|
||||
topic = { type = "string", description = "The meeting topic", required = true }
|
||||
duration_minutes = { type = "string", description = "Duration in minutes", required = true }
|
||||
```
|
||||
|
||||
**Consistency rule:** if both files exist, `skill.name` and `skill.description`
|
||||
in `skill.toml` must match the `name` and `description` in `SKILL.md`'s
|
||||
frontmatter. The validator enforces this to prevent drift.
|
||||
If both files exist, `skill.name` and `skill.description` in `skill.toml` must match the frontmatter in `SKILL.md`. The validator enforces this to prevent drift.
|
||||
|
||||
**Do not duplicate the prompt body in TOML.** The prompt lives in `SKILL.md`;
|
||||
`skill.toml` is for metadata the prompt cannot express.
|
||||
|
||||
## Testing Skills Locally
|
||||
## Installing and Using Skills
|
||||
|
||||
```bash
|
||||
librefang skill test ./skills/custom-skill-prompt \
|
||||
# List all available skills in the registry
|
||||
librefang catalog skills
|
||||
|
||||
# Attach a skill to an agent
|
||||
librefang skill attach <agent-name> rust-expert
|
||||
|
||||
# Attach multiple skills
|
||||
librefang skill attach <agent-name> rust-expert security-audit
|
||||
|
||||
# Detach a skill
|
||||
librefang skill detach <agent-name> rust-expert
|
||||
|
||||
# Test a skill locally with sample input
|
||||
librefang skill test ./skills/meeting-agenda \
|
||||
--input '{"topic": "Q1 planning", "duration_minutes": "30"}'
|
||||
```
|
||||
|
||||
## All Skills (61 total)
|
||||
|
||||
### Programming Languages
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| css-expert | CSS expert for flexbox, grid, animations, responsive design, and modern layout techniques |
|
||||
| golang-expert | Go programming expert for goroutines, channels, interfaces, modules, and concurrency patterns |
|
||||
| python-expert | Python expert for stdlib, packaging, type hints, async/await, and performance optimization |
|
||||
| rust-expert | Rust programming expert for ownership, lifetimes, async/await, traits, and unsafe code |
|
||||
| typescript-expert | TypeScript expert for type system, generics, utility types, and strict mode patterns |
|
||||
| wasm-expert | WebAssembly expert for WASI, component model, Rust/C compilation, and browser integration |
|
||||
|
||||
### Web Frameworks and APIs
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| graphql-expert | GraphQL expert for schema design, resolvers, subscriptions, and performance optimization |
|
||||
| nextjs-expert | Next.js expert for App Router, SSR/SSG, API routes, middleware, and deployment |
|
||||
| oauth-expert | OAuth 2.0 and OpenID Connect expert for authorization flows, PKCE, and token management |
|
||||
| openapi-expert | OpenAPI/Swagger expert for API specification design, validation, and code generation |
|
||||
| react-expert | React expert for hooks, state management, Server Components, and performance optimization |
|
||||
|
||||
### Databases
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| elasticsearch | Elasticsearch expert for queries, mappings, aggregations, index management, and cluster operations |
|
||||
| mongodb | MongoDB operations expert for queries, aggregation pipelines, indexes, and schema design |
|
||||
| postgres-expert | PostgreSQL expert for query optimization, indexing, extensions, and database administration |
|
||||
| redis-expert | Redis expert for data structures, caching patterns, Lua scripting, and cluster operations |
|
||||
| sql-analyst | SQL query expert for optimization, schema design, and data analysis |
|
||||
| sqlite-expert | SQLite expert for WAL mode, query optimization, embedded patterns, and advanced features |
|
||||
| vector-db | Vector database expert for embeddings, similarity search, RAG patterns, and indexing strategies |
|
||||
|
||||
### Cloud and Infrastructure
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| ansible | Ansible automation expert for playbooks, roles, inventories, and infrastructure management |
|
||||
| aws | AWS cloud services expert for EC2, S3, Lambda, IAM, and AWS CLI |
|
||||
| azure | Microsoft Azure expert for az CLI, AKS, App Service, and cloud infrastructure |
|
||||
| docker | Docker expert for containers, Compose, Dockerfiles, and debugging |
|
||||
| gcp | Google Cloud Platform expert for gcloud CLI, GKE, Cloud Run, and managed services |
|
||||
| helm | Helm chart expert for Kubernetes package management, templating, and dependency management |
|
||||
| kubernetes | Kubernetes operations expert for kubectl, pods, deployments, and debugging |
|
||||
| nginx | Nginx configuration expert for reverse proxy, load balancing, TLS, and performance tuning |
|
||||
| terraform | Terraform IaC expert for providers, modules, state management, and planning |
|
||||
|
||||
### DevOps and CI/CD
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| ci-cd | CI/CD pipeline expert for GitHub Actions, GitLab CI, Jenkins, and deployment automation |
|
||||
| git-expert | Git operations expert for branching, rebasing, conflicts, and workflows |
|
||||
| github | GitHub operations expert for PRs, issues, code review, Actions, and gh CLI |
|
||||
| linux-networking | Linux networking expert for iptables, nftables, routing, DNS, and network troubleshooting |
|
||||
| prometheus | Prometheus monitoring expert for PromQL, alerting rules, Grafana dashboards, and observability |
|
||||
| sentry | Sentry error tracking and debugging specialist |
|
||||
| shell-scripting | Shell scripting expert for Bash, POSIX compliance, error handling, and automation |
|
||||
| sysadmin | System administration expert for Linux, macOS, Windows, services, and monitoring |
|
||||
|
||||
### Security
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| compliance | Compliance expert for SOC 2, GDPR, HIPAA, PCI-DSS, and security frameworks |
|
||||
| crypto-expert | Cryptography expert for TLS, symmetric/asymmetric encryption, hashing, and key management |
|
||||
| security-audit | Security audit expert for OWASP Top 10, CVE analysis, code review, and penetration testing methodology |
|
||||
|
||||
### AI and Machine Learning
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| llm-finetuning | LLM fine-tuning expert for LoRA, QLoRA, dataset preparation, and training optimization |
|
||||
| ml-engineer | Machine learning engineer expert for PyTorch, scikit-learn, model evaluation, and MLOps |
|
||||
| prompt-engineer | Prompt engineering expert for chain-of-thought, few-shot learning, evaluation, and LLM optimization |
|
||||
| web-search | Web search and research specialist for finding and synthesizing information |
|
||||
|
||||
### Productivity Tools
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| confluence | Confluence wiki expert for page structure, spaces, macros, and content organization |
|
||||
| figma-expert | Figma design expert for components, auto-layout, design systems, and developer handoff |
|
||||
| jira | Jira project management expert for issues, sprints, workflows, and reporting |
|
||||
| linear-tools | Linear project management expert for issues, cycles, projects, and workflow automation |
|
||||
| notion | Notion workspace management and content creation specialist |
|
||||
| pdf-reader | PDF content extraction and analysis specialist |
|
||||
| slack-tools | Slack workspace management and automation specialist |
|
||||
|
||||
### Writing and Communication
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| email-writer | Professional email writing expert for tone, structure, clarity, and business communication |
|
||||
| presentation | Presentation expert for slide structure, storytelling, visual design, and audience engagement |
|
||||
| technical-writer | Technical writing expert for API docs, READMEs, ADRs, and developer documentation |
|
||||
| writing-coach | Writing improvement specialist for grammar, style, clarity, and structure |
|
||||
|
||||
### Engineering Practice
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| api-tester | API testing expert for curl, REST, GraphQL, authentication, and debugging |
|
||||
| code-reviewer | Code review specialist focused on patterns, bugs, security, and performance |
|
||||
| data-analyst | Data analysis expert for statistics, visualization, pandas, and exploration |
|
||||
| data-pipeline | Data pipeline expert for ETL, Apache Spark, Airflow, dbt, and data quality |
|
||||
| interview-prep | Technical interview preparation expert for algorithms, system design, and behavioral questions |
|
||||
| project-manager | Project management expert for Agile, estimation, risk management, and stakeholder communication |
|
||||
| regex-expert | Regular expression expert for crafting, debugging, and explaining patterns |
|
||||
|
||||
## Adding a New Skill
|
||||
|
||||
1. Create `skills/<name>/SKILL.md` with frontmatter (`name`, `description`) and the prompt body.
|
||||
|
||||
Reference in new issue
Block a user