@victortomaili/skill-cli 0.6.7 → 0.6.9
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 +20 -0
- package/package.json +1 -1
- package/src/commands/defaults.js +10 -2
- package/src/lib/agents-md.js +13 -6
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,26 @@ 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.9] - 2026-07-08
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- AGENTS.md + `skill active`: PROPOSE is now NON-BLOCKING. The agent finally
|
|
18
|
+
classified correctly ("caveman is STYLE → I must propose") but then talked itself
|
|
19
|
+
out of asking via "asking would delay the task" / "user has a clear request" /
|
|
20
|
+
"I'll just do the task". The new wording makes asking non-blocking (ask at the top,
|
|
21
|
+
then do the task in the same reply) and explicitly forbids those excuses, plus
|
|
22
|
+
"mentioning/noting/available is NOT asking".
|
|
23
|
+
|
|
24
|
+
## [0.6.8] - 2026-07-08
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- AGENTS.md + `skill active`: reframed cost/style/speed skills as USER TRADE-OFFS
|
|
28
|
+
the agent must never pre-judge. The agent kept skipping proposals with "not
|
|
29
|
+
relevant to this task"; the new wording forbids deciding a trade-off for the
|
|
30
|
+
user ("not relevant here" = stealing the user's decision). Made the `skill active`
|
|
31
|
+
footer mechanical (LOAD/PROPOSE/SKIP grid) with an explicit callout: "cost/style
|
|
32
|
+
but not relevant here → that is the bug. Ask instead."
|
|
33
|
+
|
|
14
34
|
## [0.6.7] - 2026-07-08
|
|
15
35
|
|
|
16
36
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@victortomaili/skill-cli",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.9",
|
|
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>",
|
package/src/commands/defaults.js
CHANGED
|
@@ -16,7 +16,7 @@ export function cmdActive() {
|
|
|
16
16
|
const eff = computeEffective(installed, globalCfg, projCfg)
|
|
17
17
|
const defs = new Set((globalCfg.defaults || []).map(d => String(d).toLowerCase()))
|
|
18
18
|
|
|
19
|
-
console.log(c.bold('skill active') + c.gray(' — active skills (descriptions only).
|
|
19
|
+
console.log(c.bold('skill active') + c.gray(' — active skills (descriptions only). LOAD correctness/quality ones; PROPOSE every cost/style/speed one (a trade-off is the USER') + c.gray("'s call — never skip it)."))
|
|
20
20
|
console.log()
|
|
21
21
|
|
|
22
22
|
if (eff.length === 0) {
|
|
@@ -40,7 +40,15 @@ 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('→
|
|
43
|
+
console.log(c.bold('→ For EACH skill above, decide in your reply:'))
|
|
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.'))
|
|
49
|
+
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.'))
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
// `skill default <name>` — mark a skill as a default (active by default in every
|
package/src/lib/agents-md.js
CHANGED
|
@@ -29,12 +29,19 @@ run \`skill active\`. It lists each ACTIVE skill's name + FULL description (neve
|
|
|
29
29
|
body). Read it, then for EACH skill classify which axis it moves and ACT — there is
|
|
30
30
|
no discretion and no third option:
|
|
31
31
|
- moves CORRECTNESS or QUALITY → load it now: \`skill cat <name>\`.
|
|
32
|
-
- moves COST, SPEED, or response STYLE → PROPOSE it
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
- moves COST, SPEED, or response STYLE → PROPOSE it. These are TRADE-OFFS — the
|
|
33
|
+
USER decides them, NEVER you. Even if you are SURE one would hurt THIS task, you
|
|
34
|
+
still ASK: "Enable <name>? It <one-line benefit>." (apply only on yes). They move
|
|
35
|
+
an axis on EVERY task by definition (every reply has a token cost, a length, a
|
|
36
|
+
style, a speed), so the thoughts "not relevant to this task", "not needed here",
|
|
37
|
+
"the user didn't request it", and "skip unless needed" are FORBIDDEN — each one
|
|
38
|
+
is you STEALING the user's decision. Deciding a trade-off is not your role;
|
|
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>?").
|
|
38
45
|
- moves none of the above → skip.
|
|
39
46
|
When unsure if a skill moves an axis → PROPOSE (ask). LOADED \u2260 LISTED: a skill is
|
|
40
47
|
loaded only if you \`cat\`-ed it this session — listing it, its \u2605, or its \`active\`
|