@aksp/opencrew 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +20 -8
  3. package/package.json +2 -2
  4. package/src/cli.js +15 -38
  5. package/src/commands/init.js +41 -44
  6. package/src/commands/update.js +78 -75
  7. package/src/lib/blocos.js +148 -0
  8. package/src/lib/deteccao.js +69 -0
  9. package/src/lib/fsx.js +1 -55
  10. package/src/lib/ides.js +4 -0
  11. package/src/lib/legado.js +142 -0
  12. package/src/lib/manifest.js +67 -26
  13. package/src/lib/mcp.js +131 -0
  14. package/src/lib/migrations.js +77 -74
  15. package/src/lib/node-version.js +43 -0
  16. package/src/lib/prompts.js +25 -2
  17. package/src/lib/resumo.js +125 -0
  18. package/templates/.mcp.json +1 -1
  19. package/templates/_opencrew/.opencrew-version +1 -1
  20. package/templates/_opencrew/core/best-practices/social-networks-publishing.md +14 -14
  21. package/templates/_opencrew/core/prompts/export.prompt.md +1 -1
  22. package/templates/_opencrew/core/prompts/sherlock-shared.md +5 -5
  23. package/templates/_opencrew/core/runner.pipeline.md +32 -12
  24. package/templates/_opencrew/core/scripts/comum.mjs +49 -4
  25. package/templates/_opencrew/core/scripts/conferir-fontes/busca.mjs +42 -3
  26. package/templates/_opencrew/core/scripts/conferir-fontes/relatorio.mjs +18 -6
  27. package/templates/_opencrew/core/scripts/conferir-fontes.mjs +97 -39
  28. package/templates/_opencrew/core/scripts/verificar.mjs +7 -4
  29. package/templates/_opencrew/core/skills.engine.md +7 -3
  30. package/templates/gitignore +1 -0
  31. package/templates/skills/blotato/SKILL.md +39 -10
  32. package/templates/skills/image-ai-generator/SKILL.md +18 -5
  33. package/templates/skills/image-ai-generator/scripts/generate.py +52 -10
  34. package/templates/skills/instagram-publisher/SKILL.md +4 -0
  35. package/templates/skills/opencrew-skill-creator/references/skill-format.md +1 -0
  36. package/templates/skills/resend/SKILL.md +52 -13
@@ -19,6 +19,7 @@ mcp:
19
19
  command: npx
20
20
  args: ["-y", "resend-mcp"]
21
21
  transport: stdio
22
+ side_effects: irreversible
22
23
  env:
23
24
  - RESEND_API_KEY
24
25
  categories: [email, automation, communication]
@@ -34,17 +35,53 @@ so the crew only needs to compose the content and call the MCP tools.
34
35
 
35
36
  ## Instructions
36
37
 
38
+ ### Confirmation (before any send, schedule or delete)
39
+
40
+ Sending is **irreversible**: an e-mail cannot be taken back once it leaves. The rule below is
41
+ about the **action**, whatever the tool is called on the server: before ANY call that sends,
42
+ schedules or deletes, follow this order. The messages to the user are in PT-BR, as written here.
43
+
44
+ 1. Prepare **from**, **to**, **subject**, **body** (HTML or plain text) and attachments. Call no
45
+ sending tool yet.
46
+ 2. **Preview (prévia)** — show the user exactly this, filled in:
47
+ ```
48
+ Vou enviar este e-mail:
49
+ De: {remetente}
50
+ Para: {N} destinatário(s): {até 10 endereços}… e mais {N-10}
51
+ Assunto: {assunto}
52
+ Início do texto: {3 primeiras linhas}
53
+ Anexos: {nomes}, ou nenhum
54
+ Quando: agora, ou agendado para {data e hora}
55
+ Para enviar, responda com a palavra enviar. Qualquer outra resposta cancela.
56
+ ```
57
+ (`{N}` is the total of recipients — to, CC and BCC; in a batch, of all the e-mails together.
58
+ List at most 10 addresses; "… e mais {N-10}" only when there are more. `Quando`: write `agora`
59
+ or `agendado para …`. `Anexos`: the file names, or `nenhum`.)
60
+ 3. Wait for the word **enviar**. Any other answer — including silence, "ok" or "sim" — cancels:
61
+ say "Nenhum e-mail foi enviado." and stop.
62
+ 4. Only after the word: make **one single call** — `send_email` for one e-mail,
63
+ `batch_send_emails` for a batch.
64
+ 5. On success: check the response for the `id` (one per item in a batch) and save it to the step
65
+ output file immediately.
66
+ 6. On failure, timeout or missing answer: do NOT repeat the call again, in this step or in a retry.
67
+ Tell the user: "⚠️ Não recebi a confirmação do Resend. O e-mail pode já ter sido enviado.
68
+ Confira no painel antes de tentar de novo. Não vou repetir sozinho."
69
+ 7. One confirmation is worth one send. If this step runs again in the same run (a retry, or back
70
+ from a rejected review), show the preview again, after this line: "Este passo já tentou enviar
71
+ nesta execução. Confira se saiu antes de confirmar de novo." — and wait for the word.
72
+ 8. A call that **deletes** (removing a contact or a domain) follows the same order with its own
73
+ word: "Vou apagar isto: {o que será apagado}. Para apagar, responda com a palavra apagar.
74
+ Qualquer outra resposta cancela." Any other answer: "Nada foi apagado."
75
+
37
76
  ### Sending a single email
