@juicesharp/rpiv-pi 0.8.0 → 0.8.1
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/package.json +1 -1
- package/skills/code-review/SKILL.md +18 -5
package/package.json
CHANGED
|
@@ -111,14 +111,26 @@ Spawn these agents in parallel using the Agent tool. Each receives the `## Disco
|
|
|
111
111
|
[paste Discovery Map verbatim]
|
|
112
112
|
|
|
113
113
|
Task: Grep each changed hunk for the following sink patterns and list every match with `file:line` + surrounding 3 lines. Cross-reference the Discovery Map's Auth-boundary crossings.
|
|
114
|
+
For each hit, additionally return `confidence: N/10` reflecting how certain you are that a user-controlled input can reach this sink under current deployment. Do NOT report hits with confidence < 8.
|
|
114
115
|
- Command execution: `exec(`, `execSync(`, `execFile(`, `child_process`, `spawn(`
|
|
115
116
|
- Dynamic evaluation: `eval(`, `new Function(`
|
|
116
117
|
- SQL template-interpolation: multi-line `` `SELECT ... ${ ``, `` `INSERT ... ${ ``, `` `UPDATE ... ${ ``, `` `DELETE ... ${ ``
|
|
117
118
|
- XSS sinks: `innerHTML =`, `dangerouslySetInnerHTML`, `document.write(`
|
|
118
119
|
- Path traversal: string concatenation into `fs.readFile`, `fs.writeFile`, `path.join` with user input
|
|
119
|
-
- SSRF: `fetch(`, `http.request(`, `axios(`, `got(`
|
|
120
|
+
- SSRF: `fetch(`, `http.request(`, `axios(`, `got(` where HOST or PROTOCOL (not just path) is user-controlled
|
|
120
121
|
- Secrets in diff: `api_key`, `secret`, `password`, `BEGIN PRIVATE KEY`, `.env` content literal
|
|
121
|
-
- Missing
|
|
122
|
+
- Missing auth guard: auth-boundary crossings (from Discovery Map) reaching a traced sink without an upstream guard
|
|
123
|
+
|
|
124
|
+
Hard exclusions — do NOT report:
|
|
125
|
+
- DOS / resource exhaustion / rate limiting / memory or CPU exhaustion
|
|
126
|
+
- Missing hardening in isolation (no traced sink), lack of audit logs
|
|
127
|
+
- Theoretical race conditions / timing attacks without a concrete reproducer
|
|
128
|
+
- Log spoofing, prototype pollution, tabnabbing, open redirects, XS-Leaks, regex DOS, regex injection
|
|
129
|
+
- Client-side-only authn/authz gaps (server is the authority)
|
|
130
|
+
- XSS in React/Angular/tsx files unless via `dangerouslySetInnerHTML`, `bypassSecurityTrustHtml`, or equivalent
|
|
131
|
+
- Findings whose sole source is an environment variable, CLI flag, or UUID (trusted in our threat model)
|
|
132
|
+
- Findings in test-only files or `.ipynb` notebooks without a concrete untrusted-input path
|
|
133
|
+
- Outdated-dependency CVEs (handled by the dependencies/CVE lens)
|
|
122
134
|
|
|
123
135
|
For each hit, name the pattern and quote the line. Return evidence only. No CVE lookups — that is a separate agent.
|
|
124
136
|
```
|
|
@@ -174,9 +186,9 @@ Spawn these agents in parallel using the Agent tool. Each receives the `## Disco
|
|
|
174
186
|
- 🔵 Suggestion: pattern divergence with a concrete nearby template.
|
|
175
187
|
- 💭 Discussion: composite-lesson architecture concerns.
|
|
176
188
|
- Security evidence → classify:
|
|
177
|
-
- 🔴 sink hit with user-reachable
|
|
178
|
-
- 🟡
|
|
179
|
-
- 🔵 pattern divergence from secure
|
|
189
|
+
- 🔴 sink hit with a CONCRETE user-reachable source→sink path traced through Discovery Map auth-boundary crossings. Reject any hit lacking an explicit trace.
|
|
190
|
+
- 🟡 crypto-only concrete issues: weak hash in an auth/integrity role (MD5/SHA1), non-constant-time compare on secrets, hardcoded key material in diff. Do NOT use 🟡 for "missing hardening".
|
|
191
|
+
- 🔵 pattern divergence from a secure example in the SAME file (cite the nearby secure `file:line`).
|
|
180
192
|
- 💭 architectural question.
|
|
181
193
|
- Dependencies evidence → classify:
|
|
182
194
|
- 🔴 Known-exploitable CVE in a touched dep (Critical/High per advisory DB) OR lockstep-contract violation (would trip `scripts/sync-versions.js`).
|
|
@@ -366,6 +378,7 @@ Ask follow-ups, or run `/skill:revise` to address the findings.
|
|
|
366
378
|
- **Always use parallel Agent tool calls** in Phase-2 to maximise efficiency.
|
|
367
379
|
- **Always read the full diff FIRST** (Step 1) before spawning any Phase-1 or Phase-2 agent.
|
|
368
380
|
- **Always pass the Discovery Map inline** as `Known Context` to every Phase-2 agent — agents are `isolated: true` and cannot see sibling transcripts.
|
|
381
|
+
- **Security-lens precision stance**: prefer false negatives over false positives. Security evidence must carry `confidence ≥ 8` and 🔴 requires an explicit source→sink trace. Missing hardening without a traced sink is NOT a finding. Keep the Security-lens exclusion list in sync with the reference FP-filter precedents.
|
|
369
382
|
- **Critical ordering**: Follow the numbered steps exactly.
|
|
370
383
|
- ALWAYS resolve scope and bail on empty diff (Step 1) before Phase-1.
|
|
371
384
|
- ALWAYS wait for Phase-1 completion before Phase-2 dispatch.
|