スキル一覧に戻る
takahirom

coding-agent-extension-builder

by takahirom

Kotlin library for generating coding agent (Claude Code, etc.) marketplace and plugins, etc. using Builder pattern to provide compile-time validation

0🍴 0📅 2026年1月9日
GitHubで見るManusで実行

SKILL.md


name: coding-agent-extension-builder description: | Generate Claude Code plugins, skills, and marketplaces using Kotlin DSL. Use when the user wants to:

  • Create a new plugin with commands and skills
  • Create a marketplace to distribute plugins
  • Generate correct folder structure (.claude-plugin/, skills/, commands/)
  • Avoid mistakes in JSON format and YAML front matter field names license: MIT allowed-tools: Read, Write, Edit, Bash, Glob, Grep

coding-agent-extension-builder

Kotlin library for generating coding agent extensions with compile-time safety.

Why Use This Library

Writing extensions by hand is error-prone:

  • Need to remember marketplace.json format
  • Need correct folder structure (.claude-plugin/plugin.json, skills/*/SKILL.md)
  • Easy to misspell field names (allowed-tools? allowedTools?)
  • Mistakes are hard to catch because agents still work with invalid config

Quick Start

// 1. Create a plugin
val plugin = Plugin.Builder(
    name = "my-plugin",
    description = "My plugin description",
    version = "1.0.0"
)
    .author(name = "Your Name")
    .addCommand(
        Command.Builder(
            name = "my-command",
            description = "What this command does",
            body = "# Command\n\nInstructions..."
        ).build()
    )
    .addSkill(
        Skill.Builder(
            name = "my-skill",
            description = "When to use this skill",
            body = "# Skill\n\nGuidance..."
        ).build()
    )
    .build()

// 2. Create marketplace (optional)
val marketplace = Marketplace.Builder(
    name = "my-marketplace",
    owner = Owner(name = "Your Name")
)
    .addPlugin(plugin)
    .build()

// 3. Write to disk
marketplace.writeClaudeCodeExtension(Path("output"))
// Or just the plugin: plugin.writeClaudeCodeExtension(Path("output"))

Generated Structure

output/my-marketplace/
├── .claude-plugin/
│   └── marketplace.json
└── plugins/
    └── my-plugin/
        ├── .claude-plugin/
        │   └── plugin.json
        ├── commands/
        │   └── my-command.md
        └── skills/
            └── my-skill/
                └── SKILL.md

API Reference

Skill.Builder(name, description, body)

  • .license(license: String) - Set license
  • .allowedTools(vararg tools: String) - Restrict tools
  • .addMetadata(key, value) - Add custom metadata

Command.Builder(name, description, body)

  • No optional fields currently

Plugin.Builder(name, description, version)

  • .author(name: String) - Set author
  • .addCommand(command: Command) - Add command
  • .addSkill(skill: Skill) - Add skill
  • .addHook(hook: HookMatcher) - Add hook

HookMatcher.Builder(event: HookEvent)

  • .matcher(pattern: String) - Tool pattern (e.g., "Write|Edit")
  • .command(command: String, timeout: Int?) - Add command hook
  • .prompt(prompt: String, timeout: Int?) - Add prompt hook (LLM-based)

HookEvent: PreToolUse, PostToolUse, PermissionRequest, Notification, UserPromptSubmit, Stop, SubagentStop, PreCompact, SessionStart, SessionEnd

Marketplace.Builder(name, owner)

  • .addPlugin(plugin: Plugin) - Add embedded plugin
  • .addPlugin(name, source, ...) - Add external plugin reference
  • .metadata(description, version, pluginRoot) - Set metadata

Run in Workspace

cd workspace
cp src/main/kotlin/Main.kt.template src/main/kotlin/Main.kt
# Edit Main.kt
./gradlew :workspace:run

スコア

総合スコア

70/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です