void-security-guidance

Enforces secure defaults at trust boundaries using Zod validation, env secrets, and parameterized SQL.

Updated May 29, 2026
One-click install
npx skills add https://github.com/voidcorp-core/void-harness --skill void-security-guidance-voidcorp-core
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: void-security-guidance
Source: https://github.com/voidcorp-core/void-harness/tree/main/packages/core/skills/void-security-guidance
Command: npx skills add https://github.com/voidcorp-core/void-harness --skill void-security-guidance-voidcorp-core

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Codebases drift into insecure patterns: unvalidated request bodies, hardcoded secrets, string-concatenated SQL, hand-rolled auth, and LLM output trusted blindly. This Skill codifies the daily security floor so every trust boundary gets validated by default, without waiting for a periodic audit. ## Core Features & Use Cases - Trust-boundary validation: Requires Zod schema validation at every point where untrusted data enters the system (HTTP bodies, webhooks, form input, third-party SDK responses, LLM output), banning JSON.parse without schemas and as type assertions. - Secrets and logging discipline: Mandates validated env-based secrets (with an encrypted-at-rest exception for customer BYO credentials), and bans PII or secrets in logs, error messages, and Sentry breadcrumbs. - Auth, SQL, and LLM safety: Requires Better-Auth (or Clerk) instead of hand-rolled auth, parameterized Drizzle queries instead of string concatenation, and treats LLM input/output as untrusted against prompt injection and hallucination. - Use Case: While writing a Server Action that processes a checkout form, the Skill ensures you parse the FormData with a Zod schema, read the Stripe key from the validated env module, and query the database through Drizzle rather than raw string interpolation. ## Quick Start Ask the agent to review or write code that crosses a trust boundary, such as "add a webhook handler for Stripe events", and the security defaults apply automatically.

Frequently Asked Questions about void-security-guidance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate untrusted input at API boundaries in TypeScript?

Validate untrusted input with a Zod schema using safeParse at the exact trust boundary, such as a Server Action or webhook handler. Never use JSON.parse without a schema or cast req.body with an as assertion.

Should I use Better-Auth or build custom authentication?

Use Better-Auth (or Clerk as an opt-in alternative) rather than hand-rolled auth. These libraries handle password hashing, session tokens, CSRF protection, secure cookies, and rate limiting, which custom implementations routinely get wrong.

How should customer-provided API keys be stored in a multi-tenant app?

Store customer BYO credentials encrypted at rest in the database with AES-256-GCM, scoped per tenant, never in env vars. The master encryption key stays in validated env, and only a masked last-four is ever exposed to clients.

Can LLM output be trusted in application code?

No, LLM output is untrusted. Validate structured responses with Zod, never eval LLM output, and never pass it directly into dangerouslySetInnerHTML, SQL, or shell commands. User-controlled prompt text must also be treated as a prompt-injection vector.

When should I escalate to a full security audit instead of daily defaults?

Escalate to the security-audit skill for periodic deep audits, high-stakes features like payments or auth changes, pre-launch security gates, and incident response. This guidance skill covers the daily floor, not threat modeling or OWASP Top 10 walkthroughs.