38
77
 
39
- 1. Prepare **from**, **to**, **subject**, and **body** (HTML or plain text).
40
- 2. Call the Resend MCP `send_email` tool.
41
- 3. Check the response for a successful `id` — that confirms the email was queued.
78
+ Fields: **from**, **to**, **subject** and **body**; a successful `id` in the response confirms the
79
+ e-mail was queued.
42
80
 
43
81
  ### Sending a batch
44
82
 
45
- 1. Build an array of email objects (same fields as single send).
46
- 2. Call the Resend MCP `batch_send_emails` tool.
47
- 3. Each item in the response will have its own `id` or error.
83
+ Build an array of email objects (same fields as single send). Each item in the response has its
84
+ own `id` or error — report both; never send the failed ones again on your own.
48
85
 
49
86
  ### Attachments
50
87
 
@@ -52,25 +89,27 @@ Pass attachments as an array with `filename`, `path` (local file), `url`, or `co
52
89
 
53
90
  ### Scheduling
54
91
 
55
- Include a `scheduled_at` field (ISO 8601 datetime) to schedule future delivery.
92
+ Include a `scheduled_at` field (ISO 8601 datetime) to schedule future delivery. A scheduled e-mail
93
+ asks for the same preview and the same word, with the date and time on the `Quando` line.
56
94
 
57
95
  ## Best practices
58
96
 
59
97
  - Validate **from** against a verified domain before sending — Resend rejects unverified senders.
60
98
  - Keep subject lines under 80 characters for better deliverability.
61
99
  - For batch sends, group by shared content to reduce payload size.
62
- - Always check the response for errors and surface them to the user rather than silently failing.
100
+ - Always check the response for errors and surface them to the user rather than silently failing
101
+ — and never by sending again.
63
102
  - When composing HTML emails, keep the markup simple — most email clients ignore complex CSS.
64
103
 
65
104
  ## Available operations
66
105
 
67
- - **Send Email** — Single email with HTML/text body, attachments, CC/BCC, reply-to
68
- - **Batch Send** — Multiple emails in one call
69
- - **Schedule Email** — Queue an email for future delivery
106
+ - **Send Email** — Single email with HTML/text body, attachments, CC/BCC, reply-to (only after the word)
107
+ - **Batch Send** — Multiple emails in one call (only after the word)
108
+ - **Schedule Email** — Queue an email for future delivery (only after the word)
70
109
  - **List/Get Emails** — Check delivery status of sent emails
71
110
  - **Cancel Email** — Cancel a scheduled email before it sends
72
- - **Manage Contacts** — Create, list, update, and remove contacts from audiences
73
- - **Manage Domains** — Add and verify sender domains
111
+ - **Manage Contacts** — Create, list, update, and remove contacts from audiences (removing asks for the word `apagar`)
112
+ - **Manage Domains** — Add and verify sender domains (removing asks for the word `apagar`)
74
113
 
75
114
  ## Setup
76
115