cli-five 0.2.9 → 0.2.10
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 +3 -1
- package/package.json +1 -1
- package/src/steps/skills.mjs +20 -3
package/README.md
CHANGED
|
@@ -116,7 +116,9 @@ cli-five searches **two sources** for skills matching your detected stack:
|
|
|
116
116
|
| **awesome-copilot** | Skills, instructions, agents, plugins from the GitHub community | 30k+ |
|
|
117
117
|
| **skills.sh** | Curated skill repos (Vercel, Anthropic, Microsoft, etc.) | — |
|
|
118
118
|
|
|
119
|
-
Recommendations show with source attribution
|
|
119
|
+
Recommendations show with source attribution. Only cli-five core skills are pre-selected; suggested skills from skills.sh and awesome-copilot require manual selection (press Space) before install. After installation, you get breadcrumbs for ongoing discovery:
|
|
120
|
+
|
|
121
|
+
Take time to read each installed skill so you understand what it does and can catch overlap or conflicts before they affect your workflow.
|
|
120
122
|
|
|
121
123
|
- **Suggest skill** — `copilot plugin install awesome-copilot@suggest` (AI-driven repo analysis)
|
|
122
124
|
- **MCP server** — `awesome-copilot-mcp` for programmatic search from any agent
|
package/package.json
CHANGED
package/src/steps/skills.mjs
CHANGED
|
@@ -22,6 +22,15 @@ const SKILL_CATALOG = [
|
|
|
22
22
|
{ terms: ['rust'], repo: 'anthropics/skills', skills: ['code-review'] },
|
|
23
23
|
];
|
|
24
24
|
|
|
25
|
+
// Core skills are the always-on baseline curated by cli-five.
|
|
26
|
+
// Stack-specific and discovered skills are suggestions and must be opted-in.
|
|
27
|
+
const CORE_CATALOG_SKILLS = new Set([
|
|
28
|
+
'anthropics/skills@frontend-design',
|
|
29
|
+
'anthropics/skills@skill-creator',
|
|
30
|
+
'vercel-labs/agent-skills@vercel-react-best-practices',
|
|
31
|
+
'vercel-labs/agent-skills@web-design-guidelines',
|
|
32
|
+
]);
|
|
33
|
+
|
|
25
34
|
// ── Environment detection ─────────────────────────────────────────────
|
|
26
35
|
|
|
27
36
|
function resolveSkillsBin() {
|
|
@@ -189,19 +198,20 @@ export async function skillDiscovery({ cwd, answers, args }) {
|
|
|
189
198
|
choices.push({
|
|
190
199
|
title: `${kleur.cyan('⬡')} ${r.skill} ${kleur.dim(`(${r.installs})`)} ${kleur.cyan('← awesome-copilot')}`,
|
|
191
200
|
value: { source: 'awesome', repo: r.repo, skill: r.skill, ref: r.ref },
|
|
192
|
-
selected:
|
|
201
|
+
selected: false,
|
|
193
202
|
});
|
|
194
203
|
}
|
|
195
204
|
|
|
196
205
|
// Static catalog recs (verified repos)
|
|
197
206
|
for (const r of catalogRecs) {
|
|
198
207
|
const ref = `${r.repo}@${r.skill}`;
|
|
208
|
+
const core = isCoreCatalogSkill(r.repo, r.skill);
|
|
199
209
|
if (seen.has(ref)) continue;
|
|
200
210
|
seen.add(ref);
|
|
201
211
|
choices.push({
|
|
202
|
-
title: `${kleur.yellow('◆')} ${r.skill} ${kleur.dim(`(${r.repo})`)} ${kleur.yellow('← skills.sh')}`,
|
|
212
|
+
title: `${kleur.yellow('◆')} ${r.skill} ${kleur.dim(`(${r.repo})`)} ${kleur.yellow(core ? '← core' : '← skills.sh (suggested)')}`,
|
|
203
213
|
value: { source: 'catalog', ref, repo: r.repo, skill: r.skill },
|
|
204
|
-
selected:
|
|
214
|
+
selected: core,
|
|
205
215
|
});
|
|
206
216
|
}
|
|
207
217
|
|
|
@@ -222,6 +232,8 @@ export async function skillDiscovery({ cwd, answers, args }) {
|
|
|
222
232
|
|
|
223
233
|
if (choices.length > 0) {
|
|
224
234
|
log.raw('');
|
|
235
|
+
log.dim('Suggested skills are not pre-selected. Press Space to install only what you need.');
|
|
236
|
+
log.dim('Read every installed skill so you understand behavior and catch potential conflicts early.');
|
|
225
237
|
const { toInstall } = await prompts({
|
|
226
238
|
type: 'multiselect',
|
|
227
239
|
name: 'toInstall',
|
|
@@ -490,6 +502,10 @@ function buildRecommendations(a) {
|
|
|
490
502
|
return out;
|
|
491
503
|
}
|
|
492
504
|
|
|
505
|
+
function isCoreCatalogSkill(repo, skill) {
|
|
506
|
+
return CORE_CATALOG_SKILLS.has(`${repo}@${skill}`);
|
|
507
|
+
}
|
|
508
|
+
|
|
493
509
|
function suggestSearches(a) {
|
|
494
510
|
const out = new Set();
|
|
495
511
|
for (const s of a.stack || []) {
|
|
@@ -601,6 +617,7 @@ export const __testables = {
|
|
|
601
617
|
buildBreadcrumbBox,
|
|
602
618
|
detectEnv,
|
|
603
619
|
formatBoxLine,
|
|
620
|
+
isCoreCatalogSkill,
|
|
604
621
|
shouldOfferPnpmInstall,
|
|
605
622
|
stripAnsi,
|
|
606
623
|
};
|