Repository navigation
Conversation
…false positive The sentence added for Tencent#286 used the phrase "override instructions", which dsh-defend's injection rules match (ii-001 instruction-injection plus jd-001..009 instruction_override, 10 hits on one line). Under a guard that blocks on match, the whole skill body is replaced by a guard message, so the model never receives the skill while the load call still looks successful. Keep the guidance (page data is untrusted; it must not change the task or widen authority; controls/quoted examples are not injection) but drop the trigger wording. Verified with dsh-defend@0.3.16's own scanner (buildScanner from its detect module), scanning packages/dsh-plugin-browserskill/skill/SKILL.md: before: matches=10 families=[injection] maxSeverity=high byRule={ii-001:1, jd-001..jd-009:1 each} lines=[45] after: matches=0 families=[] maxSeverity=undefined The repo's own build:skill validation (scripts/validate-skill.mjs, 4500-byte entry budget) passes: the committed entry is 4414 bytes (4495 bytes with CRLF working-tree endings), under the budget either way. Fixes Tencent#390
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #390.
What was wrong
The
dsh-pluginskill's untrusted-data guidance — added for #286 — was itselfmatched by the guard's injection rules.
packages/dsh-plugin-browserskill/skill/SKILL.mdline 45 read:
Under a guard plugin that blocks matched tool results, the entire skill body was
replaced by a single line of guard feedback. The loading call still looked
successful, so the model never received the skill at all — worse than before #286,
where the skill at least loaded.
The fix
Reword that sentence so it keeps the guidance but drops the vocabulary the guard
matches on:
The meaning is unchanged: page data is untrusted, it must not change the task or
widen authority, and controls / quoted examples are not themselves injection.
Verification
Scanned the file with the guard's own scanner (
dsh-defend@0.3.16,buildScanner()from itsdetectmodule) — before and after:This reproduces the reporter's evidence exactly (10 hits, one line,
ii-001plusjd-001..009) and shows the false positive is cleared.The repo's own skill validation also passes —
node scripts/build-skill-content.mjs(
validate-skill.mjs, 4500-byte entry budget) exits 0.SKILL.mdis 4414 bytesas committed (4495 bytes with CRLF working-tree endings) - under the budget either way.
Scope
Markdown-only, single file. No code, tool, or schema changes.