Qual é o processo correto para automação personalizada?

Sou um novato e tenho algumas dúvidas sobre o tutorial de criação de automações personalizadas.

Na minha primeira tentativa, tentei escrever o script de automação diretamente no ambiente de desenvolvimento do GitHub Codespace (eu não entendo a sintaxe, o código foi escrito pelo Claude).
Após a modificação, a estrutura do arquivo deve ser assim:

plugins/automation/
├── lib/
│   └── discourse_automation/
│       ├── scripts.rb                 # Modificado
│       └── scripts/
│           ├── ...                    # Outros scripts
│           └── remove_expired_group_members.rb  # Adicionado
└── config/
    └── locales/
        ├── server.en.yml              # Modificado
        ├── client.en.yml              # Modificado
        ├── server.zh_CN.yml           # Modificado
        └── client.zh_CN.yml           # Modificado

Mas não tenho certeza se posso fazer isso em um ambiente de produção.
Além disso, não sei se essas modificações serão perdidas com um rebuild ou com a atualização do plugin automation, então não ouso tentar em produção. Talvez eu devesse enviar uma solicitação de recurso para que os mantenedores do plugin a adicionem?

Espero que amigos experientes possam me informar sobre o fluxo de trabalho correto, desde a escrita do teste até a aplicação em produção.
Muito obrigado!

Acredito que terá que ser em um novo plugin.

Você pode conferir:

Eu verifiquei o link que você forneceu.
Você poderia me explicar por que devo usar plugins em vez de criar scripts dentro do plugin de automação?

  1. Eu não sou um profissional, e criar um plugin parece um pouco mais difícil.
  2. Eu tenho muitas funcionalidades para implementar, o que parece exigir a criação de muitos plugins? (Embora eu também goste de plugins, pois podem ser compartilhados)

Se não me engano, se você fizer alterações no plugin, elas serão sobrescritas na próxima vez que houver uma atualização.

OK, era exatamente isso que eu estava temendo
Então o recurso de automação personalizada parece não ter muita utilidade para o usuário? :joy:
Vou dar mais uma olhada na documentação e, se não funcionar, tentarei criar um plugin

Eu acho que o tutorial (que é um rascunho) está faltando essa informação. Ele explica como criar novas automações, mas não onde fazê-lo. As respostas mencionam exemplos de plugins, como o vinculado por @NateDhaliwal.

Simon também sugere dar uma olhada no plugin de exploração de dados: Create custom Automations - #6 by simon.

Depende do que você quer dizer com “usuário”? :smile: Como desenvolvedor, você certamente pode criar um novo plugin que adicione automações. Esta é a maneira correta de fazer isso.

Como você menciona não entender código, mas ser capaz de usar IA para isso, talvez você ache esta discussão interessante. Claude & Discourse-related development. How good is it?.

Estou atualmente experimentando isso (mas tenho noções vagas de código – não o suficiente para criar nem um plugin simples sozinho!), e compartilharei minha experiência recente com isso em breve.

Como o Claude o direcionou para editar o plugin de automação, você pode querer refinar seus prompts e fazer com que a IA siga boas práticas reais.

Não. O que a torna uma automação personalizada é que ela não é uma que já vem incluída. Você precisará adicionar uma nova em um plugin. GitHub - scossar/automation-script-example: An example of how to add a custom script to the Discourse Automation plugin., linkado no tutorial. Você pode começar com ele e tentar dizer à IA que você deseja adicionar uma nova personalização.

O que você quer que sua automação personalizada faça?

Eu preciso de um script de automação que remova automaticamente membros de grupos que expiraram.
Defina o grupo e a duração, e o usuário será removido automaticamente após o vencimento.

Por exemplo:
Configuração: Grupo VIP, duração de 30 dias.
Quando um usuário entra no grupo VIP, ele é removido após 30 dias.

Estou cada vez mais confuso sobre se o plugin de automação pode realmente salvar scripts de automação que eu escrevi (comentários anteriores indicaram que eles seriam sobrescritos).

Se fosse você, como você normalmente usaria o plugin de automação?
Você poderia descrever exatamente como você o usaria (no caso de os scripts e gatilhos internos do plugin de automação não atenderem às suas necessidades)?
Acho que posso aprender sobre como as funcionalidades personalizadas funcionam com a descrição do seu cenário.

Como os usuários são adicionados ao grupo vip? Ou provavelmente faz sentido que o que os adiciona ao grupo também os remova. É o que o plugin de assinatura faz, por exemplo.

Automações não são removidas, mas editar código no seu contêiner é.

Você precisa de um gatilho para quando um usuário é adicionado a um grupo e uma ação para removê-lo de um grupo após um período de tempo. Não tenho certeza de quão fácil é fazer isso.