@framers/agentos-skills 0.3.0 → 0.4.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.
Files changed (100) hide show
  1. package/CONTRIBUTING.md +231 -0
  2. package/README.md +93 -58
  3. package/package.json +19 -31
  4. package/registry/community/.gitkeep +0 -0
  5. package/registry/curated/1password/SKILL.md +53 -0
  6. package/registry/curated/account-manager/SKILL.md +60 -0
  7. package/registry/curated/agent-config/SKILL.md +22 -0
  8. package/registry/curated/amazon-polly/SKILL.md +74 -0
  9. package/registry/curated/apple-notes/SKILL.md +45 -0
  10. package/registry/curated/apple-reminders/SKILL.md +46 -0
  11. package/registry/curated/audio-generation/SKILL.md +231 -0
  12. package/registry/curated/blog-publisher/SKILL.md +110 -0
  13. package/registry/curated/bluesky-bot/SKILL.md +93 -0
  14. package/registry/curated/cli-tools/SKILL.md +137 -0
  15. package/registry/curated/cloud-ops/SKILL.md +124 -0
  16. package/registry/curated/code-safety/SKILL.md +42 -0
  17. package/registry/curated/coding-agent/SKILL.md +40 -0
  18. package/registry/curated/company-research/SKILL.md +46 -0
  19. package/registry/curated/content-creator/SKILL.md +53 -0
  20. package/registry/curated/deep-research/SKILL.md +56 -0
  21. package/registry/curated/diarization/SKILL.md +83 -0
  22. package/registry/curated/discord-helper/SKILL.md +43 -0
  23. package/registry/curated/document-export/SKILL.md +54 -0
  24. package/registry/curated/email-intelligence/SKILL.md +41 -0
  25. package/registry/curated/emergent-tools/SKILL.md +225 -0
  26. package/registry/curated/endpoint-semantic/SKILL.md +72 -0
  27. package/registry/curated/facebook-bot/SKILL.md +94 -0
  28. package/registry/curated/git/SKILL.md +49 -0
  29. package/registry/curated/github/SKILL.md +142 -0
  30. package/registry/curated/google-cloud-stt/SKILL.md +71 -0
  31. package/registry/curated/google-cloud-tts/SKILL.md +71 -0
  32. package/registry/curated/grounding-guard/SKILL.md +38 -0
  33. package/registry/curated/healthcheck/SKILL.md +43 -0
  34. package/registry/curated/image-editing/SKILL.md +25 -0
  35. package/registry/curated/image-gen/SKILL.md +141 -0
  36. package/registry/curated/instagram-bot/SKILL.md +60 -0
  37. package/registry/curated/interactive-widgets/SKILL.md +85 -0
  38. package/registry/curated/linkedin-bot/SKILL.md +86 -0
  39. package/registry/curated/mastodon-bot/SKILL.md +104 -0
  40. package/registry/curated/memory-manager/SKILL.md +127 -0
  41. package/registry/curated/ml-content-classifier/SKILL.md +38 -0
  42. package/registry/curated/movie-lookup/SKILL.md +48 -0
  43. package/registry/curated/multimodal-rag/SKILL.md +153 -0
  44. package/registry/curated/notion/SKILL.md +43 -0
  45. package/registry/curated/obsidian/SKILL.md +42 -0
  46. package/registry/curated/openwakeword/SKILL.md +75 -0
  47. package/registry/curated/pii-redaction/SKILL.md +56 -0
  48. package/registry/curated/pinterest-bot/SKILL.md +45 -0
  49. package/registry/curated/piper/SKILL.md +72 -0
  50. package/registry/curated/porcupine/SKILL.md +74 -0
  51. package/registry/curated/reddit-bot/SKILL.md +74 -0
  52. package/registry/curated/seo-campaign/SKILL.md +51 -0
  53. package/registry/curated/site-deploy/SKILL.md +119 -0
  54. package/registry/curated/slack-helper/SKILL.md +43 -0
  55. package/registry/curated/social-broadcast/SKILL.md +145 -0
  56. package/registry/curated/spotify-player/SKILL.md +45 -0
  57. package/registry/curated/streaming-stt-deepgram/SKILL.md +84 -0
  58. package/registry/curated/streaming-stt-whisper/SKILL.md +82 -0
  59. package/registry/curated/streaming-tts-elevenlabs/SKILL.md +84 -0
  60. package/registry/curated/streaming-tts-openai/SKILL.md +83 -0
  61. package/registry/curated/structured-output/SKILL.md +22 -0
  62. package/registry/curated/summarize/SKILL.md +40 -0
  63. package/registry/curated/threads-bot/SKILL.md +82 -0
  64. package/registry/curated/tiktok-bot/SKILL.md +104 -0
  65. package/registry/curated/topicality/SKILL.md +37 -0
  66. package/registry/curated/trello/SKILL.md +44 -0
  67. package/registry/curated/twitter-bot/SKILL.md +63 -0
  68. package/registry/curated/video-generation/SKILL.md +225 -0
  69. package/registry/curated/vision-ocr/SKILL.md +82 -0
  70. package/registry/curated/voice-conversation/SKILL.md +65 -0
  71. package/registry/curated/vosk/SKILL.md +74 -0
  72. package/registry/curated/weather/SKILL.md +37 -0
  73. package/registry/curated/web-scraper/SKILL.md +60 -0
  74. package/registry/curated/web-search/SKILL.md +49 -0
  75. package/registry/curated/whisper-transcribe/SKILL.md +58 -0
  76. package/registry/curated/youtube-bot/SKILL.md +104 -0
  77. package/registry.json +2446 -0
  78. package/scripts/update-registry.mjs +126 -0
  79. package/scripts/validate-skill.mjs +304 -0
  80. package/types.d.ts +160 -0
  81. package/dist/SkillLoader.d.ts +0 -50
  82. package/dist/SkillLoader.d.ts.map +0 -1
  83. package/dist/SkillLoader.js +0 -291
  84. package/dist/SkillLoader.js.map +0 -1
  85. package/dist/SkillRegistry.d.ts +0 -135
  86. package/dist/SkillRegistry.d.ts.map +0 -1
  87. package/dist/SkillRegistry.js +0 -455
  88. package/dist/SkillRegistry.js.map +0 -1
  89. package/dist/index.d.ts +0 -13
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.js +0 -13
  92. package/dist/index.js.map +0 -1
  93. package/dist/paths.d.ts +0 -35
  94. package/dist/paths.d.ts.map +0 -1
  95. package/dist/paths.js +0 -71
  96. package/dist/paths.js.map +0 -1
  97. package/dist/types.d.ts +0 -231
  98. package/dist/types.d.ts.map +0 -1
  99. package/dist/types.js +0 -21
  100. package/dist/types.js.map +0 -1
