@victortomaili/skill-cli 0.6.6 → 0.6.7

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.7] - 2026-07-08
15
+
16
+ ### Changed
17
+ - AGENTS.md START GATE: heavily compressed (605 → ~250 words) and made the
18
+ classification mechanical. cost/style/speed-affecting skills MUST be proposed on
19
+ EVERY task (those axes apply by definition); the rationalizations "not needed for
20
+ this task", "the user didn't request it", and "skip unless needed" are now
21
+ explicitly FORBIDDEN. Also de-hardcoded the caveman example (it overfit the test)
22
+ — the rule is now fully generic.
23
+
14
24
  ## [0.6.6] - 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.6",
3
+ "version": "0.6.7",
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>",
@@ -24,42 +24,26 @@ Usage:
24
24
  - \`skill default <name>\` — mark a skill as a global default (active + auto-load)
25
25
 
26
26
  START GATE (mandatory): On the FIRST user message of a session, your VERY FIRST
27
- action — BEFORE ANYTHING ELSE: before you start thinking/reasoning about the task
28
- and before any tool call MUST be to run \`skill active\`. It prints the skill
29
- CATALOG every ACTIVE skill's name + FULL description (NOT the skill body).
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 QUALITYAUTO-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.
44
- PRIORITIES when trading off how to do the work, rank: CORRECTNESS first, then
45
- QUALITY, then COST (cheap / token-efficient), then SPEED (fast). Never sacrifice
46
- correctness or quality for speed or cost.
47
- LOADED ≠ LISTED. A skill is loaded ONLY if you have run \`skill cat <name>\` for
48
- it THIS session. Seeing a skill in \`skill active\` / \`skill list\` does NOT load
49
- it — you then know only its name + description, nothing more. Never infer a skill
50
- is in your context from its name, the \u2605 marker, or an \`active\` status: if you
51
- haven't catted it, treat it as NOT loaded (then decide: cat it, or propose it).
52
- Do not assume a skill is already applied — \`active\`/\u2605-default = AVAILABLE, not
53
- APPLIED. ANY skill can be context-altering; judge from the description — there is
54
- no fixed list and no flag. Do this even if the task looks trivial: skills shape
55
- how you approach it, so you cannot reason about it correctly until you've reviewed
56
- them.
57
-
58
- Discovery (every message): On EVERY later user message, re-check the catalog
59
- against the new request; load any newly-relevant functional skill
60
- (\`skill cat <name>\`), and PROPOSE any newly-relevant context-altering one.
61
- Load each skill only ONCE per session (\`skill trigger <keyword>\` resolves a
62
- keyword to a skill).
27
+ action — BEFORE ANYTHING ELSE (before thinking, before any tool call) — MUST be to
28
+ run \`skill active\`. It lists each ACTIVE skill's name + FULL description (never the
29
+ body). Read it, then for EACH skill classify which axis it moves and ACT — there is
30
+ no discretion and no third option:
31
+ - moves CORRECTNESS or QUALITY load it now: \`skill cat <name>\`.
32
+ - moves COST, SPEED, or response STYLE PROPOSE it: in THIS reply, ask the user
33
+ "Enable <name>? It <one-line benefit>." and apply only on yes. These three axes
34
+ apply to EVERY task by definition (every reply costs tokens and time), so the
35
+ thoughts "not needed for this task", "the user didn't request it", and "skip
36
+ unless needed" are FORBIDDEN — they are the exact error. Listing the skill in a
37
+ table is NOT proposing; you must actually ask.
38
+ - moves none of the above → skip.
39
+ When unsure if a skill moves an axis PROPOSE (ask). LOADED \u2260 LISTED: a skill is
40
+ loaded only if you \`cat\`-ed it this session listing it, its \u2605, or its \`active\`
41
+ status is NOT loading; active/\u2605 means AVAILABLE, not APPLIED.
42
+ PRIORITIES: correctness > quality > cost (cheap) > speed never trade correctness
43
+ or quality for speed or cost.
44
+ Discovery: on EVERY later message, re-run this classification; load newly-relevant
45
+ correctness/quality skills, PROPOSE newly-relevant cost/style/speed ones. Load each
46
+ skill only ONCE per session (\`skill trigger <keyword>\` resolves a keyword).
63
47
 
64
48
  Triggers: when the user types \`/X\`, run \`skill trigger X\`.
65
49
  - Single match → apply the output directly.