关于 app-questions
面向 Cribl 应用项目的交互式技能,可引导用户创建或修改 APP_DEFINITION.md。它按阶段收集应用问题、工作流和范围等信息,并支持分步保存与恢复。
主要功能
- 01引导定义应用问题与工作流
- 02分阶段收集应用需求
- 03检查回答是否清晰具体
- 04交互式查看和编辑定义
- 05逐步保存并支持续做
适用场景
- 01为新 Cribl 应用建立定义文档
- 02补充或调整现有应用工作流
- 03分阶段完成应用需求梳理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cribl-community/ claude-cribl-app-plugins --skill app-questions安装后在 Claude Code 中输入/app-questions确认已加载。
详细介绍
运行前检查
继续之前,请确认你当前位于已搭建脚手架的 Cribl 应用文件夹中。如果不是,请停止并告知用户:“你必须在已搭建脚手架的 Cribl 应用文件夹中运行此技能。”
触发条件: 在 Cribl 应用项目目录中运行此技能。
输入:
- 首次运行:回答有关应用用途、工作流及其解决的问题的问题
- 后续运行:选择菜单选项,以查看、编辑、添加或删除定义中的部分内容
输出:
- 首次运行:记录所有回答的应用定义(
APP_DEFINITION.md) - 后续运行:根据你的更改更新
APP_DEFINITION.md
使用方法
首次运行(创建模式)
- 在 Cribl 中搭建应用脚手架(Apps > Create App)
- 将初始代码复制到本地计算机
cd到应用目录- 运行此技能:
/app-questions - 描述应用的功能(具体说明它要解决的问题以及使用者)
- 如有需要,回答澄清问题,让描述更加准确
- 完整回答有关应用的问卷
- 查看并编辑生成的应用定义
💡 提示: 在初始描述中提供具体信息。不要只说“监控工具”,可以说“帮助我们的平台团队跟踪客户数据管道何时未能达到其 SLA”。
后续运行(编辑模式)
- 运行
/app-questions(此技能会检测到APP_DEFINITION.md已存在) - 随即显示一个菜单,其中包含用于编辑定义部分内容的选项
- 选择要更新的内容:
- 查看/编辑问题陈述
- 管理工作流(添加/编辑/删除)
- 更新数据和集成点
- 修改权限和访问规则
- 更改范围项目
- 更新 UI 偏好设置
- 交互式地进行更改
- 查看更新后的定义
- 完成后退出
工作流示例: 运行 /app-questions,选择“Manage Workflows”,再选择“Add”,然后描述新工作流,即可添加新的工作流。接着运行 /app-brief 更新应用简介,再运行 /app-implement 实现该工作流。
技能工作流
步骤 1:检测模式
技能运行时:
- 如果
APP_DEFINITION.md不存在:进入“创建模式”(见下文) - 如果
APP_DEFINITION.md已存在:进入“编辑模式”(见下文)
创建模式:分 7 个阶段收集信息
技能通过 7 个阶段收集信息,并在每个步骤都进行清晰度验证,以确保回答具体、详尽:
以下情况会触发清晰度验证:
- 回答过短或只有一个词(少于 2 句)
- 缺少关键信息或措辞含糊
- 陈述抽象,缺少具体细节
- 回答未针对问题作答
发现清晰度问题时,技能会提出有针对性的后续问题,在进入下一阶段之前完善回答。
阶段 1:了解问题
引导式探索——每次只问一个问题:
- 提问:“应用 ID 是什么?”
- 等待回答;如有需要,进行澄清
- 提问:“此应用要解决的主要问题是什么?”
- 等待回答;如有需要,进行澄清
- 提问:“谁会使用此应用?”
- 等待回答;如有需要,进行澄清
- 提问:“他们目前如何解决这个问题?”
- 等待回答;如有需要,进行澄清
清晰度检查: 回答必须包含应用 ID、问题、用户角色和当前工作流。如果回答含糊或缺少上下文,请继续追问。当前回答清晰完整之前,不要继续提下一个问题。
第 2 阶段:梳理用户工作流和关键任务
引导式工作流梳理:
- 请用户描述 工作流 1,逐步说明他们会做什么
- 对于每个工作流,请澄清:
- 用户会按什么顺序执行哪些具体步骤?
- 他们会创建、修改或删除什么?
- 他们会看到或检查什么?
- 是否有决策点或分支?
- 确认清楚后,继续梳理 工作流 2,然后是 3,以此类推。
- 允许用户输入空白内容或“done”来结束工作流收集
**清晰度检查:**确保每个工作流都具体、按顺序排列,并包含明确的对象、数据和操作。当前工作流尚未梳理清楚时,不要继续下一个工作流。
第 3 阶段:了解数据和集成点
引导式梳理——每次只问一个问题:
- 询问:“应用会显示哪些数据?”
- 等待回答,如有需要则进一步澄清
- 询问:“应用会创建或更改什么?”
- 等待回答,如有需要则进一步澄清
- 询问:“应用会调用任何外部服务吗(如 Slack、OpenAI 等)?”
- 等待回答,如有需要则进一步澄清
**清晰度检查:**回答必须说明数据来源和集成名称。当前回答尚未清楚且完整时,不要继续下一个问题。
第 4 阶段:考虑权限和访问控制
引导式梳理——每次只问一个问题:
- 询问:“不同用户是否应看到不同的数据?”
- 等待回答,如有需要则进一步澄清
- 询问:“如果用户没有权限,应用应如何处理?”
- 等待回答,如有需要则进一步澄清
**清晰度检查:**回答必须定义用户角色和访问规则。当前回答尚未清楚且完整时,不要继续下一个问题。
第 5 阶段:询问状态和机密信息
引导式梳理——每次只问一个问题:
- 询问:“应用需要保存任何状态吗?”
- 等待回答,如有需要则进一步澄清
- 询问:“是否有通用设置?”
- 等待回答,如有需要则进一步澄清
- 询问:“是否有任何用户专属设置?”
- 等待回答,如有需要则进一步澄清
- 询问:“应用会处理任何安全机密信息吗?”
- 等待回答,如有需要则进一步澄清
**清晰度检查:**回答必须说明保存哪些状态以及保存位置。当前回答尚未清楚且完整时,不要继续下一个问题。
第 6 阶段:缩小范围
引导式梳理——每次只问一个问题:
- 询问:“绝对最小可行产品(MVP)是什么?”
- 等待回答,如有需要则进一步澄清
- 询问:“之后还可以添加哪些功能?”
- 等待回答,如有需要则进一步澄清
- 询问:“有没有明确不在范围内的内容?”
- 等待回答,如有需要则进一步澄清
**清晰度检查:**MVP 必须切实可行且能够交付。当前回答尚未清楚且完整时,不要继续下一个问题。
第 7 阶段:明确偏好
引导式梳理——每次只问一个问题:
- 询问:“整体结构是什么?(向导、仪表板、表单、表格等)”
- 等待回答,如有需要则进一步澄清
- 询问:“对外观或感觉有什么具体偏好吗?”
- 等待回答,如有需要则进一步澄清
**清晰度检查:**回答必须与已确定的工作流和任务一致。当前回答尚未清楚且完整时,不要继续下一个问题。
可重入性:从上次中断处继续
此技能完全可重入。运行 /app-questions 时:
- 如果
APP_DEFINITION.md不存在,技能将从第 1 阶段开始 - 如果
APP_DEFINITION.md存在,技能会读取该文件,并从第一个未完成的阶段继续 - 对于已经回答完整的阶段,技能会跳过相关问题
- 每个回答都会在你完成问题时逐步写入
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 的说明:
- 检查应用目录中是否已存在
CLAUDE.md - 如果已存在,则停止操作——不要覆盖它
- 如果尚不存在,则通过以下方式创建:
- 以以上模板为基础
- 根据已完成的
APP_DEFINITION.md填入具体细节(工作流、数据、范围、UI 结构) - 始终引用
AGENTS.md(每个应用脚手架中都有该文件) - 保留其他适用于该应用的引用或指导