@vibe-agent-toolkit/vat-development-agents 0.1.15 → 0.1.16-rc.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.
- package/dist/.claude-plugin/marketplace.json +1 -1
- package/dist/generated/resources/skills/SKILL.js +7 -7
- package/dist/generated/resources/skills/vat-skills-distribution.d.ts +32 -0
- package/dist/generated/resources/skills/vat-skills-distribution.js +68 -0
- package/dist/plugins/vat-development-agents/.claude-plugin/plugin.json +1 -1
- package/dist/plugins/vat-development-agents/skills/vibe-agent-toolkit/SKILL.md +21 -8
- package/dist/plugins/vat-development-agents/skills/vibe-agent-toolkit__skills-distribution/SKILL.md +242 -0
- package/dist/skills/vibe-agent-toolkit/SKILL.md +21 -8
- package/dist/skills/vibe-agent-toolkit-skills-distribution/SKILL.md +242 -0
- package/package.json +6 -6
- package/dist/generated/resources/skills/vat-distribution.d.ts +0 -27
- package/dist/generated/resources/skills/vat-distribution.js +0 -43
- package/dist/plugins/vat-development-agents/skills/vibe-agent-toolkit__distribution/SKILL.md +0 -124
- package/dist/skills/vibe-agent-toolkit-distribution/SKILL.md +0 -124
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"skills": [
|
|
11
11
|
"skills/vibe-agent-toolkit",
|
|
12
12
|
"skills/vibe-agent-toolkit__resources",
|
|
13
|
-
"skills/vibe-agent-
|
|
13
|
+
"skills/vibe-agent-toolkit__skills-distribution",
|
|
14
14
|
"skills/vibe-agent-toolkit__agent-authoring",
|
|
15
15
|
"skills/vibe-agent-toolkit__audit",
|
|
16
16
|
"skills/vibe-agent-toolkit__debugging"
|
|
@@ -7,7 +7,7 @@ export const meta = {
|
|
|
7
7
|
description: "Use when building, adopting, or learning vibe-agent-toolkit (VAT). Covers agent creation, CLI commands (vat skills, vat resources, vat audit, vat rag), runtime adapters, skill packaging, and resource validation. Routes to specialized sub-skills."
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export const text = "\n# Vibe Agent Toolkit Skill\n\n**Vibe Agent Toolkit (VAT)** is a modular toolkit for building portable AI agents that work across\nmultiple LLM frameworks and deployment targets. Write your agent logic once as plain TypeScript,\nthen deploy it to Vercel AI SDK, LangChain, OpenAI, Claude Agent SDK, or any other runtime using\nframework adapters. No vendor lock-in.\n\n## Purpose: For Users, Not Contributors\n\n- **This skill** = How to USE VAT to build agents\n- **\`vibe-agent-toolkit:debugging\`** = When VAT itself behaves unexpectedly or you need to test a fix\n- **Root CLAUDE.md** = How to DEVELOP the VAT codebase itself\n\n## When to Use VAT\n\n**VAT is great for:** Multi-framework projects, reusable agent libraries, testing across LLM\nproviders, complex multi-agent orchestration, human-in-the-loop workflows.\n\n**VAT may not be needed for:** Simple one-off scripts where the framework is already decided,\nnon-TypeScript/JavaScript projects, or cases where you need deep framework-specific features.\n\n## Skill Routing Table\n\n| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n|
|
|
10
|
+
export const text = "\n# Vibe Agent Toolkit Skill\n\n**Vibe Agent Toolkit (VAT)** is a modular toolkit for building portable AI agents that work across\nmultiple LLM frameworks and deployment targets. Write your agent logic once as plain TypeScript,\nthen deploy it to Vercel AI SDK, LangChain, OpenAI, Claude Agent SDK, or any other runtime using\nframework adapters. No vendor lock-in.\n\n## Purpose: For Users, Not Contributors\n\n- **This skill** = How to USE VAT to build agents\n- **\`vibe-agent-toolkit:debugging\`** = When VAT itself behaves unexpectedly or you need to test a fix\n- **Root CLAUDE.md** = How to DEVELOP the VAT codebase itself\n\n## When to Use VAT\n\n**VAT is great for:** Multi-framework projects, reusable agent libraries, testing across LLM\nproviders, complex multi-agent orchestration, human-in-the-loop workflows.\n\n**VAT may not be needed for:** Simple one-off scripts where the framework is already decided,\nnon-TypeScript/JavaScript projects, or cases where you need deep framework-specific features.\n\n## Skill Routing Table\n\n| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n| Setting up \`vat build\` + \`vat claude build\` for a project | \`vibe-agent-toolkit:skills-distribution\` |\n| Configuring \`claude:\` section in vibe-agent-toolkit.config.yaml | \`vibe-agent-toolkit:skills-distribution\` |\n| npm publishing with plugin postinstall | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat build\` / \`vat verify\` orchestration | \`vibe-agent-toolkit:skills-distribution\` |\n| \`--target claude-web\` ZIP format | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat audit\`, \`--compat\`, CI validation | \`vibe-agent-toolkit:audit\` |\n| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | \`vibe-agent-toolkit:debugging\` |\n\n## Agent Archetypes (Quick Reference)\n\nFour patterns cover most use cases. For full code examples, see \`vibe-agent-toolkit:agent-authoring\`.\n\n| Archetype | When to Use |\n|---|---|\n| **Pure Function Tool** | Stateless validation, transformation, computation — no LLM needed |\n| **One-Shot LLM Analyzer** | Single LLM call for analysis, classification, or generation |\n| **Conversational Assistant** | Multi-turn dialogue with session state across turns |\n| **External Event Integrator** | Waiting for human approval, webhooks, or third-party APIs |\n\n## Core CLI Commands\n\n\`\`\`bash\n# Install VAT CLI globally\nnpm install -g vibe-agent-toolkit\n\n# Top-level orchestration\nvat build # build all artifacts (skills then claude plugins)\nvat verify # verify all artifacts (resources, skills, claude)\n\n# Claude plugin commands\nvat claude build # generate plugin artifacts from built skills\nvat claude verify # validate plugin artifacts\n\n# Skills\nvat skills list # list skills in current project\nvat skills list --user # list user-installed skills\nvat skills install npm:@org/my-skills # install from npm (routes through plugin system)\nvat skills build # build portable skills only\nvat skills validate # validate skill quality\n\n# Resources\nvat resources validate # validate collections (reads config)\nvat resources validate docs/ --frontmatter-schema schema.json\n\n# Audit\nvat audit # audit current directory recursively\nvat audit --user # audit entire Claude installation\nvat audit ./plugins/ --compat # check surface compatibility\n\n# RAG\nvat rag index docs/ # index markdown into vector DB\nvat rag query \"my question\" --limit 5 # semantic search\n\n# Get help for any command\nvat --help\nvat skills --help\n\`\`\`\n\n## agent-generator: Creating New Agents\n\nThe **agent-generator** is a built-in meta-agent that guides you through designing\nhigh-quality agents via a 4-phase workflow:\n\n1. **GATHER** — Understand your intent and goals\n2. **ANALYZE** — Identify agent pattern and requirements\n3. **DESIGN** — Make architecture decisions (LLM, tools, prompts)\n4. **GENERATE** — Create validated agent package\n\nMinimum input needed:\n\`\`\`json\n{\n \"agentPurpose\": \"Review PRs for security issues\",\n \"successCriteria\": \"Catches 100% of critical vulnerabilities\"\n}\n\`\`\`\n\nThe generator produces: \`agent.yaml\`, \`prompts/system.md\`, \`prompts/user.md\`,\n\`schemas/input.schema.json\`, \`schemas/output.schema.json\`, and \`README.md\`.\n\n**Tips for better results:**\n- Be specific about success criteria (\"Under 30s, zero false negatives\") not vague (\"fast enough\")\n- Name the tools the agent needs upfront (file readers, APIs, etc.)\n- Describe domain context (OWASP Top 10, company coding standards, etc.)\n\n## Packaging Markdown for Reuse\n\nVAT\'s resource compiler transforms markdown files into type-safe TypeScript modules,\nenabling prompt libraries, RAG knowledge bases, and shared content across projects.\n\n\`\`\`bash\nnpm install -D @vibe-agent-toolkit/resource-compiler\nnpx vat-compile-resources compile resources/ generated/resources/\n\`\`\`\n\n\`\`\`typescript\nimport * as Doc from \'./generated/resources/doc.js\';\n\nDoc.meta.title; // type-safe frontmatter\nDoc.fragments.introduction.text; // H2 section content\nDoc.text; // full markdown\n\`\`\`\n\nUse cases: agent prompt libraries, RAG knowledge bases packaged as npm modules,\nmulti-project content sharing with versioning.\n\n## Common Workflows\n\n**Create a new agent:**\n\`\`\`bash\n# Use agent-generator interactively, then:\nvat agent import my-skill/SKILL.md # import to VAT format\nvat skills validate # check quality\nvat skills build # package for distribution\n\`\`\`\n\n**Install and use a community skill:**\n\`\`\`bash\nvat skills install npm:@vibe-agent-toolkit/vat-cat-agents\nvat skills list --user\n# Plugin-aware packages register in Claude\'s plugin system\n# Skills are invoked as /plugin-name:skill-name in Claude Code\n\`\`\`\n\n**Build and publish your own skill package:**\n\`\`\`bash\n# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:\nvat build # builds skills + claude plugin artifacts\nvat verify # validates everything\nnpm publish # publishes to npm (postinstall registers the plugin)\n# Users install with: vat skills install npm:@myorg/my-skills\n\`\`\`\n\n## Success Criteria\n\nYou\'ve successfully adopted VAT when:\n- Agents have clear input/output schemas (Zod-validated)\n- Errors are handled as data (result envelopes), never thrown\n- Tests cover success and error paths without real API calls (mock mode)\n- Agents work across multiple runtimes via adapters\n- Multi-agent pipelines compose via \`andThen()\` / \`match()\` helpers\n\n## Documentation Index\n\n- [Getting Started Guide](../../../../docs/getting-started.md)\n- [Agent Authoring Guide](../../../../docs/agent-authoring.md) — patterns and code examples\n- [Orchestration Guide](../../../../docs/orchestration.md) — multi-agent workflows\n- [RAG Usage Guide](../../../../docs/guides/rag-usage-guide.md)\n- [Resource Compiler Guide](../../../../docs/guides/resource-compiler/compiling-markdown-to-typescript.md)\n- [Runtime Adapters](../../../../docs/adding-runtime-adapters.md)\n- Examples: \`@vibe-agent-toolkit/vat-example-cat-agents\`\n\n## Getting Help\n\n- **CLI Help:** \`vat --help\`, \`vat skills --help\`, etc.\n- **Examples:** \`packages/vat-example-cat-agents/\`\n- **GitHub Issues:** Report bugs or ask questions\n\nHappy agent building!\n";
|
|
11
11
|
|
|
12
12
|
export const fragments = {
|
|
13
13
|
purposeForUsersNotContributors: {
|
|
@@ -22,8 +22,8 @@ export const fragments = {
|
|
|
22
22
|
},
|
|
23
23
|
skillRoutingTable: {
|
|
24
24
|
header: "## Skill Routing Table",
|
|
25
|
-
body: "| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n|
|
|
26
|
-
text: "## Skill Routing Table\n\n| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n|
|
|
25
|
+
body: "| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n| Setting up \`vat build\` + \`vat claude build\` for a project | \`vibe-agent-toolkit:skills-distribution\` |\n| Configuring \`claude:\` section in vibe-agent-toolkit.config.yaml | \`vibe-agent-toolkit:skills-distribution\` |\n| npm publishing with plugin postinstall | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat build\` / \`vat verify\` orchestration | \`vibe-agent-toolkit:skills-distribution\` |\n| \`--target claude-web\` ZIP format | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat audit\`, \`--compat\`, CI validation | \`vibe-agent-toolkit:audit\` |\n| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | \`vibe-agent-toolkit:debugging\` |",
|
|
26
|
+
text: "## Skill Routing Table\n\n| If you\'re working on... | Use this skill |\n|---|---|\n| Writing or structuring a \`SKILL.md\` file | \`vibe-agent-toolkit:agent-authoring\` |\n| Agent archetypes, orchestration patterns, result envelopes | \`vibe-agent-toolkit:agent-authoring\` |\n| \`packagingOptions\` (linkFollowDepth, excludeReferencesFromBundle) | \`vibe-agent-toolkit:agent-authoring\` |\n| Resource collections, frontmatter schema validation | \`vibe-agent-toolkit:resources\` |\n| \`vat resources validate\`, collection config | \`vibe-agent-toolkit:resources\` |\n| Setting up \`vat build\` + \`vat claude build\` for a project | \`vibe-agent-toolkit:skills-distribution\` |\n| Configuring \`claude:\` section in vibe-agent-toolkit.config.yaml | \`vibe-agent-toolkit:skills-distribution\` |\n| npm publishing with plugin postinstall | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat build\` / \`vat verify\` orchestration | \`vibe-agent-toolkit:skills-distribution\` |\n| \`--target claude-web\` ZIP format | \`vibe-agent-toolkit:skills-distribution\` |\n| \`vat audit\`, \`--compat\`, CI validation | \`vibe-agent-toolkit:audit\` |\n| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | \`vibe-agent-toolkit:debugging\` |"
|
|
27
27
|
},
|
|
28
28
|
agentArchetypesQuickReference: {
|
|
29
29
|
header: "## Agent Archetypes (Quick Reference)",
|
|
@@ -32,8 +32,8 @@ export const fragments = {
|
|
|
32
32
|
},
|
|
33
33
|
coreCliCommands: {
|
|
34
34
|
header: "## Core CLI Commands",
|
|
35
|
-
body: "\`\`\`bash\n# Install VAT CLI globally\nnpm install -g vibe-agent-toolkit\n\n# Skills\nvat skills list # list skills in current project\nvat skills list --user # list user-installed skills\nvat skills install npm:@org/my-skills # install from npm\nvat skills build # build skills
|
|
36
|
-
text: "## Core CLI Commands\n\n\`\`\`bash\n# Install VAT CLI globally\nnpm install -g vibe-agent-toolkit\n\n# Skills\nvat skills list # list skills in current project\nvat skills list --user # list user-installed skills\nvat skills install npm:@org/my-skills # install from npm\nvat skills build # build skills
|
|
35
|
+
body: "\`\`\`bash\n# Install VAT CLI globally\nnpm install -g vibe-agent-toolkit\n\n# Top-level orchestration\nvat build # build all artifacts (skills then claude plugins)\nvat verify # verify all artifacts (resources, skills, claude)\n\n# Claude plugin commands\nvat claude build # generate plugin artifacts from built skills\nvat claude verify # validate plugin artifacts\n\n# Skills\nvat skills list # list skills in current project\nvat skills list --user # list user-installed skills\nvat skills install npm:@org/my-skills # install from npm (routes through plugin system)\nvat skills build # build portable skills only\nvat skills validate # validate skill quality\n\n# Resources\nvat resources validate # validate collections (reads config)\nvat resources validate docs/ --frontmatter-schema schema.json\n\n# Audit\nvat audit # audit current directory recursively\nvat audit --user # audit entire Claude installation\nvat audit ./plugins/ --compat # check surface compatibility\n\n# RAG\nvat rag index docs/ # index markdown into vector DB\nvat rag query \"my question\" --limit 5 # semantic search\n\n# Get help for any command\nvat --help\nvat skills --help\n\`\`\`",
|
|
36
|
+
text: "## Core CLI Commands\n\n\`\`\`bash\n# Install VAT CLI globally\nnpm install -g vibe-agent-toolkit\n\n# Top-level orchestration\nvat build # build all artifacts (skills then claude plugins)\nvat verify # verify all artifacts (resources, skills, claude)\n\n# Claude plugin commands\nvat claude build # generate plugin artifacts from built skills\nvat claude verify # validate plugin artifacts\n\n# Skills\nvat skills list # list skills in current project\nvat skills list --user # list user-installed skills\nvat skills install npm:@org/my-skills # install from npm (routes through plugin system)\nvat skills build # build portable skills only\nvat skills validate # validate skill quality\n\n# Resources\nvat resources validate # validate collections (reads config)\nvat resources validate docs/ --frontmatter-schema schema.json\n\n# Audit\nvat audit # audit current directory recursively\nvat audit --user # audit entire Claude installation\nvat audit ./plugins/ --compat # check surface compatibility\n\n# RAG\nvat rag index docs/ # index markdown into vector DB\nvat rag query \"my question\" --limit 5 # semantic search\n\n# Get help for any command\nvat --help\nvat skills --help\n\`\`\`"
|
|
37
37
|
},
|
|
38
38
|
agentGeneratorCreatingNewAgents: {
|
|
39
39
|
header: "## agent-generator: Creating New Agents",
|
|
@@ -47,8 +47,8 @@ export const fragments = {
|
|
|
47
47
|
},
|
|
48
48
|
commonWorkflows: {
|
|
49
49
|
header: "## Common Workflows",
|
|
50
|
-
body: "**Create a new agent:**\n\`\`\`bash\n# Use agent-generator interactively, then:\nvat agent import my-skill/SKILL.md # import to VAT format\nvat skills validate # check quality\nvat skills build # package for distribution\n\`\`\`\n\n**Install and use a community skill:**\n\`\`\`bash\nvat skills install npm:@vibe-agent-toolkit/vat-cat-agents\nvat skills list --user\n#
|
|
51
|
-
text: "## Common Workflows\n\n**Create a new agent:**\n\`\`\`bash\n# Use agent-generator interactively, then:\nvat agent import my-skill/SKILL.md # import to VAT format\nvat skills validate # check quality\nvat skills build # package for distribution\n\`\`\`\n\n**Install and use a community skill:**\n\`\`\`bash\nvat skills install npm:@vibe-agent-toolkit/vat-cat-agents\nvat skills list --user\n#
|
|
50
|
+
body: "**Create a new agent:**\n\`\`\`bash\n# Use agent-generator interactively, then:\nvat agent import my-skill/SKILL.md # import to VAT format\nvat skills validate # check quality\nvat skills build # package for distribution\n\`\`\`\n\n**Install and use a community skill:**\n\`\`\`bash\nvat skills install npm:@vibe-agent-toolkit/vat-cat-agents\nvat skills list --user\n# Plugin-aware packages register in Claude\'s plugin system\n# Skills are invoked as /plugin-name:skill-name in Claude Code\n\`\`\`\n\n**Build and publish your own skill package:**\n\`\`\`bash\n# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:\nvat build # builds skills + claude plugin artifacts\nvat verify # validates everything\nnpm publish # publishes to npm (postinstall registers the plugin)\n# Users install with: vat skills install npm:@myorg/my-skills\n\`\`\`",
|
|
51
|
+
text: "## Common Workflows\n\n**Create a new agent:**\n\`\`\`bash\n# Use agent-generator interactively, then:\nvat agent import my-skill/SKILL.md # import to VAT format\nvat skills validate # check quality\nvat skills build # package for distribution\n\`\`\`\n\n**Install and use a community skill:**\n\`\`\`bash\nvat skills install npm:@vibe-agent-toolkit/vat-cat-agents\nvat skills list --user\n# Plugin-aware packages register in Claude\'s plugin system\n# Skills are invoked as /plugin-name:skill-name in Claude Code\n\`\`\`\n\n**Build and publish your own skill package:**\n\`\`\`bash\n# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:\nvat build # builds skills + claude plugin artifacts\nvat verify # validates everything\nnpm publish # publishes to npm (postinstall registers the plugin)\n# Users install with: vat skills install npm:@myorg/my-skills\n\`\`\`"
|
|
52
52
|
},
|
|
53
53
|
successCriteria: {
|
|
54
54
|
header: "## Success Criteria",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated TypeScript declarations - DO NOT EDIT
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export interface Fragment {
|
|
6
|
+
readonly header: string;
|
|
7
|
+
readonly body: string;
|
|
8
|
+
readonly text: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const meta: {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly description: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const text: string;
|
|
17
|
+
|
|
18
|
+
export const fragments: {
|
|
19
|
+
readonly overview: Fragment;
|
|
20
|
+
readonly projectStructure: Fragment;
|
|
21
|
+
readonly step1PackagejsonConfiguration: Fragment;
|
|
22
|
+
readonly step2VibeAgentToolkitconfigyaml: Fragment;
|
|
23
|
+
readonly step3Build: Fragment;
|
|
24
|
+
readonly step4Publish: Fragment;
|
|
25
|
+
readonly step5UserInstall: Fragment;
|
|
26
|
+
readonly sourceLayoutPattern: Fragment;
|
|
27
|
+
readonly managedSettingsjsonValidationEnterprise: Fragment;
|
|
28
|
+
readonly -TargetClaudeWebZipUpload: Fragment;
|
|
29
|
+
readonly quickReference: Fragment;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type FragmentName = keyof typeof fragments;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated from markdown file - DO NOT EDIT
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const meta = {
|
|
6
|
+
name: "vibe-agent-toolkit:skills-distribution",
|
|
7
|
+
description: "Use when setting up vat build, configuring plugin distribution for the Claude ecosystem (marketplace, plugins, managed settings), npm publishing with postinstall hooks, or vat verify orchestration. Covers the full pipeline from skill source to installed plugin."
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const text = "\n# VAT Distribution: Build, Publish & Install\n\n## Overview\n\nVAT distributes skills as **Claude plugins** via npm packages. The pipeline:\n\n1. \`vat build\` compiles SKILL.md sources into plugin artifacts\n2. \`npm publish\` pushes the package to a registry\n3. \`npm install\` triggers a postinstall hook that registers the plugin in Claude\'s plugin system\n\nSkills installed this way appear in Claude Code as \`/plugin-name:skill-name\`.\n\n## Project Structure\n\n\`\`\`\nmy-project/\n├── package.json ← vat.skills + postinstall hook + publishConfig\n├── vibe-agent-toolkit.config.yaml ← claude: marketplace config\n├── skills/\n│ └── my-skill/\n│ └── SKILL.md\n└── dist/ ← generated by vat build\n ├── skills/my-skill/\n ├── plugins/my-plugin/\n └── .claude-plugin/\n └── marketplace.json\n\`\`\`\n\n## Step 1: package.json Configuration\n\n\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"vat\": {\n \"skills\": [\n {\n \"name\": \"my-skill\",\n \"source\": \"./skills/my-skill/SKILL.md\",\n \"path\": \"./dist/skills/my-skill\"\n }\n ]\n },\n \"scripts\": {\n \"build:vat\": \"vat build\",\n \"postinstall\": \"vat skills install --npm-postinstall || exit 0\"\n },\n \"files\": [\"dist\", \"README.md\"],\n \"publishConfig\": {\n \"registry\": \"https://registry.npmjs.org\"\n }\n}\n\`\`\`\n\nFor private GitHub Packages registry:\n\`\`\`json\n\"publishConfig\": {\n \"registry\": \"https://npm.pkg.github.com\",\n \"access\": \"restricted\"\n}\n\`\`\`\n\nUsers installing from GitHub Packages need \`.npmrc\` with the scope registry and auth token:\n\`\`\`\n@myorg:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n\`\`\`\n\n## Step 2: vibe-agent-toolkit.config.yaml\n\n\`\`\`yaml\nversion: 1\n\nclaude:\n marketplaces:\n my-marketplace: # org/publisher identity\n owner:\n name: My Organization\n skills:\n - \"my-*\" # glob matching skill names from vat.skills\n plugins:\n - name: my-plugin # installable unit\n skills: \"*\" # all skills matched by this marketplace\n output:\n marketplaceJson: dist/.claude-plugin/marketplace.json\n pluginsDir: dist/plugins/\n\`\`\`\n\n**Naming convention:** marketplace = org identity (e.g. \`acme\`), plugin = this package\n(e.g. \`acme-tools\`). Registers as \`my-plugin@my-marketplace\` in Claude\'s plugin registry.\n\n### Multiple skills in one package\n\nList all skills in \`vat.skills\` and use a glob in the marketplace config:\n\n\`\`\`json\n\"vat\": {\n \"skills\": [\n { \"name\": \"my-linting\", \"source\": \"./skills/linting/SKILL.md\", \"path\": \"./dist/skills/my-linting\" },\n { \"name\": \"my-testing\", \"source\": \"./skills/testing/SKILL.md\", \"path\": \"./dist/skills/my-testing\" }\n ]\n}\n\`\`\`\n\n\`\`\`yaml\nskills:\n - \"my-*\" # matches both my-linting and my-testing\n\`\`\`\n\nAll matched skills are bundled into the single plugin.\n\n## Step 3: Build\n\n\`\`\`bash\nvat build # skills phase then claude phase\nvat verify # validates resources + skills + claude artifacts\n\`\`\`\n\n### What vat build does\n\nTwo phases, run in dependency order:\n\n1. **\`vat skills build\`** — reads \`package.json vat.skills\`, compiles each SKILL.md + referenced resources into \`dist/skills/<name>/\`\n2. **\`vat claude build\`** — reads \`vibe-agent-toolkit.config.yaml claude:\` section, wraps built skills into plugin structure, generates \`marketplace.json\`\n\nIndividual commands still work:\n\`\`\`bash\nvat skills build # skills phase only\nvat claude build # claude plugin phase only (requires skills already built)\nvat claude verify # validate plugin artifacts only\n\`\`\`\n\n## Step 4: Publish\n\n\`\`\`bash\nnpm publish --tag next # RC/pre-release\nnpm publish # stable release\n\`\`\`\n\n## Step 5: User Install\n\n\`\`\`bash\nvat skills install npm:@myorg/my-skills\n\`\`\`\n\nOr via standard npm install (postinstall hook triggers automatically):\n\`\`\`bash\nnpm install -g @myorg/my-skills\n\`\`\`\n\n### How plugin installation works\n\nWhen \`npm install\` runs the postinstall hook (\`vat skills install --npm-postinstall\`):\n\n- VAT detects \`dist/.claude-plugin/marketplace.json\` in the installed package\n- Installs via Claude\'s plugin system (NOT \`~/.claude/skills/\`)\n- Writes to these locations:\n 1. \`~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/\` — plugin files\n 2. \`~/.claude/plugins/known_marketplaces.json\` — marketplace registry\n 3. \`~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/\` — version cache\n 4. \`~/.claude/plugins/installed_plugins.json\` — installation record\n 5. \`~/.claude/settings.json\` \`enabledPlugins\` — activates the plugin\n\nIf no \`marketplace.json\` exists (package wasn\'t built before publish): a guidance message is emitted and the hook exits 0. The publisher must run \`vat build\` and re-publish.\n\nSkills are then available in Claude Code as \`/plugin-name:skill-name\`.\n\n## Source-Layout Pattern\n\nFor projects where the repo itself contains \`marketplace.json\` and plugin structure (no build step needed):\n\n\`\`\`yaml\nclaude:\n marketplaces:\n my-marketplace:\n file: .claude-plugin/marketplace.json # VAT verifies but does NOT generate\n\`\`\`\n\n\`vat verify\` validates the existing file. \`vat build\` skips the claude phase for \`file:\` marketplaces.\n\n## managed-settings.json Validation (Enterprise)\n\n\`\`\`yaml\nclaude:\n managedSettings: managed-settings.json\n\`\`\`\n\n\`vat verify\` validates this file against the ManagedSettings schema. Catches typos and schema errors before deployment. Does NOT deploy the file — deployment is a separate concern.\n\n## --target claude-web (ZIP Upload)\n\nFor uploading skills directly to \`claude.ai/settings/capabilities\`:\n\n\`\`\`bash\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\`\`\`\n\nProduces a ZIP:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure source path mappings in \`package.json\`:\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\`.\n\n## Quick Reference\n\n| Task | Command |\n|---|---|\n| Build everything | \`vat build\` |\n| Verify everything | \`vat verify\` |\n| Build skills only | \`vat skills build\` |\n| Build claude artifacts only | \`vat claude build\` |\n| Verify claude artifacts only | \`vat claude verify\` |\n| Install from npm | \`vat skills install npm:@org/pkg\` |\n| Package for claude.ai upload | \`vat skills package ./SKILL.md -o ./dist/ --target claude-web\` |\n";
|
|
11
|
+
|
|
12
|
+
export const fragments = {
|
|
13
|
+
overview: {
|
|
14
|
+
header: "## Overview",
|
|
15
|
+
body: "VAT distributes skills as **Claude plugins** via npm packages. The pipeline:\n\n1. \`vat build\` compiles SKILL.md sources into plugin artifacts\n2. \`npm publish\` pushes the package to a registry\n3. \`npm install\` triggers a postinstall hook that registers the plugin in Claude\'s plugin system\n\nSkills installed this way appear in Claude Code as \`/plugin-name:skill-name\`.",
|
|
16
|
+
text: "## Overview\n\nVAT distributes skills as **Claude plugins** via npm packages. The pipeline:\n\n1. \`vat build\` compiles SKILL.md sources into plugin artifacts\n2. \`npm publish\` pushes the package to a registry\n3. \`npm install\` triggers a postinstall hook that registers the plugin in Claude\'s plugin system\n\nSkills installed this way appear in Claude Code as \`/plugin-name:skill-name\`."
|
|
17
|
+
},
|
|
18
|
+
projectStructure: {
|
|
19
|
+
header: "## Project Structure",
|
|
20
|
+
body: "\`\`\`\nmy-project/\n├── package.json ← vat.skills + postinstall hook + publishConfig\n├── vibe-agent-toolkit.config.yaml ← claude: marketplace config\n├── skills/\n│ └── my-skill/\n│ └── SKILL.md\n└── dist/ ← generated by vat build\n ├── skills/my-skill/\n ├── plugins/my-plugin/\n └── .claude-plugin/\n └── marketplace.json\n\`\`\`",
|
|
21
|
+
text: "## Project Structure\n\n\`\`\`\nmy-project/\n├── package.json ← vat.skills + postinstall hook + publishConfig\n├── vibe-agent-toolkit.config.yaml ← claude: marketplace config\n├── skills/\n│ └── my-skill/\n│ └── SKILL.md\n└── dist/ ← generated by vat build\n ├── skills/my-skill/\n ├── plugins/my-plugin/\n └── .claude-plugin/\n └── marketplace.json\n\`\`\`"
|
|
22
|
+
},
|
|
23
|
+
step1PackagejsonConfiguration: {
|
|
24
|
+
header: "## Step 1: package.json Configuration",
|
|
25
|
+
body: "\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"vat\": {\n \"skills\": [\n {\n \"name\": \"my-skill\",\n \"source\": \"./skills/my-skill/SKILL.md\",\n \"path\": \"./dist/skills/my-skill\"\n }\n ]\n },\n \"scripts\": {\n \"build:vat\": \"vat build\",\n \"postinstall\": \"vat skills install --npm-postinstall || exit 0\"\n },\n \"files\": [\"dist\", \"README.md\"],\n \"publishConfig\": {\n \"registry\": \"https://registry.npmjs.org\"\n }\n}\n\`\`\`\n\nFor private GitHub Packages registry:\n\`\`\`json\n\"publishConfig\": {\n \"registry\": \"https://npm.pkg.github.com\",\n \"access\": \"restricted\"\n}\n\`\`\`\n\nUsers installing from GitHub Packages need \`.npmrc\` with the scope registry and auth token:\n\`\`\`\n@myorg:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n\`\`\`",
|
|
26
|
+
text: "## Step 1: package.json Configuration\n\n\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"vat\": {\n \"skills\": [\n {\n \"name\": \"my-skill\",\n \"source\": \"./skills/my-skill/SKILL.md\",\n \"path\": \"./dist/skills/my-skill\"\n }\n ]\n },\n \"scripts\": {\n \"build:vat\": \"vat build\",\n \"postinstall\": \"vat skills install --npm-postinstall || exit 0\"\n },\n \"files\": [\"dist\", \"README.md\"],\n \"publishConfig\": {\n \"registry\": \"https://registry.npmjs.org\"\n }\n}\n\`\`\`\n\nFor private GitHub Packages registry:\n\`\`\`json\n\"publishConfig\": {\n \"registry\": \"https://npm.pkg.github.com\",\n \"access\": \"restricted\"\n}\n\`\`\`\n\nUsers installing from GitHub Packages need \`.npmrc\` with the scope registry and auth token:\n\`\`\`\n@myorg:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n\`\`\`"
|
|
27
|
+
},
|
|
28
|
+
step2VibeAgentToolkitconfigyaml: {
|
|
29
|
+
header: "## Step 2: vibe-agent-toolkit.config.yaml",
|
|
30
|
+
body: "\`\`\`yaml\nversion: 1\n\nclaude:\n marketplaces:\n my-marketplace: # org/publisher identity\n owner:\n name: My Organization\n skills:\n - \"my-*\" # glob matching skill names from vat.skills\n plugins:\n - name: my-plugin # installable unit\n skills: \"*\" # all skills matched by this marketplace\n output:\n marketplaceJson: dist/.claude-plugin/marketplace.json\n pluginsDir: dist/plugins/\n\`\`\`\n\n**Naming convention:** marketplace = org identity (e.g. \`acme\`), plugin = this package\n(e.g. \`acme-tools\`). Registers as \`my-plugin@my-marketplace\` in Claude\'s plugin registry.\n\n### Multiple skills in one package\n\nList all skills in \`vat.skills\` and use a glob in the marketplace config:\n\n\`\`\`json\n\"vat\": {\n \"skills\": [\n { \"name\": \"my-linting\", \"source\": \"./skills/linting/SKILL.md\", \"path\": \"./dist/skills/my-linting\" },\n { \"name\": \"my-testing\", \"source\": \"./skills/testing/SKILL.md\", \"path\": \"./dist/skills/my-testing\" }\n ]\n}\n\`\`\`\n\n\`\`\`yaml\nskills:\n - \"my-*\" # matches both my-linting and my-testing\n\`\`\`\n\nAll matched skills are bundled into the single plugin.",
|
|
31
|
+
text: "## Step 2: vibe-agent-toolkit.config.yaml\n\n\`\`\`yaml\nversion: 1\n\nclaude:\n marketplaces:\n my-marketplace: # org/publisher identity\n owner:\n name: My Organization\n skills:\n - \"my-*\" # glob matching skill names from vat.skills\n plugins:\n - name: my-plugin # installable unit\n skills: \"*\" # all skills matched by this marketplace\n output:\n marketplaceJson: dist/.claude-plugin/marketplace.json\n pluginsDir: dist/plugins/\n\`\`\`\n\n**Naming convention:** marketplace = org identity (e.g. \`acme\`), plugin = this package\n(e.g. \`acme-tools\`). Registers as \`my-plugin@my-marketplace\` in Claude\'s plugin registry.\n\n### Multiple skills in one package\n\nList all skills in \`vat.skills\` and use a glob in the marketplace config:\n\n\`\`\`json\n\"vat\": {\n \"skills\": [\n { \"name\": \"my-linting\", \"source\": \"./skills/linting/SKILL.md\", \"path\": \"./dist/skills/my-linting\" },\n { \"name\": \"my-testing\", \"source\": \"./skills/testing/SKILL.md\", \"path\": \"./dist/skills/my-testing\" }\n ]\n}\n\`\`\`\n\n\`\`\`yaml\nskills:\n - \"my-*\" # matches both my-linting and my-testing\n\`\`\`\n\nAll matched skills are bundled into the single plugin."
|
|
32
|
+
},
|
|
33
|
+
step3Build: {
|
|
34
|
+
header: "## Step 3: Build",
|
|
35
|
+
body: "\`\`\`bash\nvat build # skills phase then claude phase\nvat verify # validates resources + skills + claude artifacts\n\`\`\`\n\n### What vat build does\n\nTwo phases, run in dependency order:\n\n1. **\`vat skills build\`** — reads \`package.json vat.skills\`, compiles each SKILL.md + referenced resources into \`dist/skills/<name>/\`\n2. **\`vat claude build\`** — reads \`vibe-agent-toolkit.config.yaml claude:\` section, wraps built skills into plugin structure, generates \`marketplace.json\`\n\nIndividual commands still work:\n\`\`\`bash\nvat skills build # skills phase only\nvat claude build # claude plugin phase only (requires skills already built)\nvat claude verify # validate plugin artifacts only\n\`\`\`",
|
|
36
|
+
text: "## Step 3: Build\n\n\`\`\`bash\nvat build # skills phase then claude phase\nvat verify # validates resources + skills + claude artifacts\n\`\`\`\n\n### What vat build does\n\nTwo phases, run in dependency order:\n\n1. **\`vat skills build\`** — reads \`package.json vat.skills\`, compiles each SKILL.md + referenced resources into \`dist/skills/<name>/\`\n2. **\`vat claude build\`** — reads \`vibe-agent-toolkit.config.yaml claude:\` section, wraps built skills into plugin structure, generates \`marketplace.json\`\n\nIndividual commands still work:\n\`\`\`bash\nvat skills build # skills phase only\nvat claude build # claude plugin phase only (requires skills already built)\nvat claude verify # validate plugin artifacts only\n\`\`\`"
|
|
37
|
+
},
|
|
38
|
+
step4Publish: {
|
|
39
|
+
header: "## Step 4: Publish",
|
|
40
|
+
body: "\`\`\`bash\nnpm publish --tag next # RC/pre-release\nnpm publish # stable release\n\`\`\`",
|
|
41
|
+
text: "## Step 4: Publish\n\n\`\`\`bash\nnpm publish --tag next # RC/pre-release\nnpm publish # stable release\n\`\`\`"
|
|
42
|
+
},
|
|
43
|
+
step5UserInstall: {
|
|
44
|
+
header: "## Step 5: User Install",
|
|
45
|
+
body: "\`\`\`bash\nvat skills install npm:@myorg/my-skills\n\`\`\`\n\nOr via standard npm install (postinstall hook triggers automatically):\n\`\`\`bash\nnpm install -g @myorg/my-skills\n\`\`\`\n\n### How plugin installation works\n\nWhen \`npm install\` runs the postinstall hook (\`vat skills install --npm-postinstall\`):\n\n- VAT detects \`dist/.claude-plugin/marketplace.json\` in the installed package\n- Installs via Claude\'s plugin system (NOT \`~/.claude/skills/\`)\n- Writes to these locations:\n 1. \`~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/\` — plugin files\n 2. \`~/.claude/plugins/known_marketplaces.json\` — marketplace registry\n 3. \`~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/\` — version cache\n 4. \`~/.claude/plugins/installed_plugins.json\` — installation record\n 5. \`~/.claude/settings.json\` \`enabledPlugins\` — activates the plugin\n\nIf no \`marketplace.json\` exists (package wasn\'t built before publish): a guidance message is emitted and the hook exits 0. The publisher must run \`vat build\` and re-publish.\n\nSkills are then available in Claude Code as \`/plugin-name:skill-name\`.",
|
|
46
|
+
text: "## Step 5: User Install\n\n\`\`\`bash\nvat skills install npm:@myorg/my-skills\n\`\`\`\n\nOr via standard npm install (postinstall hook triggers automatically):\n\`\`\`bash\nnpm install -g @myorg/my-skills\n\`\`\`\n\n### How plugin installation works\n\nWhen \`npm install\` runs the postinstall hook (\`vat skills install --npm-postinstall\`):\n\n- VAT detects \`dist/.claude-plugin/marketplace.json\` in the installed package\n- Installs via Claude\'s plugin system (NOT \`~/.claude/skills/\`)\n- Writes to these locations:\n 1. \`~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/\` — plugin files\n 2. \`~/.claude/plugins/known_marketplaces.json\` — marketplace registry\n 3. \`~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/\` — version cache\n 4. \`~/.claude/plugins/installed_plugins.json\` — installation record\n 5. \`~/.claude/settings.json\` \`enabledPlugins\` — activates the plugin\n\nIf no \`marketplace.json\` exists (package wasn\'t built before publish): a guidance message is emitted and the hook exits 0. The publisher must run \`vat build\` and re-publish.\n\nSkills are then available in Claude Code as \`/plugin-name:skill-name\`."
|
|
47
|
+
},
|
|
48
|
+
sourceLayoutPattern: {
|
|
49
|
+
header: "## Source-Layout Pattern",
|
|
50
|
+
body: "For projects where the repo itself contains \`marketplace.json\` and plugin structure (no build step needed):\n\n\`\`\`yaml\nclaude:\n marketplaces:\n my-marketplace:\n file: .claude-plugin/marketplace.json # VAT verifies but does NOT generate\n\`\`\`\n\n\`vat verify\` validates the existing file. \`vat build\` skips the claude phase for \`file:\` marketplaces.",
|
|
51
|
+
text: "## Source-Layout Pattern\n\nFor projects where the repo itself contains \`marketplace.json\` and plugin structure (no build step needed):\n\n\`\`\`yaml\nclaude:\n marketplaces:\n my-marketplace:\n file: .claude-plugin/marketplace.json # VAT verifies but does NOT generate\n\`\`\`\n\n\`vat verify\` validates the existing file. \`vat build\` skips the claude phase for \`file:\` marketplaces."
|
|
52
|
+
},
|
|
53
|
+
managedSettingsjsonValidationEnterprise: {
|
|
54
|
+
header: "## managed-settings.json Validation (Enterprise)",
|
|
55
|
+
body: "\`\`\`yaml\nclaude:\n managedSettings: managed-settings.json\n\`\`\`\n\n\`vat verify\` validates this file against the ManagedSettings schema. Catches typos and schema errors before deployment. Does NOT deploy the file — deployment is a separate concern.",
|
|
56
|
+
text: "## managed-settings.json Validation (Enterprise)\n\n\`\`\`yaml\nclaude:\n managedSettings: managed-settings.json\n\`\`\`\n\n\`vat verify\` validates this file against the ManagedSettings schema. Catches typos and schema errors before deployment. Does NOT deploy the file — deployment is a separate concern."
|
|
57
|
+
},
|
|
58
|
+
-TargetClaudeWebZipUpload: {
|
|
59
|
+
header: "## --target claude-web (ZIP Upload)",
|
|
60
|
+
body: "For uploading skills directly to \`claude.ai/settings/capabilities\`:\n\n\`\`\`bash\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\`\`\`\n\nProduces a ZIP:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure source path mappings in \`package.json\`:\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\`.",
|
|
61
|
+
text: "## --target claude-web (ZIP Upload)\n\nFor uploading skills directly to \`claude.ai/settings/capabilities\`:\n\n\`\`\`bash\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\`\`\`\n\nProduces a ZIP:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure source path mappings in \`package.json\`:\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\`."
|
|
62
|
+
},
|
|
63
|
+
quickReference: {
|
|
64
|
+
header: "## Quick Reference",
|
|
65
|
+
body: "| Task | Command |\n|---|---|\n| Build everything | \`vat build\` |\n| Verify everything | \`vat verify\` |\n| Build skills only | \`vat skills build\` |\n| Build claude artifacts only | \`vat claude build\` |\n| Verify claude artifacts only | \`vat claude verify\` |\n| Install from npm | \`vat skills install npm:@org/pkg\` |\n| Package for claude.ai upload | \`vat skills package ./SKILL.md -o ./dist/ --target claude-web\` |",
|
|
66
|
+
text: "## Quick Reference\n\n| Task | Command |\n|---|---|\n| Build everything | \`vat build\` |\n| Verify everything | \`vat verify\` |\n| Build skills only | \`vat skills build\` |\n| Build claude artifacts only | \`vat claude build\` |\n| Verify claude artifacts only | \`vat claude verify\` |\n| Install from npm | \`vat skills install npm:@org/pkg\` |\n| Package for claude.ai upload | \`vat skills package ./SKILL.md -o ./dist/ --target claude-web\` |"
|
|
67
|
+
}
|
|
68
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"skills": [
|
|
4
4
|
"skills/vibe-agent-toolkit",
|
|
5
5
|
"skills/vibe-agent-toolkit__resources",
|
|
6
|
-
"skills/vibe-agent-
|
|
6
|
+
"skills/vibe-agent-toolkit__skills-distribution",
|
|
7
7
|
"skills/vibe-agent-toolkit__agent-authoring",
|
|
8
8
|
"skills/vibe-agent-toolkit__audit",
|
|
9
9
|
"skills/vibe-agent-toolkit__debugging"
|
|
@@ -33,8 +33,11 @@ non-TypeScript/JavaScript projects, or cases where you need deep framework-speci
|
|
|
33
33
|
| `packagingOptions` (linkFollowDepth, excludeReferencesFromBundle) | `vibe-agent-toolkit:agent-authoring` |
|
|
34
34
|
| Resource collections, frontmatter schema validation | `vibe-agent-toolkit:resources` |
|
|
35
35
|
| `vat resources validate`, collection config | `vibe-agent-toolkit:resources` |
|
|
36
|
-
|
|
|
37
|
-
|
|
|
36
|
+
| Setting up `vat build` + `vat claude build` for a project | `vibe-agent-toolkit:skills-distribution` |
|
|
37
|
+
| Configuring `claude:` section in vibe-agent-toolkit.config.yaml | `vibe-agent-toolkit:skills-distribution` |
|
|
38
|
+
| npm publishing with plugin postinstall | `vibe-agent-toolkit:skills-distribution` |
|
|
39
|
+
| `vat build` / `vat verify` orchestration | `vibe-agent-toolkit:skills-distribution` |
|
|
40
|
+
| `--target claude-web` ZIP format | `vibe-agent-toolkit:skills-distribution` |
|
|
38
41
|
| `vat audit`, `--compat`, CI validation | `vibe-agent-toolkit:audit` |
|
|
39
42
|
| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | `vibe-agent-toolkit:debugging` |
|
|
40
43
|
|
|
@@ -55,11 +58,19 @@ Four patterns cover most use cases. For full code examples, see `vibe-agent-tool
|
|
|
55
58
|
# Install VAT CLI globally
|
|
56
59
|
npm install -g vibe-agent-toolkit
|
|
57
60
|
|
|
61
|
+
# Top-level orchestration
|
|
62
|
+
vat build # build all artifacts (skills then claude plugins)
|
|
63
|
+
vat verify # verify all artifacts (resources, skills, claude)
|
|
64
|
+
|
|
65
|
+
# Claude plugin commands
|
|
66
|
+
vat claude build # generate plugin artifacts from built skills
|
|
67
|
+
vat claude verify # validate plugin artifacts
|
|
68
|
+
|
|
58
69
|
# Skills
|
|
59
70
|
vat skills list # list skills in current project
|
|
60
71
|
vat skills list --user # list user-installed skills
|
|
61
|
-
vat skills install npm:@org/my-skills # install from npm
|
|
62
|
-
vat skills build # build skills
|
|
72
|
+
vat skills install npm:@org/my-skills # install from npm (routes through plugin system)
|
|
73
|
+
vat skills build # build portable skills only
|
|
63
74
|
vat skills validate # validate skill quality
|
|
64
75
|
|
|
65
76
|
# Resources
|
|
@@ -141,14 +152,16 @@ vat skills build # package for distribution
|
|
|
141
152
|
```bash
|
|
142
153
|
vat skills install npm:@vibe-agent-toolkit/vat-cat-agents
|
|
143
154
|
vat skills list --user
|
|
144
|
-
#
|
|
155
|
+
# Plugin-aware packages register in Claude's plugin system
|
|
156
|
+
# Skills are invoked as /plugin-name:skill-name in Claude Code
|
|
145
157
|
```
|
|
146
158
|
|
|
147
159
|
**Build and publish your own skill package:**
|
|
148
160
|
```bash
|
|
149
|
-
#
|
|
150
|
-
vat
|
|
151
|
-
|
|
161
|
+
# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:
|
|
162
|
+
vat build # builds skills + claude plugin artifacts
|
|
163
|
+
vat verify # validates everything
|
|
164
|
+
npm publish # publishes to npm (postinstall registers the plugin)
|
|
152
165
|
# Users install with: vat skills install npm:@myorg/my-skills
|
|
153
166
|
```
|
|
154
167
|
|
package/dist/plugins/vat-development-agents/skills/vibe-agent-toolkit__skills-distribution/SKILL.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe-agent-toolkit:skills-distribution
|
|
3
|
+
description: Use when setting up vat build, configuring plugin distribution for the Claude ecosystem (marketplace, plugins, managed settings), npm publishing with postinstall hooks, or vat verify orchestration. Covers the full pipeline from skill source to installed plugin.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VAT Distribution: Build, Publish & Install
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
VAT distributes skills as **Claude plugins** via npm packages. The pipeline:
|
|
11
|
+
|
|
12
|
+
1. `vat build` compiles SKILL.md sources into plugin artifacts
|
|
13
|
+
2. `npm publish` pushes the package to a registry
|
|
14
|
+
3. `npm install` triggers a postinstall hook that registers the plugin in Claude's plugin system
|
|
15
|
+
|
|
16
|
+
Skills installed this way appear in Claude Code as `/plugin-name:skill-name`.
|
|
17
|
+
|
|
18
|
+
## Project Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
my-project/
|
|
22
|
+
├── package.json ← vat.skills + postinstall hook + publishConfig
|
|
23
|
+
├── vibe-agent-toolkit.config.yaml ← claude: marketplace config
|
|
24
|
+
├── skills/
|
|
25
|
+
│ └── my-skill/
|
|
26
|
+
│ └── SKILL.md
|
|
27
|
+
└── dist/ ← generated by vat build
|
|
28
|
+
├── skills/my-skill/
|
|
29
|
+
├── plugins/my-plugin/
|
|
30
|
+
└── .claude-plugin/
|
|
31
|
+
└── marketplace.json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Step 1: package.json Configuration
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"name": "@myorg/my-skills",
|
|
39
|
+
"version": "1.0.0",
|
|
40
|
+
"vat": {
|
|
41
|
+
"skills": [
|
|
42
|
+
{
|
|
43
|
+
"name": "my-skill",
|
|
44
|
+
"source": "./skills/my-skill/SKILL.md",
|
|
45
|
+
"path": "./dist/skills/my-skill"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build:vat": "vat build",
|
|
51
|
+
"postinstall": "vat skills install --npm-postinstall || exit 0"
|
|
52
|
+
},
|
|
53
|
+
"files": ["dist", "README.md"],
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"registry": "https://registry.npmjs.org"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For private GitHub Packages registry:
|
|
61
|
+
```json
|
|
62
|
+
"publishConfig": {
|
|
63
|
+
"registry": "https://npm.pkg.github.com",
|
|
64
|
+
"access": "restricted"
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Users installing from GitHub Packages need `.npmrc` with the scope registry and auth token:
|
|
69
|
+
```
|
|
70
|
+
@myorg:registry=https://npm.pkg.github.com
|
|
71
|
+
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Step 2: vibe-agent-toolkit.config.yaml
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
version: 1
|
|
78
|
+
|
|
79
|
+
claude:
|
|
80
|
+
marketplaces:
|
|
81
|
+
my-marketplace: # org/publisher identity
|
|
82
|
+
owner:
|
|
83
|
+
name: My Organization
|
|
84
|
+
skills:
|
|
85
|
+
- "my-*" # glob matching skill names from vat.skills
|
|
86
|
+
plugins:
|
|
87
|
+
- name: my-plugin # installable unit
|
|
88
|
+
skills: "*" # all skills matched by this marketplace
|
|
89
|
+
output:
|
|
90
|
+
marketplaceJson: dist/.claude-plugin/marketplace.json
|
|
91
|
+
pluginsDir: dist/plugins/
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Naming convention:** marketplace = org identity (e.g. `acme`), plugin = this package
|
|
95
|
+
(e.g. `acme-tools`). Registers as `my-plugin@my-marketplace` in Claude's plugin registry.
|
|
96
|
+
|
|
97
|
+
### Multiple skills in one package
|
|
98
|
+
|
|
99
|
+
List all skills in `vat.skills` and use a glob in the marketplace config:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
"vat": {
|
|
103
|
+
"skills": [
|
|
104
|
+
{ "name": "my-linting", "source": "./skills/linting/SKILL.md", "path": "./dist/skills/my-linting" },
|
|
105
|
+
{ "name": "my-testing", "source": "./skills/testing/SKILL.md", "path": "./dist/skills/my-testing" }
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
skills:
|
|
112
|
+
- "my-*" # matches both my-linting and my-testing
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
All matched skills are bundled into the single plugin.
|
|
116
|
+
|
|
117
|
+
## Step 3: Build
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
vat build # skills phase then claude phase
|
|
121
|
+
vat verify # validates resources + skills + claude artifacts
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### What vat build does
|
|
125
|
+
|
|
126
|
+
Two phases, run in dependency order:
|
|
127
|
+
|
|
128
|
+
1. **`vat skills build`** — reads `package.json vat.skills`, compiles each SKILL.md + referenced resources into `dist/skills/<name>/`
|
|
129
|
+
2. **`vat claude build`** — reads `vibe-agent-toolkit.config.yaml claude:` section, wraps built skills into plugin structure, generates `marketplace.json`
|
|
130
|
+
|
|
131
|
+
Individual commands still work:
|
|
132
|
+
```bash
|
|
133
|
+
vat skills build # skills phase only
|
|
134
|
+
vat claude build # claude plugin phase only (requires skills already built)
|
|
135
|
+
vat claude verify # validate plugin artifacts only
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Step 4: Publish
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npm publish --tag next # RC/pre-release
|
|
142
|
+
npm publish # stable release
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Step 5: User Install
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
vat skills install npm:@myorg/my-skills
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Or via standard npm install (postinstall hook triggers automatically):
|
|
152
|
+
```bash
|
|
153
|
+
npm install -g @myorg/my-skills
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### How plugin installation works
|
|
157
|
+
|
|
158
|
+
When `npm install` runs the postinstall hook (`vat skills install --npm-postinstall`):
|
|
159
|
+
|
|
160
|
+
- VAT detects `dist/.claude-plugin/marketplace.json` in the installed package
|
|
161
|
+
- Installs via Claude's plugin system (NOT `~/.claude/skills/`)
|
|
162
|
+
- Writes to these locations:
|
|
163
|
+
1. `~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/` — plugin files
|
|
164
|
+
2. `~/.claude/plugins/known_marketplaces.json` — marketplace registry
|
|
165
|
+
3. `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` — version cache
|
|
166
|
+
4. `~/.claude/plugins/installed_plugins.json` — installation record
|
|
167
|
+
5. `~/.claude/settings.json` `enabledPlugins` — activates the plugin
|
|
168
|
+
|
|
169
|
+
If no `marketplace.json` exists (package wasn't built before publish): a guidance message is emitted and the hook exits 0. The publisher must run `vat build` and re-publish.
|
|
170
|
+
|
|
171
|
+
Skills are then available in Claude Code as `/plugin-name:skill-name`.
|
|
172
|
+
|
|
173
|
+
## Source-Layout Pattern
|
|
174
|
+
|
|
175
|
+
For projects where the repo itself contains `marketplace.json` and plugin structure (no build step needed):
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
claude:
|
|
179
|
+
marketplaces:
|
|
180
|
+
my-marketplace:
|
|
181
|
+
file: .claude-plugin/marketplace.json # VAT verifies but does NOT generate
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`vat verify` validates the existing file. `vat build` skips the claude phase for `file:` marketplaces.
|
|
185
|
+
|
|
186
|
+
## managed-settings.json Validation (Enterprise)
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
claude:
|
|
190
|
+
managedSettings: managed-settings.json
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
`vat verify` validates this file against the ManagedSettings schema. Catches typos and schema errors before deployment. Does NOT deploy the file — deployment is a separate concern.
|
|
194
|
+
|
|
195
|
+
## --target claude-web (ZIP Upload)
|
|
196
|
+
|
|
197
|
+
For uploading skills directly to `claude.ai/settings/capabilities`:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
vat skills package ./SKILL.md -o ./dist/ --target claude-web
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Produces a ZIP:
|
|
204
|
+
```
|
|
205
|
+
my-skill.zip
|
|
206
|
+
└── my-skill/
|
|
207
|
+
├── SKILL.md # skill definition (required)
|
|
208
|
+
├── scripts/ # executable code (.mjs, .py, .sh) — optional
|
|
209
|
+
├── references/ # markdown reference material — optional
|
|
210
|
+
└── assets/ # static data, templates, config — optional
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Configure source path mappings in `package.json`:
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"vat": {
|
|
217
|
+
"skills": [{
|
|
218
|
+
"name": "my-skill",
|
|
219
|
+
"packagingOptions": {
|
|
220
|
+
"claudeWebTarget": {
|
|
221
|
+
"scripts": ["./src/helpers/**/*.ts"],
|
|
222
|
+
"assets": ["./assets/**"]
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}]
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
TypeScript files in `scripts` are tree-shaken and compiled to standalone `.mjs`.
|
|
231
|
+
|
|
232
|
+
## Quick Reference
|
|
233
|
+
|
|
234
|
+
| Task | Command |
|
|
235
|
+
|---|---|
|
|
236
|
+
| Build everything | `vat build` |
|
|
237
|
+
| Verify everything | `vat verify` |
|
|
238
|
+
| Build skills only | `vat skills build` |
|
|
239
|
+
| Build claude artifacts only | `vat claude build` |
|
|
240
|
+
| Verify claude artifacts only | `vat claude verify` |
|
|
241
|
+
| Install from npm | `vat skills install npm:@org/pkg` |
|
|
242
|
+
| Package for claude.ai upload | `vat skills package ./SKILL.md -o ./dist/ --target claude-web` |
|
|
@@ -33,8 +33,11 @@ non-TypeScript/JavaScript projects, or cases where you need deep framework-speci
|
|
|
33
33
|
| `packagingOptions` (linkFollowDepth, excludeReferencesFromBundle) | `vibe-agent-toolkit:agent-authoring` |
|
|
34
34
|
| Resource collections, frontmatter schema validation | `vibe-agent-toolkit:resources` |
|
|
35
35
|
| `vat resources validate`, collection config | `vibe-agent-toolkit:resources` |
|
|
36
|
-
|
|
|
37
|
-
|
|
|
36
|
+
| Setting up `vat build` + `vat claude build` for a project | `vibe-agent-toolkit:skills-distribution` |
|
|
37
|
+
| Configuring `claude:` section in vibe-agent-toolkit.config.yaml | `vibe-agent-toolkit:skills-distribution` |
|
|
38
|
+
| npm publishing with plugin postinstall | `vibe-agent-toolkit:skills-distribution` |
|
|
39
|
+
| `vat build` / `vat verify` orchestration | `vibe-agent-toolkit:skills-distribution` |
|
|
40
|
+
| `--target claude-web` ZIP format | `vibe-agent-toolkit:skills-distribution` |
|
|
38
41
|
| `vat audit`, `--compat`, CI validation | `vibe-agent-toolkit:audit` |
|
|
39
42
|
| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | `vibe-agent-toolkit:debugging` |
|
|
40
43
|
|
|
@@ -55,11 +58,19 @@ Four patterns cover most use cases. For full code examples, see `vibe-agent-tool
|
|
|
55
58
|
# Install VAT CLI globally
|
|
56
59
|
npm install -g vibe-agent-toolkit
|
|
57
60
|
|
|
61
|
+
# Top-level orchestration
|
|
62
|
+
vat build # build all artifacts (skills then claude plugins)
|
|
63
|
+
vat verify # verify all artifacts (resources, skills, claude)
|
|
64
|
+
|
|
65
|
+
# Claude plugin commands
|
|
66
|
+
vat claude build # generate plugin artifacts from built skills
|
|
67
|
+
vat claude verify # validate plugin artifacts
|
|
68
|
+
|
|
58
69
|
# Skills
|
|
59
70
|
vat skills list # list skills in current project
|
|
60
71
|
vat skills list --user # list user-installed skills
|
|
61
|
-
vat skills install npm:@org/my-skills # install from npm
|
|
62
|
-
vat skills build # build skills
|
|
72
|
+
vat skills install npm:@org/my-skills # install from npm (routes through plugin system)
|
|
73
|
+
vat skills build # build portable skills only
|
|
63
74
|
vat skills validate # validate skill quality
|
|
64
75
|
|
|
65
76
|
# Resources
|
|
@@ -141,14 +152,16 @@ vat skills build # package for distribution
|
|
|
141
152
|
```bash
|
|
142
153
|
vat skills install npm:@vibe-agent-toolkit/vat-cat-agents
|
|
143
154
|
vat skills list --user
|
|
144
|
-
#
|
|
155
|
+
# Plugin-aware packages register in Claude's plugin system
|
|
156
|
+
# Skills are invoked as /plugin-name:skill-name in Claude Code
|
|
145
157
|
```
|
|
146
158
|
|
|
147
159
|
**Build and publish your own skill package:**
|
|
148
160
|
```bash
|
|
149
|
-
#
|
|
150
|
-
vat
|
|
151
|
-
|
|
161
|
+
# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:
|
|
162
|
+
vat build # builds skills + claude plugin artifacts
|
|
163
|
+
vat verify # validates everything
|
|
164
|
+
npm publish # publishes to npm (postinstall registers the plugin)
|
|
152
165
|
# Users install with: vat skills install npm:@myorg/my-skills
|
|
153
166
|
```
|
|
154
167
|
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe-agent-toolkit:skills-distribution
|
|
3
|
+
description: Use when setting up vat build, configuring plugin distribution for the Claude ecosystem (marketplace, plugins, managed settings), npm publishing with postinstall hooks, or vat verify orchestration. Covers the full pipeline from skill source to installed plugin.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VAT Distribution: Build, Publish & Install
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
VAT distributes skills as **Claude plugins** via npm packages. The pipeline:
|
|
11
|
+
|
|
12
|
+
1. `vat build` compiles SKILL.md sources into plugin artifacts
|
|
13
|
+
2. `npm publish` pushes the package to a registry
|
|
14
|
+
3. `npm install` triggers a postinstall hook that registers the plugin in Claude's plugin system
|
|
15
|
+
|
|
16
|
+
Skills installed this way appear in Claude Code as `/plugin-name:skill-name`.
|
|
17
|
+
|
|
18
|
+
## Project Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
my-project/
|
|
22
|
+
├── package.json ← vat.skills + postinstall hook + publishConfig
|
|
23
|
+
├── vibe-agent-toolkit.config.yaml ← claude: marketplace config
|
|
24
|
+
├── skills/
|
|
25
|
+
│ └── my-skill/
|
|
26
|
+
│ └── SKILL.md
|
|
27
|
+
└── dist/ ← generated by vat build
|
|
28
|
+
├── skills/my-skill/
|
|
29
|
+
├── plugins/my-plugin/
|
|
30
|
+
└── .claude-plugin/
|
|
31
|
+
└── marketplace.json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Step 1: package.json Configuration
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"name": "@myorg/my-skills",
|
|
39
|
+
"version": "1.0.0",
|
|
40
|
+
"vat": {
|
|
41
|
+
"skills": [
|
|
42
|
+
{
|
|
43
|
+
"name": "my-skill",
|
|
44
|
+
"source": "./skills/my-skill/SKILL.md",
|
|
45
|
+
"path": "./dist/skills/my-skill"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build:vat": "vat build",
|
|
51
|
+
"postinstall": "vat skills install --npm-postinstall || exit 0"
|
|
52
|
+
},
|
|
53
|
+
"files": ["dist", "README.md"],
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"registry": "https://registry.npmjs.org"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For private GitHub Packages registry:
|
|
61
|
+
```json
|
|
62
|
+
"publishConfig": {
|
|
63
|
+
"registry": "https://npm.pkg.github.com",
|
|
64
|
+
"access": "restricted"
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Users installing from GitHub Packages need `.npmrc` with the scope registry and auth token:
|
|
69
|
+
```
|
|
70
|
+
@myorg:registry=https://npm.pkg.github.com
|
|
71
|
+
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Step 2: vibe-agent-toolkit.config.yaml
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
version: 1
|
|
78
|
+
|
|
79
|
+
claude:
|
|
80
|
+
marketplaces:
|
|
81
|
+
my-marketplace: # org/publisher identity
|
|
82
|
+
owner:
|
|
83
|
+
name: My Organization
|
|
84
|
+
skills:
|
|
85
|
+
- "my-*" # glob matching skill names from vat.skills
|
|
86
|
+
plugins:
|
|
87
|
+
- name: my-plugin # installable unit
|
|
88
|
+
skills: "*" # all skills matched by this marketplace
|
|
89
|
+
output:
|
|
90
|
+
marketplaceJson: dist/.claude-plugin/marketplace.json
|
|
91
|
+
pluginsDir: dist/plugins/
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Naming convention:** marketplace = org identity (e.g. `acme`), plugin = this package
|
|
95
|
+
(e.g. `acme-tools`). Registers as `my-plugin@my-marketplace` in Claude's plugin registry.
|
|
96
|
+
|
|
97
|
+
### Multiple skills in one package
|
|
98
|
+
|
|
99
|
+
List all skills in `vat.skills` and use a glob in the marketplace config:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
"vat": {
|
|
103
|
+
"skills": [
|
|
104
|
+
{ "name": "my-linting", "source": "./skills/linting/SKILL.md", "path": "./dist/skills/my-linting" },
|
|
105
|
+
{ "name": "my-testing", "source": "./skills/testing/SKILL.md", "path": "./dist/skills/my-testing" }
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
skills:
|
|
112
|
+
- "my-*" # matches both my-linting and my-testing
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
All matched skills are bundled into the single plugin.
|
|
116
|
+
|
|
117
|
+
## Step 3: Build
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
vat build # skills phase then claude phase
|
|
121
|
+
vat verify # validates resources + skills + claude artifacts
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### What vat build does
|
|
125
|
+
|
|
126
|
+
Two phases, run in dependency order:
|
|
127
|
+
|
|
128
|
+
1. **`vat skills build`** — reads `package.json vat.skills`, compiles each SKILL.md + referenced resources into `dist/skills/<name>/`
|
|
129
|
+
2. **`vat claude build`** — reads `vibe-agent-toolkit.config.yaml claude:` section, wraps built skills into plugin structure, generates `marketplace.json`
|
|
130
|
+
|
|
131
|
+
Individual commands still work:
|
|
132
|
+
```bash
|
|
133
|
+
vat skills build # skills phase only
|
|
134
|
+
vat claude build # claude plugin phase only (requires skills already built)
|
|
135
|
+
vat claude verify # validate plugin artifacts only
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Step 4: Publish
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npm publish --tag next # RC/pre-release
|
|
142
|
+
npm publish # stable release
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Step 5: User Install
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
vat skills install npm:@myorg/my-skills
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Or via standard npm install (postinstall hook triggers automatically):
|
|
152
|
+
```bash
|
|
153
|
+
npm install -g @myorg/my-skills
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### How plugin installation works
|
|
157
|
+
|
|
158
|
+
When `npm install` runs the postinstall hook (`vat skills install --npm-postinstall`):
|
|
159
|
+
|
|
160
|
+
- VAT detects `dist/.claude-plugin/marketplace.json` in the installed package
|
|
161
|
+
- Installs via Claude's plugin system (NOT `~/.claude/skills/`)
|
|
162
|
+
- Writes to these locations:
|
|
163
|
+
1. `~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/` — plugin files
|
|
164
|
+
2. `~/.claude/plugins/known_marketplaces.json` — marketplace registry
|
|
165
|
+
3. `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` — version cache
|
|
166
|
+
4. `~/.claude/plugins/installed_plugins.json` — installation record
|
|
167
|
+
5. `~/.claude/settings.json` `enabledPlugins` — activates the plugin
|
|
168
|
+
|
|
169
|
+
If no `marketplace.json` exists (package wasn't built before publish): a guidance message is emitted and the hook exits 0. The publisher must run `vat build` and re-publish.
|
|
170
|
+
|
|
171
|
+
Skills are then available in Claude Code as `/plugin-name:skill-name`.
|
|
172
|
+
|
|
173
|
+
## Source-Layout Pattern
|
|
174
|
+
|
|
175
|
+
For projects where the repo itself contains `marketplace.json` and plugin structure (no build step needed):
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
claude:
|
|
179
|
+
marketplaces:
|
|
180
|
+
my-marketplace:
|
|
181
|
+
file: .claude-plugin/marketplace.json # VAT verifies but does NOT generate
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`vat verify` validates the existing file. `vat build` skips the claude phase for `file:` marketplaces.
|
|
185
|
+
|
|
186
|
+
## managed-settings.json Validation (Enterprise)
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
claude:
|
|
190
|
+
managedSettings: managed-settings.json
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
`vat verify` validates this file against the ManagedSettings schema. Catches typos and schema errors before deployment. Does NOT deploy the file — deployment is a separate concern.
|
|
194
|
+
|
|
195
|
+
## --target claude-web (ZIP Upload)
|
|
196
|
+
|
|
197
|
+
For uploading skills directly to `claude.ai/settings/capabilities`:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
vat skills package ./SKILL.md -o ./dist/ --target claude-web
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Produces a ZIP:
|
|
204
|
+
```
|
|
205
|
+
my-skill.zip
|
|
206
|
+
└── my-skill/
|
|
207
|
+
├── SKILL.md # skill definition (required)
|
|
208
|
+
├── scripts/ # executable code (.mjs, .py, .sh) — optional
|
|
209
|
+
├── references/ # markdown reference material — optional
|
|
210
|
+
└── assets/ # static data, templates, config — optional
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Configure source path mappings in `package.json`:
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"vat": {
|
|
217
|
+
"skills": [{
|
|
218
|
+
"name": "my-skill",
|
|
219
|
+
"packagingOptions": {
|
|
220
|
+
"claudeWebTarget": {
|
|
221
|
+
"scripts": ["./src/helpers/**/*.ts"],
|
|
222
|
+
"assets": ["./assets/**"]
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}]
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
TypeScript files in `scripts` are tree-shaken and compiled to standalone `.mjs`.
|
|
231
|
+
|
|
232
|
+
## Quick Reference
|
|
233
|
+
|
|
234
|
+
| Task | Command |
|
|
235
|
+
|---|---|
|
|
236
|
+
| Build everything | `vat build` |
|
|
237
|
+
| Verify everything | `vat verify` |
|
|
238
|
+
| Build skills only | `vat skills build` |
|
|
239
|
+
| Build claude artifacts only | `vat claude build` |
|
|
240
|
+
| Verify claude artifacts only | `vat claude verify` |
|
|
241
|
+
| Install from npm | `vat skills install npm:@org/pkg` |
|
|
242
|
+
| Package for claude.ai upload | `vat skills package ./SKILL.md -o ./dist/ --target claude-web` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/vat-development-agents",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16-rc.1",
|
|
4
4
|
"description": "VAT development agents - dogfooding the vibe-agent-toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"path": "./dist/skills/vibe-agent-toolkit-resources"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"name": "vibe-agent-toolkit:distribution",
|
|
31
|
-
"source": "./resources/skills/vat-distribution.md",
|
|
32
|
-
"path": "./dist/skills/vibe-agent-toolkit-distribution"
|
|
30
|
+
"name": "vibe-agent-toolkit:skills-distribution",
|
|
31
|
+
"source": "./resources/skills/vat-skills-distribution.md",
|
|
32
|
+
"path": "./dist/skills/vibe-agent-toolkit-skills-distribution"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"name": "vibe-agent-toolkit:agent-authoring",
|
|
@@ -87,12 +87,12 @@
|
|
|
87
87
|
"postinstall": "vat skills install --npm-postinstall || exit 0"
|
|
88
88
|
},
|
|
89
89
|
"dependencies": {
|
|
90
|
-
"@vibe-agent-toolkit/agent-schema": "0.1.
|
|
90
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.16-rc.1",
|
|
91
91
|
"yaml": "^2.8.2"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
94
|
"@types/node": "^25.0.3",
|
|
95
|
-
"@vibe-agent-toolkit/resource-compiler": "0.1.
|
|
95
|
+
"@vibe-agent-toolkit/resource-compiler": "0.1.16-rc.1",
|
|
96
96
|
"ts-patch": "^3.2.1",
|
|
97
97
|
"typescript": "^5.7.3"
|
|
98
98
|
},
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated TypeScript declarations - DO NOT EDIT
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export interface Fragment {
|
|
6
|
-
readonly header: string;
|
|
7
|
-
readonly body: string;
|
|
8
|
-
readonly text: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const meta: {
|
|
12
|
-
readonly name: string;
|
|
13
|
-
readonly description: string;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const text: string;
|
|
17
|
-
|
|
18
|
-
export const fragments: {
|
|
19
|
-
readonly packagingASkill: Fragment;
|
|
20
|
-
readonly -TargetClaudeWeb: Fragment;
|
|
21
|
-
readonly sideloadingPrivateDistribution: Fragment;
|
|
22
|
-
readonly npmDistribution: Fragment;
|
|
23
|
-
readonly privateEnterpriseDistribution: Fragment;
|
|
24
|
-
readonly devModeSymlinks: Fragment;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export type FragmentName = keyof typeof fragments;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated from markdown file - DO NOT EDIT
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export const meta = {
|
|
6
|
-
name: "vibe-agent-toolkit:distribution",
|
|
7
|
-
description: "Use when packaging, publishing, or sideloading VAT skills. Covers vat skills package (including --target claude-web), vat install for sideloading, npm publishing, and private distribution patterns."
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export const text = "\n# VAT Distribution: Packaging & Sideloading\n\n## Packaging a Skill\n\n\`\`\`bash\n# Standard build (Claude Code skills dir format)\nvat skills package ./SKILL.md -o ./dist/skills/\n\n# Claude.ai web upload format (scripts/, references/, assets/)\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\n# Dry run to preview what gets packaged\nvat skills package ./SKILL.md -o ./dist/ --dry-run\n\`\`\`\n\n## --target claude-web\n\nProduces a ZIP compatible with \`claude.ai/settings/capabilities\` upload.\n\nDirectory structure:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure which source paths map to each directory in \`package.json\`:\n\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\` —\nno build toolchain required at install time.\n\n## Sideloading (Private Distribution)\n\nWhen your project isn\'t on a public marketplace, use \`vat install\` to sideload:\n\n\`\`\`bash\n# Sideload an agent skill\nvat install ./my-skill-dir/ # → ~/.claude/skills/\n\n# Sideload an entire Claude plugin\nvat install ./my-plugin/ # → ~/.claude/plugins/\n\n# Force overwrite existing installation\nvat install ./my-skill-dir/ --force\n\`\`\`\n\nType is auto-detected from directory structure:\n- Has \`SKILL.md\` at root → \`agent-skill\`\n- Has \`.claude-plugin/plugin.json\` → \`claude-plugin\`\n- Has \`.claude-plugin/marketplace.json\` → \`claude-marketplace\`\n- Use \`--type <type>\` to override detection\n\n## npm Distribution\n\nAdd to \`package.json\`:\n\n\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"private\": false,\n \"license\": \"MIT\",\n \"vat\": {\n \"skills\": [...]\n },\n \"scripts\": {\n \"postinstall\": \"vat skills install --npm-postinstall\"\n }\n}\n\`\`\`\n\nWhen users run \`npm install -g @myorg/my-skills\`, the postinstall hook automatically\ncopies skills to \`~/.claude/skills/\`. No manual steps.\n\n## Private Enterprise Distribution\n\nFor private repos (not published to npm):\n\n1. Tag a release on GitHub/internal Git\n2. Attach the skill ZIP as a release asset\n3. Users download and sideload:\n \`\`\`bash\n vat install ./downloaded-skill.zip\n \`\`\`\n\nOr use a private npm registry (GitHub Packages, Artifactory):\n\`\`\`bash\nnpm install -g @myorg/my-skills # pulls from private registry, postinstall triggers\n\`\`\`\n\n## Dev Mode (Symlinks)\n\nDuring active development, use symlinks so rebuilds are instant:\n\n\`\`\`bash\nvat skills install --dev # symlinks dist/ → ~/.claude/skills/\nvat skills install --build # builds first, then symlinks\n\`\`\`\n\nAfter each rebuild: \`/reload-skills\` in Claude Code.\n";
|
|
11
|
-
|
|
12
|
-
export const fragments = {
|
|
13
|
-
packagingASkill: {
|
|
14
|
-
header: "## Packaging a Skill",
|
|
15
|
-
body: "\`\`\`bash\n# Standard build (Claude Code skills dir format)\nvat skills package ./SKILL.md -o ./dist/skills/\n\n# Claude.ai web upload format (scripts/, references/, assets/)\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\n# Dry run to preview what gets packaged\nvat skills package ./SKILL.md -o ./dist/ --dry-run\n\`\`\`",
|
|
16
|
-
text: "## Packaging a Skill\n\n\`\`\`bash\n# Standard build (Claude Code skills dir format)\nvat skills package ./SKILL.md -o ./dist/skills/\n\n# Claude.ai web upload format (scripts/, references/, assets/)\nvat skills package ./SKILL.md -o ./dist/ --target claude-web\n\n# Dry run to preview what gets packaged\nvat skills package ./SKILL.md -o ./dist/ --dry-run\n\`\`\`"
|
|
17
|
-
},
|
|
18
|
-
-TargetClaudeWeb: {
|
|
19
|
-
header: "## --target claude-web",
|
|
20
|
-
body: "Produces a ZIP compatible with \`claude.ai/settings/capabilities\` upload.\n\nDirectory structure:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure which source paths map to each directory in \`package.json\`:\n\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\` —\nno build toolchain required at install time.",
|
|
21
|
-
text: "## --target claude-web\n\nProduces a ZIP compatible with \`claude.ai/settings/capabilities\` upload.\n\nDirectory structure:\n\`\`\`\nmy-skill.zip\n└── my-skill/\n ├── SKILL.md # skill definition (required)\n ├── scripts/ # executable code (.mjs, .py, .sh) — optional\n ├── references/ # markdown reference material — optional\n └── assets/ # static data, templates, config — optional\n\`\`\`\n\nConfigure which source paths map to each directory in \`package.json\`:\n\n\`\`\`json\n{\n \"vat\": {\n \"skills\": [{\n \"name\": \"my-skill\",\n \"packagingOptions\": {\n \"claudeWebTarget\": {\n \"scripts\": [\"./src/helpers/**/*.ts\"],\n \"assets\": [\"./assets/**\"]\n }\n }\n }]\n }\n}\n\`\`\`\n\nTypeScript files in \`scripts\` are tree-shaken and compiled to standalone \`.mjs\` —\nno build toolchain required at install time."
|
|
22
|
-
},
|
|
23
|
-
sideloadingPrivateDistribution: {
|
|
24
|
-
header: "## Sideloading (Private Distribution)",
|
|
25
|
-
body: "When your project isn\'t on a public marketplace, use \`vat install\` to sideload:\n\n\`\`\`bash\n# Sideload an agent skill\nvat install ./my-skill-dir/ # → ~/.claude/skills/\n\n# Sideload an entire Claude plugin\nvat install ./my-plugin/ # → ~/.claude/plugins/\n\n# Force overwrite existing installation\nvat install ./my-skill-dir/ --force\n\`\`\`\n\nType is auto-detected from directory structure:\n- Has \`SKILL.md\` at root → \`agent-skill\`\n- Has \`.claude-plugin/plugin.json\` → \`claude-plugin\`\n- Has \`.claude-plugin/marketplace.json\` → \`claude-marketplace\`\n- Use \`--type <type>\` to override detection",
|
|
26
|
-
text: "## Sideloading (Private Distribution)\n\nWhen your project isn\'t on a public marketplace, use \`vat install\` to sideload:\n\n\`\`\`bash\n# Sideload an agent skill\nvat install ./my-skill-dir/ # → ~/.claude/skills/\n\n# Sideload an entire Claude plugin\nvat install ./my-plugin/ # → ~/.claude/plugins/\n\n# Force overwrite existing installation\nvat install ./my-skill-dir/ --force\n\`\`\`\n\nType is auto-detected from directory structure:\n- Has \`SKILL.md\` at root → \`agent-skill\`\n- Has \`.claude-plugin/plugin.json\` → \`claude-plugin\`\n- Has \`.claude-plugin/marketplace.json\` → \`claude-marketplace\`\n- Use \`--type <type>\` to override detection"
|
|
27
|
-
},
|
|
28
|
-
npmDistribution: {
|
|
29
|
-
header: "## npm Distribution",
|
|
30
|
-
body: "Add to \`package.json\`:\n\n\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"private\": false,\n \"license\": \"MIT\",\n \"vat\": {\n \"skills\": [...]\n },\n \"scripts\": {\n \"postinstall\": \"vat skills install --npm-postinstall\"\n }\n}\n\`\`\`\n\nWhen users run \`npm install -g @myorg/my-skills\`, the postinstall hook automatically\ncopies skills to \`~/.claude/skills/\`. No manual steps.",
|
|
31
|
-
text: "## npm Distribution\n\nAdd to \`package.json\`:\n\n\`\`\`json\n{\n \"name\": \"@myorg/my-skills\",\n \"version\": \"1.0.0\",\n \"private\": false,\n \"license\": \"MIT\",\n \"vat\": {\n \"skills\": [...]\n },\n \"scripts\": {\n \"postinstall\": \"vat skills install --npm-postinstall\"\n }\n}\n\`\`\`\n\nWhen users run \`npm install -g @myorg/my-skills\`, the postinstall hook automatically\ncopies skills to \`~/.claude/skills/\`. No manual steps."
|
|
32
|
-
},
|
|
33
|
-
privateEnterpriseDistribution: {
|
|
34
|
-
header: "## Private Enterprise Distribution",
|
|
35
|
-
body: "For private repos (not published to npm):\n\n1. Tag a release on GitHub/internal Git\n2. Attach the skill ZIP as a release asset\n3. Users download and sideload:\n \`\`\`bash\n vat install ./downloaded-skill.zip\n \`\`\`\n\nOr use a private npm registry (GitHub Packages, Artifactory):\n\`\`\`bash\nnpm install -g @myorg/my-skills # pulls from private registry, postinstall triggers\n\`\`\`",
|
|
36
|
-
text: "## Private Enterprise Distribution\n\nFor private repos (not published to npm):\n\n1. Tag a release on GitHub/internal Git\n2. Attach the skill ZIP as a release asset\n3. Users download and sideload:\n \`\`\`bash\n vat install ./downloaded-skill.zip\n \`\`\`\n\nOr use a private npm registry (GitHub Packages, Artifactory):\n\`\`\`bash\nnpm install -g @myorg/my-skills # pulls from private registry, postinstall triggers\n\`\`\`"
|
|
37
|
-
},
|
|
38
|
-
devModeSymlinks: {
|
|
39
|
-
header: "## Dev Mode (Symlinks)",
|
|
40
|
-
body: "During active development, use symlinks so rebuilds are instant:\n\n\`\`\`bash\nvat skills install --dev # symlinks dist/ → ~/.claude/skills/\nvat skills install --build # builds first, then symlinks\n\`\`\`\n\nAfter each rebuild: \`/reload-skills\` in Claude Code.",
|
|
41
|
-
text: "## Dev Mode (Symlinks)\n\nDuring active development, use symlinks so rebuilds are instant:\n\n\`\`\`bash\nvat skills install --dev # symlinks dist/ → ~/.claude/skills/\nvat skills install --build # builds first, then symlinks\n\`\`\`\n\nAfter each rebuild: \`/reload-skills\` in Claude Code."
|
|
42
|
-
}
|
|
43
|
-
};
|
package/dist/plugins/vat-development-agents/skills/vibe-agent-toolkit__distribution/SKILL.md
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vibe-agent-toolkit:distribution
|
|
3
|
-
description: Use when packaging, publishing, or sideloading VAT skills. Covers vat skills package (including --target claude-web), vat install for sideloading, npm publishing, and private distribution patterns.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# VAT Distribution: Packaging & Sideloading
|
|
7
|
-
|
|
8
|
-
## Packaging a Skill
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
# Standard build (Claude Code skills dir format)
|
|
12
|
-
vat skills package ./SKILL.md -o ./dist/skills/
|
|
13
|
-
|
|
14
|
-
# Claude.ai web upload format (scripts/, references/, assets/)
|
|
15
|
-
vat skills package ./SKILL.md -o ./dist/ --target claude-web
|
|
16
|
-
|
|
17
|
-
# Dry run to preview what gets packaged
|
|
18
|
-
vat skills package ./SKILL.md -o ./dist/ --dry-run
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## --target claude-web
|
|
22
|
-
|
|
23
|
-
Produces a ZIP compatible with `claude.ai/settings/capabilities` upload.
|
|
24
|
-
|
|
25
|
-
Directory structure:
|
|
26
|
-
```
|
|
27
|
-
my-skill.zip
|
|
28
|
-
└── my-skill/
|
|
29
|
-
├── SKILL.md # skill definition (required)
|
|
30
|
-
├── scripts/ # executable code (.mjs, .py, .sh) — optional
|
|
31
|
-
├── references/ # markdown reference material — optional
|
|
32
|
-
└── assets/ # static data, templates, config — optional
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Configure which source paths map to each directory in `package.json`:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{
|
|
39
|
-
"vat": {
|
|
40
|
-
"skills": [{
|
|
41
|
-
"name": "my-skill",
|
|
42
|
-
"packagingOptions": {
|
|
43
|
-
"claudeWebTarget": {
|
|
44
|
-
"scripts": ["./src/helpers/**/*.ts"],
|
|
45
|
-
"assets": ["./assets/**"]
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
TypeScript files in `scripts` are tree-shaken and compiled to standalone `.mjs` —
|
|
54
|
-
no build toolchain required at install time.
|
|
55
|
-
|
|
56
|
-
## Sideloading (Private Distribution)
|
|
57
|
-
|
|
58
|
-
When your project isn't on a public marketplace, use `vat install` to sideload:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Sideload an agent skill
|
|
62
|
-
vat install ./my-skill-dir/ # → ~/.claude/skills/
|
|
63
|
-
|
|
64
|
-
# Sideload an entire Claude plugin
|
|
65
|
-
vat install ./my-plugin/ # → ~/.claude/plugins/
|
|
66
|
-
|
|
67
|
-
# Force overwrite existing installation
|
|
68
|
-
vat install ./my-skill-dir/ --force
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Type is auto-detected from directory structure:
|
|
72
|
-
- Has `SKILL.md` at root → `agent-skill`
|
|
73
|
-
- Has `.claude-plugin/plugin.json` → `claude-plugin`
|
|
74
|
-
- Has `.claude-plugin/marketplace.json` → `claude-marketplace`
|
|
75
|
-
- Use `--type <type>` to override detection
|
|
76
|
-
|
|
77
|
-
## npm Distribution
|
|
78
|
-
|
|
79
|
-
Add to `package.json`:
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"name": "@myorg/my-skills",
|
|
84
|
-
"version": "1.0.0",
|
|
85
|
-
"private": false,
|
|
86
|
-
"license": "MIT",
|
|
87
|
-
"vat": {
|
|
88
|
-
"skills": [...]
|
|
89
|
-
},
|
|
90
|
-
"scripts": {
|
|
91
|
-
"postinstall": "vat skills install --npm-postinstall"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
When users run `npm install -g @myorg/my-skills`, the postinstall hook automatically
|
|
97
|
-
copies skills to `~/.claude/skills/`. No manual steps.
|
|
98
|
-
|
|
99
|
-
## Private Enterprise Distribution
|
|
100
|
-
|
|
101
|
-
For private repos (not published to npm):
|
|
102
|
-
|
|
103
|
-
1. Tag a release on GitHub/internal Git
|
|
104
|
-
2. Attach the skill ZIP as a release asset
|
|
105
|
-
3. Users download and sideload:
|
|
106
|
-
```bash
|
|
107
|
-
vat install ./downloaded-skill.zip
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Or use a private npm registry (GitHub Packages, Artifactory):
|
|
111
|
-
```bash
|
|
112
|
-
npm install -g @myorg/my-skills # pulls from private registry, postinstall triggers
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Dev Mode (Symlinks)
|
|
116
|
-
|
|
117
|
-
During active development, use symlinks so rebuilds are instant:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
vat skills install --dev # symlinks dist/ → ~/.claude/skills/
|
|
121
|
-
vat skills install --build # builds first, then symlinks
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
After each rebuild: `/reload-skills` in Claude Code.
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vibe-agent-toolkit:distribution
|
|
3
|
-
description: Use when packaging, publishing, or sideloading VAT skills. Covers vat skills package (including --target claude-web), vat install for sideloading, npm publishing, and private distribution patterns.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# VAT Distribution: Packaging & Sideloading
|
|
7
|
-
|
|
8
|
-
## Packaging a Skill
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
# Standard build (Claude Code skills dir format)
|
|
12
|
-
vat skills package ./SKILL.md -o ./dist/skills/
|
|
13
|
-
|
|
14
|
-
# Claude.ai web upload format (scripts/, references/, assets/)
|
|
15
|
-
vat skills package ./SKILL.md -o ./dist/ --target claude-web
|
|
16
|
-
|
|
17
|
-
# Dry run to preview what gets packaged
|
|
18
|
-
vat skills package ./SKILL.md -o ./dist/ --dry-run
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## --target claude-web
|
|
22
|
-
|
|
23
|
-
Produces a ZIP compatible with `claude.ai/settings/capabilities` upload.
|
|
24
|
-
|
|
25
|
-
Directory structure:
|
|
26
|
-
```
|
|
27
|
-
my-skill.zip
|
|
28
|
-
└── my-skill/
|
|
29
|
-
├── SKILL.md # skill definition (required)
|
|
30
|
-
├── scripts/ # executable code (.mjs, .py, .sh) — optional
|
|
31
|
-
├── references/ # markdown reference material — optional
|
|
32
|
-
└── assets/ # static data, templates, config — optional
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Configure which source paths map to each directory in `package.json`:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{
|
|
39
|
-
"vat": {
|
|
40
|
-
"skills": [{
|
|
41
|
-
"name": "my-skill",
|
|
42
|
-
"packagingOptions": {
|
|
43
|
-
"claudeWebTarget": {
|
|
44
|
-
"scripts": ["./src/helpers/**/*.ts"],
|
|
45
|
-
"assets": ["./assets/**"]
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
TypeScript files in `scripts` are tree-shaken and compiled to standalone `.mjs` —
|
|
54
|
-
no build toolchain required at install time.
|
|
55
|
-
|
|
56
|
-
## Sideloading (Private Distribution)
|
|
57
|
-
|
|
58
|
-
When your project isn't on a public marketplace, use `vat install` to sideload:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Sideload an agent skill
|
|
62
|
-
vat install ./my-skill-dir/ # → ~/.claude/skills/
|
|
63
|
-
|
|
64
|
-
# Sideload an entire Claude plugin
|
|
65
|
-
vat install ./my-plugin/ # → ~/.claude/plugins/
|
|
66
|
-
|
|
67
|
-
# Force overwrite existing installation
|
|
68
|
-
vat install ./my-skill-dir/ --force
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Type is auto-detected from directory structure:
|
|
72
|
-
- Has `SKILL.md` at root → `agent-skill`
|
|
73
|
-
- Has `.claude-plugin/plugin.json` → `claude-plugin`
|
|
74
|
-
- Has `.claude-plugin/marketplace.json` → `claude-marketplace`
|
|
75
|
-
- Use `--type <type>` to override detection
|
|
76
|
-
|
|
77
|
-
## npm Distribution
|
|
78
|
-
|
|
79
|
-
Add to `package.json`:
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"name": "@myorg/my-skills",
|
|
84
|
-
"version": "1.0.0",
|
|
85
|
-
"private": false,
|
|
86
|
-
"license": "MIT",
|
|
87
|
-
"vat": {
|
|
88
|
-
"skills": [...]
|
|
89
|
-
},
|
|
90
|
-
"scripts": {
|
|
91
|
-
"postinstall": "vat skills install --npm-postinstall"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
When users run `npm install -g @myorg/my-skills`, the postinstall hook automatically
|
|
97
|
-
copies skills to `~/.claude/skills/`. No manual steps.
|
|
98
|
-
|
|
99
|
-
## Private Enterprise Distribution
|
|
100
|
-
|
|
101
|
-
For private repos (not published to npm):
|
|
102
|
-
|
|
103
|
-
1. Tag a release on GitHub/internal Git
|
|
104
|
-
2. Attach the skill ZIP as a release asset
|
|
105
|
-
3. Users download and sideload:
|
|
106
|
-
```bash
|
|
107
|
-
vat install ./downloaded-skill.zip
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Or use a private npm registry (GitHub Packages, Artifactory):
|
|
111
|
-
```bash
|
|
112
|
-
npm install -g @myorg/my-skills # pulls from private registry, postinstall triggers
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Dev Mode (Symlinks)
|
|
116
|
-
|
|
117
|
-
During active development, use symlinks so rebuilds are instant:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
vat skills install --dev # symlinks dist/ → ~/.claude/skills/
|
|
121
|
-
vat skills install --build # builds first, then symlinks
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
After each rebuild: `/reload-skills` in Claude Code.
|