prpm 1.2.1 → 2.1.0
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/README.md +90 -862
- package/dist/index.js +24163 -65
- package/dist/schemas/agents-md.schema.json +24 -0
- package/dist/schemas/aider.schema.json +24 -0
- package/dist/schemas/canonical.schema.json +435 -0
- package/dist/schemas/claude-agent.schema.json +62 -0
- package/dist/schemas/claude-hook.schema.json +70 -0
- package/dist/schemas/claude-plugin.schema.json +122 -0
- package/dist/schemas/claude-skill.schema.json +51 -0
- package/dist/schemas/claude-slash-command.schema.json +77 -0
- package/dist/schemas/claude.schema.json +52 -0
- package/dist/schemas/continue.schema.json +98 -0
- package/dist/schemas/copilot.schema.json +76 -0
- package/dist/schemas/cursor-command.schema.json +27 -0
- package/dist/schemas/cursor-hooks.schema.json +59 -0
- package/dist/schemas/cursor.schema.json +74 -0
- package/dist/schemas/droid-hook.schema.json +103 -0
- package/dist/schemas/droid-skill.schema.json +46 -0
- package/dist/schemas/droid-slash-command.schema.json +53 -0
- package/dist/schemas/droid.schema.json +46 -0
- package/dist/schemas/format-capabilities.schema.json +101 -0
- package/dist/schemas/format-registry.schema.json +99 -0
- package/dist/schemas/gemini-extension.schema.json +77 -0
- package/dist/schemas/gemini-md.schema.json +24 -0
- package/dist/schemas/gemini.schema.json +30 -0
- package/dist/schemas/kiro-agent.schema.json +146 -0
- package/dist/schemas/kiro-hook.schema.json +165 -0
- package/dist/schemas/kiro-steering.schema.json +74 -0
- package/dist/schemas/mcp-server.schema.json +130 -0
- package/dist/schemas/opencode-plugin.schema.json +391 -0
- package/dist/schemas/opencode-slash-command.schema.json +60 -0
- package/dist/schemas/opencode.schema.json +111 -0
- package/dist/schemas/prpm-manifest.schema.json +758 -0
- package/dist/schemas/replit.schema.json +21 -0
- package/dist/schemas/ruler.schema.json +22 -0
- package/dist/schemas/trae.schema.json +24 -0
- package/dist/schemas/windsurf.schema.json +22 -0
- package/dist/schemas/zed-extension.schema.json +238 -0
- package/dist/schemas/zed.schema.json +44 -0
- package/dist/schemas/zencoder.schema.json +51 -0
- package/package.json +20 -14
- package/schemas/prpm-manifest.schema.json +490 -39
- package/dist/__tests__/e2e/test-helpers.js +0 -150
- package/dist/commands/collections.js +0 -606
- package/dist/commands/index.js +0 -186
- package/dist/commands/info.js +0 -82
- package/dist/commands/install.js +0 -477
- package/dist/commands/list.js +0 -166
- package/dist/commands/login.js +0 -281
- package/dist/commands/outdated.js +0 -128
- package/dist/commands/popular.js +0 -27
- package/dist/commands/publish.js +0 -274
- package/dist/commands/schema.js +0 -37
- package/dist/commands/search.js +0 -404
- package/dist/commands/telemetry.js +0 -103
- package/dist/commands/trending.js +0 -76
- package/dist/commands/uninstall.js +0 -77
- package/dist/commands/update.js +0 -121
- package/dist/commands/upgrade.js +0 -121
- package/dist/commands/whoami.js +0 -75
- package/dist/core/claude-config.js +0 -91
- package/dist/core/cursor-config.js +0 -130
- package/dist/core/downloader.js +0 -64
- package/dist/core/filesystem.js +0 -124
- package/dist/core/lockfile.js +0 -239
- package/dist/core/marketplace-converter.js +0 -198
- package/dist/core/registry-client.js +0 -265
- package/dist/core/schema-validator.js +0 -74
- package/dist/core/telemetry.js +0 -175
- package/dist/core/user-config.js +0 -79
- package/dist/types/registry.js +0 -5
- package/dist/types.js +0 -5
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/agents-md.json",
|
|
4
|
+
"$comment": "https://docs.factory.ai/cli/configuration/agents-md",
|
|
5
|
+
"title": "agents.md Format",
|
|
6
|
+
"description": "JSON Schema for agents.md format - plain markdown project-specific AI instructions (NO frontmatter)",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"content": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Plain markdown content with project-specific instructions, architecture notes, conventions, etc. No frontmatter allowed."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"examples": [
|
|
17
|
+
{
|
|
18
|
+
"content": "# Backend Guidelines\n\n## Architecture\n\nWe use a clean architecture pattern.\n\n## Database\n\nPostgreSQL with Prisma ORM.\n\n## Coding Standards\n\n- Use TypeScript strict mode\n- Write unit tests for all services"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"content": "# Project Context\n\nThis is a React + TypeScript web application.\n\n## Stack\n\n- React 18\n- TypeScript 5\n- Vite\n- Tailwind CSS"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/aider.json",
|
|
4
|
+
"$comment": "https://aider.chat/docs/usage/conventions.html",
|
|
5
|
+
"title": "Aider CONVENTIONS.md Format",
|
|
6
|
+
"description": "JSON Schema for Aider CONVENTIONS.md format - plain markdown coding conventions (NO frontmatter)",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"content": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Plain markdown content with coding conventions, standards, and project-specific guidelines. No frontmatter allowed."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"examples": [
|
|
17
|
+
{
|
|
18
|
+
"content": "# Coding Conventions\n\n## Python\n\n- Follow PEP 8\n- Use type hints\n- Write docstrings for all functions\n\n## Testing\n\n- Use pytest\n- Aim for 80% coverage"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"content": "# Project Standards\n\n## Code Review\n\n- All PRs need approval\n- Run linters before committing\n\n## Documentation\n\n- Update README for new features"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/canonical.json",
|
|
4
|
+
"title": "PRPM Canonical Package Format",
|
|
5
|
+
"description": "Universal intermediate format for AI prompt packages that can be converted to any editor-specific format",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["id", "version", "name", "description", "author", "tags", "format", "subtype", "content"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"id": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Unique identifier for the package"
|
|
12
|
+
},
|
|
13
|
+
"version": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
16
|
+
"description": "Semantic version (e.g., '1.0.0')"
|
|
17
|
+
},
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Package identifier/slug (used in frontmatter)"
|
|
21
|
+
},
|
|
22
|
+
"description": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Human-readable description"
|
|
25
|
+
},
|
|
26
|
+
"author": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Package author"
|
|
29
|
+
},
|
|
30
|
+
"tags": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Categorization tags"
|
|
36
|
+
},
|
|
37
|
+
"format": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"enum": ["cursor", "claude", "claude-plugin", "continue", "windsurf", "copilot", "kiro", "agents.md", "generic", "mcp", "gemini", "opencode", "ruler", "droid", "trae", "aider", "zencoder", "replit"],
|
|
40
|
+
"description": "Source format this was parsed from"
|
|
41
|
+
},
|
|
42
|
+
"subtype": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": ["rule", "agent", "skill", "slash-command", "prompt", "workflow", "tool", "template", "collection", "chatmode", "hook", "plugin", "server"],
|
|
45
|
+
"description": "Subtype classification"
|
|
46
|
+
},
|
|
47
|
+
"content": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": ["format", "version", "sections"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"format": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"const": "canonical"
|
|
54
|
+
},
|
|
55
|
+
"version": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"const": "1.0"
|
|
58
|
+
},
|
|
59
|
+
"sections": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"description": "Content sections in semantic format",
|
|
62
|
+
"items": {
|
|
63
|
+
"oneOf": [
|
|
64
|
+
{
|
|
65
|
+
"$ref": "#/definitions/MetadataSection"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"$ref": "#/definitions/InstructionsSection"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"$ref": "#/definitions/RulesSection"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"$ref": "#/definitions/ExamplesSection"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"$ref": "#/definitions/ToolsSection"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"$ref": "#/definitions/PersonaSection"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"$ref": "#/definitions/ContextSection"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"$ref": "#/definitions/CustomSection"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"metadata": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"description": "Extracted metadata for easier access",
|
|
96
|
+
"properties": {
|
|
97
|
+
"title": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"description": "Display title (from H1 or frontmatter)"
|
|
100
|
+
},
|
|
101
|
+
"description": {
|
|
102
|
+
"type": "string"
|
|
103
|
+
},
|
|
104
|
+
"icon": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"description": "Emoji icon"
|
|
107
|
+
},
|
|
108
|
+
"version": {
|
|
109
|
+
"type": "string"
|
|
110
|
+
},
|
|
111
|
+
"author": {
|
|
112
|
+
"type": "string"
|
|
113
|
+
},
|
|
114
|
+
"globs": {
|
|
115
|
+
"type": "array",
|
|
116
|
+
"items": {
|
|
117
|
+
"type": "string"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"alwaysApply": {
|
|
121
|
+
"type": "boolean"
|
|
122
|
+
},
|
|
123
|
+
"claudeAgent": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"properties": {
|
|
126
|
+
"model": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"enum": ["sonnet", "opus", "haiku", "inherit"]
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"copilotConfig": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"properties": {
|
|
135
|
+
"instructionName": {
|
|
136
|
+
"type": "string"
|
|
137
|
+
},
|
|
138
|
+
"applyTo": {
|
|
139
|
+
"oneOf": [
|
|
140
|
+
{
|
|
141
|
+
"type": "string"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "array",
|
|
145
|
+
"items": {
|
|
146
|
+
"type": "string"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"kiroConfig": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"properties": {
|
|
156
|
+
"filename": {
|
|
157
|
+
"type": "string"
|
|
158
|
+
},
|
|
159
|
+
"inclusion": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"enum": ["always", "fileMatch", "manual"]
|
|
162
|
+
},
|
|
163
|
+
"fileMatchPattern": {
|
|
164
|
+
"type": "string"
|
|
165
|
+
},
|
|
166
|
+
"domain": {
|
|
167
|
+
"type": "string"
|
|
168
|
+
},
|
|
169
|
+
"foundationalType": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"enum": ["product", "tech", "structure"]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"agentsMdConfig": {
|
|
176
|
+
"type": "object",
|
|
177
|
+
"properties": {
|
|
178
|
+
"project": {
|
|
179
|
+
"type": "string"
|
|
180
|
+
},
|
|
181
|
+
"scope": {
|
|
182
|
+
"type": "string"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"sourceFormat": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"enum": ["cursor", "claude", "claude-plugin", "continue", "windsurf", "copilot", "kiro", "agents.md", "generic", "mcp", "gemini", "opencode", "ruler", "droid", "trae", "aider", "zencoder", "replit"],
|
|
191
|
+
"description": "Original format this was parsed from"
|
|
192
|
+
},
|
|
193
|
+
"sourceUrl": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"format": "uri",
|
|
196
|
+
"description": "Source URL if imported"
|
|
197
|
+
},
|
|
198
|
+
"official": {
|
|
199
|
+
"type": "boolean",
|
|
200
|
+
"description": "Official package from cursor.directory, claude.ai, etc."
|
|
201
|
+
},
|
|
202
|
+
"verified": {
|
|
203
|
+
"type": "boolean",
|
|
204
|
+
"description": "Verified by PRPM team"
|
|
205
|
+
},
|
|
206
|
+
"karenScore": {
|
|
207
|
+
"type": "number",
|
|
208
|
+
"minimum": 0,
|
|
209
|
+
"maximum": 100,
|
|
210
|
+
"description": "Quality score from Karen"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"definitions": {
|
|
214
|
+
"MetadataSection": {
|
|
215
|
+
"type": "object",
|
|
216
|
+
"required": ["type", "data"],
|
|
217
|
+
"properties": {
|
|
218
|
+
"type": {
|
|
219
|
+
"const": "metadata"
|
|
220
|
+
},
|
|
221
|
+
"data": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"required": ["title", "description"],
|
|
224
|
+
"properties": {
|
|
225
|
+
"title": {
|
|
226
|
+
"type": "string"
|
|
227
|
+
},
|
|
228
|
+
"description": {
|
|
229
|
+
"type": "string"
|
|
230
|
+
},
|
|
231
|
+
"icon": {
|
|
232
|
+
"type": "string"
|
|
233
|
+
},
|
|
234
|
+
"version": {
|
|
235
|
+
"type": "string"
|
|
236
|
+
},
|
|
237
|
+
"author": {
|
|
238
|
+
"type": "string"
|
|
239
|
+
},
|
|
240
|
+
"claudeAgent": {
|
|
241
|
+
"type": "object",
|
|
242
|
+
"properties": {
|
|
243
|
+
"model": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"enum": ["sonnet", "opus", "haiku", "inherit"]
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"InstructionsSection": {
|
|
254
|
+
"type": "object",
|
|
255
|
+
"required": ["type", "title", "content"],
|
|
256
|
+
"properties": {
|
|
257
|
+
"type": {
|
|
258
|
+
"const": "instructions"
|
|
259
|
+
},
|
|
260
|
+
"title": {
|
|
261
|
+
"type": "string"
|
|
262
|
+
},
|
|
263
|
+
"content": {
|
|
264
|
+
"type": "string"
|
|
265
|
+
},
|
|
266
|
+
"priority": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"enum": ["high", "medium", "low"]
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"RulesSection": {
|
|
273
|
+
"type": "object",
|
|
274
|
+
"required": ["type", "title", "items"],
|
|
275
|
+
"properties": {
|
|
276
|
+
"type": {
|
|
277
|
+
"const": "rules"
|
|
278
|
+
},
|
|
279
|
+
"title": {
|
|
280
|
+
"type": "string"
|
|
281
|
+
},
|
|
282
|
+
"items": {
|
|
283
|
+
"type": "array",
|
|
284
|
+
"items": {
|
|
285
|
+
"type": "object",
|
|
286
|
+
"required": ["content"],
|
|
287
|
+
"properties": {
|
|
288
|
+
"content": {
|
|
289
|
+
"type": "string"
|
|
290
|
+
},
|
|
291
|
+
"rationale": {
|
|
292
|
+
"type": "string"
|
|
293
|
+
},
|
|
294
|
+
"examples": {
|
|
295
|
+
"type": "array",
|
|
296
|
+
"items": {
|
|
297
|
+
"type": "string"
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"ordered": {
|
|
304
|
+
"type": "boolean",
|
|
305
|
+
"description": "Whether rules should be numbered"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"ExamplesSection": {
|
|
310
|
+
"type": "object",
|
|
311
|
+
"required": ["type", "title", "examples"],
|
|
312
|
+
"properties": {
|
|
313
|
+
"type": {
|
|
314
|
+
"const": "examples"
|
|
315
|
+
},
|
|
316
|
+
"title": {
|
|
317
|
+
"type": "string"
|
|
318
|
+
},
|
|
319
|
+
"examples": {
|
|
320
|
+
"type": "array",
|
|
321
|
+
"items": {
|
|
322
|
+
"type": "object",
|
|
323
|
+
"required": ["description", "code"],
|
|
324
|
+
"properties": {
|
|
325
|
+
"description": {
|
|
326
|
+
"type": "string"
|
|
327
|
+
},
|
|
328
|
+
"code": {
|
|
329
|
+
"type": "string"
|
|
330
|
+
},
|
|
331
|
+
"language": {
|
|
332
|
+
"type": "string"
|
|
333
|
+
},
|
|
334
|
+
"good": {
|
|
335
|
+
"type": "boolean",
|
|
336
|
+
"description": "Is this a good or bad example?"
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"ToolsSection": {
|
|
344
|
+
"type": "object",
|
|
345
|
+
"required": ["type", "tools"],
|
|
346
|
+
"properties": {
|
|
347
|
+
"type": {
|
|
348
|
+
"const": "tools"
|
|
349
|
+
},
|
|
350
|
+
"tools": {
|
|
351
|
+
"type": "array",
|
|
352
|
+
"items": {
|
|
353
|
+
"type": "string"
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"description": {
|
|
357
|
+
"type": "string"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"PersonaSection": {
|
|
362
|
+
"type": "object",
|
|
363
|
+
"required": ["type", "data"],
|
|
364
|
+
"properties": {
|
|
365
|
+
"type": {
|
|
366
|
+
"const": "persona"
|
|
367
|
+
},
|
|
368
|
+
"data": {
|
|
369
|
+
"type": "object",
|
|
370
|
+
"required": ["role"],
|
|
371
|
+
"properties": {
|
|
372
|
+
"name": {
|
|
373
|
+
"type": "string"
|
|
374
|
+
},
|
|
375
|
+
"role": {
|
|
376
|
+
"type": "string"
|
|
377
|
+
},
|
|
378
|
+
"icon": {
|
|
379
|
+
"type": "string"
|
|
380
|
+
},
|
|
381
|
+
"style": {
|
|
382
|
+
"type": "array",
|
|
383
|
+
"items": {
|
|
384
|
+
"type": "string"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
"expertise": {
|
|
388
|
+
"type": "array",
|
|
389
|
+
"items": {
|
|
390
|
+
"type": "string"
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
"ContextSection": {
|
|
398
|
+
"type": "object",
|
|
399
|
+
"required": ["type", "title", "content"],
|
|
400
|
+
"properties": {
|
|
401
|
+
"type": {
|
|
402
|
+
"const": "context"
|
|
403
|
+
},
|
|
404
|
+
"title": {
|
|
405
|
+
"type": "string"
|
|
406
|
+
},
|
|
407
|
+
"content": {
|
|
408
|
+
"type": "string"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"CustomSection": {
|
|
413
|
+
"type": "object",
|
|
414
|
+
"required": ["type", "content"],
|
|
415
|
+
"properties": {
|
|
416
|
+
"type": {
|
|
417
|
+
"const": "custom"
|
|
418
|
+
},
|
|
419
|
+
"editorType": {
|
|
420
|
+
"type": "string",
|
|
421
|
+
"enum": ["cursor", "claude", "claude-plugin", "continue", "windsurf", "copilot", "kiro", "agents.md", "mcp", "gemini", "opencode", "ruler", "droid", "trae", "aider", "zencoder", "replit"]
|
|
422
|
+
},
|
|
423
|
+
"title": {
|
|
424
|
+
"type": "string"
|
|
425
|
+
},
|
|
426
|
+
"content": {
|
|
427
|
+
"type": "string"
|
|
428
|
+
},
|
|
429
|
+
"metadata": {
|
|
430
|
+
"type": "object"
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/agent.json",
|
|
4
|
+
"$comment": "https://code.claude.com/docs/en/sub-agents",
|
|
5
|
+
"title": "Claude Agent Format",
|
|
6
|
+
"description": "JSON Schema for Claude Code Agents - long-running assistants with tool access",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["name", "description"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^[a-z0-9-]+$",
|
|
17
|
+
"maxLength": 64,
|
|
18
|
+
"description": "Unique identifier using lowercase letters and hyphens"
|
|
19
|
+
},
|
|
20
|
+
"description": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"maxLength": 1024,
|
|
23
|
+
"description": "Natural language description of the subagent's purpose"
|
|
24
|
+
},
|
|
25
|
+
"tools": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Comma-separated list of specific tools. If omitted, inherits all tools from the main thread"
|
|
28
|
+
},
|
|
29
|
+
"model": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"enum": ["sonnet", "opus", "haiku", "inherit"],
|
|
32
|
+
"description": "Model to use for this subagent. Can be a model alias (sonnet, opus, haiku) or 'inherit' to use the main conversation's model. If omitted, defaults to the configured subagent model"
|
|
33
|
+
},
|
|
34
|
+
"permissionMode": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": ["default", "acceptEdits", "bypassPermissions", "plan", "ignore"],
|
|
37
|
+
"description": "Permission mode for the subagent. Controls how the subagent handles permission requests"
|
|
38
|
+
},
|
|
39
|
+
"skills": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Comma-separated list of skill names to auto-load when the subagent starts. Skills are loaded into the subagent's context automatically"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"additionalProperties": false
|
|
45
|
+
},
|
|
46
|
+
"content": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Markdown content with H1 title (can include emoji icon), persona, instructions, and examples"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"examples": [
|
|
52
|
+
{
|
|
53
|
+
"frontmatter": {
|
|
54
|
+
"name": "code-reviewer",
|
|
55
|
+
"description": "Reviews code for best practices and potential issues",
|
|
56
|
+
"tools": "Read, Grep, Bash",
|
|
57
|
+
"model": "sonnet"
|
|
58
|
+
},
|
|
59
|
+
"content": "# 🔍 Code Reviewer\n\nYou are an expert code reviewer with deep knowledge of software engineering principles.\n\n## Instructions\n\n- Check for code smells and anti-patterns\n- Verify test coverage"
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/hook.json",
|
|
4
|
+
"$comment": "https://code.claude.com/docs/en/hooks",
|
|
5
|
+
"title": "Claude Hook Format",
|
|
6
|
+
"description": "JSON Schema for Claude Code Hooks - executable code triggered by events. Valid hook events: PreToolUse (blocks the tool call, shows stderr to Claude), PermissionRequest (denies the permission, shows stderr to Claude), PostToolUse (shows stderr to Claude, tool already ran), Notification (shows stderr to user only), UserPromptSubmit (blocks prompt processing, erases prompt, shows stderr to user only), Stop (blocks stoppage, shows stderr to Claude), SubagentStop (blocks stoppage, shows stderr to Claude subagent), PreCompact (shows stderr to user only), SessionStart (shows stderr to user only), SessionEnd (shows stderr to user only)",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["name", "description"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^[a-z0-9-]+$",
|
|
17
|
+
"maxLength": 64,
|
|
18
|
+
"description": "Hook identifier (lowercase letters, numbers, hyphens only)"
|
|
19
|
+
},
|
|
20
|
+
"description": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"maxLength": 1024,
|
|
23
|
+
"description": "Brief overview of what the hook does"
|
|
24
|
+
},
|
|
25
|
+
"event": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": [
|
|
28
|
+
"PreToolUse",
|
|
29
|
+
"PermissionRequest",
|
|
30
|
+
"PostToolUse",
|
|
31
|
+
"UserPromptSubmit",
|
|
32
|
+
"Notification",
|
|
33
|
+
"Stop",
|
|
34
|
+
"SubagentStop",
|
|
35
|
+
"PreCompact",
|
|
36
|
+
"SessionStart",
|
|
37
|
+
"SessionEnd"
|
|
38
|
+
],
|
|
39
|
+
"description": "Event that triggers this hook. PreToolUse: blocks the tool call, shows stderr to Claude. PermissionRequest: denies the permission, shows stderr to Claude. PostToolUse: shows stderr to Claude (tool already ran). Notification: shows stderr to user only. UserPromptSubmit: blocks prompt processing, erases prompt, shows stderr to user only. Stop: blocks stoppage, shows stderr to Claude. SubagentStop: blocks stoppage, shows stderr to Claude subagent. PreCompact: shows stderr to user only. SessionStart: shows stderr to user only. SessionEnd: shows stderr to user only."
|
|
40
|
+
},
|
|
41
|
+
"language": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"enum": ["bash", "typescript", "javascript", "python", "binary"],
|
|
44
|
+
"description": "Programming language of the hook"
|
|
45
|
+
},
|
|
46
|
+
"hookType": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"const": "hook",
|
|
49
|
+
"description": "Explicit marker for round-trip conversion"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"additionalProperties": false
|
|
53
|
+
},
|
|
54
|
+
"content": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Markdown documentation with hook source code in code blocks"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"examples": [
|
|
60
|
+
{
|
|
61
|
+
"frontmatter": {
|
|
62
|
+
"name": "session-logger",
|
|
63
|
+
"description": "Logs session start/end times for tracking",
|
|
64
|
+
"event": "SessionStart",
|
|
65
|
+
"language": "bash"
|
|
66
|
+
},
|
|
67
|
+
"content": "# Session Logger Hook\n\nLogs Claude Code session activity for tracking and debugging.\n\n## Source Code\n\n```bash\n#!/bin/bash\necho \"Session started at $(date)\" >> ~/.claude/session.log\n```"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|