Community编程与开发github.com

amadeus-dlc/amadeus

Agent技能、模板、示例、验证器和文档,用于操作Amadeus DLC——一种针对AI辅助软件开发生命周期的合约。

amadeus 是什么?

这是一个专门用于AI辅助软件开发的Agent技能,名为`amadeus-grilling`。其主要目的是通过严谨、有序的提问,逐一消除计划和设计中的模糊性,确保AI Agent与用户之间达成共享理解。技能适用于Claude Code、Cursor、Codex等平台,强调**先调查后提问**的原则:Agent应优先从代码库、现有文档(如`.amadeus/`、`README.md`)中寻找答案,仅在确实需要人类判断时才提问。每次提问必须包含推荐答案及理由,并且一次只提一个问题,避免信息过载。对于影响后续决策的关键问答,技能要求记录为`Grilling Decision Trail`——一种结构化的决策追踪记录,包含索引文件和详细的会话文件,用于追溯范围、成功条件、术语等关键决策点的历史。同时,技能内置了处理长期讨论的`handoff`机制,确保跨会话的连续性。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add amadeus-dlc/amadeus

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

在你喜欢的 AI 中提问

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

文档

amadeus-grilling

目的

计划和设计中的模糊性,通过提问逐一消除。

直到达成共享理解,按顺序遍历设计树的各个分支。 相互依赖的决策,在解开依赖关系后逐一解决。

基本姿态

提问必须严谨。 但是,不要以增加问题数量本身为目的。

只询问那些用户必须做出判断才能继续推进的事项。 对于可以从代码库、.amadeus/ 产物、现有文档、现有对话中找到答案的问题,不要提问,自行确认。

提问方式

问题一次只提一个。 如果同时提出多个问题,用户将难以确定应该从哪个判断开始解决。

每个问题应包含以下内容:

  • 想要决定什么。
  • 为什么现在需要这个判断。
  • 推荐答案。
  • 推荐的理由。

提出问题后,等待用户的回答。 在收到回答之前,不要进入下一个问题。

推荐答案

每个问题都务必附上推荐答案。

推荐答案应基于当前的产物、设计边界、实现风险以及对后续工作的影响来提出。 如果无法推荐,则需说明无法推荐的原因,以及做出判断所缺乏的必要信息。

调查优先

如果问题可以通过调查代码库或产物来回答,则优先进行调查。

调查对象的示例:

  • .amadeus/
  • README.md
  • AGENTS.md
  • AMADEUS.md
  • 现有的 skill
  • 现有的 Intent 产物
  • 现有的 domain、glossary、decision、traceability

调查后,如果仍然需要人类判断,才提出问题。

Grilling Decision Trail

在 guided 或 refine 模式下,如果发生了影响产物含义或后续决策的问答,则将已确定的决策过程记录为 Grilling Decision Trail。

Grilling Decision Trail 不是原始日志。 不记录:未确定的言论、中途被否定的方案、单纯的执行许可、工作顺序的简单确认、命令执行的确认、临时的工作便利事项。

记录对象是以下类型的决策:

  • 范围。
  • 成功条件。
  • 排除项。
  • 依赖关系。
  • 术语。
  • 有界上下文。
  • 拆分策略。
  • 状态判断。
  • 反映目标。
  • 替代(supersede)判断。

amadeus-grilling 定义了记录对象、记录结构、状态和编号规则。 实际的 grillings.md 和 grillings/Gxxx-*.md 的创建或更新,由调用 grilling 的 phase skill 负责。

在提问的那个回合,不更新产物。 在收到用户回答后的下一个回合,phase skill 在其自己的产物边界内解释回答,并在更新 phase 产物的同时,进行相同的变更来更新 Grilling Decision Trail。

位置放在目标产物集的根目录下。

<目标根目录>/
  grillings.md
  grillings/
    G001-<主题>.md

目标根目录如下:

.amadeus/discoveries/<discovery-id>/
.amadeus/event-storming/<event-storming-id>/
.amadeus/intents/<intent-id>-<slug>/
.amadeus/intents/<intent-id>-<slug>/event-storming/<event-storming-id>/

