Community编程与开发github.com

DGatoM/DG-Claw

将刚刚与用户完成的多步骤流程转化为一个可复用的技能(在 .claude/skills/<名称>/SKILL.md 中),并在用户修正结果时改进该技能。

DG-Claw 是什么?

该技能(/dgclaw:aprender)使 AI 代理能够将与用户一起完成、具有三个或更多步骤、且可重复的流程(例如整理报告、准备大纲、核对数据源、组织材料)转化为一个结构化的可复用 skill。它遵循三条核心原则:只有在用户明确同意后才能创建 skill;只建议一次;绝不在 skill 中存储密码、令牌或密钥等秘密信息。该代理在满足以下条件时会主动建议创建 skill:流程包含至少三个步骤、可以重复使用、用户可能再次提出类似需求、且最终结果成功。建议以简短、独立的消息形式提出。一旦用户同意,代理将在工作区的 `.claude/skills/<名称>/SKILL.md` 中创建一个符合标准 YAML 格式的 markdown 文件,并记录在 `memory/skills-aprendidas.md` 中。如果用户修正了由该 skill 生成的输出,代理会先修正结果,然后更新 SKILL.md(添加错误记录),注册改进,并以一行形式通知用户。该技能支持所有通过 `SKILL.md` 获取指令的代理平台(如 Claude Code, Cursor, Codex)。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DGatoM/DG-Claw/tree/HEAD/skills/aprender

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

/dgclaw:aprender: 将成功流程转化为技能

技能是一份写好的步骤说明,我在开始工作前阅读它。它确保我不依赖记忆:那些花了一小时讨论才理顺的流程,变成一份配方,下次我只需五分钟就能照做。

以下三条规则适用于所有情况:

  1. 技能只在你同意后才创建。 我会提出建议,解释为什么值得创建,然后等待你的确认。没有回复不算同意。
  2. 我只建议一次。 如果你拒绝或没有回复,我会记录下来,不再坚持。
  3. 秘密绝不写进技能。 密码、令牌、密钥、卡号:技能只说明从哪里获取("密钥在面板的保险箱里"),绝不包含具体值。

何时值得提出建议

当同时满足以下四个条件时,提出建议:

  • 流程包含至少三个步骤,而不仅仅是一个回答。例如:查询央行的利率、重新计算、更新文件并发送 PDF。
  • 可以重复使用:步骤相同,只是主题、月份或客户变了。
  • 用户很可能再次提出类似请求。 信号:"每个月一次"、"再来一次"、"和上次一样",这是用户工作中的周期性交付,或者这是我们第二次做类似的事情。
  • 最终成功了。 用户认可了结果或将结果投入了使用。

同时确认尚未存在对应的技能:运行 ls .claude/skills/ 并检查 memory/skills-aprendidas.md。

何时不建议

  • 一次性任务,不会再出现(比如"帮我写这封给物业经理的邮件")。
  • 只有一个或两个步骤。不需要为我已经能一次完成的事情编写配方。
  • 流程依赖于只对当时有效的决策。
  • 对话以未解决问题结束,或者用户正赶时间或生气。此时,将建议留到晚间反思中(它会记录在"我想和用户谈谈"中)。
  • 用户已经拒绝过这个相同的技能(记录在 memory/skills-aprendidas.md 中)。

晚间计数器:memory/skills-candidatas.md

并非每次重复都会立即被发现。第二次重复由晚间反思发现:它重新阅读当天的记录,查找我按多步骤脚本手动完成的工作,并为每个任务记录一行:

- <任务描述,一行> | 次数: N | 日期: DD/MM, DD/MM | 技能会做什么

如果任务已经存在于文件中,则只增加次数和日期,不创建新行。当某个候选任务达到 2 次(或者如果脚本超过 5 步且用户表示会重复,则为 1 次),反思将其放入"我想和用户谈谈"中:《今天我再次手动完成了 X;你想把它转化为技能吗?》每晚最多一个建议,我会在下次对话中按下方的方式提出。在计数之前,我会确认该技能是否已经存在:如果存在但我没有使用,那是我忘记的错误,这会记入日志,而非计数器。

如何提问

在交付结果后,用一条简短、独立的消息提出:

我们完成了这个完整流程:<流程简述,包含步骤数>。你想让我把它转化为一个技能,以便下次可以照做吗?我推荐的原因是:<具体理由,如"你说过这是每月一次的"、"花了一小时才搞定格式">。

只问一句,不要列出选项,也不要施加压力。如果用户问什么是技能:"这是我为自己写的一份配方,包含步骤和你今天教我的注意事项。"

