A read command doesn’t need the same decision as a command that writes a file. The gate classifies before running; the audit shows what ran and what was refused. The chosen policy changes when the assistant asks: perigosos (dangerous), sempre (always) or nunca (never).
Objective: Identify the three command classes and check one refused request and one approval request in the audit.
01 · Three outcomes for one command
Classification happens before execution.
Click each block in the diagram to see what it does.
Classification is not a complete guarantee against every unknown command; the sandbox limits what it can reach when you need to run something new.
02 · Read the full decision
Click each step to see what to do.
1. Classify
Only what’s on the read-only list runs directly. Everything else asks for approval; this is safer than a short list of forbidden words.
2. Ask
With the default policy, perigosos (dangerous), read-only commands like ls or cat run unasked; anything that writes asks “rodar …? [s/N]”. Type n or press Enter to refuse; s approves. With the sempre (always) policy, it asks before ANY command, even ls and cat. With nunca (never), read-only commands run, but anything that would need approval is refused without asking. A command blocked by the safeguard never runs under any policy.
A pipe is when you send ready-made text to the program instead of typing in the terminal. In that case, the approval request is refused because no one can answer the interactive prompt.
3. Log
The audit prints one JSON line (a record with named fields) per event. In the command line, comando is the request; classe is allowed, approval required, or blocked; rodou is true if it ran; decisao explains why. Tool-type lines record the tool used.
03 · Commands to observe, with no risk
Use the mock brain to make sure the tool is called. In the interactive terminal, answer n or press Enter. With llama3.2, asking for a command may not call the tool.
Terminal · conversation with mock brain and approval
cd ~/intelecto-v2
python3 -m intelecto conversar --provedor mock --aprovacao perigosos
In the conversation · ask it to write a file
run: echo teste > nota.txt
Terminal · check the audit log
cd ~/intelecto-v2
python3 -m intelecto auditoria -n 20
Repository example
[aprovação] rodar 'echo teste > nota.txt'? (substituição de comando ou redirecionamento para arquivo) [s/N]
n or Enter refuses; s approves. The audit records "classe": "aprovar", "rodou": false and "decisao": "o dono não aprovou".
The program prints this in Portuguese, exactly as shown.
recusado: precisa de aprovação (substituição de comando ou redirecionamento para arquivo) e a política é 'nunca'
The program prints this in Portuguese, exactly as shown.
{"ts": "2026-11-13T03:37:49+00:00", "tipo": "comando", "comando": "echo x > y.txt", "classe": "aprovar", "rodou": false, "decisao": "o dono não aprovou"}
This record is from another refused request, sent via pipe. In the interactive run, look for the command echo teste > nota.txt.
04 · See the safeguard in action
Follow the steps in order and check each one only after you’ve confirmed the result.
Refuse a file write in the terminal
6
Open the conversation with --provedor mock --aprovacao perigosos. Ask “run: echo teste > nota.txt”. When [s/N] appears, answer n (or press Enter). Run auditoria -n 20 and find that request.
Done when: The request’s JSON line contains "classe": "aprovar", "rodou": false, and "decisao": "o dono não aprovou"; that request did not create nota.txt.
Compare with the demo
4
Run python3 -m intelecto demo and identify the classes in the final block. The demo uses a temporary folder and is not included in the audit of your installation.
Done when: You mark free as ran, approve as didn’t run, and blocked as didn’t run.
05 · Check your understanding
Choose before opening the explanation. If you get it wrong, use the link to review.
Question 1 of 3
Which demo command runs without asking?
Correct
ls is on the read list. Writing requires approval; deleting the root is blocked.