由于 Steering layer 当前 .amadeus/ 下的目录结构较为混杂,将其排除在此记录目标之外。

对于仅反映到整体领域或共享术语的判断,在当前结构下不新建专用的 Grilling Decision Trail。 如有必要,将其记录在 .amadeus/domain-map.md、.amadeus/context-map.md、.amadeus/glossary.md 的依据中,或记录在目标 Intent 的 decision 中。

grillings.md 仅作为索引使用。 会话详情放在 grillings/Gxxx-*.md 中。

grillings.md 需具有以下最小结构:

# Grillings

## 列表

| ID | 主题 | 目标 | 状态 | 主要已确定决策 | 反映目标 | 详情 |
|---|---|---|---|---|---|---|
| G001 | Ideation Scope | Intent | completed | 目标范围限定为管理界面 | [scope.md](scope.md) | [G001](grillings/G001-ideation-scope.md) |

会话文件命名为 G001-<主题>.md。 <主题> 仅使用英文小写字母、数字和短横线。

会话状态为以下之一:

  • active
  • completed
  • superseded

单个决策的状态为以下之一:

  • active
  • superseded

会话文件中需包含 概要、已确定决策、提问记录。 概要 中必须写明整个会话的反映目标。 概要 和单个决策的反映目标,指向目标根目录内的产物。 在 Discovery 和 Event Storming 中,允许从 <id>/grillings 指向同一 ID 的父级 Markdown 文件,如 ../<id>.md。 但是,仅当 Grilling Decision Trail 指向整体领域下的 .amadeus/glossary.md 时,允许使用 ../glossary.md 作为反映到共享术语的路径。 每个提问记录中,必须包含 想要确认的内容、需要确认的理由、推荐答案、推荐理由、用户回答。 每个提问记录必须引用已确定决策的 ID。 每个单个别决策必须写明反映目标。 对于 superseded 状态的单个决策,必须写明替代目标。

在 scaffold-only 模式下不提问,因此不创建 Grilling Decision Trail。 在 repair 模式下,原则上不更新 Grilling Decision Trail。 但是,如果现有的 grillings.md 或 grillings/Gxxx-*.md 本身已损坏,可以作为结构修复进行修正。

长期讨论的交接

如果 grilling 变得长期化,为了安全起见需要分到不同的会话单元中继续时,可以使用 handoff 作为运营辅助手段。

handoff 不是 Amadeus DLC 的产物。 创建的交接文档放在 OS 的临时目录中,不要放在 .amadeus/ 目录下。

已确定的决策保留在 Grinding Decision Trail 中。 handoff 仅包含在下一个会话单元中重新开始所需的相关引用。

handoff 至少应包含以下内容:

  • 目标 workspace 和目标产物集。
  • 应引用的 grillings.md 和 grillings/Gxxx-*.md。
  • 已经确定的决策摘要。
  • 未回答的问题以及需要确认的下一个问题。
  • 下一个会话单元推荐的 skill。

不要将已在现有产物中包含的内容重复写入 handoff。 如果存在产物、PR、Issue、差异、验证结果,则通过路径或 URL 进行引用。

在 Amadeus 中的使用场景

在以下场景中使用:

  • 确认 steering layer 的目的、参与者、约束、领域范围。
  • 确认 Intent 的目的、依赖关系、成功条件、范围。
  • 确认 Ideation 的目标、排除项、可行性、团队构成、初始原型、向 Inception 的交接事项。
  • 确认术语、概念、有界上下文、DDD 模型、契约的含义。
  • 确认 Unit、Bolt、Spec 的粒度或例外理由。

禁止事项

  • 不要同时提出多个问题。
  • 不要询问那些通过阅读现有产物就能知道答案的问题。
  • 不要在没有推荐答案的情况下提问。
  • 不要在提问的回合中,不等回答就更新产物。
  • 不要以与现有产物矛盾的方式确认用户的回答。如果存在矛盾,先解释矛盾,然后进行确认。

相关技能