prpm 1.1.6 → 1.1.8
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/dist/index.js +69 -44
- package/dist/schemas/agents-md.schema.json +2 -1
- package/dist/schemas/canonical.schema.json +1 -1
- package/dist/schemas/claude-agent.schema.json +15 -10
- package/dist/schemas/claude-hook.schema.json +5 -3
- package/dist/schemas/claude-skill.schema.json +3 -12
- package/dist/schemas/claude-slash-command.schema.json +2 -6
- package/dist/schemas/claude.schema.json +2 -1
- package/dist/schemas/continue.schema.json +2 -1
- package/dist/schemas/copilot.schema.json +2 -1
- package/dist/schemas/cursor-command.schema.json +2 -1
- package/dist/schemas/cursor.schema.json +2 -16
- 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 +2 -1
- package/dist/schemas/gemini-md.schema.json +24 -0
- package/dist/schemas/gemini.schema.json +3 -2
- package/dist/schemas/kiro-agent.schema.json +2 -1
- package/dist/schemas/{kiro-hooks.schema.json → kiro-hook.schema.json} +3 -2
- package/dist/schemas/kiro-steering.schema.json +2 -1
- package/dist/schemas/opencode-slash-command.schema.json +60 -0
- package/dist/schemas/opencode.schema.json +16 -10
- package/dist/schemas/ruler.schema.json +2 -1
- package/dist/schemas/windsurf.schema.json +2 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -3211,7 +3211,7 @@ function fromClaude(content, metadata, sourceFormat = "claude", explicitSubtype)
|
|
|
3211
3211
|
}
|
|
3212
3212
|
};
|
|
3213
3213
|
sections.push(metadataSection);
|
|
3214
|
-
const toolsField = frontmatter["allowed-tools"]
|
|
3214
|
+
const toolsField = frontmatter.tools || frontmatter["allowed-tools"];
|
|
3215
3215
|
if (toolsField) {
|
|
3216
3216
|
const tools = toolsField.split(",").map((t) => t.trim()).filter(Boolean);
|
|
3217
3217
|
if (tools.length > 0) {
|
|
@@ -9382,7 +9382,11 @@ function loadSchema(format, subtype) {
|
|
|
9382
9382
|
"claude:hook": "claude-hook.schema.json",
|
|
9383
9383
|
"cursor:slash-command": "cursor-command.schema.json",
|
|
9384
9384
|
"kiro:hook": "kiro-hooks.schema.json",
|
|
9385
|
-
"kiro:agent": "kiro-agent.schema.json"
|
|
9385
|
+
"kiro:agent": "kiro-agent.schema.json",
|
|
9386
|
+
"droid:skill": "droid-skill.schema.json",
|
|
9387
|
+
"droid:slash-command": "droid-slash-command.schema.json",
|
|
9388
|
+
"droid:hook": "droid-hook.schema.json",
|
|
9389
|
+
"opencode:slash-command": "opencode-slash-command.schema.json"
|
|
9386
9390
|
};
|
|
9387
9391
|
schemaFilename = subtypeSchemaMap[cacheKey];
|
|
9388
9392
|
}
|
|
@@ -9789,24 +9793,45 @@ function convertContent2(pkg, warnings, options, isSlashCommand = false) {
|
|
|
9789
9793
|
const metadata = pkg.content.sections.find((s) => s.type === "metadata");
|
|
9790
9794
|
const tools = pkg.content.sections.find((s) => s.type === "tools");
|
|
9791
9795
|
const persona = pkg.content.sections.find((s) => s.type === "persona");
|
|
9796
|
+
lines.push("---");
|
|
9792
9797
|
if (!isSlashCommand) {
|
|
9793
|
-
lines.push(
|
|
9794
|
-
lines.push(`name: ${pkg.name}`);
|
|
9798
|
+
lines.push(`name: ${pkg.id}`);
|
|
9795
9799
|
if ((metadata == null ? void 0 : metadata.type) === "metadata") {
|
|
9796
9800
|
lines.push(`description: ${metadata.data.description}`);
|
|
9797
9801
|
}
|
|
9798
9802
|
const toolsValue = ((_a = options == null ? void 0 : options.claudeConfig) == null ? void 0 : _a.tools) || ((tools == null ? void 0 : tools.type) === "tools" ? tools.tools.join(", ") : void 0);
|
|
9799
9803
|
if (toolsValue) {
|
|
9800
|
-
lines.push(`
|
|
9804
|
+
lines.push(`tools: ${toolsValue}`);
|
|
9801
9805
|
}
|
|
9802
9806
|
const storedModel = (metadata == null ? void 0 : metadata.type) === "metadata" ? (_b = metadata.data.claudeAgent) == null ? void 0 : _b.model : void 0;
|
|
9803
9807
|
const modelValue = ((_c = options == null ? void 0 : options.claudeConfig) == null ? void 0 : _c.model) || storedModel;
|
|
9804
9808
|
if (modelValue) {
|
|
9805
9809
|
lines.push(`model: ${modelValue}`);
|
|
9806
9810
|
}
|
|
9807
|
-
|
|
9808
|
-
|
|
9811
|
+
} else {
|
|
9812
|
+
const claudeSlashCommand = (metadata == null ? void 0 : metadata.type) === "metadata" ? metadata.data.claudeSlashCommand : void 0;
|
|
9813
|
+
if (claudeSlashCommand) {
|
|
9814
|
+
if (claudeSlashCommand.allowedTools) {
|
|
9815
|
+
lines.push(`allowed-tools: ${claudeSlashCommand.allowedTools}`);
|
|
9816
|
+
}
|
|
9817
|
+
if (claudeSlashCommand.argumentHint) {
|
|
9818
|
+
lines.push(`argument-hint: ${claudeSlashCommand.argumentHint}`);
|
|
9819
|
+
}
|
|
9820
|
+
if (claudeSlashCommand.description) {
|
|
9821
|
+
lines.push(`description: ${claudeSlashCommand.description}`);
|
|
9822
|
+
}
|
|
9823
|
+
if (claudeSlashCommand.model) {
|
|
9824
|
+
lines.push(`model: ${claudeSlashCommand.model}`);
|
|
9825
|
+
}
|
|
9826
|
+
if (claudeSlashCommand.disableModelInvocation !== void 0) {
|
|
9827
|
+
lines.push(`disable-model-invocation: ${claudeSlashCommand.disableModelInvocation}`);
|
|
9828
|
+
}
|
|
9829
|
+
} else if ((metadata == null ? void 0 : metadata.type) === "metadata" && metadata.data.description) {
|
|
9830
|
+
lines.push(`description: ${metadata.data.description}`);
|
|
9831
|
+
}
|
|
9809
9832
|
}
|
|
9833
|
+
lines.push("---");
|
|
9834
|
+
lines.push("");
|
|
9810
9835
|
if ((metadata == null ? void 0 : metadata.type) === "metadata") {
|
|
9811
9836
|
const { title, icon } = metadata.data;
|
|
9812
9837
|
if (icon) {
|
|
@@ -10282,9 +10307,10 @@ function toKiro(pkg, options = {}) {
|
|
|
10282
10307
|
const warnings = [];
|
|
10283
10308
|
let qualityScore = 100;
|
|
10284
10309
|
try {
|
|
10285
|
-
const config = options.kiroConfig;
|
|
10286
|
-
if (!config
|
|
10287
|
-
|
|
10310
|
+
const config = options.kiroConfig || { inclusion: "always" };
|
|
10311
|
+
if (!config.inclusion) {
|
|
10312
|
+
config.inclusion = "always";
|
|
10313
|
+
warnings.push('No inclusion mode specified, defaulting to "always" per schema');
|
|
10288
10314
|
}
|
|
10289
10315
|
if (config.inclusion === "fileMatch" && !config.fileMatchPattern) {
|
|
10290
10316
|
throw new Error("fileMatch inclusion mode requires fileMatchPattern");
|
|
@@ -10318,7 +10344,7 @@ ${content}`;
|
|
|
10318
10344
|
}
|
|
10319
10345
|
function generateFrontmatter2(config) {
|
|
10320
10346
|
const lines = ["---"];
|
|
10321
|
-
lines.push(`inclusion: ${config.inclusion}`);
|
|
10347
|
+
lines.push(`inclusion: ${config.inclusion || "always"}`);
|
|
10322
10348
|
if (config.inclusion === "fileMatch" && config.fileMatchPattern) {
|
|
10323
10349
|
lines.push(`fileMatchPattern: "${config.fileMatchPattern}"`);
|
|
10324
10350
|
}
|
|
@@ -10783,16 +10809,7 @@ function toAgentsMd(pkg, options = {}) {
|
|
|
10783
10809
|
let qualityScore = 100;
|
|
10784
10810
|
try {
|
|
10785
10811
|
const config = options.agentsMdConfig || {};
|
|
10786
|
-
const
|
|
10787
|
-
let fullContent;
|
|
10788
|
-
if (config.includeFrontmatter && (config.project || config.scope)) {
|
|
10789
|
-
const frontmatter = generateFrontmatter3(config);
|
|
10790
|
-
fullContent = `${frontmatter}
|
|
10791
|
-
|
|
10792
|
-
${content}`;
|
|
10793
|
-
} else {
|
|
10794
|
-
fullContent = content;
|
|
10795
|
-
}
|
|
10812
|
+
const fullContent = convertContent5(pkg, warnings, config);
|
|
10796
10813
|
const lossyConversion = warnings.some((w) => w.includes("not supported") || w.includes("skipped"));
|
|
10797
10814
|
if (lossyConversion) {
|
|
10798
10815
|
qualityScore -= 10;
|
|
@@ -10815,17 +10832,6 @@ ${content}`;
|
|
|
10815
10832
|
};
|
|
10816
10833
|
}
|
|
10817
10834
|
}
|
|
10818
|
-
function generateFrontmatter3(config) {
|
|
10819
|
-
const lines = ["---"];
|
|
10820
|
-
if (config.project) {
|
|
10821
|
-
lines.push(`project: ${config.project}`);
|
|
10822
|
-
}
|
|
10823
|
-
if (config.scope) {
|
|
10824
|
-
lines.push(`scope: ${config.scope}`);
|
|
10825
|
-
}
|
|
10826
|
-
lines.push("---");
|
|
10827
|
-
return lines.join("\n");
|
|
10828
|
-
}
|
|
10829
10835
|
function convertContent5(pkg, warnings, config) {
|
|
10830
10836
|
var _a, _b, _c;
|
|
10831
10837
|
const lines = [];
|
|
@@ -13872,12 +13878,30 @@ async function validatePackageFiles(manifest) {
|
|
|
13872
13878
|
if (skipFiles.includes(filePath)) {
|
|
13873
13879
|
return false;
|
|
13874
13880
|
}
|
|
13881
|
+
const skipDirs = ["examples/", "example/", "tests/", "__tests__/", "docs/", "doc/"];
|
|
13882
|
+
if (skipDirs.some((dir) => filePath.includes(dir))) {
|
|
13883
|
+
return false;
|
|
13884
|
+
}
|
|
13875
13885
|
if (formatType === "cursor") {
|
|
13876
13886
|
return filePath.includes(".cursorrules") || filePath.endsWith(".mdc");
|
|
13877
13887
|
} else if (formatType === "claude") {
|
|
13878
|
-
|
|
13888
|
+
if (manifest.subtype === "skill") {
|
|
13889
|
+
return filePath.endsWith("SKILL.md");
|
|
13890
|
+
}
|
|
13891
|
+
if (manifest.subtype === "hook") {
|
|
13892
|
+
return false;
|
|
13893
|
+
}
|
|
13894
|
+
if (filePath.endsWith(".json")) {
|
|
13895
|
+
return false;
|
|
13896
|
+
}
|
|
13897
|
+
if (manifest.subtype === "agent") {
|
|
13898
|
+
return filePath.includes(".claude/agents/") && filePath.endsWith(".md");
|
|
13899
|
+
} else if (manifest.subtype === "slash-command") {
|
|
13900
|
+
return filePath.includes(".claude/commands/") && filePath.endsWith(".md");
|
|
13901
|
+
}
|
|
13902
|
+
return filePath.endsWith(".md") && !filePath.endsWith(".json");
|
|
13879
13903
|
} else if (formatType === "continue") {
|
|
13880
|
-
return filePath.includes(".continue/");
|
|
13904
|
+
return filePath.includes(".continue/") && filePath.endsWith(".json");
|
|
13881
13905
|
} else if (formatType === "windsurf") {
|
|
13882
13906
|
return filePath.includes(".windsurf/rules");
|
|
13883
13907
|
} else if (formatType === "agents-md") {
|
|
@@ -14403,6 +14427,15 @@ ${"=".repeat(60)}`);
|
|
|
14403
14427
|
}
|
|
14404
14428
|
console.log(` Size: ${sizeDisplay}`);
|
|
14405
14429
|
console.log("");
|
|
14430
|
+
let publishAsAuthor;
|
|
14431
|
+
if ((userInfo == null ? void 0 : userInfo.is_admin) && manifest.author) {
|
|
14432
|
+
publishAsAuthor = typeof manifest.author === "string" ? manifest.author : manifest.author.name;
|
|
14433
|
+
console.log(` \u{1F510} Admin override: Publishing as author "${publishAsAuthor}"`);
|
|
14434
|
+
}
|
|
14435
|
+
if (selectedOrgId) {
|
|
14436
|
+
console.log(` Publishing as organization: ${(_b = userInfo.organizations.find((org) => org.id === selectedOrgId)) == null ? void 0 : _b.name}`);
|
|
14437
|
+
console.log(` Organization ID: ${selectedOrgId}`);
|
|
14438
|
+
}
|
|
14406
14439
|
if (options.dryRun) {
|
|
14407
14440
|
console.log("\u2705 Dry run successful! Package is ready to publish.");
|
|
14408
14441
|
publishedPackages.push({
|
|
@@ -14414,15 +14447,6 @@ ${"=".repeat(60)}`);
|
|
|
14414
14447
|
break;
|
|
14415
14448
|
}
|
|
14416
14449
|
console.log("\u{1F680} Publishing to registry...");
|
|
14417
|
-
let publishAsAuthor;
|
|
14418
|
-
if ((userInfo == null ? void 0 : userInfo.is_admin) && manifest.author) {
|
|
14419
|
-
publishAsAuthor = typeof manifest.author === "string" ? manifest.author : manifest.author.name;
|
|
14420
|
-
console.log(` \u{1F510} Admin override: Publishing as author "${publishAsAuthor}"`);
|
|
14421
|
-
}
|
|
14422
|
-
if (selectedOrgId) {
|
|
14423
|
-
console.log(` Publishing as organization: ${(_b = userInfo.organizations.find((org) => org.id === selectedOrgId)) == null ? void 0 : _b.name}`);
|
|
14424
|
-
console.log(` Organization ID: ${selectedOrgId}`);
|
|
14425
|
-
}
|
|
14426
14450
|
const publishOptions = {};
|
|
14427
14451
|
if (selectedOrgId) {
|
|
14428
14452
|
publishOptions.orgId = selectedOrgId;
|
|
@@ -14493,7 +14517,8 @@ ${"=".repeat(60)}`);
|
|
|
14493
14517
|
}
|
|
14494
14518
|
}
|
|
14495
14519
|
}
|
|
14496
|
-
|
|
14520
|
+
const shouldPublishCollections = !options.package || options.collection;
|
|
14521
|
+
if (collections.length > 0 && shouldPublishCollections) {
|
|
14497
14522
|
let filteredCollections = collections;
|
|
14498
14523
|
if (options.collection) {
|
|
14499
14524
|
filteredCollections = collections.filter((c) => c.id === options.collection);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/agents-md.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/agents-md.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.factory.ai/cli/configuration/agents-md",
|
|
4
5
|
"title": "agents.md Format",
|
|
5
6
|
"description": "JSON Schema for agents.md format - plain markdown project-specific AI instructions (NO frontmatter)",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/canonical.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/canonical.json",
|
|
4
4
|
"title": "PRPM Canonical Package Format",
|
|
5
5
|
"description": "Universal intermediate format for AI prompt packages that can be converted to any editor-specific format",
|
|
6
6
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/claude
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/agent.json",
|
|
4
|
+
"$comment": "Official documentation: https://code.claude.com/docs/en/sub-agents",
|
|
4
5
|
"title": "Claude Agent Format",
|
|
5
6
|
"description": "JSON Schema for Claude Code Agents - long-running assistants with tool access",
|
|
6
7
|
"type": "object",
|
|
@@ -14,26 +15,30 @@
|
|
|
14
15
|
"type": "string",
|
|
15
16
|
"pattern": "^[a-z0-9-]+$",
|
|
16
17
|
"maxLength": 64,
|
|
17
|
-
"description": "
|
|
18
|
+
"description": "Unique identifier using lowercase letters and hyphens"
|
|
18
19
|
},
|
|
19
20
|
"description": {
|
|
20
21
|
"type": "string",
|
|
21
22
|
"maxLength": 1024,
|
|
22
|
-
"description": "
|
|
23
|
+
"description": "Natural language description of the subagent's purpose"
|
|
23
24
|
},
|
|
24
|
-
"
|
|
25
|
+
"tools": {
|
|
25
26
|
"type": "string",
|
|
26
|
-
"description": "Comma-separated list of
|
|
27
|
+
"description": "Comma-separated list of specific tools. If omitted, inherits all tools from the main thread"
|
|
27
28
|
},
|
|
28
29
|
"model": {
|
|
29
30
|
"type": "string",
|
|
30
31
|
"enum": ["sonnet", "opus", "haiku", "inherit"],
|
|
31
|
-
"description": "
|
|
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"
|
|
32
33
|
},
|
|
33
|
-
"
|
|
34
|
+
"permissionMode": {
|
|
34
35
|
"type": "string",
|
|
35
|
-
"
|
|
36
|
-
"description": "
|
|
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"
|
|
37
42
|
}
|
|
38
43
|
},
|
|
39
44
|
"additionalProperties": false
|
|
@@ -48,7 +53,7 @@
|
|
|
48
53
|
"frontmatter": {
|
|
49
54
|
"name": "code-reviewer",
|
|
50
55
|
"description": "Reviews code for best practices and potential issues",
|
|
51
|
-
"
|
|
56
|
+
"tools": "Read, Grep, Bash",
|
|
52
57
|
"model": "sonnet"
|
|
53
58
|
},
|
|
54
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"
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/claude
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/hook.json",
|
|
4
|
+
"$comment": "Official documentation: https://code.claude.com/docs/en/hooks",
|
|
4
5
|
"title": "Claude Hook Format",
|
|
5
|
-
"description": "JSON Schema for Claude Code Hooks - executable code triggered by events",
|
|
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)",
|
|
6
7
|
"type": "object",
|
|
7
8
|
"required": ["frontmatter", "content"],
|
|
8
9
|
"properties": {
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
"type": "string",
|
|
26
27
|
"enum": [
|
|
27
28
|
"PreToolUse",
|
|
29
|
+
"PermissionRequest",
|
|
28
30
|
"PostToolUse",
|
|
29
31
|
"UserPromptSubmit",
|
|
30
32
|
"Notification",
|
|
@@ -34,7 +36,7 @@
|
|
|
34
36
|
"SessionStart",
|
|
35
37
|
"SessionEnd"
|
|
36
38
|
],
|
|
37
|
-
"description": "Event that triggers this hook"
|
|
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."
|
|
38
40
|
},
|
|
39
41
|
"language": {
|
|
40
42
|
"type": "string",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/claude
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/skill.json",
|
|
4
|
+
"$comment": "Official documentation: https://code.claude.com/docs/en/skills",
|
|
4
5
|
"title": "Claude Skill Format",
|
|
5
6
|
"description": "JSON Schema for Claude Code Skills - reusable patterns invoked during conversation",
|
|
6
7
|
"type": "object",
|
|
@@ -20,15 +21,6 @@
|
|
|
20
21
|
"type": "string",
|
|
21
22
|
"maxLength": 1024,
|
|
22
23
|
"description": "Brief overview of functionality and when to use it"
|
|
23
|
-
},
|
|
24
|
-
"allowed-tools": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"description": "Comma-separated list of allowed tools (e.g., 'Read, Grep, Glob')"
|
|
27
|
-
},
|
|
28
|
-
"skillType": {
|
|
29
|
-
"type": "string",
|
|
30
|
-
"const": "skill",
|
|
31
|
-
"description": "Explicit marker for round-trip conversion"
|
|
32
24
|
}
|
|
33
25
|
},
|
|
34
26
|
"additionalProperties": false
|
|
@@ -42,8 +34,7 @@
|
|
|
42
34
|
{
|
|
43
35
|
"frontmatter": {
|
|
44
36
|
"name": "refactor-helper",
|
|
45
|
-
"description": "Assists with code refactoring while maintaining functionality"
|
|
46
|
-
"allowed-tools": "Read, Edit, Grep"
|
|
37
|
+
"description": "Assists with code refactoring while maintaining functionality"
|
|
47
38
|
},
|
|
48
39
|
"content": "# Refactor Helper Skill\n\nHelps refactor code while maintaining functionality.\n\n## Guidelines\n\n- Preserve existing behavior\n- Improve code structure and readability"
|
|
49
40
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/claude
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude/slash-command.json",
|
|
4
|
+
"$comment": "Official documentation: https://code.claude.com/docs/en/slash-commands",
|
|
4
5
|
"title": "Claude Slash Command Format",
|
|
5
6
|
"description": "JSON Schema for Claude Code Slash Commands - quick actions triggered by /command-name",
|
|
6
7
|
"type": "object",
|
|
@@ -28,11 +29,6 @@
|
|
|
28
29
|
"disable-model-invocation": {
|
|
29
30
|
"type": "boolean",
|
|
30
31
|
"description": "Whether to prevent SlashCommand tool from calling this command"
|
|
31
|
-
},
|
|
32
|
-
"commandType": {
|
|
33
|
-
"type": "string",
|
|
34
|
-
"const": "slash-command",
|
|
35
|
-
"description": "Explicit marker for round-trip conversion (PRPM extension)"
|
|
36
32
|
}
|
|
37
33
|
},
|
|
38
34
|
"additionalProperties": false
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/claude.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/claude.json",
|
|
4
|
+
"$comment": "Official documentation: https://code.claude.com/docs/en",
|
|
4
5
|
"title": "Claude Code Format",
|
|
5
6
|
"description": "JSON Schema for Claude Code agents, skills, and slash commands format",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/continue.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/continue.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.continue.dev/customize/deep-dives/rules",
|
|
4
5
|
"title": "Continue Rules Format",
|
|
5
6
|
"description": "JSON Schema for Continue rules format - markdown with optional YAML frontmatter or YAML configuration",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/copilot.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/copilot.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.github.com/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot",
|
|
4
5
|
"title": "GitHub Copilot Instructions Format",
|
|
5
6
|
"description": "JSON Schema for GitHub Copilot instructions (.github/copilot-instructions.md or .github/instructions/*.instructions.md)",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/cursor
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/cursor/command.json",
|
|
4
|
+
"$comment": "Official documentation: https://cursor.com/docs/agent/chat/commands#commands",
|
|
4
5
|
"title": "Cursor Command Format",
|
|
5
6
|
"description": "JSON Schema for Cursor commands (slash commands) - plain Markdown files in .cursor/commands/",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/cursor.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/cursor.json",
|
|
4
|
+
"$comment": "Official documentation: https://cursor.com/docs/context/rules",
|
|
4
5
|
"title": "Cursor Rules Format",
|
|
5
6
|
"description": "JSON Schema for Cursor .cursor/rules format with MDC (Markdown Components) frontmatter",
|
|
6
7
|
"type": "object",
|
|
@@ -37,21 +38,6 @@
|
|
|
37
38
|
"items": {
|
|
38
39
|
"type": "string"
|
|
39
40
|
}
|
|
40
|
-
},
|
|
41
|
-
"agentType": {
|
|
42
|
-
"type": "string",
|
|
43
|
-
"enum": ["agent"],
|
|
44
|
-
"description": "Marks as agent subtype (PRPM extension for round-trip conversion)"
|
|
45
|
-
},
|
|
46
|
-
"skillType": {
|
|
47
|
-
"type": "string",
|
|
48
|
-
"enum": ["skill"],
|
|
49
|
-
"description": "Marks as skill subtype (PRPM extension for round-trip conversion)"
|
|
50
|
-
},
|
|
51
|
-
"commandType": {
|
|
52
|
-
"type": "string",
|
|
53
|
-
"enum": ["slash-command"],
|
|
54
|
-
"description": "Marks as slash command subtype (PRPM extension for round-trip conversion)"
|
|
55
41
|
}
|
|
56
42
|
},
|
|
57
43
|
"additionalProperties": false
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/droid/hook.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.factory.ai/cli/configuration/hooks",
|
|
5
|
+
"title": "Factory Droid Hook Format",
|
|
6
|
+
"description": "JSON Schema for Factory Droid Hooks - defined in settings.json files. Valid hook events: PreToolUse (runs before tool calls, can block them), PostToolUse (runs after tool calls complete), UserPromptSubmit (runs when user submits a prompt, before Droid processes it), Notification (runs when Droid sends notifications), Stop (runs when Droid finishes responding), SubagentStop (runs when sub-droid tasks complete), PreCompact (runs before Droid runs a compact operation), SessionStart (runs when Droid starts a new session or resumes an existing session), SessionEnd (runs when Droid session ends)",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["hooks"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"hooks": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"description": "Hook configurations organized by event type. Each key must be a valid hook event name.",
|
|
13
|
+
"patternProperties": {
|
|
14
|
+
"^(PreToolUse|PostToolUse|Notification|UserPromptSubmit|Stop|SubagentStop|PreCompact|SessionStart|SessionEnd)$": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"description": "Array of hook configurations for this event. PreToolUse: runs before tool calls (can block them). PostToolUse: runs after tool calls complete. UserPromptSubmit: runs when user submits a prompt, before Droid processes it. Notification: runs when Droid sends notifications. Stop: runs when Droid finishes responding. SubagentStop: runs when sub-droid tasks complete. PreCompact: runs before Droid runs a compact operation. SessionStart: runs when Droid starts a new session or resumes an existing session. SessionEnd: runs when Droid session ends.",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"required": ["hooks"],
|
|
20
|
+
"properties": {
|
|
21
|
+
"matcher": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Pattern for tool names. Supports exact strings, regex, or '*' for all tools. Optional for most events."
|
|
24
|
+
},
|
|
25
|
+
"hooks": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"description": "Array of commands to execute",
|
|
28
|
+
"minItems": 1,
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"required": ["type", "command"],
|
|
32
|
+
"properties": {
|
|
33
|
+
"type": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": ["command"],
|
|
36
|
+
"description": "Hook type (currently only 'command' is supported)"
|
|
37
|
+
},
|
|
38
|
+
"command": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Bash command to run. Supports $FACTORY_PROJECT_DIR variable."
|
|
41
|
+
},
|
|
42
|
+
"timeout": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Execution limit in seconds (defaults to 60)",
|
|
45
|
+
"default": 60,
|
|
46
|
+
"minimum": 1
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"description": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Optional description for plugin hooks"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"examples": [
|
|
63
|
+
{
|
|
64
|
+
"hooks": {
|
|
65
|
+
"PreToolUse": [
|
|
66
|
+
{
|
|
67
|
+
"matcher": "write",
|
|
68
|
+
"hooks": [
|
|
69
|
+
{
|
|
70
|
+
"type": "command",
|
|
71
|
+
"command": "prettier --write \"$FACTORY_PROJECT_DIR/src/**/*.ts\"",
|
|
72
|
+
"timeout": 30
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"PostToolUse": [
|
|
78
|
+
{
|
|
79
|
+
"matcher": "*",
|
|
80
|
+
"hooks": [
|
|
81
|
+
{
|
|
82
|
+
"type": "command",
|
|
83
|
+
"command": "git add .",
|
|
84
|
+
"timeout": 60
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"SessionStart": [
|
|
90
|
+
{
|
|
91
|
+
"matcher": "startup",
|
|
92
|
+
"hooks": [
|
|
93
|
+
{
|
|
94
|
+
"type": "command",
|
|
95
|
+
"command": "echo 'Session started at $(date)' >> $FACTORY_PROJECT_DIR/.factory/session.log"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/droid/skill.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.factory.ai/cli/configuration/skills",
|
|
5
|
+
"title": "Factory Droid Skill Format",
|
|
6
|
+
"description": "JSON Schema for Factory Droid Skills - SKILL.md files stored in .factory/skills/<skill-name>/",
|
|
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
|
+
"description": "Unique identifier for the skill (kebab-case recommended)"
|
|
17
|
+
},
|
|
18
|
+
"description": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Brief explanation of what the skill does and when to use it"
|
|
21
|
+
},
|
|
22
|
+
"allowed-tools": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"description": "Reserved for future use. Safe to omit.",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": true
|
|
31
|
+
},
|
|
32
|
+
"content": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Skill workflow and instructions as markdown"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"examples": [
|
|
38
|
+
{
|
|
39
|
+
"frontmatter": {
|
|
40
|
+
"name": "api-integration",
|
|
41
|
+
"description": "Integrate a new API endpoint with proper error handling"
|
|
42
|
+
},
|
|
43
|
+
"content": "# API Integration Skill\n\n## Steps\n\n1. Define the API endpoint specification\n2. Create the service layer function\n3. Add error handling and validation\n4. Write unit tests\n5. Update API documentation\n\n## Success Criteria\n\n- All tests pass\n- Error handling covers edge cases\n- Documentation is updated"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/droid/slash-command.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.factory.ai/cli/configuration/custom-slash-commands",
|
|
5
|
+
"title": "Factory Droid Slash Command Format",
|
|
6
|
+
"description": "JSON Schema for Factory Droid Slash Commands - markdown files stored in .factory/commands/",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"description": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Overrides the generated summary shown in slash suggestions"
|
|
16
|
+
},
|
|
17
|
+
"argument-hint": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Appends inline usage hints (e.g., /code-review <branch-name>)"
|
|
20
|
+
},
|
|
21
|
+
"allowed-tools": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"description": "Reserved for future use. Safe to omit.",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": true
|
|
30
|
+
},
|
|
31
|
+
"content": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Command instructions and workflow as markdown"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"examples": [
|
|
37
|
+
{
|
|
38
|
+
"frontmatter": {
|
|
39
|
+
"description": "Review code for a specific branch",
|
|
40
|
+
"argument-hint": "<branch-name>"
|
|
41
|
+
},
|
|
42
|
+
"content": "# Code Review Command\n\nReview the code changes in the specified branch.\n\n## Instructions\n\n1. Compare branch with main\n2. Check for code quality issues\n3. Suggest improvements"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"frontmatter": {
|
|
46
|
+
"description": "Run tests for a specific file",
|
|
47
|
+
"argument-hint": "<file-path>",
|
|
48
|
+
"allowed-tools": ["bash", "read"]
|
|
49
|
+
},
|
|
50
|
+
"content": "Run tests for the specified file and report results."
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/droid.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/droid.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.factory.ai/cli/configuration",
|
|
4
5
|
"title": "Factory Droid Format",
|
|
5
6
|
"description": "JSON Schema for Factory Droid Skills, Hooks, and Slash Commands",
|
|
6
7
|
"type": "object",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/gemini-md.json",
|
|
4
|
+
"$comment": "Official documentation: https://geminicli.com/docs/cli/gemini-md/#_top",
|
|
5
|
+
"title": "GEMINI.md Format",
|
|
6
|
+
"description": "JSON Schema for GEMINI.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, persona definitions, coding style guides, and best practices. No frontmatter allowed. Supports @file.md syntax for importing other files."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"examples": [
|
|
17
|
+
{
|
|
18
|
+
"content": "# General Instructions\n\nYou are a helpful coding assistant.\n\n## Coding Style\n\n- Use TypeScript strict mode\n- Follow functional programming patterns\n- Write comprehensive tests"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"content": "# Project Context\n\nThis is a Next.js application with TypeScript.\n\n## Architecture\n\n- App Router (not Pages Router)\n- Server Components by default\n- Client Components only when needed\n\n## Database\n\nPostgreSQL with Prisma ORM"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/gemini.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/gemini.json",
|
|
4
|
+
"$comment": "Official documentation: https://geminicli.com/docs/cli/custom-commands/",
|
|
4
5
|
"title": "Gemini Custom Commands Format",
|
|
5
|
-
"description": "JSON Schema for Gemini CLI custom commands
|
|
6
|
+
"description": "JSON Schema for Gemini CLI custom commands - TOML files stored in .gemini/commands/",
|
|
6
7
|
"type": "object",
|
|
7
8
|
"required": ["prompt"],
|
|
8
9
|
"properties": {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/kiro
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/kiro/agent.json",
|
|
4
|
+
"$comment": "Official documentation: https://kiro.dev/docs/cli/custom-agents/",
|
|
4
5
|
"title": "Kiro Agent Configuration Format",
|
|
5
6
|
"description": "JSON Schema for Kiro custom agent configurations (.kiro/agents/*.json) - specialized AI assistants with specific tools and context",
|
|
6
7
|
"type": "object",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/kiro
|
|
4
|
-
"
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/kiro/hook.json",
|
|
4
|
+
"$comment": "Official documentation: https://kiro.dev/docs/hooks/",
|
|
5
|
+
"title": "Kiro Hook Format",
|
|
5
6
|
"description": "JSON Schema for Kiro hook configuration files (.kiro/hooks/*.json) - event-driven automations",
|
|
6
7
|
"type": "object",
|
|
7
8
|
"required": ["name", "description", "version", "when", "then"],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/kiro-steering.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/kiro-steering.json",
|
|
4
|
+
"$comment": "Official documentation: https://kiro.dev/docs/steering/",
|
|
4
5
|
"title": "Kiro Steering Files Format",
|
|
5
6
|
"description": "JSON Schema for Kiro steering files (.kiro/steering/*.md) - context-aware instructions with optional frontmatter (defaults to 'always' inclusion)",
|
|
6
7
|
"type": "object",
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/opencode/slash-command.json",
|
|
4
|
+
"$comment": "Official documentation: https://opencode.ai/docs/slash-commands/",
|
|
5
|
+
"title": "OpenCode Slash Command Format",
|
|
6
|
+
"description": "JSON Schema for OpenCode Slash Commands - markdown files with YAML frontmatter stored in .opencode/command/",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["template"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"description": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Brief description of what the command does (shown in TUI)"
|
|
17
|
+
},
|
|
18
|
+
"template": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The prompt text sent to the LLM when executed. Required field. Supports placeholders: $ARGUMENTS, $1-$9, !`command`, @filename"
|
|
21
|
+
},
|
|
22
|
+
"agent": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Specifies which agent executes the command"
|
|
25
|
+
},
|
|
26
|
+
"model": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Overrides default model for this command (e.g., 'anthropic/claude-sonnet-4-20250514')"
|
|
29
|
+
},
|
|
30
|
+
"subtask": {
|
|
31
|
+
"type": "boolean",
|
|
32
|
+
"description": "Forces subagent invocation behavior when true"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
},
|
|
37
|
+
"content": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Additional command documentation or notes (optional)"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"examples": [
|
|
43
|
+
{
|
|
44
|
+
"frontmatter": {
|
|
45
|
+
"description": "Run tests for a specific file",
|
|
46
|
+
"template": "Run the tests for $1 and report the results",
|
|
47
|
+
"agent": "test-runner",
|
|
48
|
+
"subtask": true
|
|
49
|
+
},
|
|
50
|
+
"content": "# Test Runner Command\n\nExecutes tests for the specified file and provides a detailed report."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"frontmatter": {
|
|
54
|
+
"template": "Review the following code for best practices:\n\n@$1",
|
|
55
|
+
"model": "anthropic/claude-sonnet-4-20250514"
|
|
56
|
+
},
|
|
57
|
+
"content": ""
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/opencode.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/opencode.json",
|
|
4
|
+
"$comment": "Official documentation: https://opencode.ai/docs/agents/",
|
|
4
5
|
"title": "OpenCode Agent Format",
|
|
5
6
|
"description": "JSON Schema for OpenCode Agents - markdown files with YAML frontmatter stored in .opencode/agent/",
|
|
6
7
|
"type": "object",
|
|
@@ -8,30 +9,35 @@
|
|
|
8
9
|
"properties": {
|
|
9
10
|
"frontmatter": {
|
|
10
11
|
"type": "object",
|
|
11
|
-
"required": ["description"],
|
|
12
|
+
"required": ["description", "mode"],
|
|
12
13
|
"properties": {
|
|
13
14
|
"description": {
|
|
14
15
|
"type": "string",
|
|
15
|
-
"description": "Brief
|
|
16
|
+
"description": "Brief explanation of the agent's purpose and use cases (required)"
|
|
16
17
|
},
|
|
17
18
|
"mode": {
|
|
18
19
|
"type": "string",
|
|
19
20
|
"enum": ["subagent", "primary", "all"],
|
|
20
|
-
"description": "Determines
|
|
21
|
+
"description": "Determines how the agent can be used: 'primary' (main assistant), 'subagent' (spawned by primary), or 'all' (both contexts). Required field.",
|
|
22
|
+
"default": "all"
|
|
21
23
|
},
|
|
22
24
|
"model": {
|
|
23
25
|
"type": "string",
|
|
24
|
-
"description": "Override default
|
|
26
|
+
"description": "Override default model (e.g., 'anthropic/claude-sonnet-4-20250514')"
|
|
25
27
|
},
|
|
26
28
|
"temperature": {
|
|
27
29
|
"type": "number",
|
|
28
30
|
"minimum": 0.0,
|
|
29
31
|
"maximum": 1.0,
|
|
30
|
-
"description": "
|
|
32
|
+
"description": "Controls response randomness (0.0-1.0). Defaults to model-specific values (typically 0, or 0.55 for Qwen models)"
|
|
33
|
+
},
|
|
34
|
+
"prompt": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Path to custom system prompt file using {file:./path} syntax"
|
|
31
37
|
},
|
|
32
38
|
"tools": {
|
|
33
39
|
"type": "object",
|
|
34
|
-
"description": "Enable/disable specific
|
|
40
|
+
"description": "Enable/disable specific tools. Supports wildcards (e.g., 'mymcp_*')",
|
|
35
41
|
"properties": {
|
|
36
42
|
"write": { "type": "boolean" },
|
|
37
43
|
"edit": { "type": "boolean" },
|
|
@@ -46,7 +52,7 @@
|
|
|
46
52
|
},
|
|
47
53
|
"permission": {
|
|
48
54
|
"type": "object",
|
|
49
|
-
"description": "
|
|
55
|
+
"description": "Manages tool access with values: 'ask', 'allow', or 'deny'",
|
|
50
56
|
"properties": {
|
|
51
57
|
"edit": {
|
|
52
58
|
"type": "string",
|
|
@@ -72,10 +78,10 @@
|
|
|
72
78
|
},
|
|
73
79
|
"disable": {
|
|
74
80
|
"type": "boolean",
|
|
75
|
-
"description": "
|
|
81
|
+
"description": "When true, disables the agent"
|
|
76
82
|
}
|
|
77
83
|
},
|
|
78
|
-
"additionalProperties":
|
|
84
|
+
"additionalProperties": true
|
|
79
85
|
},
|
|
80
86
|
"content": {
|
|
81
87
|
"type": "string",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/ruler.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/ruler.json",
|
|
4
|
+
"$comment": "Official documentation: https://okigu.com/ruler",
|
|
4
5
|
"title": "Ruler Rules Format",
|
|
5
6
|
"description": "JSON Schema for Ruler .ruler/ format - plain markdown without frontmatter, used for AI coding assistant instructions",
|
|
6
7
|
"type": "object",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://prpm.dev/schemas/windsurf.
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/windsurf.json",
|
|
4
|
+
"$comment": "Official documentation: https://docs.windsurf.com/windsurf/cascade/memories#rules",
|
|
4
5
|
"title": "Windsurf Rules Format",
|
|
5
6
|
"description": "JSON Schema for Windsurf .windsurf/rules format - plain markdown without frontmatter",
|
|
6
7
|
"type": "object",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prpm",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Prompt Package Manager CLI - Install and manage prompt-based files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@octokit/rest": "^22.0.0",
|
|
48
|
-
"@pr-pm/converters": "^1.1.
|
|
49
|
-
"@pr-pm/registry-client": "^2.1.
|
|
50
|
-
"@pr-pm/types": "^1.1.
|
|
48
|
+
"@pr-pm/converters": "^1.1.8",
|
|
49
|
+
"@pr-pm/registry-client": "^2.1.8",
|
|
50
|
+
"@pr-pm/types": "^1.1.8",
|
|
51
51
|
"ajv": "^8.17.1",
|
|
52
52
|
"ajv-formats": "^3.0.1",
|
|
53
53
|
"commander": "^11.1.0",
|