@@ -0,0 +1,231 @@
1
+ # Contributing to @framers/agentos-skills
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` content package under `registry/`. The typed SDK that discovers and loads them lives in the sibling `@framers/agentos-skills-registry` package. 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
+ - `automation` — Workflow automation, orchestration, repetitive task handling
92
+ - `communication` — Chat, email, messaging platforms
93
+ - `content` — Content planning, drafting, publishing pipelines
94
+ - `creative` — Art, writing, design, generation
95
+ - `developer-tools` — Code, repos, CI/CD, debugging
96
+ - `devops` — Operational tooling, monitoring, reliability checks
97
+ - `information` — Data lookup, search, knowledge retrieval
98
+ - `infrastructure` — Infrastructure provisioning, hosting, deployment workflows
99
+ - `marketing` — SEO, campaigns, growth workflows
100
+ - `media` — Audio, video, image, streaming
101
+ - `productivity` — Note-taking, task management, organization
102
+ - `research` — Multi-source investigation and synthesis
103
+ - `security` — Passwords, encryption, access control
104
+ - `social-automation` — Social publishing, engagement, and channel management
105
+
106
+ ### Full Template
107
+
108
+ Copy and paste this into `registry/community/<your-skill>/SKILL.md`:
109
+
110
+ ```markdown
111
+ ---
112
+ name: my-skill
113
+ version: '1.0.0'
114
+ description: A short description of what this skill does (under 200 characters).
115
+ author: your-github-username
116
+ namespace: community
117
+ category: information
118
+ tags: [example, template]
119
+ requires_secrets: []
120
+ requires_tools: []
121
+ metadata:
122
+ agentos:
123
+ emoji: "\U0001F527"
124
+ homepage: https://example.com
125
+ ---
126
+
127
+ # My Skill
128
+
129
+ 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].
130
+
131
+ Provide clear, structured responses. If the user's request is ambiguous, ask for clarification before proceeding.
132
+
133
+ ## Examples
134
+
135
+ - "Example user query 1"
136
+ - "Example user query 2"
137
+ - "Example user query 3"
138
+
139
+ ## Constraints
140
+
141
+ - Limitation or caveat 1.
142
+ - Limitation or caveat 2.
143
+ - Limitation or caveat 3.
144
+ ```
145
+
146
+ ## Testing Your Skill
147
+
148
+ Run the validation script against your SKILL.md file:
149
+
150
+ ```bash
151
+ npm run validate registry/community/my-skill/SKILL.md
152
+ ```
153
+
154
+ The validator checks:
155
+
156
+ - All required frontmatter fields are present
157
+ - Category is valid
158
+ - Description is under 200 characters
159
+ - Tags array has at least one entry
160
+ - Namespace is `community` or `wunderland`
161
+ - Skill name matches the directory name
162
+ - Markdown body is not empty
163
+ - No obvious secrets or API keys are embedded in the file
164
+
165
+ Fix any reported issues before submitting your PR.
166
+
167
+ ## Submitting a PR
168
+
169
+ ### 1. Create a branch
170
+
171
+ ```bash
172
+ git checkout -b add-skill/my-skill
173
+ ```
174
+
175
+ ### 2. Commit your SKILL.md
176
+
177
+ ```bash
178
+ git add registry/community/my-skill/SKILL.md
179
+ git commit -m "feat: add my-skill community skill"
180
+ ```
181
+
182
+ ### 3. Push and open a PR
183
+
184
+ ```bash
185
+ git push origin add-skill/my-skill
186
+ ```
187
+
188
+ Open a pull request against the `main` branch. The PR template will guide you through the checklist.
189
+
190
+ ### PR Checklist
191
+
192
+ Before submitting, confirm:
193
+
194
+ - [ ] Skill is in `registry/community/<name>/SKILL.md`
195
+ - [ ] All required YAML fields are present
196
+ - [ ] `namespace` is set to `community`
197
+ - [ ] Category is one of the 8 valid categories
198
+ - [ ] Description is under 200 characters
199
+ - [ ] Markdown body includes usage instructions, Examples, and Constraints
200
+ - [ ] No secrets, API keys, or credentials are in the file
201
+ - [ ] `npm run validate` passes
202
+
203
+ ### What Reviewers Look For
204
+
205
+ - **Quality**: Is the skill well-written? Are instructions clear and actionable?
206
+ - **No secrets**: The file must not contain API keys, tokens, passwords, or credentials.
207
+ - **Valid format**: Frontmatter must parse correctly with all required fields.
208
+ - **Usefulness**: Does the skill provide value that is not already covered by an existing skill?
209
+ - **Specificity**: Is the scope well-defined? Skills should do one thing well.
210
+
211
+ ## Promotion to Curated
212
+
213
+ Community skills can be promoted to the curated tier. Promotion criteria:
214
+
215
+ 1. **Longevity** — The skill has been in `registry/community/` for at least 3 months.
216
+ 2. **Positive feedback** — The skill has received positive user feedback or adoption.
217
+ 3. **Maintained** — The original author is responsive to issues and keeps the skill up to date.
218
+ 4. **Staff review** — A Framers team member reviews the skill for quality and completeness.
219
+
220
+ When a skill is promoted:
221
+
222
+ - It moves from `registry/community/<name>/` to `registry/curated/<name>/`.
223
+ - The `namespace` field changes from `community` to `wunderland`.
224
+ - The `verified` flag is set to `true` in `registry.json`.
225
+ - The Framers team assumes co-maintenance responsibility.
226
+
227
+ To nominate a community skill for promotion, open an issue titled "Promote: <skill-name>" with a brief justification.
228
+
229
+ ## Code of Conduct
230
+
231
+ 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
@@ -6,7 +6,7 @@
6
6
 
7
7
  # @framers/agentos-skills
8
8
 
9
- Skills runtime for the [AgentOS](https://github.com/framersai/agentos) ecosystem -- loads, parses, and manages SKILL.md prompt modules.
9
+ **Curated SKILL.md prompt modules for AgentOS** 72 staff-verified skills with a machine-readable registry index.
10
10
 
11
11
  [![npm](https://img.shields.io/npm/v/@framers/agentos-skills?logo=npm&color=cb3837)](https://www.npmjs.com/package/@framers/agentos-skills)
12
12
 
@@ -14,83 +14,118 @@ Skills runtime for the [AgentOS](https://github.com/framersai/agentos) ecosystem
14
14
  npm install @framers/agentos-skills
15
15
  ```
