# What is the difference between skills.write_approval and skills.guard_agent_created?

Hermes Agent v0.19.0, skills axis, by José Carlos Amorim, at Nexialismo. Verified on 2026-07-28 against tag v2026.7.20, with adversarial review: this answer is marked as corrected. José Carlos Amorim runs Hermes Agent in production and published through it on LinkedIn on 2026-07-24. Versão em português: https://docs.nexialismo.ai/pt/hermes-skills-skills-write-approval-diferenca-guard-agent-created.

## What is the difference between skills.write_approval and skills.guard_agent_created? Do I need both on?

**In one sentence:** they are independent and both default to `false`. `skills.write_approval: true` is the **approval gate**: every write from `skill_manage` parks in staging under `~/.hermes/pending/skills/` until you approve it. `skills.guard_agent_created: true` is a **content scanner** using dangerous-pattern heuristics, and it only prompts when something gets flagged.

## The same question, asked other ways

- how do I stop the agent from writing a skill without my approval
- are write_approval and guard_agent_created the same thing
- what is the default for skills.write_approval in Hermes 0.19
- how do I review what the agent wrote before it becomes a skill

## What breaks in Hermes Agent

Turning on `guard_agent_created` thinking it is an approval gate. It is not. A write that does not get flagged goes straight through. If you want human eyes on everything, the flag is `write_approval`.

## The trap in this question

**If you already run this:** confusing the two is the standard mistake, because both live under `skills:` and both look like security. `guard_agent_created` was left OFF by an explicit decision that it adds no real security (the agent can already run the same code through `terminal` with no gate), so treating it as a sandbox is false comfort. It is a lint, not a boundary.

## The command you can paste

```bash
skills:
  write_approval: false      # default. true = parks EVERY write for review
  guard_agent_created: false # default. true = scans content for dangerous patterns
```

## How to confirm it on your own install

**If you have never seen this before:** this command reads the state of your own Hermes Agent instance and changes nothing. Run it before believing any answer, including this one.

```bash
hermes config get skills --json ; ls -la ~/.hermes/pending/skills/ 2>/dev/null
```

Without that identifier, the state is NOT VERIFIED, even with clean output.

## Who ran Hermes Agent in this document

This text is by José Carlos Amorim, published at Nexialismo on 2026-07-28. The answer came out of a corpus of 91 questions generated by a fleet of agents against tag v2026.7.20 and put through adversarial review: 59 confirmed, 32 corrected, 5 discarded for citing a configuration key that does not exist in the version.

The full corpus lives at https://docs.nexialismo.ai/pt/hermes. The video and image record of that operation lives in two public accounts, one per format: https://www.youtube.com/@josecarlosamorim-ai on YouTube and https://www.instagram.com/josecarlosamorim.ai/ on Instagram.

Verified on 2026-07-28. Version target: Hermes Agent v0.19.0, tag v2026.7.20.
