Merge pull request 'fix: resolve skill audit findings' (#97) from fix/skill-audit-compliance into main

This commit is contained in:
Magnus Hedemark
2026-07-11 09:25:51 -04:00
76 changed files with 716 additions and 447 deletions
+20
View File
@@ -78,3 +78,23 @@ The synthesis report includes:
## License
MIT
## Why Install This Skill
This skill packages practical, reusable guidance for this domain so you can move from a real task to a dependable result without rebuilding the workflow each time.
## What You Get
A focused workflow in SKILL.md, with the referenced scripts, templates, and supporting material available when the task needs them.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
## Requirements
Check the compatibility requirements in SKILL.md before using commands or integrations from this skill.
+11 -15
View File
@@ -1,22 +1,18 @@
---
name: arr-cli
description: >-
Manage your Radarr (movies) and Sonarr (TV series) media library from the terminal.
Search and browse movies/series, add new content, check calendars, view queue and
download history, inspect quality profiles, and trigger searches. Use when the user
mentions Radarr, Sonarr, the *arr stack, adding a movie or series, checking the
library, finding something to watch, what's in the queue, download history,
upcoming releases, media server setup, or movie/TV automation.
description: Manage your Radarr (movies) and Sonarr (TV series) media library from
the terminal. Search and browse movies/series, add new content, check calendars,
view queue and download history, inspect quality profiles, and trigger searches.
Use when the user mentions Radarr, Sonarr, the *arr stack, adding a movie or series,
checking the library, finding something to watch, what's in the queue, download
history, upcoming releases, media server setup, or movie/TV automation.
license: MIT
compatibility: >-
Python 3.8+ with `requests` library. Requires ARR_SERVER_RADARR and ARR_KEY_RADARR
(for Radarr) or ARR_SERVER_SONARR and ARR_KEY_SONARR (for Sonarr). API keys from
each app's Settings → General.
compatibility: Python 3.8+ with `requests` library. Requires ARR_SERVER_RADARR and
ARR_KEY_RADARR (for Radarr) or ARR_SERVER_SONARR and ARR_KEY_SONARR (for Sonarr).
API keys from each app's Settings → General.
metadata:
tags: [radarr, sonarr, arr-stack, media-server, movie-automation, tv-series, api-client]
sources:
- https://radarr.video/
- https://sonarr.tv/
tags: radarr, sonarr, arr-stack, media-server, movie-automation, tv-series, api-client
sources: https://radarr.video/, https://sonarr.tv/
---
# arr-cli — Radarr + Sonarr Media Library Management
+5
View File
@@ -30,3 +30,8 @@ AutoGen differs from other frameworks in the portfolio: it's conversation-driven
## Requirements
Python 3.8+ with `autogen-agentchat` and `autogen-ext` packages.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+5
View File
@@ -28,3 +28,8 @@ Load this when you need a brand card for press/stakeholders, visual identity doc
## Requirements
Python 3.8+ for the CLI; image generation requires a compatible backend. Templates are plain markdown.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+5
View File
@@ -38,3 +38,8 @@ Load this when you hear "Tailscale," "Headscale," "tailnet," "mesh VPN," "WireGu
## Requirements
Bash, Python 3.8+, jq, curl. Access to a Headscale server or the `headscale` CLI. Tailscale client on target machines.
## Why Install This Skill
This skill packages practical, reusable guidance for this domain so you can move from a real task to a dependable result without rebuilding the workflow each time.
+9 -9
View File
@@ -1,16 +1,16 @@
---
name: tailscale
description: >-
Self-hosted Tailscale/Headscale ecosystem: deploy and manage a Headscale control server,
configure tailscale clients, manage ACL policies, node lifecycle, subnet routing, DERP relays,
and backup/migration. Use when the user mentions Tailscale, Headscale, tailnet, mesh VPN,
WireGuard mesh, or self-hosted VPN infrastructure.
description: 'Self-hosted Tailscale/Headscale ecosystem: deploy and manage a Headscale
control server, configure tailscale clients, manage ACL policies, node lifecycle,
subnet routing, DERP relays, and backup/migration. Use when the user mentions Tailscale,
Headscale, tailnet, mesh VPN, WireGuard mesh, or self-hosted VPN infrastructure.'
license: MIT
compatibility: Requires bash, Python 3.8+, jq, curl, and access to a Headscale server or
the `headscale` CLI. Tailscale client (`tailscale`) must be installed on target machines.
compatibility: Requires bash, Python 3.8+, jq, curl, and access to a Headscale server
or the `headscale` CLI. Tailscale client (`tailscale`) must be installed on target
machines.
metadata:
tags: [tailscale, headscale, vpn, wireguard, mesh, networking, homelab]
spec-version: "1.0"
tags: tailscale, headscale, vpn, wireguard, mesh, networking, homelab
spec-version: '1.0'
---
# Tailscale + Headscale Skill Bundle
@@ -1,7 +1,10 @@
---
name: headscale-backup
description: Backup, restore, and migrate Headscale installations — SQLite database, configuration file, policy file, and TLS certificates. Use when backing up a headscale server before upgrades, migrating to new hardware, or restoring from a disaster.
category: devops
description: Backup, restore, and migrate Headscale installations — SQLite database,
configuration file, policy file, and TLS certificates. Use when backing up a headscale
server before upgrades, migrating to new hardware, or restoring from a disaster.
metadata:
category: devops
---
# headscale-backup
@@ -1,17 +1,13 @@
---
name: headscale-deploy
description: Deploy, configure, and maintain a self-hosted Headscale control server on Linux or Docker. Use when setting up a new Headscale instance, troubleshooting deployment issues, or configuring server settings.
description: Deploy, configure, and maintain a self-hosted Headscale control server
on Linux or Docker. Use when setting up a new Headscale instance, troubleshooting
deployment issues, or configuring server settings.
license: MIT
compatibility: linux, docker
metadata:
tags:
- headscale
- tailscale
- wireguard
- vpn
- deployment
- devops
spec-version: 1.0
tags: headscale, tailscale, wireguard, vpn, deployment, devops
spec-version: '1.0'
---
# headscale-deploy
@@ -1,7 +1,11 @@
---
name: headscale-derp
description: Configure and manage DERP relay servers for Tailscale/Headscale — embedded and standalone DERP deployment, latency testing, and connectivity diagnostics. Use when direct peer connections fail, traffic is routed through DERP relays, or setting up custom relay regions.
category: devops
description: Configure and manage DERP relay servers for Tailscale/Headscale — embedded
and standalone DERP deployment, latency testing, and connectivity diagnostics. Use
when direct peer connections fail, traffic is routed through DERP relays, or setting
up custom relay regions.
metadata:
category: devops
---
# headscale-derp Skill
@@ -1,7 +1,10 @@
---
name: headscale-node-lifecycle
description: Manage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes. Use when adding new devices, generating auth keys for automation, or managing node inventory.
category: devops
description: Manage the full lifecycle of nodes in a Headscale tailnet — generate
pre-authenticated keys, register, approve, tag, list, and decommission nodes. Use
when adding new devices, generating auth keys for automation, or managing node inventory.
metadata:
category: devops
---
# headscale-node-lifecycle
@@ -1,7 +1,10 @@
---
name: headscale-routing
description: Configure subnet routers and exit nodes in a Headscale tailnet to extend mesh access to non-Tailscale devices and route internet traffic. Use when setting up subnet routing for LAN devices or configuring exit nodes for privacy.
category: devops
description: Configure subnet routers and exit nodes in a Headscale tailnet to extend
mesh access to non-Tailscale devices and route internet traffic. Use when setting
up subnet routing for LAN devices or configuring exit nodes for privacy.
metadata:
category: devops
---
# headscale-routing
@@ -1,7 +1,11 @@
---
name: tailnet-policy
description: Author, test, and deploy Tailscale-compatible huJSON policy files for Headscale tailnets — ACLs, Grants, Tags, Auto Approvers, Tailscale SSH rules. Use when configuring access control, writing policy files, or troubleshooting connectivity issues caused by ACLs.
category: devops
description: Author, test, and deploy Tailscale-compatible huJSON policy files for
Headscale tailnets — ACLs, Grants, Tags, Auto Approvers, Tailscale SSH rules. Use
when configuring access control, writing policy files, or troubleshooting connectivity
issues caused by ACLs.
metadata:
category: devops
---
# tailnet-policy
@@ -1,7 +1,10 @@
---
name: tailscale-client
description: Install, configure, and troubleshoot the official Tailscale client when connected to a Headscale self-hosted control server. Use when connecting a new device, diagnosing connectivity, checking peer status, or troubleshooting DERP relay issues.
category: devops
description: Install, configure, and troubleshoot the official Tailscale client when
connected to a Headscale self-hosted control server. Use when connecting a new device,
diagnosing connectivity, checking peer status, or troubleshooting DERP relay issues.
metadata:
category: devops
---
# tailscale-client
+5
View File
@@ -36,3 +36,8 @@ Load this when you want to understand your own process, formalize a workflow, sh
## Requirements
Hermes Agent (uses skill_view, memory, session context scanning, write_file for bundle generation). Output bundles are standard Agent Skills format.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+8 -10
View File
@@ -1,18 +1,16 @@
---
name: workflow-architect
description: >-
Discover your actual workflow through conversation or observation, then generate
a tailored skills bundle that encodes it as loadable agent skills with trigger
conditions. Use when you want to understand your own process, formalize it, or
share it with collaborators. Also use when a session feels aimless — this skill
gives it structure.
description: Discover your actual workflow through conversation or observation, then
generate a tailored skills bundle that encodes it as loadable agent skills with
trigger conditions. Use when you want to understand your own process, formalize
it, or share it with collaborators. Also use when a session feels aimless — this
skill gives it structure.
license: MIT
compatibility: >-
Hermes Agent — uses skill_view(), memory tool, session context scanning,
compatibility: Hermes Agent — uses skill_view(), memory tool, session context scanning,
and write_file for bundle generation. Output bundles are standard Agent Skills.
metadata:
tags: [workflow, meta, productivity, skills-bundle, onboarding, process]
spec-version: "1.0"
tags: workflow, meta, productivity, skills-bundle, onboarding, process
spec-version: '1.0'
---
# Workflow Architect
@@ -1,15 +1,14 @@
---
name: bundle-builder
description: >-
The synthesis engine for workflow-architect. Reads accumulated workflow
state from memory and renders it into a valid Agent Skills bundle directory
with sub-skills, manifest, decision map, and optional kanban board. Loaded
after the interviewer or observer achieves convergence.
description: The synthesis engine for workflow-architect. Reads accumulated workflow
state from memory and renders it into a valid Agent Skills bundle directory with
sub-skills, manifest, decision map, and optional kanban board. Loaded after the
interviewer or observer achieves convergence.
license: MIT
compatibility: Hermes Agent — uses write_file for bundle output, shell_quote
metadata:
tags: [workflow, generation, bundle, synthesis]
spec-version: "1.0"
tags: workflow, generation, bundle, synthesis
spec-version: '1.0'
---
# Bundle Builder — Workflow Synthesis Engine
@@ -1,15 +1,14 @@
---
name: interviewer
description: >-
The active interrogation sub-skill for workflow-architect. Guides the user
through 8-15 adaptive questions to discover their workflow phases, branching
signals, tool preferences, and friction points. Loaded by the umbrella
workflow-architect skill when running in active mode.
description: The active interrogation sub-skill for workflow-architect. Guides the
user through 8-15 adaptive questions to discover their workflow phases, branching
signals, tool preferences, and friction points. Loaded by the umbrella workflow-architect
skill when running in active mode.
license: MIT
compatibility: Hermes Agent — uses memory tool for state persistence
metadata:
tags: [workflow, interview, discovery, process]
spec-version: "1.0"
tags: workflow, interview, discovery, process
spec-version: '1.0'
---
# Interviewer — Active Workflow Discovery
@@ -1,15 +1,13 @@
---
name: observer
description: >-
The passive observation sub-skill for workflow-architect. Loaded silently,
it stays dormant until a trigger phrase activates it. On activation, it
scans the current session context to infer the user's workflow from what
actually happened.
description: The passive observation sub-skill for workflow-architect. Loaded silently,
it stays dormant until a trigger phrase activates it. On activation, it scans the
current session context to infer the user's workflow from what actually happened.
license: MIT
compatibility: Hermes Agent — uses session_search and context scanning
metadata:
tags: [workflow, observation, discovery, passive]
spec-version: "1.0"
tags: workflow, observation, discovery, passive
spec-version: '1.0'
---
# Observer — Passive Workflow Discovery
+5
View File
@@ -27,3 +27,8 @@ Load this when building a new CLI tool, refactoring an existing tool that causes
## Requirements
Bash, Python 3.8+, jq, and a standard Unix CLI environment.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+7 -14
View File
@@ -1,19 +1,15 @@
---
name: cli-builder
description: >-
Build or refactor CLI tools designed for AI agent consumption: non-interactive,
flag-driven, idempotent, with --json output and --dry-run preview. Use when
creating a new script the agent will call, adding agent-friendly flags to an
existing tool, or debugging why an agent keeps failing to use your CLI.
description: 'Build or refactor CLI tools designed for AI agent consumption: non-interactive,
flag-driven, idempotent, with --json output and --dry-run preview. Use when creating
a new script the agent will call, adding agent-friendly flags to an existing tool,
or debugging why an agent keeps failing to use your CLI.'
license: MIT
compatibility: Requires bash, Python 3.8+, jq, and standard Unix CLI environment.
metadata:
tags: [cli, agent-tooling, design-patterns, automation]
sources:
- https://x.com/ericzakariasson/status/2036762680401223946
- https://www.scalekit.com/blog/mcp-vs-cli-use
- https://github.com/ComposioHQ/awesome-agent-clis
- https://ronnierocha.dev/blog/dont-build-mcps-build-cli-tools
tags: cli, agent-tooling, design-patterns, automation
sources: https://x.com/ericzakariasson/status/2036762680401223946, https://www.scalekit.com/blog/mcp-vs-cli-use,
https://github.com/ComposioHQ/awesome-agent-clis, https://ronnierocha.dev/blog/dont-build-mcps-build-cli-tools
---
# CLI Builder — Agent-Friendly Tool Design
## Overview
@@ -484,12 +480,9 @@ The default for this repo is **`scripts/` inside the skill** — it follows the
### Skill Wrapper Template
See [references/skill-wrapper-example.md](references/skill-wrapper-example.md) for a complete worked example wrapping a hypothetical API CLI, including frontmatter, essential commands, gotchas, and auth wiring documentation.
## Agent-Readiness Checklist
Use [the agent-readiness checklist](references/agent-readiness-checklist.md) before shipping a CLI.
## References
- [templates/bash-cli-scaffold.sh](templates/bash-cli-scaffold.sh) — Full bash project template with pre-wired global flags, logging helpers, and subcommand dispatch. Use as a starting point for any bash CLI.
+5
View File
@@ -28,3 +28,8 @@ Load this when inspecting ICC profiles, converting between color spaces, checkin
## Requirements
ImageMagick, Exiftool, ArgyllCMS, LittleCMS (all platform-independent). Python scripts require Python 3.8+.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+9 -14
View File
@@ -1,21 +1,16 @@
---
name: confluence-cli
description: >-
Interact with Atlassian Confluence from the terminal: list spaces,
browse pages, view page content, search with CQL, and create pages.
Use when the user mentions Confluence, a space key (e.g. DEV), or
asks about documentation, wiki pages, space content, or knowledge
base articles.
description: 'Interact with Atlassian Confluence from the terminal: list spaces, browse
pages, view page content, search with CQL, and create pages. Use when the user mentions
Confluence, a space key (e.g. DEV), or asks about documentation, wiki pages, space
content, or knowledge base articles.'
license: MIT
compatibility: Requires CONFLUENCE_EMAIL and CONFLUENCE_API_TOKEN env vars
(free from id.atlassian.com/manage/api-tokens), Python 3.8+, and the
`requests` library. Also requires CONFLUENCE_SERVER (defaults to
your-domain.atlassian.net).
compatibility: Requires CONFLUENCE_EMAIL and CONFLUENCE_API_TOKEN env vars (free from
id.atlassian.com/manage/api-tokens), Python 3.8+, and the `requests` library. Also
requires CONFLUENCE_SERVER (defaults to your-domain.atlassian.net).
metadata:
tags: [confluence, atlassian, wiki, documentation, knowledge-base, api-client]
sources:
- https://developer.atlassian.com/cloud/confluence/rest/v2/
- https://id.atlassian.com/manage/api-tokens
tags: confluence, atlassian, wiki, documentation, knowledge-base, api-client
sources: https://developer.atlassian.com/cloud/confluence/rest/v2/, https://id.atlassian.com/manage/api-tokens
---
# confluence-cli — Confluence Wiki from the Terminal
+10
View File
@@ -27,3 +27,13 @@ CrewAI is higher-abstraction than LangGraph (which is a low-level state machine)
## Requirements
Python 3.8+ with `crewai` and `crewai-tools` packages.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
+5
View File
@@ -26,3 +26,8 @@ Load this when setting up or troubleshooting CrowdSec, or when you need an IPS/I
## Requirements
Linux server for installation. Docker for containerized deployment. Standard shell tools.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+7 -10
View File
@@ -1,15 +1,15 @@
---
name: crowdsec
version: 0.0.2
description: >-
Deploy, configure, and manage CrowdSec — the open-source, collaborative IPS/IDPS/WAF.
Covers Security Engine setup (Linux, Docker), cscli hub management, remediation
components, AppSec WAF, profiles, notifications, blocklists, CTI, and metrics.
Use when setting up or troubleshooting CrowdSec.
description: Deploy, configure, and manage CrowdSec — the open-source, collaborative
IPS/IDPS/WAF. Covers Security Engine setup (Linux, Docker), cscli hub management,
remediation components, AppSec WAF, profiles, notifications, blocklists, CTI, and
metrics. Use when setting up or troubleshooting CrowdSec.
license: MIT
compatibility: Any agent supporting Agent Skills format — commands use standard shell and CLI tools
compatibility: Any agent supporting Agent Skills format — commands use standard shell
and CLI tools
metadata:
source: https://docs.crowdsec.net
version: 0.0.2
---
# CrowdSec Skill
CrowdSec is an open-source, collaborative security engine that detects and blocks malicious actors. It analyzes logs and HTTP requests using behavior-based patterns (scenarios) and enforces blocks through remediation components (bouncers).
@@ -479,12 +479,9 @@ api:
- bouncers_ou
```
Client auth types: `NoClientCert`, `VerifyClientCertIfGiven` (default), `RequireAndVerifyClientCert`
## References
Load the following reference files for deeper coverage of specific topics:
| Reference | Load when | File |
|-----------|-----------|------|
| Full config.yaml reference | You need every configuration directive explained | `references/config-reference.md` |
+5
View File
@@ -27,3 +27,8 @@ Load this when your data pipelines are growing out of control, teams disagree on
## Requirements
No special system requirements. Designed for agentic AI assistants.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+15
View File
@@ -86,3 +86,18 @@ All scripts default to Python computation. The `--engine r` flag outputs equival
## License
MIT
## Why Install This Skill
This skill packages practical, reusable guidance for this domain so you can move from a real task to a dependable result without rebuilding the workflow each time.
## What You Get
A focused workflow in SKILL.md, with the referenced scripts, templates, and supporting material available when the task needs them.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+14 -15
View File
@@ -1,22 +1,21 @@
---
name: data-scientist
description: >-
PhD-level expertise in data science, statistics, and machine learning. Use when
the task requires rigorous statistical analysis, experimental design, causal
inference, advanced modeling, research methodology, or data science project
leadership. Load when the user asks about statistical methods, experimental design,
model selection, A/B testing, hypothesis testing, power analysis, regression,
causality, Bayesian analysis, or research methodology.
description: PhD-level expertise in data science, statistics, and machine learning.
Use when the task requires rigorous statistical analysis, experimental design, causal
inference, advanced modeling, research methodology, or data science project leadership.
Load when the user asks about statistical methods, experimental design, model selection,
A/B testing, hypothesis testing, power analysis, regression, causality, Bayesian
analysis, or research methodology.
license: MIT
compatibility: >-
Python 3.10+ with scipy, statsmodels, scikit-learn, pandas, numpy. PyTorch
and sklearn are the primary ML frameworks. Hardware-aware via detect-compute.py.
Optional R engine via rpy2. Deep learning assumes NVIDIA GPU with CUDA or Apple MPS.
compatibility: Python 3.10+ with scipy, statsmodels, scikit-learn, pandas, numpy.
PyTorch and sklearn are the primary ML frameworks. Hardware-aware via detect-compute.py.
Optional R engine via rpy2. Deep learning assumes NVIDIA GPU with CUDA or Apple
MPS.
metadata:
spec-version: "1.0"
skills: [research-methodology, statistics, machine-learning, causal-inference,
bayesian-analysis, experimental-design]
requires-toolsets: [terminal]
spec-version: '1.0'
skills: research-methodology, statistics, machine-learning, causal-inference, bayesian-analysis,
experimental-design
requires-toolsets: terminal
---
# PhD-Level Data Science
+10
View File
@@ -26,3 +26,13 @@ DSPy is **not** a chain or RAG framework. It operates at the compiler layer —
## Requirements
Python 3.8+ with `dspy` package.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
+5
View File
@@ -30,3 +30,8 @@ Load this when you encounter EPUB files — to read, create, edit, extract, conv
## Requirements
Python 3.8+ with `EbookLib`. Optional: `beautifulsoup4`, `epublib`, Java (for EPUBCheck), and an LLM endpoint for knowledge extraction.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+12 -14
View File
@@ -1,22 +1,20 @@
---
name: epub
description: >-
EPUB file format expert — read, write, and edit EPUB2/EPUB3 ebooks. Extract text,
metadata, structure, and knowledge from EPUB files for enrichment or memory. Create
valid EPUBs from scratch. Validate against the EPUB specification. Use when the user
mentions epub, ebook, EPUB file, ebook format, read epub, write epub, create ebook,
extract from epub, epub to text, or ebook structure.
description: EPUB file format expert — read, write, and edit EPUB2/EPUB3 ebooks. Extract
text, metadata, structure, and knowledge from EPUB files for enrichment or memory.
Create valid EPUBs from scratch. Validate against the EPUB specification. Use when
the user mentions epub, ebook, EPUB file, ebook format, read epub, write epub, create
ebook, extract from epub, epub to text, or ebook structure.
license: MIT
compatibility: >-
Python 3.8+ required. Core scripts use EbookLib (pip install EbookLib) for reading and
creating EPUBs. Optional epublib (pip install epublib) for non-intrusive editing.
beautifulsoup4 (pip install beautifulsoup4) for text extraction. Optional LLM mode via
EPUB_LLM_URL + EPUB_LLM_KEY env vars (any OpenAI-compatible provider). EPUBCheck
(Java, optional) for authoritative validation. Portable across all AgentSkills-compatible
compatibility: Python 3.8+ required. Core scripts use EbookLib (pip install EbookLib)
for reading and creating EPUBs. Optional epublib (pip install epublib) for non-intrusive
editing. beautifulsoup4 (pip install beautifulsoup4) for text extraction. Optional
LLM mode via EPUB_LLM_URL + EPUB_LLM_KEY env vars (any OpenAI-compatible provider).
EPUBCheck (Java, optional) for authoritative validation. Portable across all AgentSkills-compatible
harnesses — scripts are platform-agnostic.
metadata:
skills: [epub, ebook, publishing, knowledge-extraction, document-processing]
tags: [epub, ebook, epub3, epub2, publishing, document-extraction, knowledge]
skills: epub, ebook, publishing, knowledge-extraction, document-processing
tags: epub, ebook, epub3, epub2, publishing, document-extraction, knowledge
---
# EPUB — Ebook Creation, Extraction & Enrichment
+4 -2
View File
@@ -1,11 +1,13 @@
---
name: forgejo-cli
description: Use when managing a Forgejo or Gitea server from the terminal: issues, pull requests, repositories, file contents, labels, milestones, releases, webhooks, user settings, or any /api/v1 endpoint through a safe generic API command.
description: 'Use when managing a Forgejo or Gitea server from the terminal: issues,
pull requests, repositories, file contents, labels, milestones, releases, webhooks,
user settings, or any /api/v1 endpoint through a safe generic API command.'
license: MIT
compatibility: Python 3.8+; requests is required only for live API calls.
metadata:
version: 2.0.0
tags: [forgejo, gitea, git, api, code-review]
tags: forgejo, gitea, git, api, code-review
---
# Forgejo CLI v2
+8 -12
View File
@@ -1,19 +1,15 @@
---
name: ghost-cli
description: >-
Manage Ghost CMS content from the terminal — create and list posts, pages,
and tags, and fetch site info via the Ghost Admin API (v5/v6). Use when the
user asks about ghost, cms, blog, blogging, posts, pages, tags, publishing,
or site configuration.
description: Manage Ghost CMS content from the terminal — create and list posts, pages,
and tags, and fetch site info via the Ghost Admin API (v5/v6). Use when the user
asks about ghost, cms, blog, blogging, posts, pages, tags, publishing, or site configuration.
license: MIT
compatibility: Requires GHOST_URL and GHOST_ADMIN_KEY env vars. Admin key in
"id:secret" format from Ghost Admin → Integrations. Python 3.8+ and the
`requests` library.
compatibility: Requires GHOST_URL and GHOST_ADMIN_KEY env vars. Admin key in "id:secret"
format from Ghost Admin → Integrations. Python 3.8+ and the `requests` library.
metadata:
tags: [ghost, cms, blog, blogging, post, page, tag, ghost-cms, content-management, api-client]
sources:
- https://ghost.org/docs/admin-api/
- https://ghost.org/docs/
tags: ghost, cms, blog, blogging, post, page, tag, ghost-cms, content-management,
api-client
sources: https://ghost.org/docs/admin-api/, https://ghost.org/docs/
---
# ghost-cli — Ghost CMS from the Terminal
+5
View File
@@ -27,3 +27,8 @@ Load this when setting up CI, troubleshooting runner registration failures, desi
## Requirements
Linux, macOS, or Windows target hosts. Docker for containerized runners. Kubernetes for ARC deployments.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+8 -8
View File
@@ -1,16 +1,16 @@
---
name: github-runner
version: 1.0.2
description: >-
Deploy, manage, and troubleshoot self-hosted GitHub Actions runners. Covers
systemd service, Docker containers, Kubernetes (Actions Runner Controller),
and the Scale Set Client. Use when setting up a CI runner, debugging
registration failures, designing autoscaling, or hardening runner security.
description: Deploy, manage, and troubleshoot self-hosted GitHub Actions runners.
Covers systemd service, Docker containers, Kubernetes (Actions Runner Controller),
and the Scale Set Client. Use when setting up a CI runner, debugging registration
failures, designing autoscaling, or hardening runner security.
license: MIT
compatibility: Linux, macOS, or Windows target hosts. Docker for containerized runners. Kubernetes for ARC deployments.
compatibility: Linux, macOS, or Windows target hosts. Docker for containerized runners.
Kubernetes for ARC deployments.
metadata:
tags: [github-actions, ci-cd, runners, devops, docker, kubernetes, autoscaling]
tags: github-actions, ci-cd, runners, devops, docker, kubernetes, autoscaling
source: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners
version: 1.0.2
---
# Self-Hosted GitHub Actions Runner
+16 -19
View File
@@ -1,26 +1,23 @@
---
name: gutenberg
description: >-
Search, download, and extract public-domain books from Project Gutenberg.
Look up books by ID or keyword via gutendex, download plain-text and EPUB
editions, strip licensing boilerplate, extract clean text from EPUB for
illustrated works, and classify fiction vs non-fiction. Ships a portable
CLI script with zero external dependencies. Use when the user says
"gutenberg", "public domain", "download a book", "classic literature",
"free ebook", "gutenberg.org", or names any public-domain title or author.
description: Search, download, and extract public-domain books from Project Gutenberg.
Look up books by ID or keyword via gutendex, download plain-text and EPUB editions,
strip licensing boilerplate, extract clean text from EPUB for illustrated works,
and classify fiction vs non-fiction. Ships a portable CLI script with zero external
dependencies. Use when the user says "gutenberg", "public domain", "download a book",
"classic literature", "free ebook", "gutenberg.org", or names any public-domain
title or author.
license: MIT
compatibility: >-
Python 3.8+ with zero external dependencies. The CLI uses only the Python
standard library (urllib.request, json, html.parser, zipfile, re, sys).
For EPUB extraction, Python 3.8+ with only stdlib is required (zipfile +
html.parser). The gutendex API (https://gutendex.com) requires no API key
or registration. No env vars needed for basic operation.
compatibility: Python 3.8+ with zero external dependencies. The CLI uses only the
Python standard library (urllib.request, json, html.parser, zipfile, re, sys). For
EPUB extraction, Python 3.8+ with only stdlib is required (zipfile + html.parser).
The gutendex API (https://gutendex.com) requires no API key or registration. No
env vars needed for basic operation.
metadata:
tags: [gutenberg, project-gutenberg, books, public-domain, literature, classics, ebooks, text-extraction, epub]
sources:
- https://gutendex.com
- https://www.gutenberg.org
skills: [books, public-domain, literature, text-mining, ebooks]
tags: gutenberg, project-gutenberg, books, public-domain, literature, classics,
ebooks, text-extraction, epub
sources: https://gutendex.com, https://www.gutenberg.org
skills: books, public-domain, literature, text-mining, ebooks
---
# Gutenberg — Public Domain Book Toolkit
+10
View File
@@ -27,3 +27,13 @@ Haystack uses explicit Pipeline DAGs (add_component + connect) — different fro
## Requirements
Python 3.8+ with `haystack-ai` package.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
+5
View File
@@ -28,3 +28,8 @@ Load this when working on a Hugo theme or site template layer.
## Requirements
Hugo v0.154+. Works with any agent framework supporting the Agent Skills format.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+10 -13
View File
@@ -1,20 +1,17 @@
---
name: jellyfin-cli
description: >-
Query your Jellyfin media server from the terminal — recently added movies
and episodes, search across your library, browse libraries, and check server
info and stats. Use when the user asks about Jellyfin, media server, movies,
TV shows, recently added content, or their media library.
description: Query your Jellyfin media server from the terminal — recently added movies
and episodes, search across your library, browse libraries, and check server info
and stats. Use when the user asks about Jellyfin, media server, movies, TV shows,
recently added content, or their media library.
license: MIT
compatibility: Requires JELLYFIN_URL (default http://localhost:8096) and
JELLYFIN_API_KEY env vars; Python 3.8+ and the `requests` library. Generate
an API key at Dashboard → API Keys in the Jellyfin admin panel.
compatibility: Requires JELLYFIN_URL (default http://localhost:8096) and JELLYFIN_API_KEY
env vars; Python 3.8+ and the `requests` library. Generate an API key at Dashboard
→ API Keys in the Jellyfin admin panel.
metadata:
tags: [jellyfin, media-server, movies, tv, episodes, recently-added, library,
home-media, api-client]
sources:
- https://jellyfin.org/docs/general/clients/api
- https://jellyfin.org/downloads
tags: jellyfin, media-server, movies, tv, episodes, recently-added, library, home-media,
api-client
sources: https://jellyfin.org/docs/general/clients/api, https://jellyfin.org/downloads
---
# jellyfin-cli — Jellyfin Media Server from the Terminal
+9 -12
View File
@@ -1,19 +1,16 @@
---
name: jira-cli
description: >-
Interact with Atlassian Jira from the terminal: search issues, view
details, create issues, add comments, list projects, and transition
status. Use when the user mentions Jira, a ticket key (e.g. PROJ-123),
or asks about issues, bugs, tasks, projects, or sprint work.
description: 'Interact with Atlassian Jira from the terminal: search issues, view
details, create issues, add comments, list projects, and transition status. Use
when the user mentions Jira, a ticket key (e.g. PROJ-123), or asks about issues,
bugs, tasks, projects, or sprint work.'
license: MIT
compatibility: Requires JIRA_EMAIL and JIRA_API_TOKEN env vars (free from
id.atlassian.com/manage/api-tokens), Python 3.8+, and the `requests`
library. Also requires JIRA_SERVER (defaults to your-domain.atlassian.net).
compatibility: Requires JIRA_EMAIL and JIRA_API_TOKEN env vars (free from id.atlassian.com/manage/api-tokens),
Python 3.8+, and the `requests` library. Also requires JIRA_SERVER (defaults to
your-domain.atlassian.net).
metadata:
tags: [jira, atlassian, issue-tracking, project-management, api-client]
sources:
- https://developer.atlassian.com/cloud/jira/platform/rest/v3/
- https://id.atlassian.com/manage/api-tokens
tags: jira, atlassian, issue-tracking, project-management, api-client
sources: https://developer.atlassian.com/cloud/jira/platform/rest/v3/, https://id.atlassian.com/manage/api-tokens
---
# jira-cli — Jira Issue Tracker from the Terminal
+5
View File
@@ -27,3 +27,8 @@ Load this when writing, debugging, or optimizing JQL queries; building saved fil
## Requirements
None — this is a reference skill. No scripts, no API keys.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+5
View File
@@ -27,3 +27,8 @@ Load this when your team is struggling with throughput, cycle times are unpredic
## Requirements
No special system requirements. Designed for agentic AI assistants.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+10
View File
@@ -26,3 +26,13 @@ LangChain is the broadest LLM framework with 1000+ integrations. Its agents now
## Requirements
Python 3.8+ with `langchain`, `langchain-community`, and provider-specific packages.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
+5
View File
@@ -29,3 +29,8 @@ Load this when designing agent architectures that need cycles, conditional branc
## Requirements
Python 3.8+ with `langgraph`, `langchain`, and `langchain-openai` packages.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+8 -9
View File
@@ -1,17 +1,16 @@
---
name: langgraph
description: >-
Build multi-agent AI systems with LangGraph — the low-level orchestration
framework for stateful, graph-based agent workflows. Covers supervisor, swarm,
and hierarchical multi-agent patterns; subgraph composition; state management
(checkpointers/stores); persistence; evals; and production debugging. Reach
for this when designing agent architectures that need cycles, conditional
branching, parallel execution, or human-in-the-loop patterns.
description: Build multi-agent AI systems with LangGraph — the low-level orchestration
framework for stateful, graph-based agent workflows. Covers supervisor, swarm, and
hierarchical multi-agent patterns; subgraph composition; state management (checkpointers/stores);
persistence; evals; and production debugging. Reach for this when designing agent
architectures that need cycles, conditional branching, parallel execution, or human-in-the-loop
patterns.
license: MIT
version: "1.0.2"
metadata:
source: LangGraph by LangChain Inc — https://langchain.com/langgraph
spec-version: "1.0"
spec-version: '1.0'
version: 1.0.2
---
# LangGraph
+10 -12
View File
@@ -1,19 +1,17 @@
---
name: lastfm
description: >-
Interact with the Last.fm music data API: lookup user listening history,
get artist/album/track metadata, discover similar music via collaborative
filtering, explore global and per-country charts, search by artist/album/track,
manage tags, and scrobble listening events. Use when the user asks about
music data, listening statistics, music recommendations, similar artists,
charts, or wants to scrobble or love tracks.
description: 'Interact with the Last.fm music data API: lookup user listening history,
get artist/album/track metadata, discover similar music via collaborative filtering,
explore global and per-country charts, search by artist/album/track, manage tags,
and scrobble listening events. Use when the user asks about music data, listening
statistics, music recommendations, similar artists, charts, or wants to scrobble
or love tracks.'
license: MIT
compatibility: Requires a Last.fm API key in the LASTFM_API_KEY env var.
For write operations (scrobble, love, now-playing), also needs
LASTFM_API_SECRET and LASTFM_SESSION_KEY. The `lastfm-cli` CLI tool
must be on PATH.
compatibility: Requires a Last.fm API key in the LASTFM_API_KEY env var. For write
operations (scrobble, love, now-playing), also needs LASTFM_API_SECRET and LASTFM_SESSION_KEY.
The `lastfm-cli` CLI tool must be on PATH.
metadata:
tags: [music, lastfm, scrobbling, api-client, music-discovery]
tags: music, lastfm, scrobbling, api-client, music-discovery
source: https://www.last.fm/api
---
+80
View File
@@ -0,0 +1,80 @@
#!/usr/bin/env python3
"""Small, dependency-free Last.fm API client used by the lastfm skill."""
import argparse
import json
import os
import sys
import urllib.parse
import urllib.request
API = "https://ws.audioscrobbler.com/2.0/"
METHODS = {
"user info": "user.getinfo", "user recent-tracks": "user.getrecenttracks",
"user top-artists": "user.gettopartists", "user top-tracks": "user.gettoptracks",
"user loved-tracks": "user.getlovedtracks", "user friends": "user.getfriends",
"user weekly-charts": "user.getweeklychartlist", "artist similar": "artist.getsimilar",
"artist info": "artist.getinfo", "artist top-tracks": "artist.gettoptracks",
"artist search": "artist.search", "album info": "album.getinfo", "album search": "album.search",
"track similar": "track.getsimilar", "track search": "track.search",
"tag top-artists": "tag.gettopartists", "tag top-tracks": "tag.gettoptracks",
"tag top-albums": "tag.gettopalbums", "chart top-artists": "chart.gettopartists",
"geo top-artists": "geo.gettopartists", "geo top-tracks": "geo.gettoptracks",
}
def parser():
p = argparse.ArgumentParser(description="Last.fm API client", epilog="Examples: lastfm-cli artist similar Radiohead --limit 5")
p.add_argument("--json", action="store_true", help="emit JSON")
p.add_argument("--dry-run", action="store_true", help="show the API plan without a request")
subs = p.add_subparsers(dest="group", required=True)
for group, commands in {"user": ["info", "recent-tracks", "top-artists", "top-tracks", "loved-tracks", "friends", "weekly-charts"], "artist": ["similar", "info", "top-tracks", "search"], "album": ["info", "search"], "track": ["similar", "search", "scrobble", "now-playing", "love"], "tag": ["top-artists", "top-tracks", "top-albums"], "chart": ["top-artists"], "geo": ["top-artists", "top-tracks"], "auth": ["get-token", "get-session"]}.items():
gp = subs.add_parser(group)
cs = gp.add_subparsers(dest="command", required=True)
for command in commands:
cp = cs.add_parser(command)
if group in {"user", "artist", "album", "tag", "geo"} or group == "track":
cp.add_argument("values", nargs="*", metavar="VALUE", help="username, artist, tag, country, or track values")
cp.add_argument("--limit", type=int)
cp.add_argument("--period")
cp.add_argument("--autocorrect", action="store_true")
return p
def main():
args = parser().parse_args()
key = f"{args.group} {args.command}"
if args.group == "auth":
print("Auth operations require LASTFM_API_KEY, LASTFM_API_SECRET, and a browser authorization flow.")
return 0
values = getattr(args, "values", [])
if args.command not in {"search", "top-artists", "top-tracks", "top-albums", "weekly-charts"} and not values:
parser().error(f"{args.group} {args.command}: a value is required")
method = METHODS.get(key)
if not method:
parser().error(f"unsupported operation: {key}")
params = {"method": method, "format": "json"}
if values:
param = "user" if args.group == "user" else "country" if args.group == "geo" else "tag" if args.group == "tag" else "artist"
params[param] = values[0]
if args.group in {"track", "album"} and len(values) > 1:
params["track" if args.group == "track" else "album"] = values[1]
for option in ("limit", "period", "autocorrect"):
value = getattr(args, option, None)
if value not in (None, False): params[option] = value
if args.dry_run:
print(json.dumps({"dry_run": True, "url": API, "params": params}, indent=2))
return 0
api_key = os.getenv("LASTFM_API_KEY")
if not api_key:
print("LASTFM_API_KEY is required", file=sys.stderr)
return 2
params["api_key"] = api_key
try:
with urllib.request.urlopen(f"{API}?{urllib.parse.urlencode(params)}", timeout=30) as response:
payload = json.load(response)
except Exception as exc:
print(f"Last.fm request failed: {exc}", file=sys.stderr)
return 1
print(json.dumps(payload, indent=2) if args.json else json.dumps(payload, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())
+4 -3
View File
@@ -31,8 +31,9 @@ check_output() {
fi
}
# CLI path — adjust if not on PATH
CLI=lastfm-cli
# Use the bundled CLI so the test is location-independent.
SKILL_DIR="$(cd "$(dirname "$0")/.." && pwd)"
CLI="$SKILL_DIR/scripts/lastfm-cli"
echo "=== lastfm-cli Test Suite ===
"
@@ -68,4 +69,4 @@ check_output "Missing API key → graceful error" "LASTFM_API_KEY" $CLI user inf
echo ""
echo "=== Results: $PASS passed, $FAIL failed ==="
[[ $FAIL -eq 0 ]] || exit 1
[[ $FAIL -eq 0 ]] || exit 1
+8 -11
View File
@@ -1,19 +1,16 @@
---
name: lidarr-cli
description: >-
Manage your Lidarr music library from the terminal. Search and browse artists
and albums, add new artists, check calendars, view queue and download history,
inspect quality and metadata profiles, and trigger searches. Use when the user
mentions Lidarr, music management, adding an artist, searching for music,
checking the music library, upcoming album releases, or download queue.
description: Manage your Lidarr music library from the terminal. Search and browse
artists and albums, add new artists, check calendars, view queue and download history,
inspect quality and metadata profiles, and trigger searches. Use when the user mentions
Lidarr, music management, adding an artist, searching for music, checking the music
library, upcoming album releases, or download queue.
license: MIT
compatibility: >-
Python 3.8+ with `requests` library. Requires ARR_SERVER_LIDARR and
compatibility: Python 3.8+ with `requests` library. Requires ARR_SERVER_LIDARR and
ARR_KEY_LIDARR (from Lidarr → Settings → General → API Key).
metadata:
tags: [lidarr, music, arr-stack, media-server, music-automation, api-client]
sources:
- https://lidarr.audio/
tags: lidarr, music, arr-stack, media-server, music-automation, api-client
sources: https://lidarr.audio/
---
# lidarr-cli — Lidarr Music Library Management
+10
View File
@@ -27,3 +27,13 @@ LlamaIndex evolved from a RAG indexing library into a full workflow framework. I
## Requirements
Python 3.8+ with `llama_index` package.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
## Triggers
Use this skill for the task types and keywords described in its SKILL.md description.
+5
View File
@@ -26,3 +26,8 @@ Load this when creating visuals in the Nous Research ecosystem — blog headers,
## Requirements
Image generation backend for prompt-based workflows. Reference-image (img2img) workflows require an API supporting image inputs.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+13 -16
View File
@@ -1,27 +1,24 @@
---
name: nous-branding
description: >-
Generate images and content consistent with the Nous Research brand identity.
Use when creating visuals in the Nous / Theia / Hermes ecosystem: a "cyber-classical"
description: 'Generate images and content consistent with the Nous Research brand
identity. Use when creating visuals in the Nous / Theia / Hermes ecosystem: a "cyber-classical"
style blending neo-classical statuary, cyberpunk/industrial grunge, and retro anime
illustration. Covers official brand color palette, typography (Inter/IBM Plex Sans,
JetBrains Mono, heavy distressed display faces), the Nous Girl mascot, texture system,
and image prompt construction. Ships reference images for palette, mascot, and brand
collage that can be used as img2img inputs.
collage that can be used as img2img inputs.'
license: MIT
version: 1.1.0
compatibility: Compatible with any agent capable of image generation or brand
analysis. Reference-image workflows (img2img, style transfer, variations) require
an API endpoint supporting image inputs — use the assets/ images as input.
compatibility: Compatible with any agent capable of image generation or brand analysis.
Reference-image workflows (img2img, style transfer, variations) require an API endpoint
supporting image inputs — use the assets/ images as input.
metadata:
tags: [nous-research, theia, hermes, brand, illustration, mascot, image-generation, style-guide, cyber-classical]
sources:
- https://nousresearch.com
- Reference image: assets/palette-typography-reference.png
- Reference image: assets/nous-girl-official.webp (official mascot, 2669×2709)
- Reference image: assets/nous-girl-style-reference.png
- Reference image: assets/brand-collage-reference.png
- https://nousresearch.com/wp-content/uploads/2024/03/NOUS-BRAND-BOOKLET-firstedition_1.pdf
tags: nous-research, theia, hermes, brand, illustration, mascot, image-generation,
style-guide, cyber-classical
sources: https://nousresearch.com, {"Reference image"=>"assets/palette-typography-reference.png"},
{"Reference image"=>"assets/nous-girl-official.webp (official mascot, 2669×2709)"},
{"Reference image"=>"assets/nous-girl-style-reference.png"}, {"Reference image"=>"assets/brand-collage-reference.png"},
https://nousresearch.com/wp-content/uploads/2024/03/NOUS-BRAND-BOOKLET-firstedition_1.pdf
version: 1.1.0
---
# Nous Branding
+5
View File
@@ -28,3 +28,8 @@ Load this when working with OKF, creating knowledge bundles for AI agents, or co
## Requirements
Python 3.8+ with PyYAML for validation. No API keys needed.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+12 -15
View File
@@ -1,21 +1,18 @@
---
name: open-knowledge-format
description: >-
Google's Open Knowledge Format (OKF) v0.1 — an open, vendor-neutral spec for
representing knowledge as markdown files with YAML frontmatter, designed for
AI agent consumption. Use when the user mentions OKF, Open Knowledge Format,
Google's knowledge format, LLM wiki bundles, agent knowledge packs, creating
OKF bundles, validating OKF documents, or converting knowledge into the OKF
standard.
description: Google's Open Knowledge Format (OKF) v0.1 — an open, vendor-neutral spec
for representing knowledge as markdown files with YAML frontmatter, designed for
AI agent consumption. Use when the user mentions OKF, Open Knowledge Format, Google's
knowledge format, LLM wiki bundles, agent knowledge packs, creating OKF bundles,
validating OKF documents, or converting knowledge into the OKF standard.
license: MIT
compatibility: >-
Portable across any AgentSkills-compatible harness. The validation script
requires Python 3.8+ with PyYAML (pip install PyYAML). All examples use
standard markdown — readable in any editor or terminal.
compatibility: Portable across any AgentSkills-compatible harness. The validation
script requires Python 3.8+ with PyYAML (pip install PyYAML). All examples use standard
markdown — readable in any editor or terminal.
metadata:
spec-version: "1.0"
skills: [okf, open-knowledge-format, knowledge-format, agent-knowledge, llm-wiki]
tags: [okf, knowledge-format, google, ai-agents, markdown, knowledge-management]
spec-version: '1.0'
skills: okf, open-knowledge-format, knowledge-format, agent-knowledge, llm-wiki
tags: okf, knowledge-format, google, ai-agents, markdown, knowledge-management
---
# Open Knowledge Format (OKF) — v0.1
@@ -151,7 +148,7 @@ EOF
cat > index.md << 'EOF'
# Knowledge Bundle
* [Sales Dataset](datasets/sales.md) - Retail sales data
* Sales Dataset (`datasets/sales.md`) - Retail sales data in an example OKF bundle
EOF
# 4. Validate your bundle
+7 -10
View File
@@ -1,18 +1,15 @@
---
name: openlibrary-cli
description: >-
Search books, authors, and works on Open Library from the terminal. Look up
books by ISBN, search titles and authors, and fetch detailed work/author
records via the public Open Library API. No API key required.
description: Search books, authors, and works on Open Library from the terminal. Look
up books by ISBN, search titles and authors, and fetch detailed work/author records
via the public Open Library API. No API key required.
license: MIT
compatibility: Python 3.8+ and the `requests` library. No API key or registration
required — the Open Library API is fully public. Optional OL_EMAIL env var
sets a User-Agent contact for improved rate limiting.
required — the Open Library API is fully public. Optional OL_EMAIL env var sets
a User-Agent contact for improved rate limiting.
metadata:
tags: [open-library, books, authors, isbn, library, book-search, api-client, catalog]
sources:
- https://openlibrary.org/developers/api
- https://openlibrary.org
tags: open-library, books, authors, isbn, library, book-search, api-client, catalog
sources: https://openlibrary.org/developers/api, https://openlibrary.org
---
# openlibrary-cli — Book Metadata from Open Library
+5
View File
@@ -27,3 +27,8 @@ Load this when filing an issue, opening a PR, or contributing to any open source
## Requirements
None. Works with any agent supporting the Agent Skills format.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+9 -10
View File
@@ -1,18 +1,17 @@
---
name: opensource-contributions
description: >-
Make good open source contributions — check CONTRIBUTING.md first, follow
project norms, be a good citizen. Covers bug reports, feature requests, and
pull requests with a defensible default posture when the project hasn't
documented expectations.
description: Make good open source contributions — check CONTRIBUTING.md first, follow
project norms, be a good citizen. Covers bug reports, feature requests, and pull
requests with a defensible default posture when the project hasn't documented expectations.
license: MIT
compatibility: Compatible with any agent supporting the Agent Skills format (Hermes Agent, Claude Code, GitHub Copilot, OpenCode, Cursor, etc.)
compatibility: Compatible with any agent supporting the Agent Skills format (Hermes
Agent, Claude Code, GitHub Copilot, OpenCode, Cursor, etc.)
metadata:
tags: [opensource, contributing, github, etiquette, PRs, issues]
related_skills: [github-issues, github-pr-workflow, github-code-review]
version: "1.6.0"
tags: opensource, contributing, github, etiquette, PRs, issues
related_skills: github-issues, github-pr-workflow, github-code-review
version: 1.6.0
author: agent-skills
source_repo: https://agentskills.io
source_repo: https://agentskills.io
---
# Open Source Contributions
+8 -13
View File
@@ -1,20 +1,15 @@
---
name: peertube
description: >-
Browse PeerTube federated video from the terminal: view videos and
channels, search across instances, check server stats, and manage your
account. Uses OAuth2 authentication with token persistence. Use when the
user mentions PeerTube, federated video, decentralized video platforms,
or browsing/uploading to a PeerTube instance.
description: 'Browse PeerTube federated video from the terminal: view videos and channels,
search across instances, check server stats, and manage your account. Uses OAuth2
authentication with token persistence. Use when the user mentions PeerTube, federated
video, decentralized video platforms, or browsing/uploading to a PeerTube instance.'
license: MIT
compatibility: Requires PEERTUBE_SERVER env var (set to your instance URL,
e.g. https://watch.nousresearch.com), Python 3.8+, and the `requests`
library. OAuth2 tokens persisted to ~/.config/peertube-cli/token.json.
compatibility: Requires PEERTUBE_SERVER env var (set to your instance URL, e.g. https://watch.nousresearch.com),
Python 3.8+, and the `requests` library. OAuth2 tokens persisted to ~/.config/peertube-cli/token.json.
metadata:
tags: [peertube, federated-video, video-platform, activitypub, api-client]
sources:
- https://joinpeertube.org/
- https://docs.joinpeertube.org/api/reference
tags: peertube, federated-video, video-platform, activitypub, api-client
sources: https://joinpeertube.org/, https://docs.joinpeertube.org/api/reference
---
# peertube-cli — PeerTube Federated Video
+5
View File
@@ -28,3 +28,8 @@ Load this when starting product discovery, needing to interview stakeholders, or
## Requirements
None. Agent-agnostic — works with any spec-driven or requirements pipeline.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+8 -11
View File
@@ -1,19 +1,16 @@
---
name: prowlarr-cli
description: >-
Manage your Prowlarr indexer hub from the terminal. List and inspect indexers,
view query/grab statistics, check health, manage connected *arr applications
and download clients, browse search history, and test indexer connectivity.
Use when the user mentions Prowlarr, indexers, indexer management, testing
indexers, search history, or the indexer hub.
description: Manage your Prowlarr indexer hub from the terminal. List and inspect
indexers, view query/grab statistics, check health, manage connected *arr applications
and download clients, browse search history, and test indexer connectivity. Use
when the user mentions Prowlarr, indexers, indexer management, testing indexers,
search history, or the indexer hub.
license: MIT
compatibility: >-
Python 3.8+ with `requests` library. Requires ARR_SERVER_PROWLARR and
compatibility: Python 3.8+ with `requests` library. Requires ARR_SERVER_PROWLARR and
ARR_KEY_PROWLARR (from Prowlarr → Settings → General → API Key).
metadata:
tags: [prowlarr, indexer, arr-stack, media-server, api-client]
sources:
- https://prowlarr.com/
tags: prowlarr, indexer, arr-stack, media-server, api-client
sources: https://prowlarr.com/
---
# prowlarr-cli — Prowlarr Indexer Management
+5
View File
@@ -29,3 +29,8 @@ Load this whenever building agents, tool-using LLM workflows, or graph-based sta
## Requirements
Python 3.10+ with `pydantic-ai` or `pydantic-ai-slim` package.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+70
View File
@@ -0,0 +1,70 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
require "yaml"
ROOT = File.expand_path("..", __dir__)
ALLOWED_FIELDS = %w[name description license compatibility metadata allowed-tools].freeze
README_HEADINGS = ["Why Install This Skill", "What You Get", "Quick Start", "Triggers", "Requirements"].freeze
errors = []
Dir.glob("#{ROOT}/**/SKILL.md").sort.each do |skill|
relative = skill.delete_prefix("#{ROOT}/")
text = File.read(skill)
match = text.match(/\A---\n(.*?)\n---\n/m)
unless match
errors << "#{relative}: missing YAML frontmatter"
next
end
begin
data = YAML.safe_load(match[1], permitted_classes: [], aliases: false)
rescue Psych::Exception => e
errors << "#{relative}: invalid YAML: #{e.message.lines.first.strip}"
next
end
unless data.is_a?(Hash)
errors << "#{relative}: frontmatter must be a mapping"
next
end
name = data["name"]
expected_name = File.basename(File.dirname(skill))
errors << "#{relative}: invalid name" unless name.is_a?(String) && name.match?(/\A[a-z0-9]+(?:-[a-z0-9]+)*\z/) && name.length.between?(1, 64) && name == expected_name
description = data["description"]
errors << "#{relative}: invalid description" unless description.is_a?(String) && description.length.between?(1, 1024)
errors << "#{relative}: unsupported field(s): #{(data.keys - ALLOWED_FIELDS).join(', ')}" unless (data.keys - ALLOWED_FIELDS).empty?
if data.key?("compatibility") && (!data["compatibility"].is_a?(String) || !data["compatibility"].length.between?(1, 500))
errors << "#{relative}: invalid compatibility"
end
if data.key?("metadata") && (!data["metadata"].is_a?(Hash) || !data["metadata"].all? { |key, value| key.is_a?(String) && value.is_a?(String) })
errors << "#{relative}: metadata must map strings to strings"
end
errors << "#{relative}: must stay under 500 lines" unless text.lines.length < 500
root = File.dirname(skill)
text.scan(/\[[^\]]+\]\(([^)]+)\)/).flatten.each do |target|
path = target.split("#", 2).first
next if path.empty? || path.match?(%r{\A(?:https?:|mailto:|/)})
errors << "#{relative}: missing linked resource #{path}" unless File.exist?(File.expand_path(path, root))
end
readme = File.join(root, "README.md")
unless File.file?(readme)
errors << "#{relative}: missing README.md"
next
end
readme_text = File.read(readme)
README_HEADINGS.each do |heading|
errors << "#{relative}: README missing #{heading}" unless readme_text.match?(/^#+ #{Regexp.escape(heading)}\s*$/)
end
end
if errors.empty?
puts "Validated #{Dir.glob("#{ROOT}/**/SKILL.md").length} skills."
else
warn errors.join("\n")
exit 1
end
+5
View File
@@ -27,3 +27,8 @@ Load this when you need to understand how a codebase works, produce a design doc
## Requirements
Git, a programming language runtime matching the target codebase.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+9 -10
View File
@@ -1,17 +1,16 @@
---
name: software-architecture-analysis
description: >-
Reverse-engineer a software codebase to understand architecture, data flow,
privacy posture, and feature surface — then produce a clean-room design
document, PRD, or migration plan that re-imagines the system under new
constraints (local-first, privacy-first, self-hosted). Use when you need
to understand how a system works from its source code or produce a
specification without copying implementation details.
description: Reverse-engineer a software codebase to understand architecture, data
flow, privacy posture, and feature surface — then produce a clean-room design document,
PRD, or migration plan that re-imagines the system under new constraints (local-first,
privacy-first, self-hosted). Use when you need to understand how a system works
from its source code or produce a specification without copying implementation details.
license: MIT
compatibility: Requires git, a programming language runtime matching the
target codebase, and a markdown editor for output.
compatibility: Requires git, a programming language runtime matching the target codebase,
and a markdown editor for output.
metadata:
tags: [reverse-engineering, architecture, prd, design-document, codebase-analysis, clean-room]
tags: reverse-engineering, architecture, prd, design-document, codebase-analysis,
clean-room
---
# Software Architecture Analysis — Codebase Reverse Engineering to Design Document
+5
View File
@@ -29,3 +29,8 @@ Load this when designing a spec-driven pipeline, writing an AI-ready specificati
## Requirements
Tool-agnostic — works with Claude Code, Cursor, Hermes Agent, Devin, OpenHands, droid, or any AI coding agent.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+11 -11
View File
@@ -1,19 +1,19 @@
---
name: spec-driven-development
description: >-
Spec-Driven Development (SDD) methodology for AI software factories — where
structured specifications are the input, AI agents generate the code, and
quality gates enforce correctness at each pipeline phase. Use when designing
a spec → review → decompose → implement → verify pipeline that any AI
coding tool (Claude Code, Cursor, Hermes Agent, Devin, OpenHands) can follow.
description: Spec-Driven Development (SDD) methodology for AI software factories —
where structured specifications are the input, AI agents generate the code, and
quality gates enforce correctness at each pipeline phase. Use when designing a spec
→ review → decompose → implement → verify pipeline that any AI coding tool (Claude
Code, Cursor, Hermes Agent, Devin, OpenHands) can follow.
license: MIT
compatibility: Tool-agnostic — methodology applies to any AI coding agent. Templates use markdown and Gherkin. Scripts require bash.
compatibility: Tool-agnostic — methodology applies to any AI coding agent. Templates
use markdown and Gherkin. Scripts require bash.
metadata:
source: https://github.com/magnus919/agent-skills/spec-driven-development
spec-version: "1.2.0"
hermes:
tags: [sdd, specifications, ai-code-generation, software-factory, bdd, gherkin, quality-gates, phase-gates]
related_skills: [sdd-authoring, sdd-review, sdd-verification, sdd-work-decomposition]
spec-version: 1.2.0
hermes: tags=["sdd", "specifications", "ai-code-generation", "software-factory",
"bdd", "gherkin", "quality-gates", "phase-gates"], related_skills=["sdd-authoring",
"sdd-review", "sdd-verification", "sdd-work-decomposition"]
---
# Spec-Driven Development for AI Software Factories
+5
View File
@@ -26,3 +26,8 @@ Load this for ANY technical issue — test failures, production bugs, unexpected
## Requirements
Platform-agnostic. Some sections cover macOS-specific sandbox debugging patterns. Requires access to source code and testing tools.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+11 -19
View File
@@ -1,26 +1,18 @@
---
name: systematic-debugging
description: >-
4-phase root cause debugging protocol: understand bugs before fixing.
Use for ANY technical issue — test failures, production bugs, unexpected
behavior, performance problems, build failures, or integration issues.
ESPECIALLY when under time pressure, when "one quick fix" seems obvious,
or when previous fix attempts have failed.
description: '4-phase root cause debugging protocol: understand bugs before fixing.
Use for ANY technical issue — test failures, production bugs, unexpected behavior,
performance problems, build failures, or integration issues. ESPECIALLY when under
time pressure, when "one quick fix" seems obvious, or when previous fix attempts
have failed.'
license: MIT
compatibility: >-
Platform-agnostic. Some sections cover macOS-specific sandbox debugging.
Requires access to source code, version control (git), and testing tools
appropriate to the project.
compatibility: Platform-agnostic. Some sections cover macOS-specific sandbox debugging.
Requires access to source code, version control (git), and testing tools appropriate
to the project.
metadata:
tags:
- debugging
- troubleshooting
- problem-solving
- root-cause
- investigation
source: >-
Adapted from obra/superpowers (Jesse Vincent, MIT).
Expanded with real-world debugging patterns from production use.
tags: debugging, troubleshooting, problem-solving, root-cause, investigation
source: Adapted from obra/superpowers (Jesse Vincent, MIT). Expanded with real-world
debugging patterns from production use.
---
# Systematic Debugging
+8 -12
View File
@@ -1,19 +1,15 @@
---
name: tempest-cli
description: >-
Query hyper-local weather from a WeatherFlow Tempest station: current
conditions, 7-day forecast, historical observations, and real-time UDP
broadcasts. Use when the user asks about the weather, temperature, rain,
wind, humidity, forecast, or wants conditions from their own station
rather than a generic weather service.
description: 'Query hyper-local weather from a WeatherFlow Tempest station: current
conditions, 7-day forecast, historical observations, and real-time UDP broadcasts.
Use when the user asks about the weather, temperature, rain, wind, humidity, forecast,
or wants conditions from their own station rather than a generic weather service.'
license: MIT
compatibility: Requires TEMPEST_TOKEN env var (free from weatherflow.com),
Python 3.8+, and the `requests` library.
compatibility: Requires TEMPEST_TOKEN env var (free from weatherflow.com), Python
3.8+, and the `requests` library.
metadata:
tags: [weather, tempest, forecast, weatherflow, station, hyper-local]
sources:
- https://weatherflow.com
- https://swd.weatherflow.com/swd/rest
tags: weather, tempest, forecast, weatherflow, station, hyper-local
sources: https://weatherflow.com, https://swd.weatherflow.com/swd/rest
---
# tempest-cli — Hyper-Local Weather from Your Tempest Station
+7 -11
View File
@@ -1,18 +1,14 @@
---
name: tmdb-cli
description: >-
Search and discover movies, TV shows, and trending content via The Movie
Database (TMDb) API v3. Use when the user asks about movies, TV, film,
cinema, genres, certifications, ratings, cast, upcoming releases, or
trending media.
description: Search and discover movies, TV shows, and trending content via The Movie
Database (TMDb) API v3. Use when the user asks about movies, TV, film, cinema, genres,
certifications, ratings, cast, upcoming releases, or trending media.
license: MIT
compatibility: Requires TMDB_ACCESS_TOKEN or TMDB_API_KEY env var (free at
themoviedb.org/settings/api), Python 3.8+, and the `requests` library.
compatibility: Requires TMDB_ACCESS_TOKEN or TMDB_API_KEY env var (free at themoviedb.org/settings/api),
Python 3.8+, and the `requests` library.
metadata:
tags: [tmdb, movies, tv, film, cinema, entertainment, media-discovery, api-client]
sources:
- https://developer.themoviedb.org/reference
- https://www.themoviedb.org/settings/api
tags: tmdb, movies, tv, film, cinema, entertainment, media-discovery, api-client
sources: https://developer.themoviedb.org/reference, https://www.themoviedb.org/settings/api
---
# tmdb-cli — Movie & TV Discovery from the Terminal
+5
View File
@@ -29,3 +29,8 @@ Load this when setting up or debugging a Traefik instance for reverse proxy, loa
## Requirements
Docker for containerized deployment. Standard Linux server for native installation.
## Quick Start
Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
+6 -8
View File
@@ -1,16 +1,14 @@
---
name: traefik
description: >-
Deploy, configure, and troubleshoot Traefik v3 reverse proxy — covers all
providers, routing, TLS/ACME, middlewares, and production patterns with
YAML examples. Load when setting up or debugging a Traefik instance.
description: Deploy, configure, and troubleshoot Traefik v3 reverse proxy — covers
all providers, routing, TLS/ACME, middlewares, and production patterns with YAML
examples. Load when setting up or debugging a Traefik instance.
license: MIT
version: 0.1.0
compatibility: >-
Compatible with any agent supporting the Agent Skills format (Hermes Agent,
Claude Code, GitHub Copilot, OpenCode, Cursor, etc.)
compatibility: Compatible with any agent supporting the Agent Skills format (Hermes
Agent, Claude Code, GitHub Copilot, OpenCode, Cursor, etc.)
metadata:
source: https://doc.traefik.io/traefik/
version: 0.1.0
---
# Traefik Agent Skill
+9 -12
View File
@@ -1,19 +1,16 @@
---
name: trakt
description: >-
Discover trending, anticipated, and popular movies and TV shows via the
Trakt.tv API from the terminal. No authentication required for read-only
discovery. Use when the user asks about what to watch, trending movies,
popular shows, or media discovery.
description: Discover trending, anticipated, and popular movies and TV shows via the
Trakt.tv API from the terminal. No authentication required for read-only discovery.
Use when the user asks about what to watch, trending movies, popular shows, or media
discovery.
license: MIT
compatibility: Requires TRAKT_CLIENT_ID env var (free from
trakt.tv/oauth/applications), Python 3.8+, and the `requests` library.
No OAuth or user login needed for discovery endpoints.
compatibility: Requires TRAKT_CLIENT_ID env var (free from trakt.tv/oauth/applications),
Python 3.8+, and the `requests` library. No OAuth or user login needed for discovery
endpoints.
metadata:
tags: [trakt, media-discovery, movies, tv-shows, trending, api-client]
sources:
- https://trakt.tv/
- https://trakt.docs.apiary.io/
tags: trakt, media-discovery, movies, tv-shows, trending, api-client
sources: https://trakt.tv/, https://trakt.docs.apiary.io/
---
# trakt-cli — Trakt.tv Media Discovery
+8 -12
View File
@@ -1,19 +1,15 @@
---
name: transistor
description: >-
Manage Transistor.fm podcast hosting from the terminal: view shows, list
episodes, check analytics, and get subscriber counts. Use when the user
mentions Transistor, podcast hosting, podcast analytics, show management,
or episode tracking.
description: 'Manage Transistor.fm podcast hosting from the terminal: view shows,
list episodes, check analytics, and get subscriber counts. Use when the user mentions
Transistor, podcast hosting, podcast analytics, show management, or episode tracking.'
license: MIT
compatibility: Requires TRANSISTOR_API_KEY env var (from Settings → API Keys
in the Transistor.fm dashboard), Python 3.8+, and the `requests` library.
Uses the Transistor.fm v1 REST API with JSON:API format responses.
compatibility: Requires TRANSISTOR_API_KEY env var (from Settings → API Keys in the
Transistor.fm dashboard), Python 3.8+, and the `requests` library. Uses the Transistor.fm
v1 REST API with JSON:API format responses.
metadata:
tags: [transistor, podcast, podcast-hosting, analytics, api-client]
sources:
- https://transistor.fm/
- https://developers.transistor.fm/
tags: transistor, podcast, podcast-hosting, analytics, api-client
sources: https://transistor.fm/, https://developers.transistor.fm/
---
# transistor-cli — Transistor.fm Podcast Hosting
+12 -16
View File
@@ -1,25 +1,21 @@
---
name: yc-default-alive-calculator
description: >-
Evaluate whether a startup is on a trajectory to profitability before running
out of cash — Paul Graham's "Default Alive / Default Dead" framework. Takes
revenue, burn rate, cash on hand, and growth rate; computes runway, burn
multiple, and months to breakeven. Ships a deterministic CLI calculator.
Load when founders ask about runway, burn rate, default alive, whether they
need to raise money, or financial sustainability analysis.
description: Evaluate whether a startup is on a trajectory to profitability before
running out of cash — Paul Graham's "Default Alive / Default Dead" framework. Takes
revenue, burn rate, cash on hand, and growth rate; computes runway, burn multiple,
and months to breakeven. Ships a deterministic CLI calculator. Load when founders
ask about runway, burn rate, default alive, whether they need to raise money, or
financial sustainability analysis.
license: MIT
compatibility: Python 3.9+ with standard library only (no external dependencies).
The default-alive.py script uses only math, json, and sys.
metadata:
spec-version: "1.0"
tags: [startup-finance, runway-analysis, ycombinator, paul-graham, fundraising,
financial-modeling, default-alive, burn-rate, startup-metrics]
sources:
- https://paulgraham.com/default.html
- https://paulgraham.com/die.html
- https://www.ycombinator.com/about
skills: [yc-weekly-growth-compass]
requires-toolsets: [terminal]
spec-version: '1.0'
tags: startup-finance, runway-analysis, ycombinator, paul-graham, fundraising, financial-modeling,
default-alive, burn-rate, startup-metrics
sources: https://paulgraham.com/default.html, https://paulgraham.com/die.html, https://www.ycombinator.com/about
skills: yc-weekly-growth-compass
requires-toolsets: terminal
---
# Default Alive / Default Dead Calculator
+12 -17
View File
@@ -1,26 +1,21 @@
---
name: yc-weekly-growth-compass
description: >-
Paul Graham's "Startup = Growth" framework as an operational tool. Computes
weekly growth rates, benchmarks against YC tiers (1% concerning, 5-7% good,
10%+ exceptional), projects compound growth over time, and frames every
startup decision through the question "does this serve your target growth
rate?" Ships a deterministic CLI calculator. Load when founders ask about
growth rate, weekly growth, startup traction, metrics, or whether they're
moving fast enough.
description: Paul Graham's "Startup = Growth" framework as an operational tool. Computes
weekly growth rates, benchmarks against YC tiers (1% concerning, 5-7% good, 10%+
exceptional), projects compound growth over time, and frames every startup decision
through the question "does this serve your target growth rate?" Ships a deterministic
CLI calculator. Load when founders ask about growth rate, weekly growth, startup
traction, metrics, or whether they're moving fast enough.
license: MIT
compatibility: Python 3.9+ with standard library only (no external dependencies).
The growth-compass.py script uses only math, json, and sys.
metadata:
spec-version: "1.0"
tags: [startup-growth, growth-rate, ycombinator, paul-graham, startup-metrics,
weekly-growth, traction, compound-growth, startup-compass]
sources:
- https://paulgraham.com/growth.html
- https://paulgraham.com/ds.html
- https://www.ycombinator.com/about
skills: [yc-default-alive-calculator]
requires-toolsets: [terminal]
spec-version: '1.0'
tags: startup-growth, growth-rate, ycombinator, paul-graham, startup-metrics, weekly-growth,
traction, compound-growth, startup-compass
sources: https://paulgraham.com/growth.html, https://paulgraham.com/ds.html, https://www.ycombinator.com/about
skills: yc-default-alive-calculator
requires-toolsets: terminal
---
# Weekly Growth Compass