ai-agent-skills 1.6.0 → 1.6.2

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/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <img src="https://img.shields.io/badge/skills-39-blue?style=flat-square" alt="Skills" />
13
+ <img src="https://img.shields.io/badge/skills-40-blue?style=flat-square" alt="Skills" />
14
14
  <img src="https://img.shields.io/badge/agents-10+-green?style=flat-square" alt="Compatible Agents" />
15
15
  <img src="https://img.shields.io/badge/license-MIT-brightgreen?style=flat-square" alt="License" />
16
16
  <img src="https://img.shields.io/npm/v/ai-agent-skills?style=flat-square&color=red" alt="npm" />
@@ -29,16 +29,14 @@
29
29
  ## Quick Start
30
30
 
31
31
  ```bash
32
- # Browse skills interactively
33
- npx ai-agent-skills browse
34
-
35
- # Install from our curated catalog
32
+ # Install a skill to ALL agents with one command
36
33
  npx ai-agent-skills install frontend-design
37
34
 
38
- # Install for specific agents
35
+ # Install to a specific agent only
39
36
  npx ai-agent-skills install frontend-design --agent cursor
40
- npx ai-agent-skills install frontend-design --agent codex
41
- npx ai-agent-skills install frontend-design --agent amp
37
+
38
+ # Browse skills interactively
39
+ npx ai-agent-skills browse
42
40
 
43
41
  # Install from any GitHub repo
44
42
  npx ai-agent-skills install anthropics/skills
@@ -48,7 +46,7 @@ npx ai-agent-skills install anthropics/skills/pdf # specific skill
48
46
  npx ai-agent-skills install ./my-custom-skill
49
47
  ```
50
48
 
51
- That's it. The skill installs to the right location for your agent automatically.
49
+ **One command. Every agent.** By default, skills install to Claude Code, Cursor, Codex, Amp, VS Code, Copilot, Goose, Letta, and OpenCode simultaneously.
52
50
 
53
51
  ## Why This Exists
54
52
 
@@ -58,7 +56,7 @@ This repo curates the best in one place. Quality over quantity. All skills follo
58
56
 
59
57
  ## Compatible Agents
60
58
 
61
- Works with **Claude Code**, **Cursor**, **Amp**, **VS Code**, **GitHub Copilot**, **Goose**, **Letta**, **OpenCode**, and **Claude.ai**.
59
+ Works with **Claude Code**, **Cursor**, **Codex**, **Amp**, **VS Code**, **GitHub Copilot**, **Goose**, **Letta**, and **OpenCode**.
62
60
 
63
61
  ## Available Skills
64
62
 
@@ -109,6 +107,7 @@ Works with **Claude Code**, **Cursor**, **Amp**, **VS Code**, **GitHub Copilot**
109
107
  ### Productivity
110
108
  | Skill | Description |
111
109
  |-------|-------------|
110
+ | `ask-questions-if-underspecified` | Clarify requirements before implementing |
112
111
  | `doc-coauthoring` | Co-author docs, proposals, specs with structured workflow |
113
112
  | `job-application` | Cover letters and applications using your CV |
114
113
  | `qa-regression` | Automated regression testing with Playwright |
@@ -132,12 +131,11 @@ npx ai-agent-skills list
132
131
  npx ai-agent-skills list --category development
133
132
  npx ai-agent-skills list --installed --agent cursor
134
133
 
135
- # Install from catalog, GitHub, or local path
136
- npx ai-agent-skills install <name> # from catalog
137
- npx ai-agent-skills install <owner/repo> # from GitHub
138
- npx ai-agent-skills install <owner/repo/skill> # specific skill from GitHub
139
- npx ai-agent-skills install ./path # from local path
140
- npx ai-agent-skills install <name> --agent cursor # for specific agent
134
+ # Install (defaults to ALL agents)
135
+ npx ai-agent-skills install <name> # installs to ALL agents
136
+ npx ai-agent-skills install <name> --agent cursor # install to specific agent only
137
+ npx ai-agent-skills install <owner/repo> # from GitHub (all agents)
138
+ npx ai-agent-skills install ./path # from local path (all agents)
141
139
  npx ai-agent-skills install <name> --dry-run # preview only
