dag-library
Permite que seu agente salve e reutilize fluxos de trabalho complexos. É útil para agendar tarefas repetitivas ou quando você quer executar um plano já definido.
O que ela faz
Esta ferramenta permite que você salve a definição de um 'grafo' de tarefas (chamado DAG) para usá-lo novamente mais tarde. Em vez de descrever o grafo toda vez, você o salva com um nome e o executa por esse nome.
Quando usar
- ✓Quando você quer salvar um grafo de tarefas para reutilizar.
- ✓Quando você precisa executar o mesmo grafo de tarefas várias vezes.
- ✓Quando você quer agendar a execução repetida de um fluxo de trabalho complexo.
Exemplo do que pedir para a IA
“Salve este grafo de tarefas como 'auditoria-mensal' e execute-o.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você salva a definição do grafo em um arquivo especial. Depois, pode pedir para a IA executar o grafo usando o nome que você deu a ele. A IA encontra o arquivo e executa as tarefas na ordem definida.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add code-yeongyu/oh-my-openagent --skill dag-libraryOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/packages/omo-senpi/skills/dag-library/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
dag-library
Use esta habilidade quando o usuário quiser GUARDAR uma definição de DAG e executá-la novamente mais tarde — o grafo é um ativo, não algo de uso único. Para criar um grafo totalmente novo, leia mass-ulw primeiro; esta habilidade cobre a parte de armazenamento e reexecução.
A estrutura
Uma definição armazenada é um arquivo JSON de definição de DAG simples chamado <name>.json em um dos diretórios da biblioteca. O primeiro a ser encontrado vence:
$OMO_DAG_LIBRARY(múltiplos diretórios, separados por:— ou por;no Windows, para que caminhos com letras de unidade sobrevivam)$PWD/.omo/dags$HOME/.omo/dags
{
"key": "nightly-audit",
"name": "Nightly audit",
"nodes": [
{ "id": "audit", "category": "unspecified-low", "prompt": "Audit docs/ for stale claims; write findings to /tmp/audit-{{key}}.md." },
{ "id": "verify", "category": "quick", "prompt": "Verify each finding in /tmp/audit-{{key}}.md against src/.", "dependsOn": ["audit"] }
]
}
Valores de string podem conter placeholders, preenchidos no momento do carregamento: {{key}} (a chave rotacionada final — use-a em caminhos de arquivo para que as reexecuções nunca se sobreponham), {{date}} (UTC AAAA MM DD), {{datetime}} (UTC AAAA MM DD-HHmmss). Os prompts dos nós ainda devem ser autônomos: dependsOn é apenas para ordenação, então passe dados entre os nós através de arquivos, exatamente como em mass-ulw.
Executando — célula de avaliação JS, duas linhas
A extensão publica library.js ao lado de sdk.js em OMO_DAG_SDK_ROOT:
const lib = await import(`${env("OMO_DAG_SDK_ROOT")}/library.js`)
const run = await lib.start("nightly-audit")
const result = await run.done()
await lib.load(name) retorna a definição preenchida sem iniciá-la; await lib.start(name) carrega e inicia em uma única chamada e retorna a mesma forma de handle que sdk.start (run_id, done(), cancel(reason)). Ambos são assíncronos — o global read do kernel é assíncrono, então nunca os chame sem aguardar.
Rotação de chave — a única regra que importa
O motor DAG baseia a idempotência em key + impressão digital do grafo: reiniciar a mesma chave com o mesmo grafo REUTILIZA a execução antiga em vez de executar novamente. Portanto, a biblioteca trata o key armazenado como uma chave BASE e o rotaciona a cada carregamento:
lib.start("nightly-audit")→ a chave se tornanightly-audit-<UTC YYYYMMDD-HHmmss>: cada chamada é uma nova execução. Este é o padrão porque querer uma nova execução é o caso comum.lib.start("nightly-audit", { suffix: "20260818" })→ a chave se tornanightly-audit-20260818: sufixo explícito, então reexecutar a mesma execução lógica a reutiliza (recuperação idempotente), enquanto um novo dia obtém uma nova execução. Recuperar um nó FALHO dentro de tal execução éretry/amendnesse ID de execução, não um novo sufixo.lib.start("nightly-audit", { suffix: "" })→ a chave permanecenightly-audit: idempotência total; só use isso quando reutilizar o resultado anterior for exatamente o que você deseja.
Células Python
Python não pode importar a biblioteca ESM. Reproduza a mesma semântica com dicionários simples — leia o arquivo, rotacione a chave, preencha os placeholders, chame tool.workflow:
import json
from datetime import datetime, timezone
defn = json.loads(read(f"{env('HOME')}/.omo/dags/nightly-audit.json"))
stamp = datetime.now(timezone.utc).strftime("%Y%m%d-%H%M%S")
defn["key"] = f"{defn['key']}-{stamp}"
text = json.dumps(defn).replace("{{key}}", defn["key"]).replace("{{date}}", stamp[:8]).replace("{{datetime}}", stamp)
run = tool.workflow({"action": "start", "definition": json.loads(text)})
result = tool.workflow({"action": "wait", "run_id": run["run_id"], "detach": False}) # detach=False keeps the cell-blocking wait; the bare tool action detaches against a live run
Salvando uma nova definição
Quando o usuário pede para salvar o grafo atual: escreva-o como <name>.json em $HOME/.omo/dags (nível do usuário, sobrevive a mudanças de cwd) ou <repo>/.omo/dags (nível do projeto, compartilhável via git se a equipe o confirmar), então confirme executando-o uma vez via lib.start. Nomes são letras, dígitos, ponto, traço, sublinhado — a biblioteca rejeita nomes em formato de caminho.
Perguntas frequentes
Onde os grafos são salvos?
Os grafos são salvos em pastas específicas no seu computador, como '$HOME/.omo/dags' ou em uma pasta '.omo/dags' dentro do seu projeto atual.
Como a IA sabe qual grafo executar?
Você diz o nome do grafo que salvou. A IA procura esse nome nos locais onde os grafos são armazenados e executa o que foi definido.
Posso modificar um grafo salvo?
Este skill foca em salvar e executar. Para criar ou modificar um grafo do zero, você pode precisar de outra ferramenta, como 'mass-ulw'.
Detalhes
Descrição original do autor
Stores a DAG definition once and re-runs it by name, instead of pasting the definition into every run. Use when the user wants to save a DAG, run a saved one, or schedule the same multi-agent graph repeatedly.
Popularidade
- Estrelas no GitHub
- 70 mil
- Posição no ranking
- #1723
- Licença
- NOASSERTION
- Atualizada em
- 16/10/2026
Comentários
- …
Mais skills deste repositório
comment-checker
Ajuda seu agente a entender e responder a feedbacks de verificadores automáticos de comentários. É útil quando o agente precisa processar informações de ferramentas que revisam automaticamente o código ou o conteúdo.
code-yeongyu/oh-my-openagent
lcx-contribute-bug-fix
Ajuda seu agente a contribuir com correções de bugs para projetos relacionados ao LazyCodex. Ele cria issues ou pull requests para garantir a qualidade do código.
code-yeongyu/oh-my-openagent
lcx-doctor
Faz seu agente verificar a saúde da instalação do LazyCodex e Codex CLI. É útil quando o sistema se comporta de forma estranha após atualizações ou mudanças.
code-yeongyu/oh-my-openagent
lcx-report-bug
Ajuda seu agente a reportar bugs de forma detalhada em projetos do LazyCodex. Ele cria issues com informações úteis para os desenvolvedores corrigirem o problema.
code-yeongyu/oh-my-openagent
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC