Manuale/Il lavoro di tutti i giorni
moh chiede prima di agire
È la caratteristica che definisce moh. Ogni passo che potrebbe cambiare qualcosa — scrivere un file, eseguire un comando, cliccare in una pagina web — passa da un cancello, e le chiavi le hai tu.
La richiesta di permesso
Quando nessuna regola ha ancora deciso un'azione, moh si ferma e chiede:
| Tasto | Effetto |
|---|---|
| y sì | Consente questa singola azione. |
| a sempre | La consente, insieme alle azioni dello stesso tipo, per il resto della conversazione. La richiesta mostra la regola esatta che verrà creata. |
| e modifica | Cambia l'azione prima che parta — un comando più sicuro, un file diverso. |
| n no | Rifiuta. moh viene avvisato e cerca un'altra strada o ti chiede. |
| esc | Chiude la richiesta; vale come no. |
Regole permanenti
Rispondere ogni volta alla stessa domanda stanca. Una regola decide in anticipo, con un linguaggio a schemi semplice e uguale ovunque:
| Schema | Copre |
|---|---|
bash | Tutti i comandi di terminale. |
bash:git status | Solo i comandi che iniziano con git status. |
write:src/** | Creare o sovrascrivere file ovunque sotto src/. |
edit:docs/** | Modificare i file sotto docs/. |
Una regola consente oppure nega. Puoi crearne una al volo
con a, passarla a una singola esecuzione (--allow "bash:git status",
--deny "write:secrets/**"), oppure scriverla nel file moh.json del
progetto, così vale per chiunque ci lavori. Quando ne valgono diverse, vince la più specifica.
# moh.json — moh può controllare git liberamente, ma non tocca mai secrets/
{
"permissions": {
"overrides": {
"bashAllow": [["git", "status"], ["git", "diff"]],
"bashDeny": [["git", "push"]],
"pathDeny": ["secrets/**"]
}
}
}
I tre livelli di cautela
Premi shift+tab per passare dall'uno all'altro. Il livello attivo è sempre indicato in basso nello schermo, e la scelta vale solo per questa conversazione — una nuova riparte dalle tue impostazioni.
| Livello | Cosa fa | Usalo per |
|---|---|---|
| ◌ Normal | Chiede per ogni azione che nessuna regola consente. Resta dentro la cartella del progetto. | Imparare, lavoro vero, tutto ciò a cui tieni. |
| ◐ Auto-accept | Smette di chiedere per le azioni di routine di moh. Chiede ancora per tutto ciò che è fuori dal progetto e per le domande sollevate dalle estensioni. | Lavori lunghi che stai seguendo. |
| ⚠ YOLO | Nessuna domanda, e nessun recinto attorno alla cartella del progetto. | Solo esperimenti usa e getta. |
Regola pratica
Resta su Normal mentre impari. Le richieste non sono un ostacolo — sono il prodotto. Leggere cosa sta per fare moh è il modo in cui impari cosa fa.
I limiti che nulla può superare
- Le scritture fuori dalla cartella del progetto vengono chieste ogni singola volta. Non possono mai diventare una regola, nemmeno per sbaglio.
- Le estensioni possono solo rendere moh più prudente. Un'estensione può rifiutare un'azione o sollevare una domanda; non può mai concedere qualcosa che non hai permesso. Le sue domande offrono solo sì/no.
- I comandi che scrivi tu con
!passano dallo stesso cancello (vedi eseguire comandi tuoi). - Quando nessuno può rispondere — negli script e nella CI — un'azione che richiederebbe una domanda viene rifiutata invece di restare in attesa per sempre (vedi automazione).
Pagine web e browser
Leggere una pagina web è consentito, ma moh rifiuta gli indirizzi della tua rete privata (il router, i servizi locali) a meno che tu non lo permetta, così una pagina non può spingerlo a curiosare nella tua rete di casa. Nel browser guardare è libero; cliccare, scrivere, caricare e scaricare chiedono prima, e "sempre per questo sito" resta limitato a quel sito e a questa conversazione.
Scritto per moh 0.61. Dentro moh, ctrl+h apre il manuale incluso, aggiornato alla tua versione.
