@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.
Files changed (52) hide show
  1. package/dist/.claude/plugins/marketplaces/vat-skills/CHANGELOG.md +37 -4
  2. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/.claude-plugin/plugin.json +1 -1
  3. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-adoption-and-configuration/SKILL.md +179 -0
  4. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{authoring → vat-agent-authoring}/SKILL.md +16 -134
  5. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{audit → vat-audit}/SKILL.md +1 -1
  6. package/dist/{skills/org-admin → .claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-enterprise-org}/SKILL.md +3 -3
  7. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{resources → vat-knowledge-resources}/SKILL.md +1 -1
  8. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-rag/SKILL.md +104 -0
  9. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vat-skill-authoring/SKILL.md +156 -0
  10. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/{distribution → vat-skill-distribution}/SKILL.md +3 -2
  11. 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
  12. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/vibe-agent-toolkit/SKILL.md +40 -189
  13. package/dist/generated/resources/skills/CLAUDE.d.ts +28 -0
  14. package/dist/generated/resources/skills/CLAUDE.js +60 -0
  15. package/dist/generated/resources/skills/SKILL.d.ts +2 -10
  16. package/dist/generated/resources/skills/SKILL.js +14 -54
  17. package/dist/generated/resources/skills/vat-adoption-and-configuration.d.ts +29 -0
  18. package/dist/generated/resources/skills/vat-adoption-and-configuration.js +53 -0
  19. package/dist/generated/resources/skills/vat-agent-authoring.d.ts +0 -2
  20. package/dist/generated/resources/skills/vat-agent-authoring.js +9 -19
  21. package/dist/generated/resources/skills/vat-audit.js +1 -1
  22. package/dist/generated/resources/skills/{vat-claude-org-admin.js → vat-enterprise-org.js} +3 -3
  23. package/dist/generated/resources/skills/{vat-resources.js → vat-knowledge-resources.js} +1 -1
  24. package/dist/generated/resources/skills/{vat-install-architecture.d.ts → vat-rag.d.ts} +6 -7
  25. package/dist/generated/resources/skills/vat-rag.js +43 -0
  26. package/dist/generated/resources/skills/{vat-debugging.d.ts → vat-skill-authoring.d.ts} +7 -7
  27. package/dist/generated/resources/skills/vat-skill-authoring.js +48 -0
  28. package/dist/generated/resources/skills/{vat-skills-distribution.js → vat-skill-distribution.js} +4 -4
  29. package/dist/generated/resources/skills/{skill-quality-checklist.d.ts → vat-skill-review.d.ts} +5 -1
  30. package/dist/generated/resources/skills/{skill-quality-checklist.js → vat-skill-review.js} +10 -2
  31. package/dist/skills/vat-adoption-and-configuration/SKILL.md +179 -0
  32. package/dist/skills/{authoring → vat-agent-authoring}/SKILL.md +16 -134
  33. package/dist/skills/{audit → vat-audit}/SKILL.md +1 -1
  34. package/dist/{.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/org-admin → skills/vat-enterprise-org}/SKILL.md +3 -3
  35. package/dist/skills/{resources → vat-knowledge-resources}/SKILL.md +1 -1
  36. package/dist/skills/vat-rag/SKILL.md +104 -0
  37. package/dist/skills/vat-skill-authoring/SKILL.md +156 -0
  38. package/dist/skills/{distribution → vat-skill-distribution}/SKILL.md +3 -2
  39. 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
  40. package/dist/skills/vibe-agent-toolkit/SKILL.md +40 -189
  41. package/package.json +13 -11
  42. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/debugging/SKILL.md +0 -111
  43. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/distribution/resources/vat-install-architecture.md +0 -229
  44. package/dist/.claude/plugins/marketplaces/vat-skills/plugins/vibe-agent-toolkit/skills/install/SKILL.md +0 -229
  45. package/dist/generated/resources/skills/vat-debugging.js +0 -48
  46. package/dist/generated/resources/skills/vat-install-architecture.js +0 -48
  47. package/dist/skills/debugging/SKILL.md +0 -111
  48. package/dist/skills/distribution/resources/vat-install-architecture.md +0 -229
  49. package/dist/skills/install/SKILL.md +0 -229
  50. /package/dist/generated/resources/skills/{vat-claude-org-admin.d.ts → vat-enterprise-org.d.ts} +0 -0
  51. /package/dist/generated/resources/skills/{vat-resources.d.ts → vat-knowledge-resources.d.ts} +0 -0
  52. /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 [Install & Uninstall Architecture](resources/vat-install-architecture.md).
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
- # Skill Quality Checklist
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 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.
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 Skill
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
- ## Purpose: For Users, Not Contributors
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
- **VAT is great for:** Multi-framework projects, reusable agent libraries, testing across LLM
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
- ## Skill Routing Table
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
- | If you're working on... | Use this skill |
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
- ## Agent Archetypes (Quick Reference)
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
- Four patterns cover most use cases. For full code examples, see `vibe-agent-toolkit:authoring`.
28
+ ## Picking a Sub-skill
49
29
 
50
- | Archetype | When to Use |
30
+ | If you're working on... | Load |
51
31
  |---|---|
52
- | **Pure Function Tool** | Stateless validation, transformation, computation no LLM needed |
53
- | **One-Shot LLM Analyzer** | Single LLM call for analysis, classification, or generation |
54
- | **Conversational Assistant** | Multi-turn dialogue with session state across turns |
55
- | **External Event Integrator** | Waiting for human approval, webhooks, or third-party APIs |
56
-
57
- ## Core CLI Commands
58
-
59
- ```bash
60
- # Install VAT CLI globally
61
- npm install -g vibe-agent-toolkit
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
- npm install -D @vibe-agent-toolkit/resource-compiler
133
- npx vat-compile-resources compile resources/ generated/resources/
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
- ```typescript
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
- - **CLI Help:** `vat --help`, `vat skills --help`, etc.
208
- - **Examples:** `packages/vat-example-cat-agents/`
209
- - **GitHub Issues:** Report bugs or ask questions
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 skillRoutingTable: Fragment;
22
- readonly agentArchetypesQuickReference: Fragment;
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