ln-621-security-boundary-auditor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ln-621-security-boundary-auditor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Paths: File paths (references/,../ln-*) are relative to this skill directory.
Type: L3 Worker
Specialized worker auditing exploitable application security boundaries.
HARDEN_SECURITY_BOUNDARY, REMOVE_SECRET, or REMOVE_SENSITIVE_DEFAULTMANDATORY READ: Load references/audit_worker_core_contract.md. Tool policy: follow host AGENTS.md MCP preferences; load references/mcp_tool_preferences.md and references/mcp_integration_patterns.md only when host policy is absent or MCP behavior is unclear.
Receives contextStore with: tech_stack, best_practices, principles, codebase_root, output_dir.
Use hex-graph first when dataflow or cross-file reference analysis materially improves confidence. Use hex-line first for local code reads when available. If MCP is unavailable, unsupported, or not indexed, continue with built-in Read/Grep/Glob/Bash and state the fallback in the report.
Detection policy: use two-layer detection (candidate scan, then context verification); load references/two_layer_detection.md only when the verification method is ambiguous.
1) Parse Context: Extract tech stack, best practices, codebase root, output_dir from contextStore 2) Scan Codebase (Layer 1): Run security checks using Glob/Grep patterns (see Audit Rules below) 3) Analyze Context (Layer 2): For each candidate, read surrounding code to classify:
innerHTML, | safe) -> confirmed4) Collect Findings: Record confirmed violations with severity, location (file:line), effort estimate (S/M/L), recommendation 5) Calculate Score: Count violations by severity, calculate compliance score (X/10) 6) Write Report: Build full markdown report in memory per references/templates/audit_worker_report_template.md, write to {output_dir}/ln-621--global.md in single Write call 7) Return Summary: Return minimal summary (see Output Format)
What: API keys, passwords, tokens, private keys in source code
Detection:
API_KEY = "...", password = "...", token = "...", SECRET = "...".ts, .js, .py, .go, .java, .cs.env.example, README.md, test files with mock dataSeverity:
Recommendation: Move to environment variables (.env), use secret management (Vault, AWS Secrets Manager)
Effort: S (replace hardcoded value with process.env.VAR_NAME)
What: String concatenation in SQL queries instead of parameterized queries
Detection:
query = "SELECT * FROM users WHERE id=" + userId, db.execute(f"SELECT * FROM {table}"), ` SELECT * FROM ${table} `Severity:
Recommendation: Use parameterized queries (prepared statements), ORM query builders
Effort: M (refactor query to use placeholders)
What: Unsanitized user input rendered in HTML/templates
Detection:
innerHTML = userInput, dangerouslySetInnerHTML={{__html: data}}, echo $userInput;{{ var | safe }}, <%- var %>)Severity:
Recommendation: Use framework escaping (React auto-escapes, use textContent), sanitize with DOMPurify
Effort: S-M (replace innerHTML with textContent or sanitize)
What: Secret, token, key, credential, or privileged config values with unsafe code defaults
Detection:
SECRET, TOKEN, KEY, PASSWORD, PRIVATE, CREDENTIAL.env.example, tests, docs, and obvious placeholders (changeme, empty string, example)Severity:
Recommendation: Remove sensitive default, require explicit config, fail fast at startup
Effort: S-M
What: Missing validation at system boundaries (API endpoints, user forms, file uploads)
Detection:
Severity:
Recommendation: Add validation middleware (Joi, Yup, express-validator), implement input sanitization
Effort: M (add validation schema and middleware)
MANDATORY READ: Load references/audit_scoring.md.
MANDATORY READ: Load references/templates/audit_worker_report_template.md.
Write JSON summary per references/audit_summary_contract.md. In managed mode the caller passes both runId and summaryArtifactPath; in standalone mode the worker generates its own run-scoped artifact path per shared contract.
Write report to {output_dir}/ln-621--global.md with category: "Security Boundary" and checks: hardcoded_secrets, sql_injection, xss_vulnerabilities, sensitive_env_defaults, missing_input_validation.
Return summary per references/audit_summary_contract.md.
Standalone mode still writes the same JSON summary to a worker-owned run-scoped artifact path per shared contract.
Apply the already-loaded references/audit_worker_core_contract.md.
file:line for programmatic navigationHARDEN_SECURITY_BOUNDARY, REMOVE_SECRET, or REMOVE_SENSITIVE_DEFAULT.Apply the already-loaded references/audit_worker_core_contract.md.
{output_dir}/ln-621--global.md (atomic single Write call)references/audit_output_schema.mdVersion: 3.0.0 Last Updated: 2025-12-23
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.