@framers/agentos-skills-registry 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +225 -0
- package/README.md +131 -30
- package/dist/catalog.d.ts +19 -6
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +54 -190
- package/dist/catalog.js.map +1 -1
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -15
- package/dist/index.js.map +1 -1
- package/dist/schema-types.d.ts +79 -0
- package/dist/schema-types.d.ts.map +1 -0
- package/dist/schema-types.js +11 -0
- package/dist/schema-types.js.map +1 -0
- package/dist/workspace-discovery.d.ts +84 -0
- package/dist/workspace-discovery.d.ts.map +1 -0
- package/dist/workspace-discovery.js +211 -0
- package/dist/workspace-discovery.js.map +1 -0
- package/package.json +18 -8
- package/registry/community/.gitkeep +0 -0
- package/registry/curated/1password/SKILL.md +53 -0
- package/registry/curated/account-manager/SKILL.md +60 -0
- package/registry/curated/apple-notes/SKILL.md +45 -0
- package/registry/curated/apple-reminders/SKILL.md +46 -0
- package/registry/curated/blog-publisher/SKILL.md +110 -0
- package/registry/curated/bluesky-bot/SKILL.md +93 -0
- package/registry/curated/cloud-ops/SKILL.md +124 -0
- package/registry/curated/coding-agent/SKILL.md +40 -0
- package/registry/curated/content-creator/SKILL.md +53 -0
- package/registry/curated/deep-research/SKILL.md +56 -0
- package/registry/curated/discord-helper/SKILL.md +43 -0
- package/registry/curated/facebook-bot/SKILL.md +94 -0
- package/registry/curated/git/SKILL.md +39 -0
- package/registry/curated/github/SKILL.md +54 -0
- package/registry/curated/healthcheck/SKILL.md +43 -0
- package/registry/curated/image-gen/SKILL.md +44 -0
- package/registry/curated/instagram-bot/SKILL.md +60 -0
- package/registry/curated/linkedin-bot/SKILL.md +86 -0
- package/registry/curated/mastodon-bot/SKILL.md +104 -0
- package/registry/curated/notion/SKILL.md +43 -0
- package/registry/curated/obsidian/SKILL.md +42 -0
- package/registry/curated/pinterest-bot/SKILL.md +45 -0
- package/registry/curated/reddit-bot/SKILL.md +62 -0
- package/registry/curated/seo-campaign/SKILL.md +51 -0
- package/registry/curated/site-deploy/SKILL.md +119 -0
- package/registry/curated/slack-helper/SKILL.md +43 -0
- package/registry/curated/social-broadcast/SKILL.md +145 -0
- package/registry/curated/spotify-player/SKILL.md +45 -0
- package/registry/curated/summarize/SKILL.md +40 -0
- package/registry/curated/threads-bot/SKILL.md +82 -0
- package/registry/curated/tiktok-bot/SKILL.md +104 -0
- package/registry/curated/trello/SKILL.md +44 -0
- package/registry/curated/twitter-bot/SKILL.md +63 -0
- package/registry/curated/weather/SKILL.md +37 -0
- package/registry/curated/web-scraper/SKILL.md +60 -0
- package/registry/curated/web-search/SKILL.md +49 -0
- package/registry/curated/whisper-transcribe/SKILL.md +58 -0
- package/registry/curated/youtube-bot/SKILL.md +104 -0
- package/registry.json +1426 -0
- package/scripts/update-registry.mjs +126 -0
- package/scripts/validate-skill.mjs +298 -0
- package/types.d.ts +77 -0
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Contributing to @framers/agentos-skills-registry
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing a skill to the AgentOS ecosystem! This guide walks you through the process of creating, testing, and submitting a new skill.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Skills are **SKILL.md files** — each containing YAML frontmatter (metadata) and a markdown body (instructions for the AI agent). They live inside the `@framers/agentos-skills-registry` package alongside the typed SDK. There are no individual packages per skill.
|
|
8
|
+
|
|
9
|
+
Skills are organized into two tiers:
|
|
10
|
+
|
|
11
|
+
| Tier | Directory | Namespace | Maintained By | Verified |
|
|
12
|
+
| ------------- | --------------------- | ------------ | --------------------------- | -------- |
|
|
13
|
+
| **Curated** | `registry/curated/` | `wunderland` | Framers staff | Yes |
|
|
14
|
+
| **Community** | `registry/community/` | `community` | Original author / community | No |
|
|
15
|
+
|
|
16
|
+
Curated skills ship pre-verified and are maintained by the Framers team. Community skills are submitted via pull request by anyone and are maintained by their authors.
|
|
17
|
+
|
|
18
|
+
## Creating a New Skill
|
|
19
|
+
|
|
20
|
+
### Step 1 — Fork the repo
|
|
21
|
+
|
|
22
|
+
Fork [framersai/agentos-skills-registry](https://github.com/framersai/agentos-skills-registry) and clone it locally.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
git clone https://github.com/<your-username>/agentos-skills-registry.git
|
|
26
|
+
cd agentos-skills-registry
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Step 2 — Create the skill directory
|
|
30
|
+
|
|
31
|
+
Create a new directory under `registry/community/` with your skill name. The directory name must be lowercase, use hyphens for separators, and match the `name` field in your frontmatter.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
mkdir -p registry/community/my-skill
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 3 — Write the SKILL.md file
|
|
38
|
+
|
|
39
|
+
Create `registry/community/my-skill/SKILL.md` with two parts:
|
|
40
|
+
|
|
41
|
+
1. **YAML frontmatter** between `---` delimiters containing metadata
|
|
42
|
+
2. **Markdown body** containing instructions for the AI agent
|
|
43
|
+
|
|
44
|
+
The markdown body should be written in **2nd person** ("You can...", "Use the...") because it is injected directly into an agent's system prompt.
|
|
45
|
+
|
|
46
|
+
### Step 4 — Write the YAML frontmatter
|
|
47
|
+
|
|
48
|
+
Fill in all required fields. See the [SKILL.md Format Reference](#skillmd-format-reference) below for the complete spec.
|
|
49
|
+
|
|
50
|
+
### Step 5 — Write the markdown body
|
|
51
|
+
|
|
52
|
+
The body is the actual instructions the AI agent will follow. It should include:
|
|
53
|
+
|
|
54
|
+
- A heading with the skill name
|
|
55
|
+
- A description of what the skill enables the agent to do
|
|
56
|
+
- Step-by-step guidance for how the agent should use the skill
|
|
57
|
+
- An **Examples** section with concrete usage examples
|
|
58
|
+
- A **Constraints** section documenting limitations
|
|
59
|
+
|
|
60
|
+
### Step 6 — Validate your skill
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm run validate registry/community/my-skill/SKILL.md
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## SKILL.md Format Reference
|
|
67
|
+
|
|
68
|
+
### Required Fields
|
|
69
|
+
|
|
70
|
+
| Field | Type | Description |
|
|
71
|
+
| ------------- | ------ | -------------------------------------------------------------------------- |
|
|
72
|
+
| `name` | string | Skill identifier. Must match the directory name. Lowercase, hyphens only. |
|
|
73
|
+
| `version` | string | Semantic version (e.g., `'1.0.0'`). Quote it to avoid YAML parsing issues. |
|
|
74
|
+
| `description` | string | Short description, under 200 characters. |
|
|
75
|
+
| `author` | string | Your name or GitHub username. |
|
|
76
|
+
| `namespace` | string | Must be `community` for community submissions. |
|
|
77
|
+
| `category` | string | One of the valid categories listed below. |
|
|
78
|
+
| `tags` | array | At least one tag. Use lowercase, hyphenated strings. |
|
|
79
|
+
|
|
80
|
+
### Optional Fields
|
|
81
|
+
|
|
82
|
+
| Field | Type | Description |
|
|
83
|
+
| --------------------------- | ------ | ------------------------------------------------------------------------- |
|
|
84
|
+
| `requires_secrets` | array | Secret keys the skill needs (e.g., `[service.token]`). Use `[]` if none. |
|
|
85
|
+
| `requires_tools` | array | Tool names the skill depends on (e.g., `[web-search]`). Use `[]` if none. |
|
|
86
|
+
| `metadata.agentos.emoji` | string | Emoji icon for the skill in UIs. |
|
|
87
|
+
| `metadata.agentos.homepage` | string | URL to the skill's related service or docs. |
|
|
88
|
+
|
|
89
|
+
### Valid Categories
|
|
90
|
+
|
|
91
|
+
- `information` — Data lookup, search, knowledge retrieval
|
|
92
|
+
- `developer-tools` — Code, repos, CI/CD, debugging
|
|
93
|
+
- `communication` — Chat, email, messaging platforms
|
|
94
|
+
- `productivity` — Note-taking, task management, organization
|
|
95
|
+
- `devops` — Infrastructure, monitoring, deployment
|
|
96
|
+
- `media` — Audio, video, image, streaming
|
|
97
|
+
- `security` — Passwords, encryption, access control
|
|
98
|
+
- `creative` — Art, writing, design, generation
|
|
99
|
+
|
|
100
|
+
### Full Template
|
|
101
|
+
|
|
102
|
+
Copy and paste this into `registry/community/<your-skill>/SKILL.md`:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
---
|
|
106
|
+
name: my-skill
|
|
107
|
+
version: '1.0.0'
|
|
108
|
+
description: A short description of what this skill does (under 200 characters).
|
|
109
|
+
author: your-github-username
|
|
110
|
+
namespace: community
|
|
111
|
+
category: information
|
|
112
|
+
tags: [example, template]
|
|
113
|
+
requires_secrets: []
|
|
114
|
+
requires_tools: []
|
|
115
|
+
metadata:
|
|
116
|
+
agentos:
|
|
117
|
+
emoji: "\U0001F527"
|
|
118
|
+
homepage: https://example.com
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
# My Skill
|
|
122
|
+
|
|
123
|
+
You can use this skill to [describe what the agent can do]. When the user asks about [topic], you should [describe the agent's behavior].
|
|
124
|
+
|
|
125
|
+
Provide clear, structured responses. If the user's request is ambiguous, ask for clarification before proceeding.
|
|
126
|
+
|
|
127
|
+
## Examples
|
|
128
|
+
|
|
129
|
+
- "Example user query 1"
|
|
130
|
+
- "Example user query 2"
|
|
131
|
+
- "Example user query 3"
|
|
132
|
+
|
|
133
|
+
## Constraints
|
|
134
|
+
|
|
135
|
+
- Limitation or caveat 1.
|
|
136
|
+
- Limitation or caveat 2.
|
|
137
|
+
- Limitation or caveat 3.
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Testing Your Skill
|
|
141
|
+
|
|
142
|
+
Run the validation script against your SKILL.md file:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npm run validate registry/community/my-skill/SKILL.md
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
The validator checks:
|
|
149
|
+
|
|
150
|
+
- All required frontmatter fields are present
|
|
151
|
+
- Category is valid
|
|
152
|
+
- Description is under 200 characters
|
|
153
|
+
- Tags array has at least one entry
|
|
154
|
+
- Namespace is `community` or `wunderland`
|
|
155
|
+
- Skill name matches the directory name
|
|
156
|
+
- Markdown body is not empty
|
|
157
|
+
- No obvious secrets or API keys are embedded in the file
|
|
158
|
+
|
|
159
|
+
Fix any reported issues before submitting your PR.
|
|
160
|
+
|
|
161
|
+
## Submitting a PR
|
|
162
|
+
|
|
163
|
+
### 1. Create a branch
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
git checkout -b add-skill/my-skill
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 2. Commit your SKILL.md
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
git add registry/community/my-skill/SKILL.md
|
|
173
|
+
git commit -m "feat: add my-skill community skill"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 3. Push and open a PR
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
git push origin add-skill/my-skill
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Open a pull request against the `main` branch. The PR template will guide you through the checklist.
|
|
183
|
+
|
|
184
|
+
### PR Checklist
|
|
185
|
+
|
|
186
|
+
Before submitting, confirm:
|
|
187
|
+
|
|
188
|
+
- [ ] Skill is in `registry/community/<name>/SKILL.md`
|
|
189
|
+
- [ ] All required YAML fields are present
|
|
190
|
+
- [ ] `namespace` is set to `community`
|
|
191
|
+
- [ ] Category is one of the 8 valid categories
|
|
192
|
+
- [ ] Description is under 200 characters
|
|
193
|
+
- [ ] Markdown body includes usage instructions, Examples, and Constraints
|
|
194
|
+
- [ ] No secrets, API keys, or credentials are in the file
|
|
195
|
+
- [ ] `npm run validate` passes
|
|
196
|
+
|
|
197
|
+
### What Reviewers Look For
|
|
198
|
+
|
|
199
|
+
- **Quality**: Is the skill well-written? Are instructions clear and actionable?
|
|
200
|
+
- **No secrets**: The file must not contain API keys, tokens, passwords, or credentials.
|
|
201
|
+
- **Valid format**: Frontmatter must parse correctly with all required fields.
|
|
202
|
+
- **Usefulness**: Does the skill provide value that is not already covered by an existing skill?
|
|
203
|
+
- **Specificity**: Is the scope well-defined? Skills should do one thing well.
|
|
204
|
+
|
|
205
|
+
## Promotion to Curated
|
|
206
|
+
|
|
207
|
+
Community skills can be promoted to the curated tier. Promotion criteria:
|
|
208
|
+
|
|
209
|
+
1. **Longevity** — The skill has been in `registry/community/` for at least 3 months.
|
|
210
|
+
2. **Positive feedback** — The skill has received positive user feedback or adoption.
|
|
211
|
+
3. **Maintained** — The original author is responsive to issues and keeps the skill up to date.
|
|
212
|
+
4. **Staff review** — A Framers team member reviews the skill for quality and completeness.
|
|
213
|
+
|
|
214
|
+
When a skill is promoted:
|
|
215
|
+
|
|
216
|
+
- It moves from `registry/community/<name>/` to `registry/curated/<name>/`.
|
|
217
|
+
- The `namespace` field changes from `community` to `wunderland`.
|
|
218
|
+
- The `verified` flag is set to `true` in `registry.json`.
|
|
219
|
+
- The Framers team assumes co-maintenance responsibility.
|
|
220
|
+
|
|
221
|
+
To nominate a community skill for promotion, open an issue titled "Promote: <skill-name>" with a brief justification.
|
|
222
|
+
|
|
223
|
+
## Code of Conduct
|
|
224
|
+
|
|
225
|
+
This project follows the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). By participating, you agree to uphold this code. Please report unacceptable behavior to [team@frame.dev](mailto:team@frame.dev).
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @framers/agentos-skills-registry
|
|
2
2
|
|
|
3
|
-
Curated skills registry
|
|
3
|
+
Curated skills registry for [AgentOS](https://github.com/framersai/agentos) — 36 SKILL.md prompt modules, typed catalog, and lazy-loading factories.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@framers/agentos-skills-registry)
|
|
6
6
|
|
|
@@ -10,17 +10,19 @@ npm install @framers/agentos-skills-registry
|
|
|
10
10
|
|
|
11
11
|
## What's Inside
|
|
12
12
|
|
|
13
|
-
This
|
|
13
|
+
This is the **single package** for AgentOS skills. It contains:
|
|
14
14
|
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
15
|
+
- **36 curated SKILL.md files** — prompt modules spanning social automation, developer tooling, productivity, research, and more
|
|
16
|
+
- **registry.json** — machine-readable index of all skills with metadata
|
|
17
|
+
- **Static catalog** (`SKILLS_CATALOG`) — typed array with query helpers
|
|
17
18
|
- **Registry factories** — `createCuratedSkillRegistry()`, `createCuratedSkillSnapshot()` (requires `@framers/agentos`)
|
|
19
|
+
- **Validation script** — `npm run validate` to lint SKILL.md files
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## Quick Start
|
|
20
22
|
|
|
21
|
-
###
|
|
23
|
+
### 1. Browse the catalog (zero deps)
|
|
22
24
|
|
|
23
|
-
The `./catalog` sub-export
|
|
25
|
+
The `./catalog` sub-export has no peer dependencies:
|
|
24
26
|
|
|
25
27
|
```typescript
|
|
26
28
|
import {
|
|
@@ -33,23 +35,46 @@ import {
|
|
|
33
35
|
getSkillsByTag,
|
|
34
36
|
} from '@framers/agentos-skills-registry/catalog';
|
|
35
37
|
|
|
36
|
-
// Search
|
|
38
|
+
// Search across names, descriptions, and tags
|
|
37
39
|
const matches = searchSkills('github');
|
|
38
40
|
|
|
39
41
|
// Filter by category
|
|
40
|
-
const
|
|
42
|
+
const social = getSkillsByCategory('social-automation');
|
|
41
43
|
|
|
42
44
|
// Filter by installed tools
|
|
43
45
|
const available = getAvailableSkills(['web-search', 'filesystem']);
|
|
44
46
|
|
|
45
|
-
//
|
|
47
|
+
// Get a specific skill
|
|
48
|
+
const github = getSkillByName('github');
|
|
49
|
+
console.log(github?.requiredSecrets); // ['github.token']
|
|
50
|
+
|
|
51
|
+
// All unique categories
|
|
46
52
|
const categories = getCategories();
|
|
47
|
-
// ['communication', 'creative', 'developer-tools', '
|
|
53
|
+
// ['automation', 'communication', 'creative', 'developer-tools', 'social-automation', ...]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Load raw registry data
|
|
57
|
+
|
|
58
|
+
Access the JSON index directly:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { getSkillsCatalog } from '@framers/agentos-skills-registry';
|
|
62
|
+
|
|
63
|
+
const catalog = await getSkillsCatalog();
|
|
64
|
+
console.log(catalog.skills.curated.length); // 36
|
|
65
|
+
console.log(catalog.version); // '1.0.0'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Or import the raw JSON:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import registry from '@framers/agentos-skills-registry/registry.json';
|
|
72
|
+
console.log(registry.skills.curated[0].name); // 'weather'
|
|
48
73
|
```
|
|
49
74
|
|
|
50
|
-
###
|
|
75
|
+
### 3. Dynamically load skills into an agent (requires @framers/agentos)
|
|
51
76
|
|
|
52
|
-
The factory functions lazy-load `@framers/agentos` via
|
|
77
|
+
The factory functions lazy-load `@framers/agentos` via dynamic `import()`:
|
|
53
78
|
|
|
54
79
|
```bash
|
|
55
80
|
npm install @framers/agentos-skills-registry @framers/agentos
|
|
@@ -59,47 +84,123 @@ npm install @framers/agentos-skills-registry @framers/agentos
|
|
|
59
84
|
import {
|
|
60
85
|
createCuratedSkillRegistry,
|
|
61
86
|
createCuratedSkillSnapshot,
|
|
87
|
+
getBundledCuratedSkillsDir,
|
|
62
88
|
} from '@framers/agentos-skills-registry';
|
|
63
89
|
|
|
64
|
-
// Create a live SkillRegistry loaded with all curated skills
|
|
90
|
+
// Option A: Create a live SkillRegistry loaded with all curated skills
|
|
65
91
|
const registry = await createCuratedSkillRegistry();
|
|
66
|
-
console.log(registry.size); // 16+
|
|
67
92
|
|
|
68
|
-
// Build a prompt snapshot for
|
|
93
|
+
// Option B: Build a prompt snapshot for specific skills
|
|
69
94
|
const snapshot = await createCuratedSkillSnapshot({
|
|
70
95
|
skills: ['github', 'weather', 'notion'], // or 'all'
|
|
71
96
|
platform: 'darwin',
|
|
72
97
|
});
|
|
73
|
-
|
|
98
|
+
|
|
99
|
+
// Inject the snapshot prompt into your agent's system message
|
|
100
|
+
const systemPrompt = `You are an AI assistant.\n\n${snapshot.prompt}`;
|
|
101
|
+
|
|
102
|
+
// Option C: Get the directory path and load manually
|
|
103
|
+
const skillsDir = getBundledCuratedSkillsDir();
|
|
104
|
+
// → '/path/to/node_modules/@framers/agentos-skills-registry/registry/curated'
|
|
74
105
|
```
|
|
75
106
|
|
|
76
|
-
|
|
107
|
+
### 4. Dynamic skill resolution in Wunderland presets
|
|
77
108
|
|
|
109
|
+
```typescript
|
|
110
|
+
// In agent.config.json:
|
|
111
|
+
// { "suggestedSkills": ["github", "web-search", "notion"] }
|
|
112
|
+
|
|
113
|
+
import { getSkillByName } from '@framers/agentos-skills-registry/catalog';
|
|
114
|
+
import { createCuratedSkillSnapshot } from '@framers/agentos-skills-registry';
|
|
115
|
+
|
|
116
|
+
// Validate skill names exist before loading
|
|
117
|
+
const skillNames = ['github', 'web-search', 'notion'];
|
|
118
|
+
const valid = skillNames.filter((name) => {
|
|
119
|
+
const entry = getSkillByName(name);
|
|
120
|
+
if (!entry) {
|
|
121
|
+
console.warn(`Unknown skill "${name}", skipping`);
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Build snapshot with only validated skills
|
|
128
|
+
const snapshot = await createCuratedSkillSnapshot({ skills: valid });
|
|
78
129
|
```
|
|
79
|
-
Error: @framers/agentos is required for createCuratedSkillRegistry() and
|
|
80
|
-
createCuratedSkillSnapshot(). Install it:
|
|
81
130
|
|
|
82
|
-
|
|
131
|
+
## Two Import Paths
|
|
132
|
+
|
|
133
|
+
| Import | Peer deps | Use case |
|
|
134
|
+
|--------|-----------|----------|
|
|
135
|
+
| `@framers/agentos-skills-registry/catalog` | None | UI browsing, search, filtering |
|
|
136
|
+
| `@framers/agentos-skills-registry` | `@framers/agentos` (optional) | Runtime loading, snapshots, factories |
|
|
137
|
+
|
|
138
|
+
The `@framers/agentos` dependency is loaded **lazily** at runtime and cached after first resolution. If it's not installed and you call a factory function, you get a clear error with install instructions.
|
|
139
|
+
|
|
140
|
+
## Included Skills (36)
|
|
141
|
+
|
|
142
|
+
The catalog now includes both foundational utility skills and social automation modules, including:
|
|
143
|
+
|
|
144
|
+
- Information and research: `web-search`, `weather`, `summarize`, `deep-research`
|
|
145
|
+
- Developer tools: `github`, `coding-agent`, `git`
|
|
146
|
+
- Productivity: `notion`, `obsidian`, `trello`, `apple-notes`, `apple-reminders`
|
|
147
|
+
- Social automation: `social-broadcast`, `twitter-bot`, `instagram-bot`, `linkedin-bot`, `facebook-bot`, `threads-bot`, `bluesky-bot`, `mastodon-bot`, `youtube-bot`, `tiktok-bot`, `pinterest-bot`, `reddit-bot`, `blog-publisher`
|
|
148
|
+
- Additional categories: `automation`, `communication`, `devops`, `media`, `marketing`, `creative`, `security`
|
|
149
|
+
|
|
150
|
+
## Community Skills
|
|
151
|
+
|
|
152
|
+
The catalog supports both **curated** (staff-maintained) and **community** (PR-submitted) skills:
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
import { getCuratedSkills, getCommunitySkills } from '@framers/agentos-skills-registry/catalog';
|
|
83
156
|
|
|
84
|
-
|
|
85
|
-
|
|
157
|
+
const curated = getCuratedSkills(); // Staff-verified skills
|
|
158
|
+
const community = getCommunitySkills(); // Community-contributed
|
|
86
159
|
```
|
|
87
160
|
|
|
88
|
-
|
|
161
|
+
Each entry includes a `source` field (`'curated'` or `'community'`) for provenance filtering.
|
|
89
162
|
|
|
90
|
-
|
|
163
|
+
## Schema Types
|
|
91
164
|
|
|
92
|
-
|
|
93
|
-
|
|
165
|
+
Import registry.json schema types for type-safe access:
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
import type {
|
|
169
|
+
SkillRegistryEntry,
|
|
170
|
+
SkillsRegistry,
|
|
171
|
+
SkillInstallSpec,
|
|
172
|
+
SkillMetadata,
|
|
173
|
+
} from '@framers/agentos-skills-registry';
|
|
174
|
+
|
|
175
|
+
// SkillRegistryEntry — shape of entries in registry.json
|
|
176
|
+
// SkillsRegistry — shape of the full registry.json file
|
|
177
|
+
// SkillInstallSpec — install instructions for skill dependencies
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Exports
|
|
181
|
+
|
|
182
|
+
| Export path | Contents |
|
|
183
|
+
|-------------|----------|
|
|
184
|
+
| `.` | Full SDK: catalog helpers + factory functions + schema types |
|
|
185
|
+
| `./catalog` | Lightweight: `SKILLS_CATALOG`, query helpers (zero deps) |
|
|
186
|
+
| `./registry.json` | Raw JSON index of all skills |
|
|
187
|
+
| `./types` | TypeScript declarations for registry.json schema |
|
|
94
188
|
|
|
95
189
|
## Relationship to Other Packages
|
|
96
190
|
|
|
97
191
|
```
|
|
98
|
-
@framers/agentos-skills
|
|
99
|
-
|
|
100
|
-
|
|
192
|
+
@framers/agentos-skills-registry ← This package (data + SDK)
|
|
193
|
+
├── registry/curated/*/SKILL.md (bundled prompt modules)
|
|
194
|
+
├── registry.json (machine-readable index)
|
|
195
|
+
├── catalog.ts (typed queries: search, filter, browse)
|
|
196
|
+
└── index.ts (factories: lazy-load @framers/agentos)
|
|
197
|
+
└── @framers/agentos (optional peer: live SkillRegistry + snapshots)
|
|
101
198
|
```
|
|
102
199
|
|
|
200
|
+
## Contributing
|
|
201
|
+
|
|
202
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to submit new skills.
|
|
203
|
+
|
|
103
204
|
## License
|
|
104
205
|
|
|
105
206
|
MIT
|
package/dist/catalog.d.ts
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* @fileoverview Curated Skills Catalog for AgentOS
|
|
3
3
|
* @module @framers/agentos-skills-registry/catalog
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* availability checks.
|
|
5
|
+
* Programmatic catalog derived from registry.json so it stays in sync with
|
|
6
|
+
* bundled SKILL.md entries.
|
|
8
7
|
*/
|
|
9
8
|
export interface SkillCatalogEntry {
|
|
10
9
|
/** Unique skill name (matches directory name under registry/curated/) */
|
|
@@ -21,10 +20,12 @@ export interface SkillCatalogEntry {
|
|
|
21
20
|
requiredSecrets: string[];
|
|
22
21
|
/** Tool identifiers the skill depends on (e.g. 'web-search', 'filesystem') */
|
|
23
22
|
requiredTools: string[];
|
|
24
|
-
/** Relative path from the
|
|
23
|
+
/** Relative path from the package root to the SKILL.md */
|
|
25
24
|
skillPath: string;
|
|
26
|
-
/**
|
|
27
|
-
|
|
25
|
+
/** Skill source: curated (staff-maintained) or community-submitted */
|
|
26
|
+
source?: 'curated' | 'community';
|
|
27
|
+
/** Namespace used by the skill registry */
|
|
28
|
+
namespace: string;
|
|
28
29
|
}
|
|
29
30
|
export declare const SKILLS_CATALOG: SkillCatalogEntry[];
|
|
30
31
|
/**
|
|
@@ -53,4 +54,16 @@ export declare function getSkillsByTag(tag: string): SkillCatalogEntry[];
|
|
|
53
54
|
* Full-text search across skill names, descriptions, and tags.
|
|
54
55
|
*/
|
|
55
56
|
export declare function searchSkills(query: string): SkillCatalogEntry[];
|
|
57
|
+
/**
|
|
58
|
+
* Get only staff-curated skills.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getCuratedSkills(): SkillCatalogEntry[];
|
|
61
|
+
/**
|
|
62
|
+
* Get only community-submitted skills.
|
|
63
|
+
*/
|
|
64
|
+
export declare function getCommunitySkills(): SkillCatalogEntry[];
|
|
65
|
+
/**
|
|
66
|
+
* Get all skills (curated + community). Alias for SKILLS_CATALOG.
|
|
67
|
+
*/
|
|
68
|
+
export declare function getAllSkills(): SkillCatalogEntry[];
|
|
56
69
|
//# sourceMappingURL=catalog.d.ts.map
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sBAAsB;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,+DAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B,8EAA8E;IAC9E,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAEjC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAyCD,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAE7C,CAAC;AAMF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAEzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAGhF;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAG/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAS/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAExD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,iBAAiB,EAAE,CAElD"}
|