Skip to content

Commit 6405add

Browse files
committed
release: v0.0.11
1 parent 3114548 commit 6405add

File tree

4 files changed

+50
-13
lines changed

4 files changed

+50
-13
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group = "love.forte.tools"
8-
version = "0.0.10"
8+
version = "0.0.11"
99

1010
allprojects {
1111
repositories {

buildSrc/src/main/kotlin/MarketplaceJson.kt

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,32 @@ import org.intellij.lang.annotations.Language
55
*
66
* This version is for the old structure where marketplace.json is in build/plugins/.claude-plugin/
77
* and references plugins directly.
8+
*
9+
* Updated to follow the official Claude Code marketplace.json format.
810
*/
911
@Language("JSON")
1012
fun marketPlaceJson(version: String): String {
1113
return """
1214
{
15+
"${"$"}schema": "https://anthropic.com/claude-code/marketplace.schema.json",
1316
"name": "codex-agent-collaboration-marketplace",
17+
"version": "$version",
18+
"description": "Marketplace for Codex AI agent collaboration skills - execute tasks using Codex for code analysis, implementation, and collaboration",
1419
"owner": {
1520
"name": "Forte Scarlet",
1621
"email": "ForteScarlet@163.com"
1722
},
18-
"metadata": {
19-
"description": "Marketplace for codex agent collaboration skills",
20-
"version": "$version"
21-
},
2223
"plugins": [
2324
{
2425
"name": "codex-agent-collaboration",
2526
"description": "Execute tasks using Codex AI assistant for code analysis, implementation, and collaboration",
2627
"version": "$version",
28+
"author": {
29+
"name": "Forte Scarlet",
30+
"email": "ForteScarlet@163.com"
31+
},
2732
"source": "./",
33+
"category": "development",
2834
"strict": false,
2935
"skills": ["./codex-agent-collaboration"]
3036
}
@@ -39,42 +45,55 @@ fun marketPlaceJson(version: String): String {
3945
* This version is for the new structure where marketplace root contains multiple plugins,
4046
* each with their own plugin.json.
4147
*
48+
* Following the official Claude Code marketplace.json format from:
49+
* https://github.com/anthropics/claude-code/blob/main/.claude-plugin/marketplace.json
50+
*
4251
* @param name Marketplace name
4352
* @param version Marketplace version
53+
* @param description Marketplace description
4454
* @param ownerName Owner's display name
4555
* @param ownerEmail Owner's email address
4656
* @param pluginName Plugin name
4757
* @param pluginDescription Plugin description
4858
* @param pluginVersion Plugin version
4959
* @param pluginSource Relative path to plugin directory from marketplace root
60+
* @param pluginCategory Plugin category (e.g., "development", "productivity")
5061
* @return JSON string for marketplace.json
5162
*/
5263
@Language("JSON")
5364
fun marketplaceJsonForRoot(
5465
name: String,
5566
version: String,
67+
description: String,
5668
ownerName: String,
5769
ownerEmail: String,
5870
pluginName: String,
5971
pluginDescription: String,
6072
pluginVersion: String,
61-
pluginSource: String
73+
pluginSource: String,
74+
pluginCategory: String = "development"
6275
): String {
6376
return """
6477
{
78+
"${"$"}schema": "https://anthropic.com/claude-code/marketplace.schema.json",
6579
"name": "$name",
66-
"metadata": {
67-
"description": "Marketplace for codex agent collaboration plugins",
68-
"version": "$version"
69-
},
80+
"version": "$version",
81+
"description": "$description",
7082
"owner": {
7183
"name": "$ownerName",
7284
"email": "$ownerEmail"
7385
},
7486
"plugins": [
7587
{
7688
"name": "$pluginName",
77-
"source": "$pluginSource"
89+
"description": "$pluginDescription",
90+
"version": "$pluginVersion",
91+
"author": {
92+
"name": "$ownerName",
93+
"email": "$ownerEmail"
94+
},
95+
"source": "$pluginSource",
96+
"category": "$pluginCategory"
7897
}
7998
]
8099
}

buildSrc/src/main/kotlin/MarketplacePackagingTask.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import javax.inject.Inject
1212
* This task creates a marketplace directory that contains multiple plugins, where each plugin
1313
* has its own metadata, agents, and skills. The structure follows Claude Code conventions:
1414
*
15+
* ```
1516
* marketplace-root/
1617
* ├── .claude-plugin/
1718
* │ └── marketplace.json (marketplace metadata)
@@ -24,6 +25,7 @@ import javax.inject.Inject
2425
* └── skill-name/ (skill bundles)
2526
* ├── SKILL.md
2627
* └── executables/
28+
*```
2729
*
2830
* This task follows Gradle best practices:
2931
* - Uses [FileSystemOperations] for file operations (injected service)
@@ -92,6 +94,18 @@ abstract class MarketplacePackagingTask @Inject constructor(
9294
@get:Input
9395
abstract val pluginDescription: Property<String>
9496

97+
/**
98+
* Marketplace description (for the marketplace.json top-level field)
99+
*/
100+
@get:Input
101+
abstract val marketplaceDescription: Property<String>
102+
103+
/**
104+
* Plugin category (e.g., "development", "productivity", "security")
105+
*/
106+
@get:Input
107+
abstract val pluginCategory: Property<String>
108+
95109
/**
96110
* Author name for plugin
97111
*/
@@ -148,12 +162,14 @@ abstract class MarketplacePackagingTask @Inject constructor(
148162
marketplaceJsonForRoot(
149163
name = marketplaceNameStr,
150164
version = versionStr,
165+
description = marketplaceDescription.get(),
151166
ownerName = ownerName.get(),
152167
ownerEmail = ownerEmail.get(),
153168
pluginName = pluginNameStr,
154169
pluginDescription = pluginDescStr,
155170
pluginVersion = versionStr,
156-
pluginSource = "./$pluginNameStr"
171+
pluginSource = "./$pluginNameStr",
172+
pluginCategory = pluginCategory.get()
157173
)
158174
)
159175
logger.lifecycle(" ✓ Generated marketplace.json at root")

codex-kkp-cli/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,14 @@ val prepareMarketplace = tasks.register<MarketplacePackagingTask>("prepareMarket
141141
// Marketplace metadata
142142
this.marketplaceName.set("codex-agent-collaboration-marketplace")
143143
this.version.set(project.version.toString())
144+
this.marketplaceDescription.set("Marketplace for Codex AI agent collaboration plugins - execute tasks using Codex for code analysis, implementation, and collaboration")
144145
this.ownerName.set("Forte Scarlet")
145146
this.ownerEmail.set("ForteScarlet@163.com")
146147

147148
// Plugin metadata
148-
this.pluginName.set("codex-agent-collaboration-plugin")
149+
this.pluginName.set("codex-agent-collaboration-skills")
149150
this.pluginDescription.set("Execute tasks using Codex AI agent for code analysis, implementation, and collaboration")
151+
this.pluginCategory.set("development")
150152
this.authorName.set("Forte Scarlet")
151153
this.authorEmail.set("ForteScarlet@163.com")
152154

0 commit comments

Comments
 (0)