Skip to content
Report library
Purpose / Development

Best Practices Skill Security Audit

What the author says it does (original text)

Apply modern web development best practices for security, compatibility, and code quality. Use when asked to "apply best practices", "security audit", "modernize code", "code quality review", or "check for vulnerabilities".

Independent security check

Security risks found

Files checked
2
Risks found
4
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.No risks found
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

Dependency auditing can disclose package names and versions to the configured registry

Source references: 4
What we found

The Skill treats `npm audit` as a baseline security check and provides the command directly. Running it normally sends package and version information to the configured npm registry to obtain vulnerability results.

Why this matters

For projects with private packages, names and versions can reveal internal products, component naming, technology choices, or unreleased dependency relationships.

What this evidence establishes

The source does require or recommend `npm audit`, but the supplied lines do not state which registry it contacts, what dependency information it transmits, or how networking is configured. The claimed disclosure therefore cannot be established from this evidence alone. Users can ask the author to document the check’s network behavior and restrict it to an approved internal registry or disable outbound access for sensitive projects.

This assessment concerns the code and conditions shown, not proof that harm has occurred.
SKILL.md:434In the instructionsOpen original file
## Audit checklist### Security (critical)- [ ] HTTPS enabled, no mixed content- [ ] No vulnerable dependencies (`npm audit`)- [ ] CSP headers configured (with `frame-ancestors`, `base-uri`, `form-action`)- [ ] `require-trusted-types-for 'script'` enforced (or report-only during rollout)
Show 3 other places
references/SECURITY.md:120In the instructionsOpen original file
```bash# Check for vulnerabilitiesnpm audityarn audit# Auto-fix when possiblenpm audit fix
SKILL.md:23In the instructionsOpen original file
If live tools are unavailable, use the Lighthouse CLI plus focused dependency and header checks. Never report a high Lighthouse score as proof that the application is secure.
SKILL.md:438In the instructionsOpen original file
- [ ] HTTPS enabled, no mixed content- [ ] No vulnerable dependencies (`npm audit`)- [ ] CSP headers configured (with `frame-ancestors`, `base-uri`, `form-action`)
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.Risks found: 1
Medium risk

An audit-only request can still trigger project changes

Source references: 5
What we found

The activation description includes “security audit” and “code quality review,” while the shared workflow explicitly requires fixing code. An audit request does not necessarily authorize file changes; the security reference also presents `npm audit fix`, which can alter dependencies and lockfiles.

Why this matters

The agent could rewrite source, configuration, dependency versions, or lockfiles when the user only wanted a report, causing behavior changes, compatibility failures, or unrelated changes that are difficult to review.

The Skill is triggered by “security audit” or “code quality review,” while its live-audit workflow explicitly says to fix the implicated code. A user requesting assessment only could therefore receive file changes they did not expressly authorize. The `npm audit fix` example also demonstrates a potentially dependency- and lockfile-changing operation. Users can restrict the Skill to read-only auditing or require separate confirmation before remediation.

SKILL.md:2In the instructionsOpen original file
---name: best-practicesdescription: Apply modern web development best practices for security, compatibility, and code quality. Use when asked to "apply best practices", "security audit", "modernize code", "code quality review", or "check for vulnerabilities".license: MIT
Show 4 other places
SKILL.md:21In the instructionsOpen original file
3. Supplement runtime evidence with dependency, header, configuration, and source inspection; Lighthouse is not a complete security assessment.4. Fix the implicated code, re-run the same audit, and keep security findings separate from style preferences.
references/SECURITY.md:120In the instructionsOpen original file
```bash# Check for vulnerabilitiesnpm audityarn audit# Auto-fix when possiblenpm audit fix
SKILL.md:3In the instructionsOpen original file
name: best-practicesdescription: Apply modern web development best practices for security, compatibility, and code quality. Use when asked to "apply best practices", "security audit", "modernize code", "code quality review", or "check for vulnerabilities".license: MIT
references/SECURITY.md:125In the instructionsOpen original file
# Auto-fix when possiblenpm audit fix
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.Risks found: 2
Medium risk

Copying the static nonce example would weaken CSP script protection

Source references: 2
What we found

The reference labels a CSP containing fixed `nonce-abc123` as recommended and gives the script the fixed value `abc123`, without nearby guidance that a nonce must be unpredictable and regenerated for every response. A fixed or predictable nonce cannot reliably distinguish trusted from injected scripts.

Why this matters

If implemented literally, an attacker who learns the value may be able to make injected scripts pass CSP, creating a false sense of XSS protection.

The security reference labels a policy containing the fixed `'nonce-abc123'` as “recommended” and then shows a matching fixed `abc123` script nonce, without nearby guidance to generate a fresh unpredictable value for each response. These are examples and likely placeholders, but copying them literally would make the nonce predictable and weaken CSP’s distinction between authorized and injected scripts. Users can ask for explicit placeholder warnings and per-response nonce-generation guidance.

references/SECURITY.md:37In the instructionsOpen original file
**CSP Header (recommended):**```Content-Security-Policy:  default-src 'self';  script-src 'self' 'nonce-abc123' https://trusted.com;  style-src 'self' 'nonce-abc123';  img-src 'self' data: https:;  connect-src 'self' https://api.example.com;  frame-ancestors 'self';  base-uri 'self';  form-action 'self';```
Show 1 other places
references/SECURITY.md:50In the instructionsOpen original file
**Using nonces for inline scripts:**```html<script nonce="abc123">  // This inline script is allowed</script>```
Medium risk

Setting Permissions Policy through the shown HTML meta tag may be ignored

