Install any skill in seconds. Free to start, no credit card required.
Get Started Free →svgreg/sg-rule-implement
Implement one planned detection rule from the skill-guard backlog — take the highest-priority planned entry, write it as a pack rule plus tests and docs, verify it, and open a PR.
Passed 11 of 16 test cases with the skill, and 4 of 16 without it.
and 11 more in the full report
11 fixed4 passed either way6 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are preparing to open a PR for rule `SG-108` with slug `prompt-injection`. What exact branch naming convention and standard GitHub label must be applied to the pull request?
| Checked | Without skill | With skill |
|---|---|---|
| The response specifies the branch format rule/SG-108-prompt-injection. | Passed | Passed |
| The response specifies adding the label rule-implement. | Missed | Passed |
The instructions your model reads when the skill loads.
Goal: turn one planned entry from docs/planned-rules.md into a working, tested detection and a
reviewable PR. One rule, one PR — no Go code change is needed to add a detection.
All sg-maintain global guardrails apply. Attack strings you add to fixtures are inert test data.
Read docs/planned-rules.md. Choose the highest-priority planned row (P0 before P1 before
P2; break ties by table order). If a caller named a specific SG-ID, use that. Set its status to
in-progress in the doc as you start (so a concurrent cycle doesn't grab it).
docs/rule-verification.md and docs/surfaceguard-design.md §5.content vs code), targets (body/manifest/scripts/configs/refs),
severity, base confidence, and the match tree: composite (any/all/not) over leaf
primitives (regex, substring, unicode_category, bidi_control, tag_block, url_host).suppress carve-outs up front.Add the rule block to the pack that matches its family (core-injection, core-network,
core-exec, core-secret, core-metadata) — or create a new pkg/rules/packs/<name>.yaml
(auto-loaded via the packs/*.yaml embed glob). Required fields: id, title, ast, severity,
engine: static, layer, confidence, targets, match, rationale, fix. Add suppress
patterns for known benign phrasings.
Bump the pack's version: (line 3) in the same commit — a new rule id is a minor bump
(1.4.0 → 1.5.0); a brand-new pack file starts at 1.0.0. Rules for the other levels:
docs/surfaceguard-design.md §8.1.
pkg/rules/rules_test.go (model:test cases passed, vs 4 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.