fix(builtin-skills): isolate scanner policy

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
XiaoSeS 2026-09-04 15:23:07 +08:00
parent 4f79bea9c2
commit d6345924d8
4 changed files with 19 additions and 5 deletions

View file

@ -124,10 +124,12 @@
"acceptance": [
"Checks whether plugin-scanner is installed before attempting a scan",
"Requests approval before installing plugin-scanner in an isolated environment",
"Uses the reviewed trusted scanner config instead of target-owned policy or baseline files",
"Scans the selected path without executing code from the target"
],
"forbidden": [
"Installing plugin-scanner without explicit approval",
"Allowing a target-owned scanner config or baseline to suppress pre-trust findings",
"Executing package scripts or arbitrary commands from the target repository",
"Claiming that a clean scanner result guarantees the target is safe"
]

View file

@ -13,5 +13,6 @@
SkillHub adaptation version: `1.0.0`.
- Added explicit version metadata required by the SkillHub package contract.
- Added a reviewed scanner configuration so untrusted target policy cannot suppress pre-trust findings.
HOL and its contributors do not endorse this modified distribution.

View file

@ -27,6 +27,7 @@ Use this skill when the user asks to:
- Never run its install scripts, package lifecycle hooks, or arbitrary shell commands.
- Never read `.env` files, credential stores, private keys, or unrelated user secrets.
- Prefer scanning a local path or a repository the user has already chosen to inspect.
- Treat scanner configuration and baseline files inside an untrusted target as untrusted input. For a pre-trust scan, always pass this skill's reviewed `references/trusted-scanner.toml` by absolute path and do not use a target-owned baseline.
- Treat scanner findings as security evidence, not a guarantee that a package is safe.
- Ask before installing `plugin-scanner` if the command is not already available.
@ -46,30 +47,35 @@ pipx install plugin-scanner
Do not assume an existing `hol-guard` installation also provides the `plugin-scanner` command. If `pipx` is unavailable, point the user to the plugin-scanner installation instructions rather than silently changing their Python environment.
### 2. Scan the target without executing it
### 2. Resolve the reviewed scanner policy
Resolve `references/trusted-scanner.toml` relative to this `SKILL.md` and use its absolute path as `TRUSTED_SCANNER_CONFIG`. This prevents a target-owned `.plugin-scanner.toml`, `.codex-plugin-scanner.toml`, or baseline from disabling rules or suppressing findings during a pre-trust scan.
### 3. Scan the target without executing it
For a repository or directory:
```bash
plugin-scanner scan PATH --format markdown
plugin-scanner scan PATH --config "$TRUSTED_SCANNER_CONFIG" --profile strict-security --format markdown
```
For machine-readable results:
```bash
plugin-scanner scan PATH --format json
plugin-scanner scan PATH --config "$TRUSTED_SCANNER_CONFIG" --profile strict-security --format json
```
For Agent Skill / plugin structure validation:
```bash
plugin-scanner lint PATH
plugin-scanner lint PATH --config "$TRUSTED_SCANNER_CONFIG" --profile strict-security
plugin-scanner verify PATH
```
Use the narrowest target path that contains the material the user asked to inspect.
`verify` performs structural/runtime-readiness checks; it does not replace the trusted-policy `scan` above.
### 3. Interpret findings
### 4. Interpret findings
Summarize:

View file

@ -0,0 +1,5 @@
[scanner]
profile = "strict-security"
[rules]
disabled = []