mcpField
A
app-questions

app-questions

github.com/cribl-community开发469 次安装10 周前更新
代码仓库

关于 app-questions

面向 Cribl 应用项目的交互式技能,可引导用户创建或修改 APP_DEFINITION.md。它按阶段收集应用问题、工作流和范围等信息,并支持分步保存与恢复。

主要功能

  1. 01引导定义应用问题与工作流
  2. 02分阶段收集应用需求
  3. 03检查回答是否清晰具体
  4. 04交互式查看和编辑定义
  5. 05逐步保存并支持续做

适用场景

  1. 01为新 Cribl 应用建立定义文档
  2. 02补充或调整现有应用工作流
  3. 03分阶段完成应用需求梳理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cribl-community/claude-cribl-app-plugins --skill app-questions

安装后在 Claude Code 中输入/app-questions确认已加载。

详细介绍

app-questions 交互式生成新的 APP_DEFINITION.md 或编辑现有文件。首次运行时,会引导你定义问题和工作流。后续运行时,会显示菜单,供你查看、编辑、添加或删除定义中的部分内容。 /app-questions

运行前检查

继续之前,请确认你当前位于已搭建脚手架的 Cribl 应用文件夹中。如果不是,请停止并告知用户:“你必须在已搭建脚手架的 Cribl 应用文件夹中运行此技能。”

触发条件: 在 Cribl 应用项目目录中运行此技能。

输入:

  • 首次运行:回答有关应用用途、工作流及其解决的问题的问题
  • 后续运行:选择菜单选项,以查看、编辑、添加或删除定义中的部分内容

输出:

  • 首次运行:记录所有回答的应用定义(APP_DEFINITION.md)
  • 后续运行:根据你的更改更新 APP_DEFINITION.md

使用方法

首次运行(创建模式)
  1. 在 Cribl 中搭建应用脚手架(Apps > Create App)
  2. 将初始代码复制到本地计算机
  3. cd 到应用目录
  4. 运行此技能:/app-questions
  5. 描述应用的功能(具体说明它要解决的问题以及使用者)
  6. 如有需要,回答澄清问题,让描述更加准确
  7. 完整回答有关应用的问卷
  8. 查看并编辑生成的应用定义

💡 提示: 在初始描述中提供具体信息。不要只说“监控工具”,可以说“帮助我们的平台团队跟踪客户数据管道何时未能达到其 SLA”。

后续运行(编辑模式)
  1. 运行 /app-questions(此技能会检测到 APP_DEFINITION.md 已存在)
  2. 随即显示一个菜单,其中包含用于编辑定义部分内容的选项
  3. 选择要更新的内容:
    • 查看/编辑问题陈述
    • 管理工作流(添加/编辑/删除)
    • 更新数据和集成点
    • 修改权限和访问规则
    • 更改范围项目
    • 更新 UI 偏好设置
  4. 交互式地进行更改
  5. 查看更新后的定义
  6. 完成后退出

工作流示例: 运行 /app-questions,选择“Manage Workflows”,再选择“Add”,然后描述新工作流,即可添加新的工作流。接着运行 /app-brief 更新应用简介,再运行 /app-implement 实现该工作流。

技能工作流

步骤 1:检测模式

技能运行时:

  • 如果 APP_DEFINITION.md 不存在:进入“创建模式”(见下文)
  • 如果 APP_DEFINITION.md 已存在:进入“编辑模式”(见下文)
创建模式:分 7 个阶段收集信息

技能通过 7 个阶段收集信息,并在每个步骤都进行清晰度验证,以确保回答具体、详尽:

以下情况会触发清晰度验证:

  • 回答过短或只有一个词(少于 2 句)
  • 缺少关键信息或措辞含糊
  • 陈述抽象,缺少具体细节
  • 回答未针对问题作答

发现清晰度问题时,技能会提出有针对性的后续问题,在进入下一阶段之前完善回答。

阶段 1:了解问题

引导式探索——每次只问一个问题:

  1. 提问:“应用 ID 是什么?”
    • 等待回答;如有需要,进行澄清
  2. 提问:“此应用要解决的主要问题是什么?”
    • 等待回答;如有需要,进行澄清
  3. 提问:“谁会使用此应用?”
    • 等待回答;如有需要,进行澄清
  4. 提问:“他们目前如何解决这个问题?”
    • 等待回答;如有需要,进行澄清