16
16
 
17
- ## What's Inside
17
+ > **This is the content package.** It contains 72 curated SKILL.md files and
18
+ > the auto-generated `registry.json` index — no runtime code, no dependencies.
19
+ >
20
+ > For the **catalog SDK** (query helpers, lazy loading, factory functions), see
21
+ > [`@framers/agentos-skills-registry`](https://github.com/framersai/agentos-skills-registry).
22
+ >
23
+ > For the **runtime engine** (SkillLoader, SkillRegistry, path utilities), see
24
+ > [`@framers/agentos`](https://github.com/framersai/agentos) (`@framers/agentos/skills`).
18
25
 
19
- This package is the **runtime** for the AgentOS skills system. It provides:
26
+ ## What's Inside
20
27
 
21
- | Module | Description |
22
- | ------------------- | ------------------------------------------------------------------------ |
23
- | `SkillLoader` | Loads and parses SKILL.md files with YAML frontmatter |
24
- | `SkillRegistry` | Runtime registry for managing, querying, and filtering loaded skills |
25
- | `paths` | Path resolution utilities for discovering default skill directories |
26
- | `types` | Full TypeScript type definitions for skills, metadata, and configuration |
28
+ This package bundles **72 curated SKILL.md files** organized under `registry/curated/`:
29
+
30
+ | Category | Skills |
31
+ | -------------- | ---------------------------------------------------------------------- |
32
+ | Developer | `github`, `git`, `coding-agent`, `code-safety`, `structured-output` |
33
+ | Social | `twitter-bot`, `instagram-bot`, `linkedin-bot`, `facebook-bot`, `threads-bot`, `bluesky-bot`, `mastodon-bot`, `youtube-bot`, `tiktok-bot`, `pinterest-bot`, `reddit-bot`, `blog-publisher`, `social-broadcast` |
34
+ | Research | `web-search`, `web-scraper`, `deep-research`, `summarize`, `company-research` |
35
+ | Productivity | `notion`, `obsidian`, `trello`, `apple-notes`, `apple-reminders`, `spotify-player` |
36
+ | Communication | `slack-helper`, `discord-helper`, `email-intelligence` |
37
+ | Voice | `voice-conversation`, `whisper-transcribe`, `streaming-stt-*`, `streaming-tts-*`, `vosk`, `piper`, `porcupine`, `openwakeword`, `diarization` |
38
+ | Creative | `image-gen`, `image-editing`, `audio-generation`, `video-generation`, `content-creator` |
39
+ | AI/ML | `vision-ocr`, `multimodal-rag`, `ml-content-classifier`, `endpoint-semantic`, `grounding-guard`, `topicality`, `emergent-tools`, `pii-redaction` |
40
+ | Infrastructure | `cloud-ops`, `site-deploy`, `healthcheck` |
41
+ | Security | `1password` |
42
+ | Other | `memory-manager`, `account-manager`, `agent-config`, `seo-campaign`, `weather` |
43
+
44
+ Each skill is a Markdown file with YAML frontmatter:
45
+
46
+ ```yaml
47
+ ---
48
+ name: github
49
+ version: '2.0.0'
50
+ description: Full GitHub API integration
51
+ author: Wunderland
52
+ category: developer
53
+ tags: [github, git, repository]
54
+ requires_secrets: [github.token]
55
+ requires_tools: [github_search, github_repo_list]
56
+ metadata:
57
+ agentos:
58
+ emoji: "🐙"
59
+ primaryEnv: GITHUB_TOKEN
60
+ requires:
61
+ bins: ['gh']
62
+ install:
63
+ - id: brew-gh
64
+ kind: brew
65
+ formula: gh
66
+ bins: [gh]
67
+ ---
68
+
69
+ # GitHub
70
+
71
+ [Markdown instructions for the agent...]
72
+ ```
27
73
 
28
- ## Usage
74
+ ## Ecosystem
29
75
 
30
- ```typescript
31
- import {
32
- SkillRegistry,
33
- loadSkillFromDir,
34
- loadSkillsFromDir,
35
- resolveDefaultSkillsDirs,
36
- } from '@framers/agentos-skills';
76
+ ```
77
+ @framers/agentos/skills ← Engine (SkillLoader, SkillRegistry, path utils)
78
+ @framers/agentos-skills ← Content (you are here — 72 SKILL.md files + registry.json)
79
+ @framers/agentos-skills-registry ← Catalog SDK (SKILLS_CATALOG, query helpers, factories)
80
+ ```
37
81
 
38
- // Discover default skill directories
39
- const dirs = resolveDefaultSkillsDirs();
82
+ | Package | Role | What | Runtime Code |
83
+ | ------------------------------------ | --------------- | ------------------------------------------------------- | :----------: |
84
+ | **@framers/agentos/skills** | **Engine** | SkillLoader, SkillRegistry, path utils | Yes |
85
+ | **@framers/agentos-skills** | **Content** | 72 SKILL.md files + registry.json index | No |
86
+ | **@framers/agentos-skills-registry** | **Catalog SDK** | SKILLS_CATALOG, query helpers, lazy loaders, factories | Yes |
40
87
 
41
- // Create a registry and load skills
42
- const registry = new SkillRegistry();
43
- await registry.loadFromDirs(dirs);
88
+ > This layout mirrors the extensions ecosystem:
89
+ > `@framers/agentos-extensions` (content) + `@framers/agentos-extensions-registry` (SDK).
44
90
 
45
- console.log(`Loaded ${registry.size} skills`);
91
+ ## Usage
46
92
 
47
- // Build a snapshot for LLM context
48
- const snapshot = registry.buildSnapshot({ platform: 'darwin', strict: true });
49
- console.log(snapshot.prompt);
50
- ```
93
+ ### Direct JSON import
51
94
 
52
- ## Relationship to Other Packages
95
+ ```typescript
96
+ import registry from '@framers/agentos-skills/registry.json';
53
97
 
54
- ```
55
- @framers/agentos-skills <-- You are here (runtime: SkillLoader, SkillRegistry, types)
56
- @framers/agentos-skills-registry (catalog: 40+ curated SKILL.md files + JSON index)
57
- @framers/agentos (full cognitive runtime, re-exports skills from here)
98
+ console.log(`${registry.stats.totalSkills} skills available`);
99
+ for (const skill of registry.skills.curated) {
100
+ console.log(` ${skill.metadata?.emoji ?? '📦'} ${skill.name} ${skill.description}`);
101
+ }
58
102
  ```
59
103
 
60
- | Package | What | Runtime Code | Dependencies |
61
- | ------------------------------------ | ----------------------------------------- | :----------: | --------------- |
62
- | **@framers/agentos-skills** | SkillLoader, SkillRegistry, path utils | Yes | `yaml` |
63
- | **@framers/agentos-skills-registry** | 40+ SKILL.md files + JSON index + catalog | No | `yaml` |
64
- | **@framers/agentos** | Full cognitive runtime | Yes | Many |
104
+ ### Via the catalog SDK (recommended)
65
105
 
66
- ## API
106
+ ```typescript
107
+ import { searchSkills, loadSkillByName } from '@framers/agentos-skills-registry';
67
108
 
68
- ### SkillLoader
109
+ const matches = searchSkills('github');
110
+ const skill = await loadSkillByName('github');
111
+ console.log(skill?.content); // SKILL.md body ready for prompt injection
112
+ ```
69
113
 
70
- - `parseSkillFrontmatter(content)` -- Parse YAML frontmatter from SKILL.md content
71
- - `extractMetadata(frontmatter)` -- Extract typed SkillMetadata from parsed frontmatter
72
- - `loadSkillFromDir(dir)` -- Load a single skill from a directory containing SKILL.md
73
- - `loadSkillsFromDir(dir)` -- Load all skills from a parent directory
74
- - `filterByPlatform(entries, platform)` -- Filter skill entries by OS platform
75
- - `filterByEligibility(entries, context)` -- Filter by full eligibility context
76
- - `checkBinaryRequirements(entry, hasBin)` -- Check if binary requirements are met
114
+ ### Via the runtime engine
77
115
 
78
- ### SkillRegistry
116
+ ```typescript
117
+ import { SkillRegistry } from '@framers/agentos/skills';
79
118
 
80
- - `register(entry)` / `unregister(name)` -- Add/remove skills
81
- - `loadFromDir(dir)` / `loadFromDirs(dirs)` / `reload(options)` -- Bulk loading
82
- - `getByName(name)` / `listAll()` / `has(name)` / `size` -- Queries
83
- - `filterByPlatform(platform)` / `filterByEligibility(context)` -- Filtering
84
- - `getUserInvocableSkills()` / `getModelInvocableSkills()` -- Invocation filtering
85
- - `buildSnapshot(options)` -- Build LLM context snapshot
86
- - `buildPrompt(entries)` -- Format skills into prompt text
87
- - `buildCommandSpecs(options)` -- Generate CLI command specs
119
+ const registry = new SkillRegistry();
120
+ await registry.loadFromDirs(['/path/to/agentos-skills/registry/curated']);
121
+ const snapshot = registry.buildSnapshot({ platform: 'darwin', strict: true });
122
+ console.log(snapshot.prompt);
123
+ ```
88
124
 
89
- ### Path Utilities
125
+ ## Contributing
90
126
 
91
- - `resolveDefaultSkillsDirs(options)` -- Resolve default skill directories to scan
127
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines on adding new skills.
92
128
 
93
129
  ## License
94
130
 
95
131
  MIT
96
-
package/package.json CHANGED
@@ -1,34 +1,37 @@
1
1
  {
2
2
  "name": "@framers/agentos-skills",
3
- "version": "0.3.0",
4
- "description": "Skills runtime for AgentOS — loads, parses, and manages SKILL.md prompt modules",
3
+ "version": "0.4.1",
4
+ "description": "Curated SKILL.md prompt modules for AgentOS — 72 staff-verified skills with machine-readable registry index",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
- "main": "dist/index.js",
8
- "types": "dist/index.d.ts",
9
7
  "exports": {
10
- ".": {
11
- "import": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- },
8
+ ".": "./registry.json",
9
+ "./registry.json": "./registry.json",
10
+ "./types": "./types.d.ts",
14
11
  "./package.json": "./package.json"
15
12
  },
16
13
  "files": [
17
- "dist",
14
+ "registry",
15
+ "registry.json",
16
+ "types.d.ts",
17
+ "scripts",
18
+ "CONTRIBUTING.md",
18
19
  "README.md"
19
20
  ],
20
21
  "scripts": {
21
- "build": "tsc -p tsconfig.json",
22
- "typecheck": "tsc -p tsconfig.json --noEmit",
23
- "clean": "rm -rf dist *.tsbuildinfo"
22
+ "validate": "node scripts/validate-skill.mjs",
23
+ "update:registry": "node scripts/update-registry.mjs",
24
+ "typecheck": "echo 'agentos-skills: content-only package, no TypeScript to check'",
25
+ "build": "echo 'agentos-skills: content-only package, no build step'"
24
26
  },
25
27
  "keywords": [
26
28
  "agentos",
27
29
  "skills",
28
- "runtime",
29
- "skill-loader",
30
- "skill-registry",
31
- "prompts"
30
+ "prompts",
31
+ "skill-modules",
32
+ "ai-agent",
33
+ "prompt-engineering",
34
+ "curated-catalog"
32
35
  ],
33
36
  "author": {
34
37
  "name": "Framers AI",
@@ -42,20 +45,5 @@
42
45
  },
43
46
  "publishConfig": {
44
47
  "access": "public"
45
- },
46
- "dependencies": {
47
- "yaml": "^2.8.1"
48
- },
49
- "devDependencies": {
50
- "@types/node": "^20.12.12",
51
- "typescript": "^5.4.5"
52
- },
53
- "peerDependencies": {
54
- "@framers/agentos": ">=0.1.0"
55
- },
56
- "peerDependenciesMeta": {
57
- "@framers/agentos": {
58
- "optional": true
59
- }
60
48
  }
61
49
  }
File without changes
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: 1password
3
+ version: '1.0.0'
4
+ description: Query and retrieve items from 1Password vaults using the 1Password CLI for secure credential access.
5
+ author: Wunderland
6
+ namespace: wunderland
7
+ category: security
8
+ tags: [1password, passwords, secrets, vault, credentials, security]
9
+ requires_secrets: [1password.service_account_token]
10
+ requires_tools: []
11
+ metadata:
12
+ agentos:
13
+ emoji: "\U0001F510"
14
+ primaryEnv: OP_SERVICE_ACCOUNT_TOKEN
15
+ homepage: https://developer.1password.com/docs/cli
16
+ requires:
17
+ bins: ['op']
18
+ install:
19
+ - id: brew
20
+ kind: brew
21
+ formula: 1password-cli
22
+ bins: ['op']
23
+ label: 'Install 1Password CLI (brew)'
24
+ ---
25
+
26
+ # 1Password Vault Queries
27
+
28
+ You can query 1Password vaults to retrieve credentials, secure notes, API keys, and other secrets using the `op` CLI. This enables secure access to stored credentials without hardcoding secrets in code or configuration files.
29
+
30
+ When retrieving items, use `op item get` with the item name or UUID. Support querying specific fields (username, password, TOTP, custom fields) using the `--fields` flag. For listing items, filter by vault, category (login, secure-note, api-credential, credit-card), or tags. Always use the most specific identifier available to avoid ambiguous matches.
31
+
32
+ For security, never display full passwords or secret values in plain text unless the user explicitly requests it. Instead, confirm the item exists and describe its metadata (title, vault, category, last modified). When injecting secrets into environment variables or configuration files, use `op run` or `op inject` for ephemeral secret injection that avoids writing secrets to disk.
33
+
34
+ Support common workflows like looking up API keys for service integrations, retrieving database credentials for connection strings, and checking TOTP codes for two-factor authentication. When multiple items match a query, present a disambiguated list with vault and category context so the user can select the correct one.
35
+
36
+ ## Examples
37
+
38
+ - "Look up the API key for our Stripe integration"
39
+ - "What vaults do I have access to?"
40
+ - "Get the database connection credentials from the Production vault"
41
+ - "Generate a TOTP code for my AWS account"
42
+ - "List all items tagged 'deploy' in the DevOps vault"
43
+ - "Inject secrets from the 'staging-env' item into environment variables"
44
+
45
+ ## Constraints
46
+
47
+ - Requires the `op` CLI to be installed and authenticated (service account token or interactive sign-in).
48
+ - The agent can only access vaults and items that the authenticated account has permissions for.
49
+ - Biometric unlock is not available in non-interactive CLI sessions; use service account tokens.
50
+ - TOTP codes are time-sensitive and expire every 30 seconds.
51
+ - Cannot create, modify, or delete vault items -- read-only access for security.
52
+ - Session tokens expire after 30 minutes of inactivity by default.
53
+ - Do not log, cache, or persist retrieved secret values beyond the immediate use.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: account-manager
3
+ version: '1.0.0'
4
+ description: Social account management — registration flows, profile optimization, credential storage, multi-platform account orchestration.
5
+ author: Wunderland
6
+ namespace: wunderland
7
+ category: automation
8
+ tags: [accounts, credentials, registration, profiles, management, automation]
9
+ requires_secrets: []
10
+ requires_tools: [credentialsSet, credentialsGet, credentialsList, credentialsImport, browserNavigate, browserClick, browserFill, browserScreenshot, browserSnapshot, browserSession]
11
+ metadata:
12
+ agentos:
13
+ emoji: "\U0001F511"
14
+ ---
15
+
16
+ # Account Manager
17
+
18
+ You are a social account management agent. You help set up, configure, and manage accounts across social media platforms — handling registration flows, profile optimization, credential storage, and multi-platform orchestration.
19
+
20
+ ## Core Capabilities
21
+
22
+ - **Account registration** — automate sign-up flows via browser automation
23
+ - **Profile optimization** — complete bios, profile pictures, settings
24
+ - **Credential management** — securely store and retrieve API keys and tokens
25
+ - **Multi-platform** — manage accounts across Twitter, Instagram, Reddit, Pinterest, TikTok, YouTube
26
+ - **Session management** — save and restore login sessions
27
+ - **Credential import** — bulk import from JSON or CSV files
28
+
29
+ ## Account Setup Workflow
30
+
31
+ 1. **Navigate** to the platform's sign-up page
32
+ 2. **Fill registration form** with provided details
33
+ 3. **Handle verification** — email/phone verification codes
34
+ 4. **Complete profile** — bio, avatar, settings
35
+ 5. **Store credentials** securely in the credential vault
36
+ 6. **Save session** for future use without re-authentication
37
+
38
+ ## Credential Management
39
+
40
+ - Use `credentialsSet` to store platform API keys and tokens
41
+ - Use `credentialsGet` to retrieve credentials when needed
42
+ - Use `credentialsList` to audit stored credentials
43
+ - Use `credentialsImport` for bulk setup from CSV/JSON
44
+ - All credentials are encrypted at rest
45
+
46
+ ## Profile Optimization Tips
47
+
48
+ - **Bio**: Clear description of purpose, include relevant keywords
49
+ - **Avatar**: Consistent branding across platforms
50
+ - **Links**: Cross-link between platforms
51
+ - **Settings**: Enable API access, set appropriate privacy levels
52
+ - **Verification**: Complete platform-specific verification steps
53
+
54
+ ## Safety
55
+
56
+ - Never store plaintext passwords in logs or outputs
57
+ - Always use the credential vault for sensitive data
58
+ - Verify account ownership before making changes
59
+ - Respect platform terms of service
60
+ - Use unique, strong passwords for each platform
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: agent-config
3
+ description: Export and import agent configurations for sharing and backup
4
+ version: 1.0.0
5
+ tags: [agent, config, export, import, yaml, json]
6
+ tools_required: []
7
+ ---
8
+
9
+ # Agent Configuration
10
+
11
+ Export agent configurations as portable YAML/JSON files for sharing, backup, and migration. Import configurations to recreate agents.
12
+
13
+ ## Capabilities
14
+ - **Export**: Save agent config with instructions, tools, personality, guardrails
15
+ - **Import**: Recreate agent from exported config
16
+ - **Secret redaction**: API keys automatically redacted on export
17
+ - **Round-trip**: Export -> edit -> import workflow
18
+
19
+ ## Example
20
+ "Export my research agent to a file"
21
+ "Import this agent configuration"
22
+ "Share my agent config with the team"