同意后:编写技能

  1. 名称: 简短,使用中文,小写,用连字符连接(如 每月销售报告、核对央行利率)。确认该文件夹不存在。

  2. 位置: /workspace/.claude/skills/<名称>/SKILL.md。绝不要放在插件的文件夹中,因为插件每次更新都会替换。

  3. 文件格式:

    ---
    name: <名称>
    description: <功能描述,使用第三人称> 当用户需要时触发:用户所说的触发短语及可能的变体(如"做月报"、"更新利率"),或触发此技能的情况。如果容易混淆,应说明本技能不做的事情。
    ---
    
    # <标题>
    
    用途,两行说明。于 <YYYY-MM-DD> 从用户处习得。
    
    ## 开始前我需要什么
    - <输入项,如果请求中未包含则需要询问>
    
    ## 步骤
    1. <具体的步骤,包含实际使用的文件、来源或命令>
    2. ...
    
    ## 交付前我确认的内容
    - <用户今天要求或纠正的内容>
    
    ## 交付方式
    - <格式:PDF、页面、简短消息;文件保存位置>
    
    ## 已发生的陷阱
    - <YYYY-MM-DD> <错误及正确做法>
    

    description 是让技能在恰当时候被记住的关键:使用用户说的词汇,而不是我的。路径相对于工作区。最多约 150 行;如果需要更多,可以在 /workspace/.claude/skills/<名称>/references/ 中创建辅助文件。

  4. 注册到 memory/skills-aprendidas.md(如果不存在则创建),每个技能一行:

    - **<名称>** (创建于 YYYY-MM-DD): <功能>。源于 DD/MM 关于 <主题> 的对话。
    

    拒绝也记录在此:- (拒绝于 YYYY-MM-DD) <流程>:用户选择不创建技能。

  5. 告知用户,一行:"好了,技能 <名称> 已创建。下次只需说 <触发短语> 即可。" 如果新技能没有立即出现在我的技能列表中,它将在下一次会话中生效;在此之前,我会在执行任务前直接读取 SKILL.md。

当用户纠正我创建的技能的输出时

如果我按照自己编写的技能完成任务,用户纠正了某些内容("不,图表应该在表格之前"、"正确的来源是财政部"):

  1. 首先修正工作。用户需要结果。
  2. 更新 SKILL.md:修正出错的步骤,并在"已发生的陷阱"中添加一行,包含日期。
  3. 在 memory/skills-aprendidas.md 中更新该技能的行:改进于 YYYY-MM-DD: <内容>
  4. 用一行告知用户:"已记录在技能 <名称> 中:下次我会直接做<正确做法>。"

仅针对单次情况的纠正("今天不包含图表")不修改技能。如有疑问,我会问:"这只是今天的要求还是以后都这样?"

我绝不做的事

  • 未经用户明确同意创建或删除技能。
  • 修改插件的技能(/dgclaw:*):它们不属于我,每次更新都会恢复。
  • 在技能中编写违反我的规则(LAWS.md)或用户禁止的规则。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

DGatoM/DG-Claw

Marca, lista e desmarca compromissos de verdade do agente NA MAQUINA onde ele mora (timers do systemd, via persona-cron-mgr.py), pra ele agir sozinho na hora certa mesmo com ninguem falando com ele. Use SEMPRE que o dono pedir pra agendar, marcar ou repetir um trabalho DO AGENTE num horario ("todo dia as 9h me manda o resumo", "cria um cron", "cria um agendamento", "roda isso de hora em hora", "quais crons voce tem", "cancela aquele agendamento"). Vale tambem quando a transcricao de audio trouxer CHROME, CROME, CRONO, CROM ou CRONI num pedido de horario, que e quase sempre a palavra CRON mal ouvida. Pedido para AVISAR o dono ("me lembra...", "me avisa as 15h") nao e rotina: use a skill lembretes, que insiste ate ele confirmar. NUNCA use o agendamento da sessao do Claude Code pra isso: aquilo morre com a sessao, isto fica na maquina.

DGatoM/DG-Claw

Gera ou troca o AVATAR do assistente DG Claw, a figura que aparece no painel. Use quando o usuario pedir "gerar o avatar", "criar a carinha dele", "mudar o mascote do painel", "trocar a foto do assistente", "fazer a imagem dele", ou rodar /dgclaw:avatar. Explica os tres caminhos (usar o que ja vem, gerar a partir da aparencia descrita, ou subir a propria imagem) e onde os arquivos ficam. As expressoes que mudam com o humor sao da extensao DG Alive.

DGatoM/DG-Claw

Posta e consulta o quadro de avisos entre os agentes do DG Claw, pelo comando dgclaw-api. Use quando o agente precisar contar algo aos outros agentes ("avisar os outros agentes", "conta pra Marina que...", "posta no quadro", "deixa um aviso pra equipe", "registra essa decisão pra todos"), quando precisar saber o que a equipe registrou ("o que a equipe registrou", "quais as preferências do dono", "tem aviso novo?"), corrigir ou retirar um aviso que postou, ou quando chegar um recado no formato <quadro-de-avisos de="..." id="..." tipo="...">. Serve para decisões, preferências, entregas, aprendizados, referências, pedidos e o resumo do dia. Não serve para conversa do dia a dia, andamento de tarefa nem dado de aluno ou cliente.

DGatoM/DG-Claw

Conecta o agente a um canal externo de conversa, Telegram ou WhatsApp, para o dono falar com ele pelo celular. Use quando o dono disser "quero falar com você no Telegram", "liga o Telegram", "configura o Telegram pra mim", "conecta meu WhatsApp", "quero falar com você no WhatsApp", "quero conversar pelo celular", "desliga o Telegram", "desliga o WhatsApp" ou "apaga a conexão". Conduz o passo a passo em linguagem simples usando o comando dgclaw-agente: no Telegram, criar o bot no BotFather, parear o dono e ligar; no WhatsApp, avisar o risco (API não oficial, risco de banimento, só com número secundário), parear por código, liberar o número do dono e ligar. Também ensina a responder pelo WhatsApp (tools whatsapp_reply e whatsapp_send_file) e a tratar as mensagens de lá como externas. Não funciona no agente Admin, que não tem canal externo.

相关技能