@vibe-agent-toolkit/vat-development-agents 0.1.32-rc.4 → 0.1.32
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/plugins/marketplaces/vat-skills/CHANGELOG.md +37 -4
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/.claude-plugin/plugin.json +1 -1
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-adoption-and-configuration/SKILL.md +179 -0
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{authoring → vat-agent-authoring}/SKILL.md +16 -134
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{audit → vat-audit}/SKILL.md +1 -1
- package/dist/{skills/org-admin → .claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-enterprise-org}/SKILL.md +3 -3
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{resources → vat-knowledge-resources}/SKILL.md +1 -1
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-rag/SKILL.md +104 -0
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-skill-authoring/SKILL.md +156 -0
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{distribution → vat-skill-distribution}/SKILL.md +3 -2
- package/dist/{skills/authoring/resources/skill-quality-checklist.md → .claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-skill-review/SKILL.md} +16 -1
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vibe-agent-toolkit/SKILL.md +40 -189
- package/dist/generated/resources/skills/CLAUDE.d.ts +28 -0
- package/dist/generated/resources/skills/CLAUDE.js +60 -0
- package/dist/generated/resources/skills/SKILL.d.ts +2 -10
- package/dist/generated/resources/skills/SKILL.js +14 -54
- package/dist/generated/resources/skills/vat-adoption-and-configuration.d.ts +29 -0
- package/dist/generated/resources/skills/vat-adoption-and-configuration.js +53 -0
- package/dist/generated/resources/skills/vat-agent-authoring.d.ts +0 -2
- package/dist/generated/resources/skills/vat-agent-authoring.js +9 -19
- package/dist/generated/resources/skills/vat-audit.js +1 -1
- package/dist/generated/resources/skills/{vat-claude-org-admin.js → vat-enterprise-org.js} +3 -3
- package/dist/generated/resources/skills/{vat-resources.js → vat-knowledge-resources.js} +1 -1
- package/dist/generated/resources/skills/{vat-install-architecture.d.ts → vat-rag.d.ts} +6 -7
- package/dist/generated/resources/skills/vat-rag.js +43 -0
- package/dist/generated/resources/skills/{vat-debugging.d.ts → vat-skill-authoring.d.ts} +7 -7
- package/dist/generated/resources/skills/vat-skill-authoring.js +48 -0
- package/dist/generated/resources/skills/{vat-skills-distribution.js → vat-skill-distribution.js} +4 -4
- package/dist/generated/resources/skills/{skill-quality-checklist.d.ts → vat-skill-review.d.ts} +5 -1
- package/dist/generated/resources/skills/{skill-quality-checklist.js → vat-skill-review.js} +10 -2
- package/dist/skills/vat-adoption-and-configuration/SKILL.md +179 -0
- package/dist/skills/{authoring → vat-agent-authoring}/SKILL.md +16 -134
- package/dist/skills/{audit → vat-audit}/SKILL.md +1 -1
- package/dist/{.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/org-admin → skills/vat-enterprise-org}/SKILL.md +3 -3
- package/dist/skills/{resources → vat-knowledge-resources}/SKILL.md +1 -1
- package/dist/skills/vat-rag/SKILL.md +104 -0
- package/dist/skills/vat-skill-authoring/SKILL.md +156 -0
- package/dist/skills/{distribution → vat-skill-distribution}/SKILL.md +3 -2
- package/dist/{.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/authoring/resources/skill-quality-checklist.md → skills/vat-skill-review/SKILL.md} +16 -1
- package/dist/skills/vibe-agent-toolkit/SKILL.md +40 -189
- package/package.json +13 -11
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/debugging/SKILL.md +0 -111
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/distribution/resources/vat-install-architecture.md +0 -229
- package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/install/SKILL.md +0 -229
- package/dist/generated/resources/skills/vat-debugging.js +0 -48
- package/dist/generated/resources/skills/vat-install-architecture.js +0 -48
- package/dist/skills/debugging/SKILL.md +0 -111
- package/dist/skills/distribution/resources/vat-install-architecture.md +0 -229
- package/dist/skills/install/SKILL.md +0 -229
- /package/dist/generated/resources/skills/{vat-claude-org-admin.d.ts → vat-enterprise-org.d.ts} +0 -0
- /package/dist/generated/resources/skills/{vat-resources.d.ts → vat-knowledge-resources.d.ts} +0 -0
- /package/dist/generated/resources/skills/{vat-skills-distribution.d.ts → vat-skill-distribution.d.ts} +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vat-skill-authoring
|
|
3
|
+
description: Use when authoring or revising a SKILL.md file — frontmatter, body structure, references, packagingOptions (linkFollowDepth, excludeReferencesFromBundle), and validation overrides. Paired with vat-skill-review for pre-publication checks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VAT Skill Authoring: SKILL.md Structure and Packaging
|
|
7
|
+
|
|
8
|
+
This skill covers authoring SKILL.md files for portable Claude skills: frontmatter shape, body structure, reference links, and the packaging options that control how the skill is bundled for distribution. For the TypeScript agent side (archetypes, result envelopes, orchestration, runtime adapters) use `vibe-agent-toolkit:vat-agent-authoring`.
|
|
9
|
+
|
|
10
|
+
## SKILL.md Structure
|
|
11
|
+
|
|
12
|
+
A SKILL.md file is the definition file for a portable skill. It tells Claude what the skill does and how to use it. All SKILL.md files must have YAML frontmatter:
|
|
13
|
+
|
|
14
|
+
```markdown
|
|
15
|
+
---
|
|
16
|
+
name: my-skill
|
|
17
|
+
description: One sentence — what this skill does and when to use it (≤250 chars)
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# My Skill
|
|
21
|
+
|
|
22
|
+
Rest of the skill documentation...
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Required frontmatter fields:
|
|
26
|
+
|
|
27
|
+
- `name` — unique identifier, kebab-case (`^[a-z][a-z0-9-]*$`), matches the skill's directory name after build. Avoid the reserved words `claude` and `anthropic` (Claude Code rejects non-certified skills using those words — surfaced as `RESERVED_WORD_IN_NAME`).
|
|
28
|
+
- `description` — trigger description used for Claude's skill routing; be specific about activation conditions.
|
|
29
|
+
|
|
30
|
+
Best practices for `description`:
|
|
31
|
+
|
|
32
|
+
- Lead with an action verb or `Use when <concrete trigger>` — filler openers like "This skill...", "A skill that...", "Use when you want to..." fire `SKILL_DESCRIPTION_FILLER_OPENER`.
|
|
33
|
+
- Include 2–4 trigger keywords a user is likely to type.
|
|
34
|
+
- Write in third person. First-person ("I can...") and conversational second-person ("You can use...") fire `SKILL_DESCRIPTION_WRONG_PERSON`.
|
|
35
|
+
- Keep under 250 characters so the Claude Code `/skills` listing doesn't truncate the tail (target ≤200 for safety, ≤130 if shipping a large skill collection). The hard schema limit is 1024.
|
|
36
|
+
|
|
37
|
+
## Body Structure
|
|
38
|
+
|
|
39
|
+
- Lead with a short orientation paragraph: what the skill owns and when to reach for it.
|
|
40
|
+
- Use H2 sections for major content blocks; avoid deeply nested H3/H4 trees — they hurt Claude's ability to route attention inside the file.
|
|
41
|
+
- Keep SKILL.md under ~500 lines. Longer than that fires `SKILL_LENGTH_EXCEEDS_RECOMMENDED` and is a strong signal to split via progressive disclosure (linked reference files) or to spin the content into a sibling skill.
|
|
42
|
+
- Avoid time-sensitive phrasing like "as of April 2026" in the body — it ages the skill quickly (`SKILL_TIME_SENSITIVE_CONTENT`).
|
|
43
|
+
|
|
44
|
+
## References Section
|
|
45
|
+
|
|
46
|
+
A short `## References` section at the bottom is the canonical place to list linked resources. Two patterns:
|
|
47
|
+
|
|
48
|
+
- **Progressive disclosure** — link to `.md` files inside the skill directory that get bundled. Keep reference depth ≤ 2 hops; deeper chains fire `REFERENCE_TOO_DEEP`.
|
|
49
|
+
- **Prose references to sibling skills** — write `vibe-agent-toolkit:vat-audit`, not `[vat-audit](./vat-audit.md)`. Markdown links to sibling SKILL.md files cause the packager to transclude the other skill (and fire `LINK_TO_SKILL_DEFINITION`).
|
|
50
|
+
|
|
51
|
+
Avoid linking to navigation files (`README.md`, `index.md`) — they're excluded from the bundle and the link resolves to nothing (`LINK_TO_NAVIGATION_FILE`).
|
|
52
|
+
|
|
53
|
+
## packagingOptions Reference
|
|
54
|
+
|
|
55
|
+
Packaging options are configured per skill in `vibe-agent-toolkit.config.yaml` under `skills.config.<name>`:
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
skills:
|
|
59
|
+
include: ["resources/skills/SKILL.md", "resources/skills/*.md"]
|
|
60
|
+
defaults:
|
|
61
|
+
linkFollowDepth: 2
|
|
62
|
+
config:
|
|
63
|
+
my-skill:
|
|
64
|
+
linkFollowDepth: 1
|
|
65
|
+
resourceNaming: resource-id
|
|
66
|
+
stripPrefix: knowledge-base
|
|
67
|
+
excludeReferencesFromBundle:
|
|
68
|
+
rules:
|
|
69
|
+
- patterns: ["**/concepts/**"]
|
|
70
|
+
template: "Use search to find: {{link.text}}"
|
|
71
|
+
defaultTemplate: "{{link.text}} (search knowledge base)"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**`linkFollowDepth`** — How deep to follow links from SKILL.md:
|
|
75
|
+
|
|
76
|
+
| Value | Behavior |
|
|
77
|
+
|-------|----------|
|
|
78
|
+
| `0` | Skill file only (no links followed) |
|
|
79
|
+
| `1` | Direct links only |
|
|
80
|
+
| `2` | Direct + one transitive level **(default)** |
|
|
81
|
+
| `"full"` | Complete transitive closure |
|
|
82
|
+
|
|
83
|
+
**`resourceNaming`** — How bundled files are named:
|
|
84
|
+
|
|
85
|
+
| Strategy | Example | Use When |
|
|
86
|
+
|----------|---------|----------|
|
|
87
|
+
| `basename` | `overview.md` | Few files, unique names **(default)** |
|
|
88
|
+
| `resource-id` | `topics-quickstart-overview.md` | Many files, flat output |
|
|
89
|
+
| `preserve-path` | `topics/quickstart/overview.md` | Preserve structure |
|
|
90
|
+
|
|
91
|
+
Use `stripPrefix` to remove a common directory prefix (e.g., `"knowledge-base"`).
|
|
92
|
+
|
|
93
|
+
**`excludeReferencesFromBundle`** — Rules for excluding files and rewriting their links:
|
|
94
|
+
|
|
95
|
+
- `rules[]` — ordered glob patterns (first match wins), each with optional Handlebars template
|
|
96
|
+
- `defaultTemplate` — applied to depth-exceeded links not matching any rule
|
|
97
|
+
|
|
98
|
+
**Template variables:**
|
|
99
|
+
|
|
100
|
+
| Variable | Description |
|
|
101
|
+
|----------|-------------|
|
|
102
|
+
| `{{link.text}}` | Link display text |
|
|
103
|
+
| `{{link.href}}` | Original href (without fragment) |
|
|
104
|
+
| `{{link.fragment}}` | Fragment including `#` prefix, or empty |
|
|
105
|
+
| `{{link.type}}` | Link type (`"local_file"`, etc.) |
|
|
106
|
+
| `{{link.resource.id}}` | Target resource ID (if resolved) |
|
|
107
|
+
| `{{link.resource.fileName}}` | Target filename (if resolved) |
|
|
108
|
+
| `{{skill.name}}` | Skill name from frontmatter |
|
|
109
|
+
|
|
110
|
+
## Validation Overrides
|
|
111
|
+
|
|
112
|
+
The `validation` sub-key in a skill's config provides the unified override framework for VAT validation codes:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
skills:
|
|
116
|
+
config:
|
|
117
|
+
my-skill:
|
|
118
|
+
validation:
|
|
119
|
+
severity:
|
|
120
|
+
LINK_DROPPED_BY_DEPTH: error # upgrade: block on depth-dropped links
|
|
121
|
+
LINK_TO_NAVIGATION_FILE: ignore # silence: this skill intentionally links to READMEs
|
|
122
|
+
allow:
|
|
123
|
+
PACKAGED_UNREFERENCED_FILE:
|
|
124
|
+
- paths: ["templates/runtime.json"]
|
|
125
|
+
reason: "consumed programmatically at runtime"
|
|
126
|
+
expires: "2026-09-30"
|
|
127
|
+
SKILL_LENGTH_EXCEEDS_RECOMMENDED:
|
|
128
|
+
- reason: "whole-skill concern; paths defaults to ['**/*']"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Two sub-keys, each covering a different override granularity:
|
|
132
|
+
|
|
133
|
+
- **`severity`** — class-level. Raise any code to `error` (blocks build), lower to `warning` (emits, non-blocking), or `ignore` (fully suppressed). Applies to every instance of that code.
|
|
134
|
+
- **`allow`** — per-instance. Suppress specific `(code, path)` matches with a required `reason` and optional `expires` date. `paths` is optional (defaults to `["**/*"]` — the whole skill). Use for legitimate exceptions that don't warrant code-wide silencing.
|
|
135
|
+
|
|
136
|
+
Common adjustments:
|
|
137
|
+
|
|
138
|
+
- Downgrade `LINK_DROPPED_BY_DEPTH` to `ignore` when intentionally linking out to external docs.
|
|
139
|
+
- Allow specific files under `PACKAGED_UNREFERENCED_FILE` when they're consumed programmatically by CLI scripts at runtime.
|
|
140
|
+
- Raise `ALLOW_EXPIRED` to `error` for zero-tolerance expiry policies.
|
|
141
|
+
|
|
142
|
+
Expired `allow` entries still apply — VAT emits `ALLOW_EXPIRED` as a reminder rather than silently re-surfacing the underlying issue (no surprise build breaks when a date passes). Unused `allow` entries surface as `ALLOW_UNUSED` (analogous to ESLint's unused-disable).
|
|
143
|
+
|
|
144
|
+
`vat audit` is advisory: it applies `severity` for display grouping only, ignores `allow`, and always exits 0. Use `vat skills validate` or `vat skills build` for gated checks.
|
|
145
|
+
|
|
146
|
+
## Pre-publication Check
|
|
147
|
+
|
|
148
|
+
Before shipping a skill, walk through the `vibe-agent-toolkit:vat-skill-review` checklist — it covers naming, description quality, structure, validation-code triage, and Anthropic's skill-authoring best practices. The `vat skill review <skill>` CLI command renders a skill-specific view of the same checklist.
|
|
149
|
+
|
|
150
|
+
## References
|
|
151
|
+
|
|
152
|
+
- `vibe-agent-toolkit:vat-skill-review` — pre-publication quality checklist (general + CLI-backed items, tied to VAT validation codes)
|
|
153
|
+
- `vibe-agent-toolkit:vat-skill-distribution` — plugin/marketplace config, `vat build`, `vat verify`, npm publishing
|
|
154
|
+
- `vibe-agent-toolkit:vat-knowledge-resources` — the `resources:` config section for multi-collection frontmatter schema validation
|
|
155
|
+
- Validation Codes Reference — full list of codes VAT emits, their default severity, and override recipes.
|
|
156
|
+
- Skill Quality and Compatibility — VAT's Stance — what VAT believes makes a skill good and compatible.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: distribution
|
|
2
|
+
name: vat-skill-distribution
|
|
3
3
|
description: Use when setting up `vat build`, configuring plugin distribution (marketplace, plugins, managed settings), npm publishing with postinstall hooks, or `vat verify` — the full pipeline from skill source to installed plugin.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -12,7 +12,8 @@ This is the only install method VAT currently supports.
|
|
|
12
12
|
|
|
13
13
|
For the full install landscape — Claude Desktop paths, enterprise CI deployment,
|
|
14
14
|
Anthropic Cloud org management, MDM integration, and the `vat plugins uninstall`
|
|
15
|
-
design — see
|
|
15
|
+
design — see the contributor reference at `docs/contributing/vat-install-architecture.md`
|
|
16
|
+
in the `vibe-agent-toolkit` repo (contributor material, not bundled with this skill).
|
|
16
17
|
|
|
17
18
|
## Overview
|
|
18
19
|
|
|
@@ -1,7 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: vat-skill-review
|
|
3
|
+
description: Use when reviewing a skill before publication or running `vat skill review`. Pre-publication quality checklist grouped into general (all skills) and CLI-backed items, tied to VAT validation codes and Anthropic's skill-authoring best practices.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Quality Checklist (vat skill review)
|
|
2
7
|
|
|
3
8
|
Work through this checklist before publishing a skill. Items are grouped into general (all skills) and CLI-backed (skills that bundle and invoke scripts).
|
|
4
9
|
|
|
10
|
+
This content is also surfaced by the `vat skill review` CLI command, which formats the checklist around a specific skill's validation output.
|
|
11
|
+
|
|
12
|
+
## Guidance freshness
|
|
13
|
+
|
|
14
|
+
Skill authoring standards move fast. Before applying this checklist to a non-trivial change:
|
|
15
|
+
|
|
16
|
+
- Re-fetch the source of `docs/external/anthropic-skill-authoring-best-practices.md` named in its preamble. If the content has shifted, update the cache and this checklist together.
|
|
17
|
+
- Web search for the latest Claude Code release notes when trigger semantics, frontmatter rules, or packaging behavior may have changed. Don't rely on training-data recall.
|
|
18
|
+
- Promote any manual item below to a programmatic validator when the pattern is detectable from file contents — see the shift-left notes in `packages/vat-development-agents/resources/skills/CLAUDE.md`.
|
|
19
|
+
|
|
5
20
|
## About this checklist
|
|
6
21
|
|
|
7
22
|
Items fall into two categories:
|
|
@@ -1,211 +1,62 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe-agent-toolkit
|
|
3
|
-
description: Use when
|
|
3
|
+
description: Use when starting VAT work or deciding which VAT sub-skill applies. Router that points at sub-skills for adoption, skill/agent authoring, audit, distribution, RAG, knowledge resources, skill review, and enterprise org admin.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Vibe Agent Toolkit
|
|
6
|
+
# Vibe Agent Toolkit
|
|
7
7
|
|
|
8
|
-
**Vibe Agent Toolkit (VAT)** is a modular toolkit for building portable AI agents that work across
|
|
9
|
-
multiple LLM frameworks and deployment targets. Write your agent logic once as plain TypeScript,
|
|
10
|
-
then deploy it to Vercel AI SDK, LangChain, OpenAI, Claude Agent SDK, or any other runtime using
|
|
11
|
-
framework adapters. No vendor lock-in.
|
|
8
|
+
**Vibe Agent Toolkit (VAT)** is a modular toolkit for building, packaging, and distributing portable AI agents and skills that work across multiple Claude surfaces and adjacent frameworks. Write skill or agent content once; VAT handles validation, packaging, plugin/marketplace layout, and npm publishing.
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **This skill** = How to USE VAT to build agents
|
|
16
|
-
- **`vibe-agent-toolkit:debugging`** = When VAT itself behaves unexpectedly or you need to test a fix
|
|
17
|
-
- **Root CLAUDE.md** = How to DEVELOP the VAT codebase itself
|
|
10
|
+
This is a router skill. Load the sibling sub-skill that matches the work you're doing — each sub-skill owns one slice of VAT's surface and is designed to be pulled in on demand.
|
|
18
11
|
|
|
19
12
|
## When to Use VAT
|
|
20
13
|
|
|
21
|
-
|
|
22
|
-
providers, complex multi-agent orchestration, human-in-the-loop workflows.
|
|
23
|
-
|
|
24
|
-
**VAT may not be needed for:** Simple one-off scripts where the framework is already decided,
|
|
25
|
-
non-TypeScript/JavaScript projects, or cases where you need deep framework-specific features.
|
|
14
|
+
Good fits:
|
|
26
15
|
|
|
27
|
-
|
|
16
|
+
- Publishing a Claude skill or plugin to npm with a proper marketplace layout
|
|
17
|
+
- Multi-runtime agent projects (Vercel AI SDK, LangChain, OpenAI, Claude Agent SDK)
|
|
18
|
+
- Validating plugins / skills / marketplaces with `vat audit` before shipping
|
|
19
|
+
- Enforcing frontmatter schemas across large markdown corpora
|
|
20
|
+
- Wiring RAG indexing into an agent project
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|---|---|
|
|
31
|
-
| Writing or structuring a `SKILL.md` file | `vibe-agent-toolkit:authoring` |
|
|
32
|
-
| Agent archetypes, orchestration patterns, result envelopes | `vibe-agent-toolkit:authoring` |
|
|
33
|
-
| `packagingOptions` (linkFollowDepth, excludeReferencesFromBundle) | `vibe-agent-toolkit:authoring` |
|
|
34
|
-
| Resource collections, frontmatter schema validation | `vibe-agent-toolkit:resources` |
|
|
35
|
-
| `vat resources validate`, collection config | `vibe-agent-toolkit:resources` |
|
|
36
|
-
| Setting up `vat build` + `vat claude build` for a project | `vibe-agent-toolkit:distribution` |
|
|
37
|
-
| Configuring `claude:` section in vibe-agent-toolkit.config.yaml | `vibe-agent-toolkit:distribution` |
|
|
38
|
-
| npm publishing with plugin postinstall | `vibe-agent-toolkit:distribution` |
|
|
39
|
-
| `vat build` / `vat verify` orchestration | `vibe-agent-toolkit:distribution` |
|
|
40
|
-
| `--target claude-web` ZIP format | `vibe-agent-toolkit:distribution` |
|
|
41
|
-
| Install/uninstall methods, enterprise deployment, Desktop vs CLI paths | `vibe-agent-toolkit:install` |
|
|
42
|
-
| `vat audit`, `--compat`, CI validation | `vibe-agent-toolkit:audit` |
|
|
43
|
-
| `vat claude org`, Admin API, org users/cost/usage/skills, ANTHROPIC_ADMIN_API_KEY | `vibe-agent-toolkit:org-admin` |
|
|
44
|
-
| VAT behaves unexpectedly, debugging VAT, testing local VAT changes, VAT_ROOT_DIR | `vibe-agent-toolkit:debugging` |
|
|
22
|
+
Poor fits:
|
|
45
23
|
|
|
46
|
-
|
|
24
|
+
- Simple one-off scripts where the framework is already decided
|
|
25
|
+
- Non-TypeScript/JavaScript projects
|
|
26
|
+
- Cases where you need deep framework-specific features with no reuse goal
|
|
47
27
|
|
|
48
|
-
|
|
28
|
+
## Picking a Sub-skill
|
|
49
29
|
|
|
50
|
-
|
|
|
30
|
+
| If you're working on... | Load |
|
|
51
31
|
|---|---|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
# Or run without installing (works anywhere vat commands appear below)
|
|
64
|
-
npx vibe-agent-toolkit <command> # npm/Node.js
|
|
65
|
-
bunx vibe-agent-toolkit <command> # Bun
|
|
66
|
-
|
|
67
|
-
# Top-level orchestration
|
|
68
|
-
vat build # build all artifacts (skills then claude plugins)
|
|
69
|
-
vat verify # verify all artifacts (resources, skills, claude)
|
|
70
|
-
|
|
71
|
-
# Claude plugin commands
|
|
72
|
-
vat claude build # generate plugin artifacts from built skills
|
|
73
|
-
vat claude verify # validate plugin artifacts
|
|
74
|
-
|
|
75
|
-
# Skills
|
|
76
|
-
vat skills list # list skills in current project
|
|
77
|
-
vat skills list --user # list user-installed skills
|
|
78
|
-
vat skills install npm:@org/my-skills # install from npm (routes through plugin system)
|
|
79
|
-
vat skills build # build portable skills only
|
|
80
|
-
vat skills validate # validate skill quality
|
|
81
|
-
|
|
82
|
-
# Resources
|
|
83
|
-
vat resources validate # validate collections (reads config)
|
|
84
|
-
vat resources validate docs/ --frontmatter-schema schema.json
|
|
85
|
-
|
|
86
|
-
# Audit
|
|
87
|
-
vat audit # audit current directory recursively
|
|
88
|
-
vat audit --user # audit entire Claude installation
|
|
89
|
-
vat audit ./plugins/ --compat # check surface compatibility
|
|
90
|
-
|
|
91
|
-
# RAG
|
|
92
|
-
vat rag index docs/ # index markdown into vector DB
|
|
93
|
-
vat rag query "my question" --limit 5 # semantic search
|
|
94
|
-
|
|
95
|
-
# Get help for any command
|
|
96
|
-
vat --help
|
|
97
|
-
vat skills --help
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## agent-generator: Creating New Agents
|
|
101
|
-
|
|
102
|
-
The **agent-generator** is a built-in meta-agent that guides you through designing
|
|
103
|
-
high-quality agents via a 4-phase workflow:
|
|
104
|
-
|
|
105
|
-
1. **GATHER** — Understand your intent and goals
|
|
106
|
-
2. **ANALYZE** — Identify agent pattern and requirements
|
|
107
|
-
3. **DESIGN** — Make architecture decisions (LLM, tools, prompts)
|
|
108
|
-
4. **GENERATE** — Create validated agent package
|
|
109
|
-
|
|
110
|
-
Minimum input needed:
|
|
111
|
-
```json
|
|
112
|
-
{
|
|
113
|
-
"agentPurpose": "Review PRs for security issues",
|
|
114
|
-
"successCriteria": "Catches 100% of critical vulnerabilities"
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
The generator produces: `agent.yaml`, `prompts/system.md`, `prompts/user.md`,
|
|
119
|
-
`schemas/input.schema.json`, `schemas/output.schema.json`, and `README.md`.
|
|
120
|
-
|
|
121
|
-
**Tips for better results:**
|
|
122
|
-
- Be specific about success criteria ("Under 30s, zero false negatives") not vague ("fast enough")
|
|
123
|
-
- Name the tools the agent needs upfront (file readers, APIs, etc.)
|
|
124
|
-
- Describe domain context (OWASP Top 10, company coding standards, etc.)
|
|
125
|
-
|
|
126
|
-
## Packaging Markdown for Reuse
|
|
127
|
-
|
|
128
|
-
VAT's resource compiler transforms markdown files into type-safe TypeScript modules,
|
|
129
|
-
enabling prompt libraries, RAG knowledge bases, and shared content across projects.
|
|
32
|
+
| New project setup, `vibe-agent-toolkit.config.yaml` orientation, repo structure, vibe-validate integration, npm postinstall | `vibe-agent-toolkit:vat-adoption-and-configuration` |
|
|
33
|
+
| Writing or revising a SKILL.md — frontmatter, body, references, packagingOptions, validation overrides | `vibe-agent-toolkit:vat-skill-authoring` |
|
|
34
|
+
| TypeScript agent archetypes, `agent.yaml`, result envelopes, orchestration, runtime adapters | `vibe-agent-toolkit:vat-agent-authoring` |
|
|
35
|
+
| `vat audit` on plugins, marketplaces, skills, or settings — including `--compat`, `--exclude`, `--user`, CI use | `vibe-agent-toolkit:vat-audit` |
|
|
36
|
+
| Markdown collections, `resources:` config, frontmatter schema validation, `vat resources validate` | `vibe-agent-toolkit:vat-knowledge-resources` |
|
|
37
|
+
| `vat build`, `vat verify`, plugin/marketplace layout, npm publishing, postinstall | `vibe-agent-toolkit:vat-skill-distribution` |
|
|
38
|
+
| `vat rag index` / `vat rag query`, embedding providers, vector stores, chunking | `vibe-agent-toolkit:vat-rag` |
|
|
39
|
+
| Pre-publication quality review, `vat skill review`, validation-code triage | `vibe-agent-toolkit:vat-skill-review` |
|
|
40
|
+
| Anthropic Admin API: org users, cost/usage, workspace skills, `ANTHROPIC_ADMIN_API_KEY` | `vibe-agent-toolkit:vat-enterprise-org` |
|
|
41
|
+
|
|
42
|
+
## CLI Surface at a Glance
|
|
130
43
|
|
|
131
44
|
```bash
|
|
132
|
-
|
|
133
|
-
|
|
45
|
+
vat --help # top-level help
|
|
46
|
+
vat build # build all artifacts (skills → claude plugins)
|
|
47
|
+
vat verify # validate all artifacts
|
|
48
|
+
vat skills validate # validate skill quality
|
|
49
|
+
vat resources validate # validate markdown collections
|
|
50
|
+
vat audit # audit plugins/skills/marketplaces/settings
|
|
51
|
+
vat rag index docs/ # index markdown for RAG
|
|
52
|
+
vat skill review <path> # pre-publication review
|
|
53
|
+
vat claude org --help # enterprise admin surface
|
|
134
54
|
```
|
|
135
55
|
|
|
136
|
-
|
|
137
|
-
import * as Doc from './generated/resources/doc.js';
|
|
138
|
-
|
|
139
|
-
Doc.meta.title; // type-safe frontmatter
|
|
140
|
-
Doc.fragments.introduction.text; // H2 section content
|
|
141
|
-
Doc.text; // full markdown
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Use cases: agent prompt libraries, RAG knowledge bases packaged as npm modules,
|
|
145
|
-
multi-project content sharing with versioning.
|
|
146
|
-
|
|
147
|
-
## Common Workflows
|
|
148
|
-
|
|
149
|
-
**Create a new agent:**
|
|
150
|
-
```bash
|
|
151
|
-
# Use agent-generator interactively, then:
|
|
152
|
-
vat agent import my-skill/SKILL.md # import to VAT format
|
|
153
|
-
vat skills validate # check quality
|
|
154
|
-
vat skills build # package for distribution
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
**Install and use a community skill:**
|
|
158
|
-
```bash
|
|
159
|
-
vat skills install npm:@vibe-agent-toolkit/vat-cat-agents
|
|
160
|
-
vat skills list --user
|
|
161
|
-
# Plugin-aware packages register in Claude's plugin system
|
|
162
|
-
# Skills are invoked as /plugin-name:skill-name in Claude Code
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Build and publish your own skill package:**
|
|
166
|
-
```bash
|
|
167
|
-
# Configure vat.skills in package.json + claude: in vibe-agent-toolkit.config.yaml, then:
|
|
168
|
-
vat build # builds skills + claude plugin artifacts
|
|
169
|
-
vat verify # validates everything
|
|
170
|
-
npm publish # publishes to npm (postinstall registers the plugin)
|
|
171
|
-
# Users install with: vat skills install npm:@myorg/my-skills
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Success Criteria
|
|
175
|
-
|
|
176
|
-
You've successfully adopted VAT when:
|
|
177
|
-
- Agents have clear input/output schemas (Zod-validated)
|
|
178
|
-
- Errors are handled as data (result envelopes), never thrown
|
|
179
|
-
- Tests cover success and error paths without real API calls (mock mode)
|
|
180
|
-
- Agents work across multiple runtimes via adapters
|
|
181
|
-
- Multi-agent pipelines compose via `andThen()` / `match()` helpers
|
|
182
|
-
|
|
183
|
-
## Documentation Index
|
|
184
|
-
|
|
185
|
-
- Getting Started Guide
|
|
186
|
-
- Agent Authoring Guide — patterns and code examples
|
|
187
|
-
- Orchestration Guide — multi-agent workflows
|
|
188
|
-
- RAG Usage Guide
|
|
189
|
-
- Resource Compiler Guide
|
|
190
|
-
- Runtime Adapters
|
|
191
|
-
- Examples: `@vibe-agent-toolkit/vat-example-cat-agents`
|
|
192
|
-
|
|
193
|
-
## Running VAT
|
|
194
|
-
|
|
195
|
-
VAT can be run without a global install:
|
|
196
|
-
|
|
197
|
-
```bash
|
|
198
|
-
vat <command> # If installed globally
|
|
199
|
-
npx vibe-agent-toolkit <command> # npm (downloads on demand)
|
|
200
|
-
bunx vibe-agent-toolkit <command> # Bun (downloads on demand)
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
All `vat` commands in this skill and sub-skills accept these alternatives.
|
|
56
|
+
Each sub-skill covers its slice of the CLI in depth — don't memorize this table, load the sub-skill when you need detail.
|
|
204
57
|
|
|
205
58
|
## Getting Help
|
|
206
59
|
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
|
|
211
|
-
Happy agent building!
|
|
60
|
+
- `vat --help` and `vat <group> --help --verbose` for CLI depth
|
|
61
|
+
- Repo docs: the VAT repository's `docs/` directory carries the full setup guide, architecture notes, and design references (not bundled with this plugin)
|
|
62
|
+
- Contributor reference docs (debugging VAT, install architecture) live under `docs/contributing/` in the VAT repo
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
|
|
13
|
+
export const text: string;
|
|
14
|
+
|
|
15
|
+
export const fragments: {
|
|
16
|
+
readonly skillInventoryAndBoundaries: Fragment;
|
|
17
|
+
readonly crossCuttingVibeAgentToolkitconfigyaml: Fragment;
|
|
18
|
+
readonly namingRulesProgrammatic-Advisory: Fragment;
|
|
19
|
+
readonly descriptionQuality: Fragment;
|
|
20
|
+
readonly routerSkillSkillmd-VibeAgentToolkit-SpecialRules: Fragment;
|
|
21
|
+
readonly singleResponsibility-WhenToSplit: Fragment;
|
|
22
|
+
readonly contributorVsUserContent: Fragment;
|
|
23
|
+
readonly thisAreaMovesFast-VerifyCurrentStandards: Fragment;
|
|
24
|
+
readonly shiftLeft-EveryManualCheckIsAFutureValidator: Fragment;
|
|
25
|
+
readonly preCommitChecks: Fragment;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type FragmentName = keyof typeof fragments;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated from markdown file - DO NOT EDIT
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const meta = {};
|
|
6
|
+
|
|
7
|
+
export const text = "# VAT Plugin Skills — Development Guide\n\nThis directory ships the \`vibe-agent-toolkit\` Claude Code plugin. When editing\nor creating skills here, follow the boundaries and rules below. The goal is\nthat each sub-skill has a single, sharp trigger and that they collectively\ncover VAT\'s user-facing surface without overlap.\n\n## Skill inventory and boundaries\n\n| Skill | Owns | Does NOT own | CLI |\n|---|---|---|---|\n| \`vibe-agent-toolkit\` (router, \`SKILL.md\`) | What VAT is, when to use it, routing to sub-skills | Any deep content — keep ≤150 lines, prose-only references to sub-skills | — |\n| \`vat-adoption-and-configuration\` | Project setup, \`vibe-agent-toolkit.config.yaml\` orientation, repo structure, vibe-validate integration, npm postinstall hook | Per-section config depth (each owning skill covers its own slice) | — |\n| \`vat-skill-authoring\` | \`SKILL.md\` files: frontmatter, body structure, references, packagingOptions (linkFollowDepth, excludeReferencesFromBundle), validation overrides | TypeScript agent functions, plugin packaging, RAG | — |\n| \`vat-agent-authoring\` | TypeScript portable agents: archetypes (Pure Function Tool, One-Shot LLM Analyzer, Conversational Assistant, External Event Integrator), \`agent.yaml\`, result envelopes, runtime adapters (Vercel/LangChain/OpenAI/Claude Agent SDK) | SKILL.md authoring, plugin/marketplace config | — |\n| \`vat-audit\` | \`vat audit\` on plugins/marketplaces/skills/settings; \`--compat\`, \`--exclude\`, \`--user\`, CI usage | What to fix (defer to other skills) | \`vat audit\` |\n| \`vat-knowledge-resources\` | Markdown collections, \`vibe-agent-toolkit.config.yaml\` \`resources\` section, frontmatter schemas, validation modes | RAG indexing (separate skill) | \`vat resources validate\` |\n| \`vat-skill-distribution\` | \`vat build\`, \`vat verify\`, plugin/marketplace config, npm publishing, postinstall hooks, \`vat.skills\` field | Authoring the SKILL.md itself | \`vat build\`, \`vat verify\` |\n| \`vat-rag\` | \`vat rag index\`, \`vat rag query\`, native embedding/vector store support, extension points, \"contributions welcome\" callout | Markdown collection authoring (knowledge-resources owns) | \`vat rag\` |\n| \`vat-skill-review\` | Pre-publication review rubric, validation-code reference, Anthropic best-practices integration, \`vat skill review\` command | The validators themselves (live in code) | \`vat skill review\` |\n| \`vat-enterprise-org\` | Anthropic Admin API: org users, cost/usage, workspace skills, \`ANTHROPIC_ADMIN_API_KEY\` | Per-user runtime auth | \`vat claude org\` |\n\n## Cross-cutting: \`vibe-agent-toolkit.config.yaml\`\n\nThis file is multi-skill. Each section is owned by one skill:\n\n| Config section | Owning skill |\n|---|---|\n| Top-level structure, version, multi-section orientation | \`vat-adoption-and-configuration\` |\n| \`skills:\` (include, defaults, per-skill config, packagingOptions) | \`vat-skill-authoring\` |\n| \`resources:\` (collections, schemas, validation modes) | \`vat-knowledge-resources\` |\n| \`claude:\` (marketplaces, plugins, publish, owner) | \`vat-skill-distribution\` |\n\nWhen a skill needs to mention a section it doesn\'t own, link to the owning skill rather than re-explaining the section.\n\n## Naming rules (programmatic + advisory)\n\n- **Forbidden words in \`name\`**: \`claude\`, \`anthropic\`. Claude Code rejects skills containing these words unless they are official certified skills. Enforced by validator code \`RESERVED_WORD_IN_NAME\` (warning severity).\n- **Prefer CLI-name alignment**: when a skill primarily covers a CLI command, use the same root word (\`vat-audit\` → \`vat audit\`, \`vat-skill-review\` → \`vat skill review\`). Discovery hook for users running \`--help\`.\n- **Kebab-case**, lowercase letters, digits, hyphens. Matches \`^[a-z][a-z0-9-]*$\`.\n- **No vague nouns**: \`vat-resources\` was renamed to \`vat-knowledge-resources\` because \"resources\" alone could mean anything. Each name should carry its subject.\n- **No platform names** unless certified: see forbidden words rule above. Say \"enterprise\" not \"claude\" / \"anthropic\".\n\n## Description quality\n\nA description must let Claude Code trigger correctly. Required elements:\n- **Action verb or \"Use when...\"** opener\n- **Subject** (what kind of work fires this skill)\n- **2-4 trigger keywords** (the words a user is likely to use)\n- **What it covers** (one short clause)\n- ≤250 chars total (Claude Code listing truncates at 250)\n\nExample (\`vat-audit\`):\n> Use when running \`vat audit\` to validate Claude plugins, marketplaces, or skills. Covers the audit command, \`--compat\` for surface compatibility, \`--exclude\` for noise filtering, and interpreting findings.\n\nTriggers on: \"audit my plugin\", \"validate plugin compatibility\", \"what does this audit warning mean\".\n\n## Router skill (\`SKILL.md\` / \`vibe-agent-toolkit\`) — special rules\n\nThe router exists for **discovery + routing**, not content. Strict rules:\n\n1. **≤150 lines total**\n2. **Prose references to sub-skills** — never markdown links: write \`vibe-agent-toolkit:vat-audit\`, not \`[vat-audit](./vat-audit.md)\`. Markdown links cause VAT\'s packager to transclude the sibling, bloating the bundle.\n3. **No code examples beyond a 5-line CLI overview** — depth lives in sub-skills\n4. **Description triggers entry questions** (\"what is VAT\", \"how do I get started\"), not specific tasks\n\nVerify after edits: \`vat skill review packages/vat-development-agents/resources/skills\` should report \`fileCount: 1\` (no transclusion).\n\n## Single-responsibility — when to split\n\nSplit a skill when its description must list two unrelated subjects to trigger correctly. Example: the original \`vat-authoring\` covered both SKILL.md files and TypeScript agent functions — two distinct mental models, hence the split into \`vat-skill-authoring\` and \`vat-agent-authoring\`.\n\n## Contributor vs user content\n\nThis plugin is for **users of VAT**. Contributor-facing material (debugging VAT internals, designing install architecture, working on the codebase) belongs in \`docs/contributing/\`, not in a SKILL.md here. The root CLAUDE.md routes contributors to those docs.\n\nIf a skill description says \"use when developing/contributing to VAT\", it doesn\'t belong in this directory.\n\n## This area moves fast — verify current standards\n\nSkill authoring, agent design, and Claude Code\'s own skill-loading semantics are evolving rapidly. Cached guidance under \`docs/external/\` (e.g. \`anthropic-skill-authoring-best-practices.md\`) ages quickly. Before making non-trivial changes:\n\n- Re-fetch the source URL named in the cached doc\'s preamble; diff against the cache; if material has changed, update the cache and propagate the delta into validators and \`vat-skill-review\`.\n- Web search for the latest Claude Code release notes when changing trigger semantics, frontmatter rules, or packaging behavior. Don\'t rely on training-data recall.\n- The \`vat-skill-review\` skill must carry this same instruction explicitly — it\'s the skill agents load when they\'re about to apply quality standards.\n\n## Shift left — every manual check is a future validator\n\nWhen a quality issue is caught manually (in code review, by the user noticing an error from Claude Code, or via a checklist walkthrough), treat it as a candidate for **promotion to a programmatic validator**. The bar is: if the issue has a clear pattern that can be detected from the file contents, it should not stay a manual check.\n\n**Canonical example**: the \`RESERVED_WORD_IN_NAME\` rule. The \`claude\`/\`anthropic\` naming restriction was discovered through an install-time rejection — the kind of failure a developer hits once, remembers forever, but new contributors keep re-hitting. Encoding it as a validator (warning severity, fires at \`vat audit\` / \`vat skills validate\` time) shifts the discovery left from \"Claude Code rejects my install\" to \"validator warns me before I commit.\"\n\nWhen you add a validator:\n1. Register the code in \`validation-rules.ts\` with severity, message template, fix hint, and a \`reference\` pointer to the rationale (often a section of \`vat-skill-review\` or external doc)\n2. Wire it into the appropriate validator pipeline (frontmatter, link, packaging) so it actually fires\n3. Add a checklist entry in \`vat-skill-review\` that references the same code (so the manual rubric and the automated check stay aligned)\n4. Default severity is **warning** unless the issue genuinely blocks distribution — even then, prefer warning + clear fix hint per the [skill-smell philosophy](../../../../docs/skill-smell-philosophy.md)\n\nWhen \`vat-skill-review\` lists a checklist item that is currently a \`[ ]\` manual judgment call, ask: *can this be detected programmatically?* If yes, file a follow-up to add the validator and convert the manual item to an automated reference.\n\n## Pre-commit checks\n\nBefore committing a skill change:\n\n\`\`\`bash\n# Review the specific skill you touched\nbun run vat skill review packages/vat-development-agents/resources/skills/<skill>.md\n\n# Audit the whole plugin\nbun run vat audit packages/vat-development-agents\n\n# Full validation\nbun run validate\n\`\`\`\n\nWatch for:\n- \`RESERVED_WORD_IN_NAME\` (warning) — naming policy violation\n- \`SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT\` — trim to ≤250 chars\n- \`SKILL_DESCRIPTION_FILLER_OPENER\` — start with action verb or \"Use when\"\n- \`SKILL_NAME_MISMATCHES_DIR\` (should not fire — generic-container exemption applies here)\n- \`LINK_TO_NAVIGATION_FILE\` — link to specific files, not READMEs\n- \`LINK_TARGETS_DIRECTORY\` — link to specific files, not directories\n";
|
|
8
|
+
|
|
9
|
+
export const fragments = {
|
|
10
|
+
skillInventoryAndBoundaries: {
|
|
11
|
+
header: "## Skill inventory and boundaries",
|
|
12
|
+
body: "| Skill | Owns | Does NOT own | CLI |\n|---|---|---|---|\n| \`vibe-agent-toolkit\` (router, \`SKILL.md\`) | What VAT is, when to use it, routing to sub-skills | Any deep content — keep ≤150 lines, prose-only references to sub-skills | — |\n| \`vat-adoption-and-configuration\` | Project setup, \`vibe-agent-toolkit.config.yaml\` orientation, repo structure, vibe-validate integration, npm postinstall hook | Per-section config depth (each owning skill covers its own slice) | — |\n| \`vat-skill-authoring\` | \`SKILL.md\` files: frontmatter, body structure, references, packagingOptions (linkFollowDepth, excludeReferencesFromBundle), validation overrides | TypeScript agent functions, plugin packaging, RAG | — |\n| \`vat-agent-authoring\` | TypeScript portable agents: archetypes (Pure Function Tool, One-Shot LLM Analyzer, Conversational Assistant, External Event Integrator), \`agent.yaml\`, result envelopes, runtime adapters (Vercel/LangChain/OpenAI/Claude Agent SDK) | SKILL.md authoring, plugin/marketplace config | — |\n| \`vat-audit\` | \`vat audit\` on plugins/marketplaces/skills/settings; \`--compat\`, \`--exclude\`, \`--user\`, CI usage | What to fix (defer to other skills) | \`vat audit\` |\n| \`vat-knowledge-resources\` | Markdown collections, \`vibe-agent-toolkit.config.yaml\` \`resources\` section, frontmatter schemas, validation modes | RAG indexing (separate skill) | \`vat resources validate\` |\n| \`vat-skill-distribution\` | \`vat build\`, \`vat verify\`, plugin/marketplace config, npm publishing, postinstall hooks, \`vat.skills\` field | Authoring the SKILL.md itself | \`vat build\`, \`vat verify\` |\n| \`vat-rag\` | \`vat rag index\`, \`vat rag query\`, native embedding/vector store support, extension points, \"contributions welcome\" callout | Markdown collection authoring (knowledge-resources owns) | \`vat rag\` |\n| \`vat-skill-review\` | Pre-publication review rubric, validation-code reference, Anthropic best-practices integration, \`vat skill review\` command | The validators themselves (live in code) | \`vat skill review\` |\n| \`vat-enterprise-org\` | Anthropic Admin API: org users, cost/usage, workspace skills, \`ANTHROPIC_ADMIN_API_KEY\` | Per-user runtime auth | \`vat claude org\` |",
|
|
13
|
+
text: "## Skill inventory and boundaries\n\n| Skill | Owns | Does NOT own | CLI |\n|---|---|---|---|\n| \`vibe-agent-toolkit\` (router, \`SKILL.md\`) | What VAT is, when to use it, routing to sub-skills | Any deep content — keep ≤150 lines, prose-only references to sub-skills | — |\n| \`vat-adoption-and-configuration\` | Project setup, \`vibe-agent-toolkit.config.yaml\` orientation, repo structure, vibe-validate integration, npm postinstall hook | Per-section config depth (each owning skill covers its own slice) | — |\n| \`vat-skill-authoring\` | \`SKILL.md\` files: frontmatter, body structure, references, packagingOptions (linkFollowDepth, excludeReferencesFromBundle), validation overrides | TypeScript agent functions, plugin packaging, RAG | — |\n| \`vat-agent-authoring\` | TypeScript portable agents: archetypes (Pure Function Tool, One-Shot LLM Analyzer, Conversational Assistant, External Event Integrator), \`agent.yaml\`, result envelopes, runtime adapters (Vercel/LangChain/OpenAI/Claude Agent SDK) | SKILL.md authoring, plugin/marketplace config | — |\n| \`vat-audit\` | \`vat audit\` on plugins/marketplaces/skills/settings; \`--compat\`, \`--exclude\`, \`--user\`, CI usage | What to fix (defer to other skills) | \`vat audit\` |\n| \`vat-knowledge-resources\` | Markdown collections, \`vibe-agent-toolkit.config.yaml\` \`resources\` section, frontmatter schemas, validation modes | RAG indexing (separate skill) | \`vat resources validate\` |\n| \`vat-skill-distribution\` | \`vat build\`, \`vat verify\`, plugin/marketplace config, npm publishing, postinstall hooks, \`vat.skills\` field | Authoring the SKILL.md itself | \`vat build\`, \`vat verify\` |\n| \`vat-rag\` | \`vat rag index\`, \`vat rag query\`, native embedding/vector store support, extension points, \"contributions welcome\" callout | Markdown collection authoring (knowledge-resources owns) | \`vat rag\` |\n| \`vat-skill-review\` | Pre-publication review rubric, validation-code reference, Anthropic best-practices integration, \`vat skill review\` command | The validators themselves (live in code) | \`vat skill review\` |\n| \`vat-enterprise-org\` | Anthropic Admin API: org users, cost/usage, workspace skills, \`ANTHROPIC_ADMIN_API_KEY\` | Per-user runtime auth | \`vat claude org\` |"
|
|
14
|
+
},
|
|
15
|
+
crossCuttingVibeAgentToolkitconfigyaml: {
|
|
16
|
+
header: "## Cross-cutting: \`vibe-agent-toolkit.config.yaml\`",
|
|
17
|
+
body: "This file is multi-skill. Each section is owned by one skill:\n\n| Config section | Owning skill |\n|---|---|\n| Top-level structure, version, multi-section orientation | \`vat-adoption-and-configuration\` |\n| \`skills:\` (include, defaults, per-skill config, packagingOptions) | \`vat-skill-authoring\` |\n| \`resources:\` (collections, schemas, validation modes) | \`vat-knowledge-resources\` |\n| \`claude:\` (marketplaces, plugins, publish, owner) | \`vat-skill-distribution\` |\n\nWhen a skill needs to mention a section it doesn\'t own, link to the owning skill rather than re-explaining the section.",
|
|
18
|
+
text: "## Cross-cutting: \`vibe-agent-toolkit.config.yaml\`\n\nThis file is multi-skill. Each section is owned by one skill:\n\n| Config section | Owning skill |\n|---|---|\n| Top-level structure, version, multi-section orientation | \`vat-adoption-and-configuration\` |\n| \`skills:\` (include, defaults, per-skill config, packagingOptions) | \`vat-skill-authoring\` |\n| \`resources:\` (collections, schemas, validation modes) | \`vat-knowledge-resources\` |\n| \`claude:\` (marketplaces, plugins, publish, owner) | \`vat-skill-distribution\` |\n\nWhen a skill needs to mention a section it doesn\'t own, link to the owning skill rather than re-explaining the section."
|
|
19
|
+
},
|
|
20
|
+
namingRulesProgrammatic-Advisory: {
|
|
21
|
+
header: "## Naming rules (programmatic + advisory)",
|
|
22
|
+
body: "- **Forbidden words in \`name\`**: \`claude\`, \`anthropic\`. Claude Code rejects skills containing these words unless they are official certified skills. Enforced by validator code \`RESERVED_WORD_IN_NAME\` (warning severity).\n- **Prefer CLI-name alignment**: when a skill primarily covers a CLI command, use the same root word (\`vat-audit\` → \`vat audit\`, \`vat-skill-review\` → \`vat skill review\`). Discovery hook for users running \`--help\`.\n- **Kebab-case**, lowercase letters, digits, hyphens. Matches \`^[a-z][a-z0-9-]*$\`.\n- **No vague nouns**: \`vat-resources\` was renamed to \`vat-knowledge-resources\` because \"resources\" alone could mean anything. Each name should carry its subject.\n- **No platform names** unless certified: see forbidden words rule above. Say \"enterprise\" not \"claude\" / \"anthropic\".",
|
|
23
|
+
text: "## Naming rules (programmatic + advisory)\n\n- **Forbidden words in \`name\`**: \`claude\`, \`anthropic\`. Claude Code rejects skills containing these words unless they are official certified skills. Enforced by validator code \`RESERVED_WORD_IN_NAME\` (warning severity).\n- **Prefer CLI-name alignment**: when a skill primarily covers a CLI command, use the same root word (\`vat-audit\` → \`vat audit\`, \`vat-skill-review\` → \`vat skill review\`). Discovery hook for users running \`--help\`.\n- **Kebab-case**, lowercase letters, digits, hyphens. Matches \`^[a-z][a-z0-9-]*$\`.\n- **No vague nouns**: \`vat-resources\` was renamed to \`vat-knowledge-resources\` because \"resources\" alone could mean anything. Each name should carry its subject.\n- **No platform names** unless certified: see forbidden words rule above. Say \"enterprise\" not \"claude\" / \"anthropic\"."
|
|
24
|
+
},
|
|
25
|
+
descriptionQuality: {
|
|
26
|
+
header: "## Description quality",
|
|
27
|
+
body: "A description must let Claude Code trigger correctly. Required elements:\n- **Action verb or \"Use when...\"** opener\n- **Subject** (what kind of work fires this skill)\n- **2-4 trigger keywords** (the words a user is likely to use)\n- **What it covers** (one short clause)\n- ≤250 chars total (Claude Code listing truncates at 250)\n\nExample (\`vat-audit\`):\n> Use when running \`vat audit\` to validate Claude plugins, marketplaces, or skills. Covers the audit command, \`--compat\` for surface compatibility, \`--exclude\` for noise filtering, and interpreting findings.\n\nTriggers on: \"audit my plugin\", \"validate plugin compatibility\", \"what does this audit warning mean\".",
|
|
28
|
+
text: "## Description quality\n\nA description must let Claude Code trigger correctly. Required elements:\n- **Action verb or \"Use when...\"** opener\n- **Subject** (what kind of work fires this skill)\n- **2-4 trigger keywords** (the words a user is likely to use)\n- **What it covers** (one short clause)\n- ≤250 chars total (Claude Code listing truncates at 250)\n\nExample (\`vat-audit\`):\n> Use when running \`vat audit\` to validate Claude plugins, marketplaces, or skills. Covers the audit command, \`--compat\` for surface compatibility, \`--exclude\` for noise filtering, and interpreting findings.\n\nTriggers on: \"audit my plugin\", \"validate plugin compatibility\", \"what does this audit warning mean\"."
|
|
29
|
+
},
|
|
30
|
+
routerSkillSkillmd-VibeAgentToolkit-SpecialRules: {
|
|
31
|
+
header: "## Router skill (\`SKILL.md\` / \`vibe-agent-toolkit\`) — special rules",
|
|
32
|
+
body: "The router exists for **discovery + routing**, not content. Strict rules:\n\n1. **≤150 lines total**\n2. **Prose references to sub-skills** — never markdown links: write \`vibe-agent-toolkit:vat-audit\`, not \`[vat-audit](./vat-audit.md)\`. Markdown links cause VAT\'s packager to transclude the sibling, bloating the bundle.\n3. **No code examples beyond a 5-line CLI overview** — depth lives in sub-skills\n4. **Description triggers entry questions** (\"what is VAT\", \"how do I get started\"), not specific tasks\n\nVerify after edits: \`vat skill review packages/vat-development-agents/resources/skills\` should report \`fileCount: 1\` (no transclusion).",
|
|
33
|
+
text: "## Router skill (\`SKILL.md\` / \`vibe-agent-toolkit\`) — special rules\n\nThe router exists for **discovery + routing**, not content. Strict rules:\n\n1. **≤150 lines total**\n2. **Prose references to sub-skills** — never markdown links: write \`vibe-agent-toolkit:vat-audit\`, not \`[vat-audit](./vat-audit.md)\`. Markdown links cause VAT\'s packager to transclude the sibling, bloating the bundle.\n3. **No code examples beyond a 5-line CLI overview** — depth lives in sub-skills\n4. **Description triggers entry questions** (\"what is VAT\", \"how do I get started\"), not specific tasks\n\nVerify after edits: \`vat skill review packages/vat-development-agents/resources/skills\` should report \`fileCount: 1\` (no transclusion)."
|
|
34
|
+
},
|
|
35
|
+
singleResponsibility-WhenToSplit: {
|
|
36
|
+
header: "## Single-responsibility — when to split",
|
|
37
|
+
body: "Split a skill when its description must list two unrelated subjects to trigger correctly. Example: the original \`vat-authoring\` covered both SKILL.md files and TypeScript agent functions — two distinct mental models, hence the split into \`vat-skill-authoring\` and \`vat-agent-authoring\`.",
|
|
38
|
+
text: "## Single-responsibility — when to split\n\nSplit a skill when its description must list two unrelated subjects to trigger correctly. Example: the original \`vat-authoring\` covered both SKILL.md files and TypeScript agent functions — two distinct mental models, hence the split into \`vat-skill-authoring\` and \`vat-agent-authoring\`."
|
|
39
|
+
},
|
|
40
|
+
contributorVsUserContent: {
|
|
41
|
+
header: "## Contributor vs user content",
|
|
42
|
+
body: "This plugin is for **users of VAT**. Contributor-facing material (debugging VAT internals, designing install architecture, working on the codebase) belongs in \`docs/contributing/\`, not in a SKILL.md here. The root CLAUDE.md routes contributors to those docs.\n\nIf a skill description says \"use when developing/contributing to VAT\", it doesn\'t belong in this directory.",
|
|
43
|
+
text: "## Contributor vs user content\n\nThis plugin is for **users of VAT**. Contributor-facing material (debugging VAT internals, designing install architecture, working on the codebase) belongs in \`docs/contributing/\`, not in a SKILL.md here. The root CLAUDE.md routes contributors to those docs.\n\nIf a skill description says \"use when developing/contributing to VAT\", it doesn\'t belong in this directory."
|
|
44
|
+
},
|
|
45
|
+
thisAreaMovesFast-VerifyCurrentStandards: {
|
|
46
|
+
header: "## This area moves fast — verify current standards",
|
|
47
|
+
body: "Skill authoring, agent design, and Claude Code\'s own skill-loading semantics are evolving rapidly. Cached guidance under \`docs/external/\` (e.g. \`anthropic-skill-authoring-best-practices.md\`) ages quickly. Before making non-trivial changes:\n\n- Re-fetch the source URL named in the cached doc\'s preamble; diff against the cache; if material has changed, update the cache and propagate the delta into validators and \`vat-skill-review\`.\n- Web search for the latest Claude Code release notes when changing trigger semantics, frontmatter rules, or packaging behavior. Don\'t rely on training-data recall.\n- The \`vat-skill-review\` skill must carry this same instruction explicitly — it\'s the skill agents load when they\'re about to apply quality standards.",
|
|
48
|
+
text: "## This area moves fast — verify current standards\n\nSkill authoring, agent design, and Claude Code\'s own skill-loading semantics are evolving rapidly. Cached guidance under \`docs/external/\` (e.g. \`anthropic-skill-authoring-best-practices.md\`) ages quickly. Before making non-trivial changes:\n\n- Re-fetch the source URL named in the cached doc\'s preamble; diff against the cache; if material has changed, update the cache and propagate the delta into validators and \`vat-skill-review\`.\n- Web search for the latest Claude Code release notes when changing trigger semantics, frontmatter rules, or packaging behavior. Don\'t rely on training-data recall.\n- The \`vat-skill-review\` skill must carry this same instruction explicitly — it\'s the skill agents load when they\'re about to apply quality standards."
|
|
49
|
+
},
|
|
50
|
+
shiftLeft-EveryManualCheckIsAFutureValidator: {
|
|
51
|
+
header: "## Shift left — every manual check is a future validator",
|
|
52
|
+
body: "When a quality issue is caught manually (in code review, by the user noticing an error from Claude Code, or via a checklist walkthrough), treat it as a candidate for **promotion to a programmatic validator**. The bar is: if the issue has a clear pattern that can be detected from the file contents, it should not stay a manual check.\n\n**Canonical example**: the \`RESERVED_WORD_IN_NAME\` rule. The \`claude\`/\`anthropic\` naming restriction was discovered through an install-time rejection — the kind of failure a developer hits once, remembers forever, but new contributors keep re-hitting. Encoding it as a validator (warning severity, fires at \`vat audit\` / \`vat skills validate\` time) shifts the discovery left from \"Claude Code rejects my install\" to \"validator warns me before I commit.\"\n\nWhen you add a validator:\n1. Register the code in \`validation-rules.ts\` with severity, message template, fix hint, and a \`reference\` pointer to the rationale (often a section of \`vat-skill-review\` or external doc)\n2. Wire it into the appropriate validator pipeline (frontmatter, link, packaging) so it actually fires\n3. Add a checklist entry in \`vat-skill-review\` that references the same code (so the manual rubric and the automated check stay aligned)\n4. Default severity is **warning** unless the issue genuinely blocks distribution — even then, prefer warning + clear fix hint per the [skill-smell philosophy](../../../../docs/skill-smell-philosophy.md)\n\nWhen \`vat-skill-review\` lists a checklist item that is currently a \`[ ]\` manual judgment call, ask: *can this be detected programmatically?* If yes, file a follow-up to add the validator and convert the manual item to an automated reference.",
|
|
53
|
+
text: "## Shift left — every manual check is a future validator\n\nWhen a quality issue is caught manually (in code review, by the user noticing an error from Claude Code, or via a checklist walkthrough), treat it as a candidate for **promotion to a programmatic validator**. The bar is: if the issue has a clear pattern that can be detected from the file contents, it should not stay a manual check.\n\n**Canonical example**: the \`RESERVED_WORD_IN_NAME\` rule. The \`claude\`/\`anthropic\` naming restriction was discovered through an install-time rejection — the kind of failure a developer hits once, remembers forever, but new contributors keep re-hitting. Encoding it as a validator (warning severity, fires at \`vat audit\` / \`vat skills validate\` time) shifts the discovery left from \"Claude Code rejects my install\" to \"validator warns me before I commit.\"\n\nWhen you add a validator:\n1. Register the code in \`validation-rules.ts\` with severity, message template, fix hint, and a \`reference\` pointer to the rationale (often a section of \`vat-skill-review\` or external doc)\n2. Wire it into the appropriate validator pipeline (frontmatter, link, packaging) so it actually fires\n3. Add a checklist entry in \`vat-skill-review\` that references the same code (so the manual rubric and the automated check stay aligned)\n4. Default severity is **warning** unless the issue genuinely blocks distribution — even then, prefer warning + clear fix hint per the [skill-smell philosophy](../../../../docs/skill-smell-philosophy.md)\n\nWhen \`vat-skill-review\` lists a checklist item that is currently a \`[ ]\` manual judgment call, ask: *can this be detected programmatically?* If yes, file a follow-up to add the validator and convert the manual item to an automated reference."
|
|
54
|
+
},
|
|
55
|
+
preCommitChecks: {
|
|
56
|
+
header: "## Pre-commit checks",
|
|
57
|
+
body: "Before committing a skill change:\n\n\`\`\`bash\n# Review the specific skill you touched\nbun run vat skill review packages/vat-development-agents/resources/skills/<skill>.md\n\n# Audit the whole plugin\nbun run vat audit packages/vat-development-agents\n\n# Full validation\nbun run validate\n\`\`\`\n\nWatch for:\n- \`RESERVED_WORD_IN_NAME\` (warning) — naming policy violation\n- \`SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT\` — trim to ≤250 chars\n- \`SKILL_DESCRIPTION_FILLER_OPENER\` — start with action verb or \"Use when\"\n- \`SKILL_NAME_MISMATCHES_DIR\` (should not fire — generic-container exemption applies here)\n- \`LINK_TO_NAVIGATION_FILE\` — link to specific files, not READMEs\n- \`LINK_TARGETS_DIRECTORY\` — link to specific files, not directories",
|
|
58
|
+
text: "## Pre-commit checks\n\nBefore committing a skill change:\n\n\`\`\`bash\n# Review the specific skill you touched\nbun run vat skill review packages/vat-development-agents/resources/skills/<skill>.md\n\n# Audit the whole plugin\nbun run vat audit packages/vat-development-agents\n\n# Full validation\nbun run validate\n\`\`\`\n\nWatch for:\n- \`RESERVED_WORD_IN_NAME\` (warning) — naming policy violation\n- \`SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT\` — trim to ≤250 chars\n- \`SKILL_DESCRIPTION_FILLER_OPENER\` — start with action verb or \"Use when\"\n- \`SKILL_NAME_MISMATCHES_DIR\` (should not fire — generic-container exemption applies here)\n- \`LINK_TO_NAVIGATION_FILE\` — link to specific files, not READMEs\n- \`LINK_TARGETS_DIRECTORY\` — link to specific files, not directories"
|
|
59
|
+
}
|
|
60
|
+
};
|
|
@@ -16,17 +16,9 @@ export const meta: {
|
|
|
16
16
|
export const text: string;
|
|
17
17
|
|
|
18
18
|
export const fragments: {
|
|
19
|
-
readonly purposeForUsersNotContributors: Fragment;
|
|
20
19
|
readonly whenToUseVat: Fragment;
|
|
21
|
-
readonly
|
|
22
|
-
readonly
|
|
23
|
-
readonly coreCliCommands: Fragment;
|
|
24
|
-
readonly agentGeneratorCreatingNewAgents: Fragment;
|
|
25
|
-
readonly packagingMarkdownForReuse: Fragment;
|
|
26
|
-
readonly commonWorkflows: Fragment;
|
|
27
|
-
readonly successCriteria: Fragment;
|
|
28
|
-
readonly documentationIndex: Fragment;
|
|
29
|
-
readonly runningVat: Fragment;
|
|
20
|
+
readonly pickingASubSkill: Fragment;
|
|
21
|
+
readonly cliSurfaceAtAGlance: Fragment;
|
|
30
22
|
readonly gettingHelp: Fragment;
|
|
31
23
|
};
|
|
32
24
|
|