142
140
 
143
141
  # Manage installed skills
@@ -155,15 +153,17 @@ npx ai-agent-skills config --default-agent cursor
155
153
 
156
154
  ### Supported Agents
157
155
 
156
+ By default, `install` targets **all agents**. Use `--agent <name>` to install to a specific one.
157
+
158
158
  | Agent | Flag | Install Location |
159
159
  |-------|------|------------------|
160
- | Claude Code | `--agent claude` (default) | `~/.claude/skills/` |
160
+ | Claude Code | `--agent claude` | `~/.claude/skills/` |
161
161
  | Cursor | `--agent cursor` | `.cursor/skills/` |
162
+ | Codex | `--agent codex` | `~/.codex/skills/` |
162
163
  | Amp | `--agent amp` | `~/.amp/skills/` |
163
164
  | VS Code / Copilot | `--agent vscode` | `.github/skills/` |
164
165
  | Goose | `--agent goose` | `~/.config/goose/skills/` |
165
- | OpenCode | `--agent opencode` | `~/.opencode/skills/` |
166
- | Codex | `--agent codex` | `~/.codex/skills/` |
166
+ | OpenCode | `--agent opencode` | `~/.opencode/skill/` |
167
167
  | Letta | `--agent letta` | `~/.letta/skills/` |
168
168
  | Portable | `--agent project` | `.skills/` (works with any agent) |
169
169
 
