@victortomaili/skill-cli 0.6.9 → 0.7.1

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,28 @@ 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.7.1] - 2026-07-08
15
+
16
+ ### Added
17
+ - PARAMETERS (2nd rule, per user direction): when a proposed skill lists activation
18
+ options in its description (a level, language, mode, format, or strictness), the
19
+ agent must ask the user to choose them in the SAME proposal and the gate stays up
20
+ until BOTH the enable decision AND the parameters are given. Don't pick parameters
21
+ for the user; don't start the task until both are settled. Examples are fully
22
+ generic (no skill-specific names). Reflected in the AGENTS.md block and the
23
+ `skill active` footer (new PARAMS row).
24
+
25
+ ## [0.7.0] - 2026-07-08
26
+
27
+ ### Changed
28
+ - PROPOSE is now a BLOCKING GATE (per user direction), replacing v0.6.9's
29
+ non-blocking behavior. The agent must ASK about every cost/style/speed skill in
30
+ one message, then STOP and WAIT for the answer BEFORE starting the actual task.
31
+ This kills the recurring "I'll just do the task first" rationalization — there is
32
+ no "do the task anyway" path. The one-turn wait is the point: the user decides
33
+ the trade-off before the agent starts. Updated both the AGENTS.md block and the
34
+ `skill active` footer.
35
+
14
36
  ## [0.6.9] - 2026-07-08
15
37
 
16
38
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@victortomaili/skill-cli",
3
- "version": "0.6.9",
3
+ "version": "0.7.1",
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>",
@@ -42,13 +42,18 @@ export function cmdActive() {
42
42
  console.log()
43
43
  console.log(c.bold('→ For EACH skill above, decide in your reply:'))
44
44
  console.log(c.gray(' LOAD moves CORRECTNESS/QUALITY → run ') + c.cyan('skill cat <name>') + c.gray(' now.'))
45
- console.log(c.gray(' PROPOSE moves COST, STYLE, or SPEED → ASK "enable <name>?" at the TOP of your reply,'))
46
- console.log(c.gray(' THEN do the task in the SAME reply. Asking is NON-BLOCKING. A trade-off is the'))
47
- console.log(c.gray(' USER') + c.gray("'s decision; it moves an axis on EVERY reply, so NEVER skip and NEVER"))
48
- console.log(c.gray(' say "not relevant here". Mentioning / noting / "available" is NOT asking.'))
45
+ console.log(c.gray(' PROPOSE moves COST, STYLE, or SPEED → ASK "enable <name>?" about ALL of them,'))
46
+ console.log(c.gray(' then STOP and WAIT for the answer. Do NOT start the task until they answer.'))
47
+ console.log(c.gray(' The wait is the POINT — a trade-off is the USER') + c.gray("'s decision; it moves an axis") )
48
+ console.log(c.gray(' on EVERY reply, so NEVER skip and NEVER say "not relevant here".'))
49
+ console.log(c.gray(' Mentioning / noting / "available" is NOT asking.'))
50
+ console.log(c.gray(' PARAMS if a proposed skill lists activation options (level / language / mode /'), )
51
+ console.log(c.gray(' format / strictness), ask the user to choose them in the SAME proposal — do not pick'))
52
+ console.log(c.gray(' for them. Gate stays up until enable decision + parameters are both given.'))
49
53
  console.log(c.gray(' SKIP moves NONE of the above.'))
50
- console.log(c.yellow(' ⚠ Broken-rule excuses: "not relevant here", "would delay the task",'))
51
- console.log(c.yellow(' "user has a clear request", "I will just do the task". Each = ask instead.'))
54
+ console.log(c.yellow(' ⚠ Breaking the gate: starting the task before the user answers,'))
55
+ console.log(c.yellow(' "would delay it", "user has a clear request", "I will just do the task",'))
56
+ console.log(c.yellow(' "not relevant here". → ASK first, then wait.'))
52
57
  }
53
58
 
54
59
  // `skill default <name>` — mark a skill as a default (active by default in every
@@ -37,11 +37,19 @@ no discretion and no third option:
37
37
  "the user didn't request it", and "skip unless needed" are FORBIDDEN — each one
38
38
  is you STEALING the user's decision. Deciding a trade-off is not your role;
39
39
  surfacing it is. A line in a table is NOT proposing — you must actually ask.
40
- PROPOSE IS NON-BLOCKING: put the question at the TOP of your reply, then DO the
41
- task in the SAME reply asking never delays anything, so "the task is the
42
- priority", "the user has a clear request", and "asking would block/delay it" are
43
- FORBIDDEN excuses to skip asking. Mentioning / noting / "available" is NOT asking;
44
- you must ask a yes/no question (e.g. "Enable <name>?").
40
+ PROPOSE IS A GATE: ASK "Enable <name>?" (ask about ALL such skills in ONE message),
41
+ then STOP and WAIT for the user's answer. Do NOT start the actual task until they
42
+ answer (yes → apply it, no proceed without). The one-turn wait is the POINT
43
+ the user chooses the trade-off BEFORE you start so "asking would delay the task",
44
+ "the user has a clear request", "I'll just do the task first", and "I'll mention it
45
+ and proceed" are FORBIDDEN: each is you deciding for the user. Mentioning / noting /
46
+ "available" is NOT asking — you must ASK a yes/no question and then wait.
47
+ PARAMETERS (2nd rule): if the skill's description lists activation options to pick
48
+ from — e.g. a level, a language, a mode, a format, or a strictness — you MUST ask
49
+ the user to choose them in the SAME proposal (do NOT pick for them), and the gate
50
+ stays up until they give BOTH the enable decision AND the parameters. Genericize
51
+ — never assume a particular skill; read its description to see which options (if
52
+ any) it exposes, and ask for those.
45
53
  - moves none of the above → skip.
46
54
  When unsure if a skill moves an axis → PROPOSE (ask). LOADED \u2260 LISTED: a skill is
47
55
  loaded only if you \`cat\`-ed it this session — listing it, its \u2605, or its \`active\`