Community编程与开发github.com

tryaida/aida-demo-data

为向导式演示(walkthrough)创建演示数据——通过应用自身的界面或API进行设置步骤和配置状态钩子,除非工程师明确要求种子脚本,否则绝不直接操作数据库。当向导需要尚不存在的数据(如竞争对手、演出、课程)以便进行采集,或者需要干净地采集两次时使用。

aida-demo-data 是什么?

该技能(aida-demo-data)为AIDA(AI驱动的演示和测试框架)中的向导式演示(walkthroughs)提供演示数据创建机制。它强调通过应用自身的用户界面或API来设置数据,而不是直接写入数据库,这符合AIDA“无需数据库访问”的设计原则。 技能定义了两种主要路径:一是针对单个向导使用的“setup:”步骤,使用与“do:”/“check:”/“actions:”相同的语法,在采集前运行但不会被拍摄;二是针对多个向导共享或向导结束后仍需保留的起始数据,使用配置“states”条目中的钩子,通过应用的API(决策15)创建。钩子函数(setup/check)接收包含API客户端、页面对象、运行ID和环境的上下文,需保持幂等性以避免冲突。此外,技能还规定了数据命名规则(使用{{run.id}}避免运行冲突)、安全数据值(遵循references/safety.md)、账户使用规范(专用演示账户,非生产账户)等。 该技能适用于Claude Code或其他支持自定义技能的AI代理平台,通过读取SKILL.md文件中的指令来确保代理在创建演示数据时遵循正确的路径和约束。它特别强调以下几点:禁止在标记为只读的步骤中作为副作用创建数据;禁止在录制的向导中添加清理步骤;数据创建需明确声明(通过needs、setup:);仅在工程师明确要求时编写直接数据库种子脚本。通过这些规则,技能确保了演示数据的创建过程安全、可重复且不干扰录制的拍摄内容。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tryaida/aida/tree/main/skills/aida-demo-data

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

在你喜欢的 AI 中提问

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

文档

aida-demo-data 是做什么的?

模型层级:标准。编写一个小脚本或一系列应用操作需要细心,但一旦从大纲卡片中了解到数据的形状,这就成了常规任务。

默认路径:通过应用自身

  1. 仅供单个向导使用的数据(例如第二个可供选择的竞争对手):使用其自身的 setup: 步骤,采用与 步骤 相同的 do:/check:/actions: 语法,在采集前运行且不会被拍摄。setup: { as: admin, steps: [...] } 用于以其他角色身份登录。

  2. 多个向导需要,或向导结束后不保留的起始数据(例如“Alex在早间时段”):使用包含钩子的配置 states 条目,通过应用自身的API(决策15)创建,绝不通过数据库:

    states: {
      "alex-in-morning": {
        description: "Alex在早间时段",
        as: "admin",                                  // 钩子自身的已登录会话
        setup: "./states/alex-in-morning.mjs",        // 其 `setup` 导出,否则使用默认值
        check: "./states/alex-in-morning.mjs",        // 其 `check` 导出,否则使用默认值
      },
    },
    

    钩子接收 ctx.request(一个携带已登录会话的API客户端,相对路径基于 baseUrl 解析),以及 ctx.page、ctx.runId 和 ctx.env。当状态已经存在且无需修改时,check 返回 true。setup 必须是幂等的(“确保如此”):它在每次需要该状态的采集时运行,因此可能首先删除先前运行中创建的副本。如果没有 as:,钩子共享向导自身的会话;通过API登录的钩子需要将 as: 设置为不同的角色,否则会导致录制退出登录状态。

  3. 设置创建的不允许跨运行冲突的记录:在设置数据中使用 {{run.id}} 进行命名(在钩子中使用 ctx.runId)。绝不能让这些内容出现在输入文本、旁白或字幕中:否则截图每次运行都会变化。

  4. 所有值遵循 references/safety.md:使用 @example.com 邮件地址、预留的虚构电话号码范围、虚构的名字。绝不能复制真实记录(即使更改了名称)作为起点。

  5. 使用专用的演示账户或工作区(如果应用支持),绝不使用生产账户。快速模式(无专用演示环境)在保存任何内容前会询问用户。

种子脚本:仅在工程师明确要求时

  • 只有当工程师明确要求(例如“为演示数据库编写一个种子脚本”)时,才编写直接操作数据库的种子脚本。默认用户和Vibe Coder永远不会获得种子脚本——关键在于AIDA不需要数据库访问。
  • 如果你确实编写了种子脚本:它只能针对数据库采集的自身安全检查所接受的数据库(在本机上,或用户指定的可丢弃分支;aida doctor 会显示所接受的数据库),使用相同的安全演示数据值,并且放置在应用自有的种子工具目录下,而不是在向导文件中。

规则

  • 绝不能在向导中标记为只读的步骤中作为副作用创建数据。如果向导需要设置数据,必须显式声明(使用 needs、setup:),而不是隐藏状态。
  • 绝不要在录制的向导中添加清理步骤。一个删除数据的向导应使用 clears 声明;重新运行时,其起始数据通过幂等的设置钩子或数据库重置恢复。

Token规则

请参阅 references/tokens.md。保持小巧、有针对性:仅针对一个卡片的数据形状,而不是整个模式或应用。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能