package/cli.js CHANGED
@@ -151,6 +151,7 @@ function parseArgs(args) {
151
151
  param: null,
152
152
  agents: [], // New: array of agents
153
153
  allAgents: false, // New: --all-agents flag
154
+ explicitAgent: false, // Track if user explicitly specified agent(s)
154
155
  installed: false,
155
156
  all: false,
156
157
  dryRun: false,
@@ -163,6 +164,7 @@ function parseArgs(args) {
163
164
 
164
165
  // --agents claude,cursor,codex (multiple agents)
165
166
  if (arg === '--agents') {
167
+ result.explicitAgent = true;
166
168
  const value = args[i + 1] || '';
167
169
  value.split(',').forEach(a => {
168
170
  const agent = a.trim();
@@ -174,6 +176,7 @@ function parseArgs(args) {
174
176
  }
175
177
  // --agent cursor (single agent, backward compatible)
176
178
  else if (arg === '--agent' || arg === '-a') {
179
+ result.explicitAgent = true;
177
180
  let agentValue = args[i + 1] || defaultAgent;
178
181
  agentValue = agentValue.replace(/^-+/, '');
179
182
  if (validAgents.includes(agentValue) && !result.agents.includes(agentValue)) {
@@ -183,6 +186,7 @@ function parseArgs(args) {
183
186
  }
184
187
  // --all-agents (install to all known agents)
185
188
  else if (arg === '--all-agents') {
189
+ result.explicitAgent = true;
186
190
  result.allAgents = true;
187
191
  }
188
192
  else if (arg === '--installed' || arg === '-i') {
@@ -205,6 +209,7 @@ function parseArgs(args) {
205
209
  else if (arg.startsWith('--')) {
206
210
  const potentialAgent = arg.replace(/^--/, '');
207
211
  if (validAgents.includes(potentialAgent)) {
212
+ result.explicitAgent = true;
208
213
  if (!result.agents.includes(potentialAgent)) {
209
214
  result.agents.push(potentialAgent);
210
215
  }
@@ -1055,7 +1060,8 @@ ${colors.bold}Commands:${colors.reset}
1055
1060
  ${colors.green}list${colors.reset} List all available skills
1056
1061
  ${colors.green}list --installed${colors.reset} List installed skills for an agent
1057
1062
  ${colors.green}list --category <cat>${colors.reset} Filter by category
1058
- ${colors.green}install <name>${colors.reset} Install a skill from catalog
1063
+ ${colors.green}install <name>${colors.reset} Install to ALL agents (default)
1064
+ ${colors.green}install <name> --agent cursor${colors.reset} Install to specific agent only
1059
1065
  ${colors.green}install <owner/repo>${colors.reset} Install from GitHub repository
1060
1066
  ${colors.green}install ./path${colors.reset} Install from local path
1061
1067
  ${colors.green}install <name> --dry-run${colors.reset} Preview installation without changes
@@ -1069,39 +1075,36 @@ ${colors.bold}Commands:${colors.reset}
1069
1075
  ${colors.green}help${colors.reset} Show this help
1070
1076
 
1071
1077
  ${colors.bold}Options:${colors.reset}
1072
- ${colors.cyan}--agent <name>${colors.reset} Target single agent (default: claude)
1078
+ ${colors.cyan}--agent <name>${colors.reset} Target specific agent (install defaults to ALL)
1073
1079
  ${colors.cyan}--agents <list>${colors.reset} Target multiple agents (comma-separated)
1074
- ${colors.cyan}--all-agents${colors.reset} Target ALL known agents at once
1075
1080
  ${colors.cyan}--installed${colors.reset} Show only installed skills (with list)
1076
1081
  ${colors.cyan}--dry-run, -n${colors.reset} Preview changes without applying
1077
1082
  ${colors.cyan}--category <c>${colors.reset} Filter by category
1078
1083
  ${colors.cyan}--all${colors.reset} Apply to all (with update)
1079
1084
  ${colors.cyan}--version, -v${colors.reset} Show version number
1080
1085
 
1081
- ${colors.bold}Agents:${colors.reset}
1082
- ${colors.cyan}claude${colors.reset} (default) ~/.claude/skills/
1083
- ${colors.cyan}cursor${colors.reset} .cursor/skills/ in current project
1086
+ ${colors.bold}Agents:${colors.reset} (install targets ALL by default)
1087
+ ${colors.cyan}claude${colors.reset} ~/.claude/skills/
1088
+ ${colors.cyan}cursor${colors.reset} .cursor/skills/ (project)
1089
+ ${colors.cyan}codex${colors.reset} ~/.codex/skills/
1084
1090
  ${colors.cyan}amp${colors.reset} ~/.amp/skills/
1085
- ${colors.cyan}vscode${colors.reset} .github/skills/ in current project
1091
+ ${colors.cyan}vscode${colors.reset} .github/skills/ (project)
1086
1092
  ${colors.cyan}copilot${colors.reset} .github/skills/ (alias for vscode)
1087
1093
  ${colors.cyan}goose${colors.reset} ~/.config/goose/skills/
1088
1094
  ${colors.cyan}opencode${colors.reset} ~/.opencode/skill/
1089
- ${colors.cyan}codex${colors.reset} ~/.codex/skills/
1090
1095
  ${colors.cyan}letta${colors.reset} ~/.letta/skills/
1091
- ${colors.cyan}project${colors.reset} .skills/ in current directory (portable)
1096
+ ${colors.cyan}project${colors.reset} .skills/ (portable)
1092
1097
 
1093
1098
  ${colors.bold}Categories:${colors.reset}
1094
1099
  development, document, creative, business, productivity
1095
1100
 
1096
1101
  ${colors.bold}Examples:${colors.reset}
1097
1102
  npx ai-agent-skills browse # Interactive browser
1098
- npx ai-agent-skills install frontend-design # Install from catalog
1103
+ npx ai-agent-skills install frontend-design # Install to ALL agents
1104
+ npx ai-agent-skills install pdf --agent cursor # Install to Cursor only
1105
+ npx ai-agent-skills install pdf --agents claude,cursor # Install to specific agents
1099
1106
  npx ai-agent-skills install anthropics/skills # Install from GitHub
1100
- npx ai-agent-skills install anthropics/skills/pdf # Install specific skill from GitHub
1101
1107
  npx ai-agent-skills install ./my-skill # Install from local path
1102
- npx ai-agent-skills install pdf --agent cursor # Install for Cursor
1103
- npx ai-agent-skills install pdf --agents claude,cursor # Install for multiple agents
1104
- npx ai-agent-skills install pdf --all-agents # Install for ALL agents
1105
1108
  npx ai-agent-skills install pdf --dry-run # Preview install
1106
1109
  npx ai-agent-skills list --category development
1107
1110
  npx ai-agent-skills search testing
@@ -1207,7 +1210,8 @@ function setConfig(key, value) {
1207
1210
  // ============ MAIN CLI ============
1208
1211
 
1209
1212
  const args = process.argv.slice(2);
1210
- const { command, param, agents, installed, dryRun, category, tags, all } = parseArgs(args);
1213
+ const { command, param, agents, explicitAgent, installed, dryRun, category, tags, all } = parseArgs(args);
1214
+ const ALL_AGENTS = Object.keys(AGENT_PATHS);
1211
1215
 
1212
1216
  // Handle config commands specially
1213
1217
  if (command === 'config') {
@@ -1252,11 +1256,12 @@ switch (command || 'help') {
1252
1256
  case 'add':
1253
1257
  if (!param) {
1254
1258
  error('Please specify a skill name, GitHub repo, or local path.');
1255
- log('Usage: npx ai-agent-skills install <name> [--agents claude,cursor] [--all-agents]');
1259
+ log('Usage: npx ai-agent-skills install <name> [--agent cursor]');
1256
1260
  process.exit(1);
1257
1261
  }
1258
- // Install to all specified agents
1259
- for (const agent of agents) {
1262
+ // Default to ALL agents when no agent explicitly specified
1263
+ const installTargets = explicitAgent ? agents : ALL_AGENTS;
1264
+ for (const agent of installTargets) {
1260
1265
  if (isLocalPath(param)) {
1261
1266
  installFromLocalPath(param, agent, dryRun);
1262
1267
  } else if (isGitHubUrl(param)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-agent-skills",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Install curated AI agent skills with one command. Works with Claude Code, Cursor, Amp, VS Code, and all Agent Skills compatible tools.",
5
5
  "main": "cli.js",
6
6
  "bin": {
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: ask-questions-if-underspecified
3
+ description: Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.
4
+ ---
5
+
6
+ # Ask Questions If Underspecified
7
+
8
+ ## Goal
9
+
10
+ Ask the minimum set of clarifying questions needed to avoid wrong work; do not start implementing until the must-have questions are answered (or the user explicitly approves proceeding with stated assumptions).
11
+
12
+ ## Workflow
13
+
14
+ ### 1) Decide whether the request is underspecified
15
+
16
+ Treat a request as underspecified if after exploring how to perform the work, some or all of the following are not clear:
17
+ - Define the objective (what should change vs stay the same)
18
+ - Define "done" (acceptance criteria, examples, edge cases)
19
+ - Define scope (which files/components/users are in/out)
20
+ - Define constraints (compatibility, performance, style, deps, time)
21
+ - Identify environment (language/runtime versions, OS, build/test runner)
22
+ - Clarify safety/reversibility (data migration, rollout/rollback, risk)
23
+
24
+ If multiple plausible interpretations exist, assume it is underspecified.
25
+
26
+ ### 2) Ask must-have questions first (keep it small)
27
+
28
+ Ask 1-5 questions in the first pass. Prefer questions that eliminate whole branches of work.
29
+
30
+ Make questions easy to answer:
31
+ - Optimize for scannability (short, numbered questions; avoid paragraphs)
32
+ - Offer multiple-choice options when possible
33
+ - Suggest reasonable defaults when appropriate (mark them clearly as the default/recommended choice; bold the recommended choice in the list, or if you present options in a code block, put a bold "Recommended" line immediately above the block and also tag defaults inside the block)
34
+ - Include a fast-path response (e.g., reply `defaults` to accept all recommended/default choices)
35
+ - Include a low-friction "not sure" option when helpful (e.g., "Not sure - use default")
36
+ - Separate "Need to know" from "Nice to know" if that reduces friction
37
+ - Structure options so the user can respond with compact decisions (e.g., `1b 2a 3c`); restate the chosen options in plain language to confirm
38
+
39
+ ### 3) Pause before acting
40
+
41
+ Until must-have answers arrive:
42
+ - Do not run commands, edit files, or produce a detailed plan that depends on unknowns
43
+ - Do perform a clearly labeled, low-risk discovery step only if it does not commit you to a direction (e.g., inspect repo structure, read relevant config files)
44
+
45
+ If the user explicitly asks you to proceed without answers:
46
+ - State your assumptions as a short numbered list
47
+ - Ask for confirmation; proceed only after they confirm or correct them
48
+
49
+ ### 4) Confirm interpretation, then proceed
50
+
51
+ Once you have answers, restate the requirements in 1-3 sentences (including key constraints and what success looks like), then start work.
52
+
53
+ ## Question templates
54
+
55
+ - "Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ...."
56
+ - "Which of these should it be? A) ... B) ... C) ... (pick one)"
57
+ - "What would you consider 'done'? For example: ..."
58
+ - "Any constraints I must follow (versions, performance, style, deps)? If none, I will target the existing project defaults."
59
+ - Use numbered questions with lettered options and a clear reply format
60
+
61
+ ```text
62
+ 1) Scope?
63
+ a) Minimal change (default)
64
+ b) Refactor while touching the area
65
+ c) Not sure - use default
66
+ 2) Compatibility target?
67
+ a) Current project defaults (default)
68
+ b) Also support older versions: <specify>
69
+ c) Not sure - use default
70
+
71
+ Reply with: defaults (or 1a 2a)
72
+ ```
73
+
74
+ ## Anti-patterns
75
+
76
+ - Don't ask questions you can answer with a quick, low-risk discovery read (e.g., configs, existing patterns, docs).
77
+ - Don't ask open-ended questions if a tight multiple-choice or yes/no would eliminate ambiguity faster.
78
+
79
+ ---
80
+
81
+ *Originally created by [@thsottiaux](https://x.com/thsottiaux)*
package/skills.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.2.2",
3
- "updated": "2025-12-25T00:00:00Z",
4
- "total": 39,
3
+ "updated": "2026-01-01T00:00:00Z",
4
+ "total": 40,
5
5
  "skills": [
6
6
  {
7
7
  "name": "frontend-design",
@@ -315,6 +315,20 @@
315
315
  "featured": true,
316
316
  "verified": true
317
317
  },
318
+ {
319
+ "name": "ask-questions-if-underspecified",
320
+ "description": "Clarify requirements before implementing. Ask 1-5 must-have questions to avoid wrong work. Use when requests are ambiguous, have multiple valid interpretations, or lack key details like scope, constraints, or acceptance criteria.",
321
+ "category": "productivity",
322
+ "author": "thsottiaux",
323
+ "source": "skillcreatorai/Ai-Agent-Skills",
324
+ "license": "MIT",
325
+ "path": "skills/ask-questions-if-underspecified",
326
+ "tags": ["clarification", "requirements", "workflow", "codex"],
327
+ "stars": 100,
328
+ "downloads": 0,
329
+ "featured": true,
330
+ "verified": true
331
+ },
318
332
  {
319
333
  "name": "artifacts-builder",
320
334
  "description": "Create elaborate HTML artifacts using React, Tailwind CSS, and shadcn/ui. Use for building interactive web components and demos.",
@@ -540,7 +554,7 @@
540
554
  "id": "productivity",
541
555
  "name": "Productivity",
542
556
  "description": "Productivity and workflow skills",
543
- "count": 11
557
+ "count": 12
544
558
  }
545
559
  ]
546
560
  }