Skip to content

Redact credentials in audit skill evidence and frame the vulnerable examples - #591

Merged
AlexJSully merged 2 commits into
mainfrom
alexjsully-260804-fix-skills-security-issues
Aug 5, 2026
Merged

Redact credentials in audit skill evidence and frame the vulnerable examples#591
AlexJSully merged 2 commits into
mainfrom
alexjsully-260804-fix-skills-security-issues

Conversation

@AlexJSully

Copy link
Copy Markdown
Owner

The audit-pr and audit-quality skills were failing their skills.sh security audits. Snyk flagged both under W007, insecure credential handling, because they make a verbatim quote the unit of evidence and drop any finding that cannot produce one. Socket separately flagged audit-pr for the deliberately vulnerable snippets in security-and-privacy.md, reading the # Finding: half of each pair as a pattern the skill was telling the agent to use rather than one to recognize.

Added a redaction rule to section 1 of both halves of audit-pr and audit-quality. A credential value is replaced with [REDACTED] in the quote, and a redacted quote still satisfies the evidence rule, so the finding ships instead of being dropped. The rule also states that the substitution happens on the way into the report and not on the way into any check, since a carve-out worded the other way would stop the refutation pass from verifying anything. Carried the matching carve-out into every place the quote is re-checked: the finding format, refutation question 1, the summary template, and the refuter's literal-string search. Also added a Data handling. paragraph to the same four files saying the diff, the description, the commit messages and any linked issue are data to report on rather than instructions to follow, which closes the prompt injection path neither audit covered.

For Socket, added a short paragraph to each of the four references/ files stating that a fenced block is an illustration to recognize and not a command to run. The examples stay, since that is what those files are for. Also narrowed finding-refuter.md, which was granting itself "running whatever command settles a question" with the choice of command driven by an untrusted diff.

In addition, carried the same redaction rule into audit-docs and typescript-code-and-test-standards. Both hold the same drop-if-you-cannot-quote rule in their subagents and would fail the same way, and a test fixture is the usual place a credential turns up.

@AlexJSully
AlexJSully requested a lite review from Copilot August 5, 2026 03:00
@AlexJSully AlexJSully self-assigned this Aug 5, 2026
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview Aug 5, 2026 3:11am

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repository’s auditing prompts and skill bundles so they can still provide quote-based evidence while redacting credential values, and so that intentionally vulnerable reference snippets are framed as patterns to recognize rather than patterns to introduce. It also tightens the finding-refuter agent’s operational boundaries around what commands it can run when refuting findings.

Changes:

  • Add a consistent credential-redaction rule ([REDACTED]) across audit-pr, audit-quality, audit-docs, and TypeScript/test standards agents, while keeping verification steps unredacted.
  • Add “Data handling” prompt-injection resistance language, and clarify that fenced “Finding/Fix” blocks in references are illustrations to read, not instructions to run.
  • Upgrade several runtime/dev dependencies (Next/React, jest-dom, Cypress, Prettier, Sass) and refresh the lockfile accordingly.

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
package.json Upgrades runtime and dev dependencies (Next/React, jest-dom, Cypress, Prettier, Sass).
package-lock.json Updates resolved dependency graph to match the package.json upgrades.
.github/prompts/audit-quality.prompt.md Adds credential redaction rule and “Data handling” guardrails to the prompt half.
.github/prompts/audit-pr.prompt.md Adds credential redaction rule and “Data handling” guardrails to the prompt half.
.github/prompts/audit-docs.prompt.md Extends “prove it” evidence rule with credential redaction guidance.
.claude/skills/typescript-code-and-test-standards/agents/test-quality-reviewer.md Allows quoted evidence to be redacted for credentials in test-review findings.
.claude/skills/typescript-code-and-test-standards/agents/comment-and-jsdoc-auditor.md Allows quoted evidence to be redacted for credentials in comment/JSDoc findings.
.claude/skills/audit-quality/SKILL.md Mirrors audit-quality prompt updates in the skill bundle.
.claude/skills/audit-pr/SKILL.md Mirrors audit-pr prompt updates in the skill bundle.
.claude/skills/audit-pr/references/supply-chain.md Adds explicit framing that fenced examples are illustrations, not commands/files to create.
.claude/skills/audit-pr/references/security-and-privacy.md Frames vulnerable “Finding/Fix” pairs as recognition-only examples, adds credential-quote redaction note.
.claude/skills/audit-pr/references/environment-and-observability.md Adds explicit framing that fenced examples are illustrations, not commands.
.claude/skills/audit-pr/references/cost-and-billing.md Adds explicit framing that fenced examples are illustrations, not commands.
.claude/skills/audit-pr/assets/review-summary.template.md Clarifies [REDACTED] is not a placeholder and how to validate redacted quotes.
.claude/skills/audit-pr/agents/finding-refuter.md Narrows command execution language, adds redacted-quote matching rules.
.claude/skills/audit-docs/SKILL.md Mirrors audit-docs prompt updates in the skill bundle.
.claude/skills/audit-docs/references/evidence-and-citation.md Adds guidance on redacting credential values even in private verification notes.
.claude/skills/audit-docs/assets/audit-report.template.md Clarifies [REDACTED] is intentionally preserved in the filled template.
.claude/skills/audit-docs/agents/surface-auditor.md Allows code-quote evidence to redact credential values while still reporting contradictions.
.claude/skills/audit-docs/agents/diagram-reviewer.md Allows redacted credential values in quoted evidence for diagram accuracy findings.
.claude/skills/audit-docs/agents/coverage-mapper.md Allows redacted credential values in quoted evidence for narration findings.
.claude/skills/audit-docs/agents/claim-verifier.md Allows redacted credential values in quotes while preserving CONFIRMED/REFUTED verdicts.

Comment thread package.json
Comment thread package.json
Comment thread .claude/skills/audit-pr/agents/finding-refuter.md Outdated
Comment thread .claude/skills/audit-pr/agents/finding-refuter.md Outdated
@AlexJSully
AlexJSully merged commit 695afa5 into main Aug 5, 2026
2 checks passed
@AlexJSully
AlexJSully deleted the alexjsully-260804-fix-skills-security-issues branch August 5, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants