@victortomaili/skill-cli 0.6.5 → 0.6.6

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/CHANGELOG.md CHANGED
@@ -11,6 +11,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
  - Cursor adapter (`.cursor/rules` format) for `init -g` bootstrap.
12
12
  - Per-agent hook adapters for automatic `/X` triggering (push model).
13
13
 
14
+ ## [0.6.6] - 2026-07-08
15
+
16
+ ### Changed
17
+ - AGENTS.md START GATE: the load/propose/skip decision is now driven by the four
18
+ criteria (correctness / quality / cost / speed), not "propose every ★". A skill
19
+ that affects CORRECTNESS or QUALITY → auto-load; affects COST or SPEED only →
20
+ propose; affects none → skip. Task type still does not filter candidates (a
21
+ cost/style skill is a candidate on every task), and the agent must state each
22
+ decision out loud. `skill active` footer rewritten to match.
23
+
14
24
  ## [0.6.5] - 2026-07-08
15
25
 
16
26
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@victortomaili/skill-cli",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "description": "Cross-agent skill manager — one global store, clean agent folders, activation via skill.config",
5
5
  "license": "MIT",
6
6
  "author": "Victor Tomaili <victor@tomaili.com>",
@@ -40,8 +40,7 @@ export function cmdActive() {
40
40
  if (s.description) console.log(c.gray(' ' + String(s.description).replace(/[\r\n]+/g, ' ').trim()))
41
41
  }
42
42
  console.log()
43
- console.log(c.bold(c.yellow('→ For EACH skill above: PROPOSE it now.')) + c.gray(' Task type is irrelevant \"not needed for this task\" is NOT a reason to skip. The user decides, not you.'))
44
- console.log(c.gray(' Load a skill: ') + c.cyan('skill cat <name>'))
43
+ console.log(c.bold('→ Decide each skill by the criteria:') + c.gray(' affects ') + c.cyan('CORRECTNESS/QUALITY') + c.gray(' load (') + c.cyan('skill cat <name>') + c.gray('); affects ') + c.cyan('COST/SPEED') + c.gray(' → propose; affects none → skip. Task type is irrelevant; when unsure → propose.'))
45
44
  }
46
45
 
47
46
  // `skill default <name>` — mark a skill as a default (active by default in every
@@ -27,28 +27,20 @@ START GATE (mandatory): On the FIRST user message of a session, your VERY FIRST
27
27
  action — BEFORE ANYTHING ELSE: before you start thinking/reasoning about the task
28
28
  and before any tool call — MUST be to run \`skill active\`. It prints the skill
29
29
  CATALOG — every ACTIVE skill's name + FULL description (NOT the skill body).
30
- Read it, then for EACH skill decide FROM ITS DESCRIPTION:
31
- - AUTO-LOAD it (\`skill cat <name>\`, silently) when it is needed to do the task AT
32
- ALL, OR when it would make the work HIGHER QUALITY / more correct — domain
33
- knowledge, best-practice, standards, a quality methodology. These are not
34
- optional; they are how the job should be done.
35
- - PROPOSE it (tell the user what it does; apply ONLY after they confirm; \`/X\` =
36
- confirm) when it is an OPTIONAL change to the EXPERIENCE, not to quality:
37
- response STYLE / tone / format / a persistent mode (e.g. a brevity style);
38
- CONTEXT-COST / token optimization;
39
- an optional ACCELERATOR / shortcut (easier or faster, but not about correctness).
40
- ENFORCEMENT for EVERY active skill you MUST state a decision OUT LOUD: LOAD it
41
- or PROPOSE it to the user. Staying silent, or "not needed for this task", is NOT
42
- a valid decision. In particular:
43
- - A ★ default is NEVER silently skipped. STYLE / COST / shortcut skills are
44
- candidates for EVERY task type — review, debugging, refactor, anything; the task
45
- type does NOT disqualify them, and "the user didn't ask" is NOT a reason to stay
46
- quiet. If you are not loading a ★ default, you MUST propose it. The ONLY valid
47
- reason to stay silent about a ★ is: the user already declined it this session.
48
- - Do NOT wait for the user to ask — proposing happens HERE, proactively, every turn
49
- until the user decides.
50
- When unsure whether to load or propose → PROPOSE (proposing is the safe default;
51
- loading is silent).
30
+ Read it, then for EACH skill judge by ONE question — does it affect the work's
31
+ CORRECTNESS, QUALITY, COST (tokens), or SPEED? Decide from the description:
32
+ - Affects CORRECTNESS or QUALITY AUTO-LOAD it (\`skill cat <name>\`, silently).
33
+ These are how the job should be done not optional.
34
+ - Affects COST or SPEED only → PROPOSE it: tell the user what it does and apply
35
+ ONLY after they confirm (\`/X\` = confirm). These are trade-offs the user opts into.
36
+ - Affects NONE of the four skip it.
37
+ ENFORCEMENT state each decision OUT LOUD (load / propose / skip). Task type does
38
+ NOT filter candidates: a COST/STYLE skill (e.g. a compression mode) affects cost on
39
+ EVERY task review, debugging, refactor, anything so it is a candidate
40
+ everywhere; "the user didn't ask" is NOT a reason to skip one that applies, and
41
+ "not needed for this technical task" is wrong (style/cost are task-independent).
42
+ Do not wait to be asked — propose proactively. When unsure whether a skill applies
43
+ PROPOSE.
52
44
  PRIORITIES — when trading off how to do the work, rank: CORRECTNESS first, then
53
45
  QUALITY, then COST (cheap / token-efficient), then SPEED (fast). Never sacrifice
54
46
  correctness or quality for speed or cost.