清晰度检查: 回答必须包含应用 ID、问题、用户角色和当前工作流。如果回答含糊或缺少上下文,请继续追问。当前回答清晰完整之前,不要继续提下一个问题。

第 2 阶段:梳理用户工作流和关键任务

引导式工作流梳理:

  • 请用户描述 工作流 1,逐步说明他们会做什么
  • 对于每个工作流,请澄清:
    • 用户会按什么顺序执行哪些具体步骤?
    • 他们会创建、修改或删除什么?
    • 他们会看到或检查什么?
    • 是否有决策点或分支?
  • 确认清楚后,继续梳理 工作流 2,然后是 3,以此类推。
  • 允许用户输入空白内容或“done”来结束工作流收集

**清晰度检查:**确保每个工作流都具体、按顺序排列,并包含明确的对象、数据和操作。当前工作流尚未梳理清楚时,不要继续下一个工作流。

第 3 阶段:了解数据和集成点

引导式梳理——每次只问一个问题:

  1. 询问:“应用会显示哪些数据?”
    • 等待回答,如有需要则进一步澄清
  2. 询问:“应用会创建或更改什么?”
    • 等待回答,如有需要则进一步澄清
  3. 询问:“应用会调用任何外部服务吗(如 Slack、OpenAI 等)?”
    • 等待回答,如有需要则进一步澄清

**清晰度检查:**回答必须说明数据来源和集成名称。当前回答尚未清楚且完整时,不要继续下一个问题。

第 4 阶段:考虑权限和访问控制

引导式梳理——每次只问一个问题:

  1. 询问:“不同用户是否应看到不同的数据?”
    • 等待回答,如有需要则进一步澄清
  2. 询问:“如果用户没有权限,应用应如何处理?”
    • 等待回答,如有需要则进一步澄清

**清晰度检查:**回答必须定义用户角色和访问规则。当前回答尚未清楚且完整时,不要继续下一个问题。

第 5 阶段:询问状态和机密信息

引导式梳理——每次只问一个问题:

  1. 询问:“应用需要保存任何状态吗?”
    • 等待回答,如有需要则进一步澄清
  2. 询问:“是否有通用设置?”
    • 等待回答,如有需要则进一步澄清
  3. 询问:“是否有任何用户专属设置?”
    • 等待回答,如有需要则进一步澄清
  4. 询问:“应用会处理任何安全机密信息吗?”
    • 等待回答,如有需要则进一步澄清

**清晰度检查:**回答必须说明保存哪些状态以及保存位置。当前回答尚未清楚且完整时,不要继续下一个问题。

第 6 阶段:缩小范围

引导式梳理——每次只问一个问题:

  1. 询问:“绝对最小可行产品(MVP)是什么?”
    • 等待回答,如有需要则进一步澄清
  2. 询问:“之后还可以添加哪些功能?”
    • 等待回答,如有需要则进一步澄清
  3. 询问:“有没有明确不在范围内的内容?”
    • 等待回答,如有需要则进一步澄清

**清晰度检查:**MVP 必须切实可行且能够交付。当前回答尚未清楚且完整时,不要继续下一个问题。

第 7 阶段:明确偏好

引导式梳理——每次只问一个问题:

  1. 询问:“整体结构是什么?(向导、仪表板、表单、表格等)”
    • 等待回答,如有需要则进一步澄清
  2. 询问:“对外观或感觉有什么具体偏好吗?”
    • 等待回答,如有需要则进一步澄清

**清晰度检查:**回答必须与已确定的工作流和任务一致。当前回答尚未清楚且完整时,不要继续下一个问题。


可重入性:从上次中断处继续

此技能完全可重入。运行 /app-questions 时:

  1. 如果 APP_DEFINITION.md 不存在,技能将从第 1 阶段开始
  2. 如果 APP_DEFINITION.md 存在,技能会读取该文件,并从第一个未完成的阶段继续
  3. 对于已经回答完整的阶段,技能会跳过相关问题
  4. 每个回答都会在你完成问题时逐步写入 APP_DEFINITION.md,因此即使提前退出也不会丢失数据

