@hasna/skills 0.7.1 → 0.7.2

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 CHANGED
@@ -55,6 +55,12 @@ skills hook install --agent all --selection-profile default --json
55
55
  skills hook install --agent all --selection-profile default --apply --json
56
56
  ```
57
57
 
58
+ Native hook invocations must use their installed adapter's selection profile.
59
+ An old client command or environment override naming another profile refuses
60
+ before synchronization or context loading. Review the hook installation and
61
+ restart the native client to load its current commands. Explicit `skills load`,
62
+ `skills context`, and `skills sync` commands can still select other profiles.
63
+
58
64
  The hook install `--include-vendor` option is retained for compatibility with
59
65
  older scripts. Hook planning always inventories and disables discovered vendor
60
66
  system skills; use `migrate native --include-vendor` when retiring their
@@ -94,6 +100,9 @@ allowlist unchanged: approve the two exact
94
100
  managed event/command pairs through Hermes normal hook trust and restart.
95
101
  The adapter refuses unreviewed installed plugin sources and custom Hermes
96
102
  homes/profiles, user-specific tilde expansion, and `TERMINAL_CWD` overrides.
103
+ Nonempty `HERMES_BUNDLED_PLUGINS` and `HERMES_BUNDLED_SKILLS` overrides are
104
+ also refused during discovery and hook checks; unset them to use the reviewed
105
+ default source paths. Custom bundle locations need a dedicated discovery adapter.
97
106
  Retire native payloads before use. Legacy `skills-cli.md` files can shadow the
98
107
  bridge and must also be preserved and retired before proceeding. Only `skill_view(name:
99
108
  "skills-cli")` is allowed natively; author payloads with Skills CLI commands.
@@ -102,6 +111,36 @@ context, and the trusted pre-tool guard blocks drift and native skill fallback;
102
111
  this is not a claim that Hermes can prevent every model call after a failed
103
112
  prompt hook or guarantee refusal if the native host/supervisor itself dies. Arbitrary project/plugin paths still require a discovery audit.
104
113
 
114
+ Reviewed discovery can also bind `directories: [{ path, sha256 }]` alongside
115
+ its full source-file hashes. The public SDK's `captureDiscoveryDirectories(paths)`
116
+ captures recursive, sorted path/type membership without reading plugin payloads.
117
+ Include every directory the reviewed loader scans, including plugin version
118
+ selection parents and Python entrypoint discovery directories. Membership hashes
119
+ detect added, removed or changed file types; keep source hashes for reviewed bytes.
120
+ Missing directories bind as `sha256: null`. Symlinks and special nodes refuse.
121
+ The bounds are 64 roots, 20,000 total entries, 8 MiB of path/type metadata and
122
+ 64 levels of recursion. Capture and checks require stable directory identities;
123
+ quiesce source writers for installation because these checks are not atomic with
124
+ a later native import.
125
+
126
+ For full binary or source-byte coverage, use the public SDK's
127
+ `captureDiscoveryByteSources(paths)` and retain its explicit `hashMode: "bytes"`
128
+ on each source witness. It hashes the exact file bytes, including invalid UTF-8,
129
+ with limits of 64 MiB per file and 256 MiB across one capture or verification.
130
+ Missing files bind as `sha256: null`; symlinks, special files and changing file
131
+ identities refuse. Raw witnesses cannot use configuration field projections.
132
+ Existing witnesses without `hashMode` retain their original UTF-8 decoding
133
+ contract and 16 MiB file limit; they are not silently converted into byte hashes.
134
+ Directory membership and file bytes are separate witnesses. Neither substitutes
135
+ for reviewing the actual executable, import paths or loader behavior.
136
+
137
+ Hermes requires directory witnesses, including when upgrading an older policy.
138
+ For an automatic bridge with no runtime installed, rerun normal `skills hook install`
139
+ to review and apply the new bindings. Existing native trust is preserved.
140
+ Reviewed Hermes installations need fresh source and directory coverage in their
141
+ `--discovery-inputs` file. Other agents may add directory witnesses to their
142
+ reviewed bindings without changing existing source-only reviews.
143
+
105
144
  Hook installation preserves unrelated configuration, hooks, and plugin assets.
106
145
  It disables discovered Codex native skills; exact system-skill trees can remain
107
146
  only with their hash-bound disabled paths; migration preserves these package files. A client that restores or changes
@@ -112,6 +151,13 @@ copies, and `--include-vendor` retires vendor `SKILL.md` discovery files while
112
151
  preserving shared scripts and assets. Archive receipts and configuration backups
113
152
  live under the Skills data directory.
114
153
 
154
+ After vendor documents are archived, inventory still scans their retained asset
155
+ directories for newly introduced skills. Vendor container traversal allows 32
156
+ directory levels; the ordinary native-root limit remains unchanged. Each inventory
157
+ is bounded to 20,000 discovery entries and 4 MiB of UTF-8 path metadata before
158
+ directory entries are retained or sorted. Unsupported special files and unsafe
159
+ directory links are refused.
160
+
115
161
  Native archives persist a version 2 recovery journal before moving payloads;
116
162
  `migrate native --json --apply` returns its `receiptPath`. The journal records
117
163
  every source, archive path, expected hash, and move status, then marks successful
@@ -132,6 +178,11 @@ session start and gates later prompt submission; its prompt hook does not
132
178
  inject context on the supported installed path. Other inventoried clients do
133
179
  not automatically gain a working prompt adapter.
134
180
 
181
+ Gemini's `BeforeAgent` prompt can include the Skills policy emitted at session
182
+ start. The hook excludes that exact leading policy from skill selection, so it
183
+ does not displace the user's requested skill. Other hook context and user text
184
+ remain part of the selection input.
185
+
135
186
  Known local plugin registrations are resolved automatically. Plugins with
136
187
  instruction-injecting hooks, unresolved runtime registrations, unsupported
137
188
  legacy command formats, and higher-precedence project discovery settings need