Reguli de execuție (.rules) și codex execpolicy în OpenAI Codex CLI

Dezvoltare și AGENTS.md Codex CLI (2026)

Fișierele .rules decid ce comenzi poate rula Codex în afara sandbox-ului: fără întrebare (allow), cu aprobare (prompt) sau deloc (forbidden); codex execpolicy check le testează.

Sintaxă & invocare
~/.codex/rules/*.rules   |   codex execpolicy check [--pretty] --rules <fișier> -- <comandă>

Ce face Reguli de execuție (.rules) și codex execpolicy

Regulile Codex nu sunt ghiduri de stil. Ele controlează comenzile pe care Codex vrea să le ruleze în afara sandbox-ului: pentru fiecare comandă, Codex compară lista de argumente cu regulile și decide dacă o rulează fără întrebare, cere aprobare sau o blochează. Funcția este experimentală.

Regulile se scriu în fișiere .rules (sintaxă Starlark) dintr-un director rules/ de lângă un strat activ de configurație, de exemplu ~/.codex/rules/default.rules; regulile de proiect din <repo>/.codex/rules/ se încarcă doar dacă proiectul este de încredere. Codex le citește la pornire, deci după o modificare repornești. Când adaugi o comandă în allow list din TUI, Codex scrie în ~/.codex/rules/default.rules.

prefix_rule() primește pattern (obligatoriu), decision (implicit allow), justification și exemplele match / not_match, validate la încărcare. Când se potrivesc mai multe reguli, câștigă cea mai restrictivă: forbidden, apoi prompt, apoi allow. Comenzile compuse simple din bash -lc (legate cu &&, ||, ; sau |) se împart și se evaluează separat. codex execpolicy check (în preview) afișează JSON cu decizia cea mai strictă și regulile potrivite.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
pattern Prefixul de comandă: listă nevidă de literali sau de uniuni de literali.
decision allow (implicit), prompt sau forbidden.
justification Motivul afișat la aprobare sau la blocare; la forbidden, recomandă o alternativă.
match / not_match Exemple de comenzi care trebuie, respectiv nu trebuie, să se potrivească.
codex execpolicy check --rules, -r <fișier> Testează o comandă față de unul sau mai multe fișiere de reguli.
--pretty Formatează rezultatul JSON.
--ignore-rules (codex exec) Nu încarcă fișierele .rules pentru acea rulare.

Exemple practice

Exemplul 1: Interzicerea push-ului forțat și aprobare la push

# ~/.codex/rules/default.rules
prefix_rule(
    pattern = ["git", "push", "--force"],
    decision = "forbidden",
    justification = "Folosește git push --force-with-lease.",
)
prefix_rule(pattern = ["git", "push"], decision = "prompt")

Exemplul 2: Testarea regulii

codex execpolicy check --pretty \
  --rules ~/.codex/rules/default.rules \
  -- git push --force

Greșeli frecvente și bune practici

  • Pui reguli de stil în fișierele .rules; ele controlează doar comenzile rulate. Convențiile de cod merg în AGENTS.md.
  • Uiți separatorul -- în codex execpolicy check când comanda testată are propriile flag-uri.
  • Te bazezi pe o regulă allow pentru git add ca să treacă și git add . && rm -rf /; Codex evaluează separat fiecare comandă.

Comenzi înrudite