Force factual investigation before edits or commands to improve output quality.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "gateguard" skill from askskill: 1. Download https://raw.githubusercontent.com/affaan-m/ECC/main/skills/gateguard/SKILL.md 2. Save it as ~/.claude/skills/gateguard/SKILL.md 3. Reload skills and tell me it's ready
Enable gateguard. Before modifying this repository, investigate the relevant import chain, data structures, config sources, and my actual requirement. Only allow Edit or MultiEdit after you present concrete findings and risks.
It first returns investigation findings, scope, and risks, then proceeds to concrete edits only when conditions are satisfied.
Use gateguard. Before running any Bash command, confirm the project type, dependency manager, environment variables, database schema, and user goal. If information is insufficient, ask follow-up questions or investigate further instead of executing immediately.
You get a pre-execution checklist and missing-information report, reducing commands based on false assumptions.
Have gateguard review this writing task: before generating the document, inspect existing materials, term definitions, target audience, and formatting requirements. If factual grounding or user instructions are incomplete, pause Write and explain why.
It first provides information gaps and clarification suggestions, then drafts the document once grounding is sufficient.
A PreToolUse hook that forces Claude to investigate before editing. Instead of self-evaluation ("are you sure?"), it demands concrete facts. The act of investigation creates awareness that self-evaluation never did.
LLM self-evaluation doesn't work. Ask "did you violate any policies?" and the answer is always "no." This is verified experimentally.
But asking "list every file that imports this module" forces the LLM to run Grep and Read. The investigation itself creates context that changes the output.
Three-stage gate:
1. DENY — block the first Edit/Write/Bash attempt
2. FORCE — tell the model exactly which facts to gather
3. ALLOW — permit retry after facts are presented
No competitor does all three. Most stop at deny.
Two independent A/B tests, identical agents, same task:
| Task | Gated | Ungated | Gap |
|---|---|---|---|
| Analytics module | 8.0/10 | 6.5/10 | +1.5 |
| Webhook validator | 10.0/10 | 7.0/10 | +3.0 |
| Average | 9.0 | 6.75 | +2.25 |
Both agents produce code that runs and passes tests. The difference is design depth.
MultiEdit is handled identically — each file in the batch is gated individually.
Before editing {file_path}, present these facts:
1. List ALL files that import/require this file (use Grep)
2. List the public functions/classes affected by this change
3. If this file reads/writes data files, show field names, structure,
and date format (use redacted or synthetic values, not raw production data)
4. Quote the user's current instruction verbatim
Before creating {file_path}, present these facts:
1. Name the file(s) and line(s) that will call this new file
2. Confirm no existing file serves the same purpose (use Glob)
3. If this file reads/writes data files, show field names, structure,
and date format (use redacted or synthetic values, not raw production data)
4. Quote the user's current instruction verbatim
Triggers on: rm -rf, git reset --hard, git push --force, drop table, etc.
1. List all files/data this command will modify or delete
2. Write a one-line rollback procedure
3. Quote the user's current instruction verbatim
1. The current user request in one sentence
2. What this specific command verifies or produces
The hook at scripts/hooks/gateguard-fact-force.js is included in this plugin. Enable it via hooks.json.
If GateGuard blocks setup or repair work, start the session with
ECC_GATEGUARD=off. For hook-level control, keep using
ECC_DISABLED_HOOKS with the GateGuard hook ID.
pip install gateguard-ai
gateguard init
This adds .gateguard.yml for per-project configuration (custom messages, ignore paths, gate toggles).
%Y/%m/%d %H:%M. Checking data structure (with redacted values) prevents this entire class of bugs.…
Handle returns, refunds, fraud checks, and warranty claim decisions efficiently.
Use Bun for runtime, bundling, testing, packages, and Node migration decisions.
Use the correct Ethereum Keccak-256 hashing in Node.js and TypeScript.
Apply Nuxt 4 patterns for SSR safety, performance, and data fetching.
Generate images, videos, and audio with one unified AI media workflow.
Design Quarkus 3 backend patterns for messaging, APIs, data, and async workflows.
Add pre-action gates to stop AI agents repeating known mistakes.
Add quality gates for coding agents to catch common AI mistakes.
Prevent destructive actions in production systems and autonomous agent workflows.
Generate tamper-evident, post-quantum receipts for agent actions with offline verification.
Route thousands of LLM requests through one fast API with built-in guardrails.
Adds human approval and policy checks to risky AI file operations.