create-rule — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-rule (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Create project rules in .cursor/rules/ to provide persistent context for the AI agent.
Before creating ANY rule, verify:
ls -la .cursor/rules/*.mdc 2>/dev/null
cat .cursor/rules/*.mdc 2>/dev/null | head -100cat CONTRIBUTING.md .editorconfig .eslintrc* 2>/dev/null | head -50Why: Rules should complement, not conflict with, existing project conventions.
Before creating a rule, determine:
If you have previous conversation context, infer rules from what was discussed. You can create multiple rules if the conversation covers distinct topics or patterns. Don't ask redundant questions if the context already provides the answers.
If the user hasn't specified scope, ask:
If they mentioned specific files and haven't provided concrete patterns, ask:
**/*.ts, backend/**/*.py)It's very important that we get clarity on the file patterns.
Use the AskQuestion tool when available to gather this efficiently.
Rules are .mdc files in .cursor/rules/ with YAML frontmatter:
.cursor/rules/
typescript-standards.mdc
react-patterns.mdc
api-conventions.mdc---
description: Brief description of what this rule does
globs: **/*.ts # File pattern for file-specific rules
alwaysApply: false # Set to true if rule should always apply
---
# Rule Title
Your rule content here...| Field | Type | Description |
|---|---|---|
description | string | What the rule does (shown in rule picker) |
globs | string | File pattern - rule applies when matching files are open |
alwaysApply | boolean | If true, applies to every session |
For universal standards that should apply to every conversation:
---
description: Core coding standards for the project
alwaysApply: true
---For rules that apply when working with certain file types:
---
description: TypeScript conventions for this project
globs: **/*.ts
alwaysApply: false
------
description: TypeScript coding standards
globs: **/*.ts
alwaysApply: false
---
# Error Handling
\`\`\`typescript
// ❌ BAD
try {
await fetchData();
} catch (e) {}
// ✅ GOOD
try {
await fetchData();
} catch (e) {
logger.error('Failed to fetch', { error: e });
throw new DataFetchError('Unable to retrieve data', { cause: e });
}
\`\`\`---
description: React component patterns
globs: **/*.tsx
alwaysApply: false
---
# React Patterns
- Use functional components
- Extract custom hooks for reusable logic
- Colocate styles with components.mdc format in .cursor/rules/~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.