# Gaf Validation Guardrails Node

> Applies GAF Node.js guardrail patterns for automation tasks, including input validation, freshness checks, idempotency, lock handling, structured logging, and status lifecycle safety. Use when creating or refactoring Node automation runtime code.

- Skill: `miguel-carrera/gaf-validation-guardrails-node` (Agent Skill)
- Install (CLI): `npx skillmds@latest add miguel-carrera/gaf-validation-guardrails-node`
- Raw SKILL.md: https://api.skillmd.com/api/skills/miguel-carrera/gaf-validation-guardrails-node/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: miguel-carrera (https://skillmd.com/u/miguel-carrera)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/miguel-carrera/gaf-validation-guardrails-node

---


# GAF Validation Guardrails for Node

## Goal
Standardize safe runtime patterns in Node-based GAF automations.

## Use This Skill When
- Creating a new Node automation entrypoint.
- Refactoring existing task runtime logic.
- User requests reliability hardening.

## Guardrail Patterns
- Validate required env vars at startup with explicit error messages.
- Validate input payload required fields before processing.
- Enforce freshness/time-window checks where task requires it.
- Use idempotency keys for duplicate-run prevention.
- Acquire and release distributed locks safely (with `try/finally`).
- Use consistent status lifecycle: `running -> success|failed`.
- Emit structured logs for start, checkpoints, failures, and completion.
- Use `run.js` as the task entrypoint and place internal subtasks/modules under `scripts/`.

## Implementation Sequence
1. Add startup validation.
2. Add input and schema-oriented checks.
3. Wrap critical section with idempotency + lock.
4. Add status writes and structured log events.
5. Add failure-path handling that always closes resources.

## Output
- list of guardrails added
- residual risks or TODOs
- quick local test plan

## Guardrails
- Do not add brittle abstractions unless reused.
- Keep dependencies minimal and explicit in `package.json`.

