Skip to content

feat(cli): bundle agentv-dev skills and add agentv skills subcommand#1226

Open
christso wants to merge 2 commits intomainfrom
feat/1224-bundled-skills
Open

feat(cli): bundle agentv-dev skills and add agentv skills subcommand#1226
christso wants to merge 2 commits intomainfrom
feat/1224-bundled-skills

Conversation

@christso
Copy link
Copy Markdown
Collaborator

@christso christso commented May 7, 2026

Closes #1224

Summary

  • Adds agentv skills subcommand with list, get, path sub-commands
  • Bundles all six agentv-dev skills into the npm package at apps/cli/skills/dist/skills/ at build time
  • Converts marketplace plugin SKILL.md files to discovery stubs pointing to agentv skills get <name>
  • Updates installation docs so the canonical setup is npm install -g agentv alone

Changes

CLI subcommand (apps/cli/src/commands/skills/index.ts):

  • agentv skills list — list available skill names (--json)
  • agentv skills get <name> — print SKILL.md content (--full includes references/, --json)
  • agentv skills get --all — print all skills
  • agentv skills path [<name>] — print resolved skills directory

Resolution walks upward from the module file, validating by SKILL.md presence to avoid false matches on the src/commands/skills/ directory itself. Prefers dist/skills/ (production layout).

Build pipeline (apps/cli/tsup.config.ts):

  • onSuccess copies apps/cli/skills/dist/skills/ alongside templates and studio assets

Skill content (apps/cli/skills/):

  • Full skill content moved here as the single source of truth (was in plugins/agentv-dev/skills/)
  • Includes all six skills: agentv-bench, agentv-eval-writer, agentv-eval-review, agentv-governance, agentv-onboarding, agentv-trace-analyst, plus their references/, scripts/, agents/ subdirectories

Plugin stubs (plugins/agentv-dev/skills/*/SKILL.md):

  • Rewritten to discovery stubs: keep the description: frontmatter (for trigger matching) and redirect agents to agentv skills get <name>

Docs (apps/web/src/content/docs/docs/getting-started/installation.mdx):

  • Canonical setup is now npm install -g agentv + agentv skills get agentv-onboarding
  • allagents plugin block moved to optional "Claude Code Plugin" section

Red/Green UAT

Before (no skills subcommand):

$ agentv skills list
error: Unknown command "skills"

After:

$ agentv skills list
agentv-bench
agentv-eval-review
agentv-eval-writer
agentv-governance
agentv-onboarding
agentv-trace-analyst

$ agentv skills get agentv-bench | head -5
---
name: agentv-bench
description: >-
  Run AgentV evaluations and optimize agents through eval-driven iteration.

$ agentv skills get agentv-bench --json | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['success'], d['data'][0]['name'])"
True agentv-bench

$ agentv skills get does-not-exist; echo "Exit: $?"
Error: skill 'does-not-exist' not found
Available skills: agentv-bench, agentv-eval-review, agentv-eval-writer, agentv-governance, agentv-onboarding, agentv-trace-analyst
Exit: 1

Test plan

  • bun run test — all 2346 tests pass (527 CLI + 1752 core + 67 eval)
  • 9 new unit tests covering: listSkillNames, readSkill (SKILL.md content, frontmatter with hidden:true, not-found, --full with references, --full with no extra dirs), collectDir
  • agentv skills list returns all 6 skill names
  • agentv skills get agentv-bench returns full 428-line SKILL.md
  • agentv skills get agentv-bench --json returns valid JSON with stable schema
  • agentv skills get does-not-exist exits 1 with error message
  • agentv skills path returns resolved dist/skills directory
  • Pre-push hook passed: build, typecheck, lint, tests, validate:examples all green

christso and others added 2 commits May 7, 2026 03:15
Skills are now bundled inside the CLI npm package (`apps/cli/skills/`
→ `dist/skills/` at build time), version-matched to the binary. A new
`agentv skills` subcommand serves the bundled content without any
separate plugin install step.

- `agentv skills list` — list available skill names (--json)
- `agentv skills get <name>` — print SKILL.md content (--full, --json)
- `agentv skills get --all` — print all skills
- `agentv skills path [<name>]` — print resolved skills directory

Resolution walks upward from the module file, validating by SKILL.md
presence to avoid false matches. Prefers `dist/skills/` (production
layout) over bare `skills/` (source layout).

The marketplace plugin SKILL.md files are converted to discovery stubs
that redirect agents to `agentv skills get <name>`. Full skill content
lives in `apps/cli/skills/` as the single source of truth.

Docs: update installation.mdx so the canonical setup is
`npm install -g agentv` alone; the allagents plugin step moves to an
optional "Claude Code Plugin" section.

Closes #1224

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying agentv with  Cloudflare Pages  Cloudflare Pages

Latest commit: da04aad
Status: ✅  Deploy successful!
Preview URL: https://6794b51e.agentv.pages.dev
Branch Preview URL: https://feat-1224-bundled-skills.agentv.pages.dev

View logs

@christso
Copy link
Copy Markdown
Collaborator Author

christso commented May 7, 2026

Review: agentv skills subcommand

Verdict: PASS (approve — can't self-approve via API)

E2E Testing

All 6 commands tested against the built dist:

Command Result
agentv skills list Clean plain-text list of 6 skills
agentv skills get agentv-bench Full 428-line SKILL.md — excellent AI-consumable density
agentv skills get agentv-bench --full SKILL.md + 7 reference files, separated by --- references/foo.md --- headers
agentv skills path Returns resolved absolute path to skills dir
agentv skills get does-not-exist Error: skill 'does-not-exist' not found + lists available skills, exits 1
agentv skills get --all All 6 skills with === skill-name === separators

An AI agent reading only CLI output gets: what AgentV is, how to run evals, what graders exist, how to interpret results. The SKILL.md content is well-structured for AI consumption.

Code Review

All passing:

  • findSkillsDir() walk + isValidSkillsDir() validation correctly handles both source and dist layouts
  • tsup.config.ts onSuccess properly cleans (rmSync) then copies apps/cli/skills/dist/skills/
  • Plugin SKILL.md stubs preserve full description: frontmatter with clean redirect instructions
  • 9 unit tests with proper temp dir cleanup, covering all key paths
  • Wire format correct (success/data keys are single-word, no case issues)
  • No YAGNI violations — 3 subcommands, minimal flags, stateless filesystem reads

Non-blocking follow-ups

  1. agentv-onboarding/SKILL.md<skill-dir> placeholder never resolves itself. Add: "Run agentv skills path agentv-onboarding to get the skill directory path." Makes the skill self-sufficient without filesystem context.

  2. agentv-bench/SKILL.md — References agents/grader.md etc. but --full only includes references/. The skill should tell agents: "Run agentv skills path agentv-bench to locate <skill-dir>/agents/<name>.md."

  3. agentv-eval-review/SKILL.mdpython scripts/lint_eval.py is a bare relative path; consider $(agentv skills path agentv-eval-review)/scripts/lint_eval.py for portability.

These are plugin content improvements, not blockers for merging. Implementation is correct and clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cli): bundle agentv-dev skills into npm package and add "agentv skills" subcommand

1 participant