Usare la skill
Una volta installata, la skill Copera CLI è caricabile da qualsiasi agente che supporta lo standard Agent Skills. Come la invochi dipende dall'agente.
Invocazione per agente
| Agent | Invocation |
|---|---|
| Claude Code | /copera:cli (explicit) or any prompt mentioning Copera (auto-trigger). |
| Cursor | /copera-cli (explicit) or describe what you want — the skill is description-matched. |
| OpenCode | Discovery is automatic via the skill tool; just ask for a Copera task. |
| Codex / Windsurf / Cline / Aider / Continue | Ambient — the skill content is loaded as part of the agent's context. Just describe the task. |
Quasi mai serve invocare la skill esplicitamente. Descrivi semplicemente cosa vuoi fare in Copera, e l'agente caricherà la reference giusta ed eseguirà.
Convenzioni al primo avvio
La skill impone alcune regole che rendono prevedibili le esecuzioni degli agenti. Conoscerle ti aiuta a capire perché gli agenti si fermano o chiedono prima di agire.
Discovery prima delle scritture
Prima di creare o aggiornare qualsiasi cosa in una board che l'agente non ha visto in questa sessione, eseguirà:
copera boards list --json
copera tables list --board <board-id> --json
copera tables get <table-id> --board <board-id> --json
Questo non è l'agente chiacchierone — i tipi di colonna e le etichette delle opzioni non si possono indovinare. Saltare la lettura dello schema è la causa più comune di scritture di riga rifiutate in silenzio. La skill rende questa regola obbligatoria.
Conferma quando conta
L'agente usa il giudizio su quando fermarsi e chiedere. Il default non è "conferma ogni scrittura" — quello è teatro della conferma. Invece:
- Letture — esegui silenziosamente e riassumi.
- Scritture di routine (
rows create,rows update, commenti e messaggi interni,docs update,drive uploadsu un path nuovo) — quando la tua richiesta è non ambigua, l'agente le esegue e basta e riporta cosa è cambiato. Nessuna riformulazione. - L'agente si ferma e chiede quando:
- Ha dovuto inferire un valore che non hai specificato (es. severity non data, deve indovinare).
- L'operazione esce dal workspace (commenti a visibility external, channel rivolti ai clienti, upload di massa).
- Hai detto esplicitamente "chiedimi prima di ogni passo" nella conversazione.
- Operazioni distruttive (
rows delete,docs delete, force-delete, overwrite di massa) — sempre conferma, anche se le hai pre-autorizzate.
Per le workflow skill (vedi Workflow Skills), la postura di conferma è decisa a tempo di build della skill per script — registrata come colonna Confirm nella tabella Scripts della skill. L'agente la rispetta senza richiedere di nuovo. Gli script distruttivi sono bloccati su always-confirm; quelli non distruttivi di default "esegui e basta".
JSON-first
Quando l'agente deve agire sull'output di Copera, passa sempre --json. L'output CLI formattato per umani è per te, non per il parser dell'agente.
Sessioni di esempio
Elencare le board
Tu: Quali board ho in Copera?
Agente: (esegue
copera boards list --json) Hai tre board: Engineering (66ab…), CRM (66cd…), Marketing (66ef…). Vuoi che approfondisca qualcuna?
Creare una riga (con discovery)
Tu: Crea un bug nella table Bugs intitolato "Login button broken on Safari", severity P1.
Agente: (esegue
copera tables list --board 66ab… --json) Vedo due table in Engineering:Bugs(66bg…) eReleases(66rl…). UsoBugs.(esegue
copera tables get 66bg… --board 66ab… --json) Lo schema ha Status, Severity, Title, Description.(esegue
copera rows create --board 66ab… --table 66bg… --data '{…}' --json) Creata riga #142 (66r1…) — title "Login button broken on Safari", severity P1, status Triage.
L'agente non riformula la chiamata prima di eseguirla — la tua richiesta era non ambigua e la create non è distruttiva. Se avessi specificato un valore inferito dall'agente (es. "crea qualche bug per me"), o se fosse un rows delete, l'agente si fermerebbe a confermare.
Catturare un workflow
Tu: Ogni volta che ti mando un link Sentry, apri una riga di triage in Bugs e pubblica una notifica su #alerts.
Agente: Sembra un workflow che ripeterai. Vuoi che lo salvi come workflow skill riutilizzabile così ogni sessione futura può eseguirlo in modo identico?
(continua con l'intervista build-workflow-skill)
I profili eliminano le ripetizioni
Se chiederai all'agente di operare ripetutamente sulla stessa board+table, configura un profilo Copera così gli ID sono già risolti:
# ~/.copera.toml
default_profile = "bugs"
[profiles.bugs]
token = "cp_pat_…"
board_id = "66ab…"
table_id = "66bg…"
Poi l'agente può eseguire copera rows create --data '{…}' senza i flag --board / --table. Vedi Configurazione CLI per lo schema completo dei profili, e Workflow Skills per come l'agente ti aiuta a impostarli automaticamente.
Cosa aspettarsi quando cambia lo schema
Gli admin del workspace che cambiano una colonna o un'etichetta di opzione possono rompere le workflow skill che avevano hardcoded lo schema. La detection è reattiva, non pre-flight — la skill non recupera lo schema a ogni esecuzione (brucerebbe il budget di rate limit inutilmente). Invece:
- L'agente invoca lo script bundlato del workflow. Lo script restituisce un errore copera (es. invalid option ID).
- L'agente carica il
fingerprint.mddel workflow (solo ora, non prima), classifica l'errore come schema-flavored e si ferma. - Ti dice che lo schema di
<table>potrebbe essere cambiato e chiede se recuperare lo schema attuale e aggiornare la skill. - Con il tuo OK, fa diff rispetto allo snapshot salvato, riscrive le sezioni interessate, aggiorna la data dello snapshot e riesegue la chiamata fallita.
- Con "no", esce in modo pulito — non ritenta mai in silenzio contro uno schema che sospetta obsoleto.
Puoi anche forzare un refresh in qualsiasi momento: "refresh the schema for <workflow-name>". Vedi Workflow Skills → Schema drift per il meccanismo completo.
Limitazioni
- La skill insegna l'uso della CLI; non sostituisce il binario CLI. Installa la
coperaCLI sulla stessa macchina. - I comandi Docs richiedono un Personal Access Token (
cp_pat_…). Le Integration key (cp_key_…) funzionano per boards e channels, ma restituiscono un errore di auth sugli endpoint docs. - I target delle colonne LINK non sono nello schema — l'agente deve chiederti quale table c'è dall'altra parte. Le workflow skill che usano colonne LINK lo catturano dall'intervista.