这意味着你可以分阶段运行此技能:今天定义问题,明天梳理工作流,下周再完成范围和偏好。你的所有回答都会得到保留。

持久化:APP_DEFINITION.md

随着你逐个回答问题,这项技能会将答案逐步保存到应用目录中的 APP_DEFINITION.md。此文件有以下两种用途:

  • 输入: 恢复操作时,技能会读取此文件,以确定要从哪个阶段继续
  • 输出: 所有阶段完成后,此文件就是完整的应用定义
# App Definition

## App ID
[User's answer for the app id]

## Problem
[User's answer about what problem this solves]

## Target Users
[Who uses this and why]

## Workflows
### Workflow 1: [Name]
[Full description]

### Workflow 2: [Name]
[Full description]

[+ Additional workflows]

## Data & Integration Points
### Data Display
[User's answer]

### Create/Modify/Delete
[User's answer]

### External Integrations
[User's answer or "None"]

## Permissions & Access
### Different Users See Different Data?
[User's answer]

### Permission-Denied Behavior
[User's answer]

## State & Secrets
### Saved State
[User's answer or "None"]

### General-settings
[User's answer or "None"]

### User-Specific Settings
[User's answer or "None"]

### Secure Secrets
[User's answer or "None"]

## Scope
### Must-Have (MVP)
[User's answers]

### Nice-to-Have (Defer)
[User's answers]

### Out of Scope
[User's answers]

## UI Preferences
### Overall Structure
[User's answer]

### Look/Feel
[User's answer]

用户可以直接在编辑器中修改此文件,也可以重新运行此技能,通过问答进行更新。


编辑模式:交互式定义编辑器

当 APP_DEFINITION.md 已存在时,技能会进入编辑模式,并显示交互式菜单:

=== APP_DEFINITION.md Editor ===

1. View/Edit App ID
2. View/Edit Problem Statement
3. View/Edit Target Users
4. Manage Workflows (add, edit, delete, list)
5. View/Edit Data & Integration Points
6. View/Edit Permissions & Access
7. View/Edit Scope (must-have, nice-to-have, out-of-scope)
8. View/Edit UI Preferences
9. View entire definition (read-only)
10. Exit and save

Enter choice (1-10):
菜单选项工作流
选项 1:查看/编辑应用 ID
  • 显示当前应用 ID
  • 询问:“要编辑吗?(yes/no)”
  • 如果选择 yes:显示当前文本并询问新文本
  • 更新 APP_DEFINITION.md 并返回菜单
选项 2:查看/编辑问题陈述
  • 显示当前问题陈述
  • 询问:“要编辑吗?(yes/no)”
  • 如果选择 yes:显示当前文本并询问新文本
  • 更新 APP_DEFINITION.md 并返回菜单
选项 3:查看/编辑目标用户
  • 显示当前目标用户
  • 询问:“要编辑吗?(yes/no)”
  • 如果选择 yes:显示当前文本并询问新文本
  • 更新 APP_DEFINITION.md 并返回菜单
选项 4:管理工作流

显示子菜单:

=== Manage Workflows ===

1. List all workflows
2. Add a new workflow
3. Edit a workflow
4. Delete a workflow
5. Back to main menu

Enter choice (1-5):

子选项 3.1:列出所有工作流

  • 显示所有工作流名称和描述
  • 返回子菜单

子选项 3.2:添加新工作流

  • 询问:“工作流名称?”
  • 询问:“工作流描述?”(可输入多行)
  • 按照现有格式添加到 ## Workflows 部分
  • 更新 APP_DEFINITION.md 并返回子菜单

子选项 3.3:编辑工作流

  • 列出所有工作流及其编号
  • 询问:“要编辑哪个工作流?(1-N)”
  • 显示当前工作流文本
  • 询问:“新描述?”(可输入多行)
  • 更新 APP_DEFINITION.md 并返回子菜单

子选项 3.4:删除工作流

  • 列出所有工作流及其编号
  • 询问:“要删除哪个工作流?(1-N)”
  • 询问:“确定吗?(yes/no)”
  • 从 APP_DEFINITION.md 中移除并返回子菜单
选项 5:查看/编辑数据和集成点
  • 显示当前部分:
    • 数据展示
    • 创建/修改/删除
    • 外部集成
  • 显示子菜单:
    1. Edit Data Display
    2. Edit Create/Modify/Delete
    3. Edit External Integrations
    4. Back to main menu
    
  • 对每项:显示当前内容,询问是否编辑,并更新文件
选项 6:查看/编辑权限和访问
  • 显示当前部分:
    • 不同用户看到的数据是否不同?
    • 权限不足时的行为
  • 询问要编辑哪一项,并应用更新
  • 更新 APP_DEFINITION.md 并返回菜单
选项 7:查看/编辑范围
  • 显示当前部分:
    • 必须实现(MVP)
    • 可选实现(暂缓)
    • 范围之外
  • 为每个部分显示子菜单:
    • 查看所有条目
    • 添加条目
    • 删除条目
  • 更新 APP_DEFINITION.md 并返回菜单
选项 8:查看/编辑 UI 偏好
  • 显示当前部分:
    • 整体结构
    • 外观/感觉
  • 询问要编辑哪一项,并应用更新
  • 更新 APP_DEFINITION.md 并返回菜单
选项 9:查看完整定义(只读)
  • 显示完整的 APP_DEFINITION.md 内容
  • 返回菜单
选项 10:退出并保存
  • 显示本次会话的更改摘要
  • 确认保存(更改已逐步写入)
  • 退出
编辑模式的用户体验原则
  • 逐步保存:每次更改后都写入 APP_DEFINITION.md
  • 破坏性操作需确认:删除工作流或范围条目前,始终先询问确认
  • 显示当前状态:询问是否编辑前,始终先显示当前内容
  • 便于返回:始终允许返回上一级菜单,而不提交更改
  • 支持多行输入:工作流描述、数据需求等内容支持多行文本
  • 退出时显示摘要:退出时显示修改内容

生成 CLAUDE.md

完成 APP_DEFINITION.md 后,仅当应用目录中尚不存在 CLAUDE.md 文件时,才创建该文件。

CLAUDE.md 模板:

# CLAUDE.md

This file provides guidance to Claude Code when working with this Cribl app.

## App Context

This app is defined in `APP_DEFINITION.md` — read that for comprehensive problem statement, workflows, and scope.

## Key References

- `AGENTS.md` — How to build the app and navigate the app runtime environment
- `APP_DEFINITION.md` — Full app requirements and workflows
- `APP_BRIEF.md` — Implementation guide (generated from APP_DEFINITION)

## Workflows & Data

[If APP_DEFINITION.md has workflows, include a summary here, e.g.:]

**Main Workflows:**
- [Workflow 1 name and purpose]
- [Workflow 2 name and purpose]

**Key Data:**
- [What the app displays]
- [What the app creates/modifies]
- [External integrations]

## UI Structure

[Include from APP_DEFINITION if specified, e.g.:]
- Overall structure: [wizard/dashboard/form/table/etc]
- Key screens: [list main screens/pages]

## MVP Scope

**Must-have (Phase 1):**
- [Features from APP_DEFINITION MVP section]

**Nice-to-have (Defer):**
- [Features from APP_DEFINITION defer section]

**Out of scope:**
- [Features from APP_DEFINITION out-of-scope section]

## Additional Guidance

- Read the [Cribl Apps Builder Guide](https://docs.cribl.io/apps/builder-guide/) for patterns and best practices
- Check `/app-brief` and `/app-validate` skills for guidance before implementation

Claude 的说明:

  1. 检查应用目录中是否已存在 CLAUDE.md
  2. 如果已存在,则停止操作——不要覆盖它
  3. 如果尚不存在,则通过以下方式创建:
    • 以以上模板为基础
    • 根据已完成的 APP_DEFINITION.md 填入具体细节(工作流、数据、范围、UI 结构)
    • 始终引用 AGENTS.md(每个应用脚手架中都有该文件)
    • 保留其他适用于该应用的引用或指导

资源

评论

支持 Markdown