From mblode-agent-skills
Scaffolds a production-ready TypeScript CLI project with ESM, tsdown, vitest, oxlint, oxfmt, changesets, GitHub Actions, and an agent skill definition. Use when creating a new CLI tool, bootstrapping a TypeScript project, scaffolding a node CLI, starting a new npm package, or asking "scaffold a CLI project."
npx claudepluginhub joshuarweaver/cascade-code-general-misc-4 --plugin mblode-agent-skillsThis skill uses the workspace's default tool permissions.
Scaffold a production-ready TypeScript CLI project (Node 22+) with ESM modules, dual-build (CLI + library), automated releases, and an agent skill definition.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Scaffold a production-ready TypeScript CLI project (Node 22+) with ESM modules, dual-build (CLI + library), automated releases, and an agent skill definition.
| File | Read When |
|---|---|
references/scaffold-configs.md | Default: templates for package.json, tsconfig, tsdown, gitignore, license, changeset config, GitHub Actions |
references/scaffold-source.md | Default: templates for src/cli.ts, src/index.ts, src/types.ts, AGENTS.md, README.md, skills/SKILL.md |
references/post-scaffold.md | After generating files: post-scaffold commands and validation checklist |
Copy this checklist to track progress:
Scaffold progress:
- [ ] Step 1: Gather project info
- [ ] Step 2: Create directory structure
- [ ] Step 3: Generate config files
- [ ] Step 4: Generate source files
- [ ] Step 5: Generate docs and skill
- [ ] Step 6: Run post-scaffold commands
- [ ] Step 7: Validate scaffold
Collect from the user (ask only what was not provided):
| Variable | Example | Default | Used in |
|---|---|---|---|
{{name}} | md-tools | — (required) | package.json name, README title |
{{description}} | CLI tool to convert content to markdown | — (required) | package.json, README, SKILL.md |
{{bin}} | md | same as {{name}} | package.json bin field, CLI examples |
{{repo}} | acme/md-tools | — (required) | package.json repository, badges |
{{author}} | Your Name | — (required) | package.json, LICENSE |
{{year}} | 2026 | current year | LICENSE |
{{name}}/
.changeset/
.github/
workflows/
src/
skills/{{bin}}/
Load references/scaffold-configs.md. Generate all config files, replacing every {{placeholder}} with actual values.
Files: package.json, tsconfig.json, tsdown.config.ts, .gitignore, LICENSE.md, .changeset/config.json, .changeset/README.md, .github/workflows/ci.yml, .github/workflows/npm-publish.yml
Load references/scaffold-source.md. Generate:
src/cli.ts — Commander entry pointsrc/index.ts — Public API exportssrc/types.ts — Shared type definitionsLoad references/scaffold-source.md. Generate:
AGENTS.md — Commands, architecture, gotchasREADME.md — Badges, features, install, usage, API, licenseskills/{{bin}}/SKILL.md — Agent skill definitionThen create symlink: ln -s AGENTS.md CLAUDE.md
Load references/post-scaffold.md. Run the full command sequence in order.
Load references/post-scaffold.md. Run all validation checks and confirm every item passes.
All templates use {{variable}} syntax. Do a final sweep to catch any missed placeholders before writing files.
| Placeholder | Source |
|---|---|
{{name}} | Project name (kebab-case) |
{{description}} | One-line project description |
{{bin}} | CLI binary name |
{{repo}} | GitHub owner/repo |
{{author}} | Author name |
{{year}} | Current year |
Runtime:
@clack/prompts, commander, gray-matter
Development:
@changesets/cli, @types/node, tsdown, typescript, ultracite, vitest
Built-in (no install needed):
node:util styleText for colors (replaces chalk), @clack/prompts spinner for progress (replaces ora)
"type": "module"skills/ directory — every CLI project needs agent instructionsultracite fix or ultracite checknode:util styleText for colors and @clack/prompts spinner