Source references: 3
What we found

The main instructions recommend `<meta http-equiv="Permissions-Policy">` to restrict location, camera, and microphone. Permissions Policy is delivered through an HTTP response header or an iframe `allow` attribute; the security reference itself shows the header form.

Why this matters

A page implemented from the main example may appear to disable sensitive capabilities while imposing no effective restriction, allowing same-origin scripts or embedded content to continue requesting them.

The main instructions explicitly present `<meta http-equiv="Permissions-Policy">` as a way to restrict geolocation, camera, and microphone, while the security reference shows the same policy as a response header. If a browser does not enforce this policy through that meta directive, users may falsely believe sensitive capabilities are blocked. Users can ask the author to remove or substantiate the meta approach and verify the deployed HTTP `Permissions-Policy` response header.

SKILL.md:420In the instructionsOpen original file
### Permissions policy```html<!-- Restrict powerful features --><meta http-equiv="Permissions-Policy"       content="geolocation=(), camera=(), microphone=()"><!-- Or allow for specific origins --><meta http-equiv="Permissions-Policy"       content="geolocation=(self 'https://maps.example.com')">```
Show 2 other places
references/SECURITY.md:111In the instructionsOpen original file
# Control referrer informationReferrer-Policy: strict-origin-when-cross-origin# Permissions policy (formerly Feature-Policy)Permissions-Policy: geolocation=(), microphone=(), camera=()```
references/SECURITY.md:114In the instructionsOpen original file
# Permissions policy (formerly Feature-Policy)Permissions-Policy: geolocation=(), microphone=(), camera=()```
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

8 instruction sections

The Skill activates for requests such as “security audit” and “code quality review,” combining Lighthouse runtime results with dependency, header, configuration, and source inspection.

View source
SKILL.md:2In the instructionsOpen original file
---name: best-practicesdescription: Apply modern web development best practices for security, compatibility, and code quality. Use when asked to "apply best practices", "security audit", "modernize code", "code quality review", or "check for vulnerabilities".license: MIT
SKILL.md:18In the instructionsOpen original file
1. Run a live Lighthouse Best Practices audit when that capability is available; with Chrome DevTools MCP, use `lighthouse_audit`. Use navigation mode for a normal page load or snapshot mode when the current state must be preserved.2. Inspect the listed console and network failures and fetch individual details only when they support a finding.3. Supplement runtime evidence with dependency, header, configuration, and source inspection; Lighthouse is not a complete security assessment.4. Fix the implicated code, re-run the same audit, and keep security findings separate from style preferences.

Security tasks pull in a separate reference covering HTTPS, CSP, Trusted Types, dependency auditing, input sanitization, and cookie configuration.

View source
SKILL.md:25In the instructionsOpen original file
## SecurityRead [the security reference](references/SECURITY.md) when security is in scope or a live audit surfaces a related failure. It covers HTTPS/HSTS, CSP and Trusted Types, Subresource Integrity, headers, dependencies, sanitization, and cookies.

The workflow does more than report findings: it directs the agent to fix code and rerun the audit, so project modification is part of its intended behavior.

View source
SKILL.md:21In the instructionsOpen original file
3. Supplement runtime evidence with dependency, header, configuration, and source inspection; Lighthouse is not a complete security assessment.4. Fix the implicated code, re-run the same audit, and keep security findings separate from style preferences.If live tools are unavailable, use the Lighthouse CLI plus focused dependency and header checks. Never report a high Lighthouse score as proof that the application is secure.
Start here · InstructionsSKILL.md
best-practices
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source. 4 more sections are available in the original file.

File reference map

References: 1
Files making referencesReferenced content
Lines show actual file references, not execution order. Select a node to highlight its connections and inspect the files and source locations. Dashed lines include files that still need locating.
Files and check records2 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included
  • references/SECURITY.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
  • references/SECURITY.mdSupporting file

Operations mentioned in code and instructions

Connect to websites
SKILL.md:131In the instructionsOpen original file
**Never load polyfills from a third-party CDN you don't control.** The `polyfill.io` service was [compromised in mid-2024](https://sansec.io/research/polyfill-supply-chain-attack) in a supply-chain attack and used to serve malware to ~100k sites. Self-host, or use a vetted mirror (e.g. [Cloudflare's `cdnjs` polyfill build](https://blog.cloudflare.com/polyfill-io-now-available-on-cdnjs-reduce-your-supply-chain-risk/)) — and pin the version with [Subresource Integrity](#subresource-integrity-sri-for-third-party-scripts).
SKILL.md:153In the instructionsOpen original file
// ✅ Async fetchconst response = await fetch(url);
SKILL.md:429In the instructionsOpen original file
<meta http-equiv="Permissions-Policy"       content="geolocation=(self 'https://maps.example.com')">```
Change files
SKILL.md:141In the instructionsOpen original file
// ❌ document.write (blocks parsing)document.write('<script src="..."></script>');
references/SECURITY.md:169In the instructionsOpen original file
element.innerHTML = userInput;document.write(userInput);
Read files
SKILL.md:150In the instructionsOpen original file
const xhr = new XMLHttpRequest();xhr.open('GET', url, false); // false = synchronous
Read keys or account settings
SKILL.md:263In the instructionsOpen original file
module.exports = {  devtool: process.env.NODE_ENV === 'production' ? false : 'source-map',};
Run commands
references/SECURITY.md:120In the instructionsOpen original file
```bash# Check for vulnerabilities
Lines read
677
File checksum (to compare versions)
f7365550bb24932ceb1aa0152c6a08813487d866c94aa4492e4f1ab3c9ea892e