# Fa Feedback

> 当用户在使用 fa-* 系列技能（如 fa-framework-settings、fa-slot-creator、fa-form-builder、fa-route-generator、fa-store-generator、fa-page-optimizer、fa-theme-customizer 等）时，在同一个目标上经历了 3 次及以上的修改仍未达到预期效果，必须触发此技能。触发信号包括：用户反复要求调整同一处配置或代码、连续说"不对"/"再改改"/"还是不行"、对同一个功能点多次提出修正意见。即使用户没有明确表示"上报"或"反馈"，只要检测到反复沟通修改的模式，就应主动触发。

- Skill: `fantastic-admin/fa-feedback` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fantastic-admin/fa-feedback`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fantastic-admin/fa-feedback/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fantastic-admin (https://skillmd.com/u/fantastic-admin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fantastic-admin/fa-feedback

---


# Fantastic-admin 问题反馈

当用户在使用 fa-* 系列技能时遇到反复修改仍无法达到预期的情况，这通常意味着框架本身可能存在改进空间（比如 skill 指令不够精确、框架 API 不够直观、文档缺失等）。此时应主动询问用户是否愿意将问题反馈给框架作者。

## 触发条件

在当前对话中，如果满足以下任一条件，则触发此技能：

1. **同一目标的修改次数 >= 3 次**：用户针对同一个功能点或配置项，已经要求修改 3 次及以上
2. **用户表达持续不满**：用户连续使用"不对"、"还是不行"、"再试试"、"跟我说的不一样"等表述
3. **循环修改模式**：修改 A -> 改回 -> 再改 A，出现来回反复的情况

## 执行流程

### 第一步：分析问题

回顾当前对话历史，提炼以下信息：

1. **使用的技能**：用户在使用哪个 fa-* 技能
2. **用户的原始需求**：用户最初想要实现什么
3. **反复修改的焦点**：哪个具体的配置项/代码/功能点在被反复调整
4. **未达预期的原因**：为什么始终无法满足用户的需求（是 skill 指令有误？框架 API 限制？还是理解偏差？）

### 第二步：询问用户

用以下方式询问用户（注意语气要友好自然，不要让用户感到被指责）：

```
我注意到在 [具体功能] 上我们已经来回调整了好几次，这很可能说明框架的 [skill/文档/API] 在这方面有改进空间。

你是否愿意将这个问题反馈给 Fantastic-admin 的作者？这有助于改进框架，让以后的使用体验更好。

如果你同意，我会帮你整理一份精简的问题描述，然后打开 GitHub Discussions 页面，内容会自动填好，你只需要检查一下就可以提交。
```

- 如果用户**同意**，继续第三步
- 如果用户**拒绝**，尊重用户的决定，继续协助解决当前问题，不再提及反馈

### 第三步：整理反馈内容

生成精简的反馈报告，格式如下：

**标题**（简洁明了，一句话概括问题）：
```
[技能名称] 在 [场景] 下无法正确 [操作]
```

**正文**（使用 Markdown 格式）：
```markdown
## 问题描述

[一句话说明用户想做什么，以及遇到了什么问题]

## 使用的技能

[fa-xxx-xxx]

## 复现步骤

1. [用户的原始请求]
2. [第一次修改及结果]
3. [后续修改及结果]

## 期望行为

[用户期望的结果是什么]

## 实际行为

[实际发生了什么，为什么不符合预期]

## 可能的原因

[基于分析，推测问题可能出在哪里，比如 skill 指令、框架 API、默认配置等]
```

内容整理原则：
- **精简**：只保留关键信息，去掉对话中的冗余内容
- **客观**：描述事实，不添加情绪化表达
- **可操作**：让框架作者看到后能理解问题并采取行动

### 第四步：生成链接并打开

将整理好的标题和正文通过 URL 参数编码，拼接到 GitHub Discussions 链接中：

```
https://github.com/orgs/fantastic-admin/discussions/new?category=通用&title={编码后的标题}&body={编码后的正文}
```

使用以下方式生成并打开链接：

```bash
# 生成 URL 编码的链接并打开
python3 -c "
import urllib.parse
import subprocess

title = '''在此填入标题'''
body = '''在此填入正文'''

params = urllib.parse.urlencode({
    'category': '通用',
    'title': title,
    'body': body
}, quote_via=urllib.parse.quote)

url = f'https://github.com/orgs/fantastic-admin/discussions/new?{params}'
print(f'链接已生成：{url}')
subprocess.run(['open', url])
"
```

打开链接后，告诉用户：

```
已在浏览器中打开 GitHub Discussions 页面。请检查预填的内容是否准确，确认无误后点击提交即可。

如果页面中的标题和内容没有自动填充（GitHub Discussions 可能不支持 URL 参数预填），你可以手动复制以下内容：

**标题**：[标题内容]

**内容**：
[正文内容]
```

始终同时展示原文内容作为备选方案，确保用户无论 URL 参数是否生效都能顺利提交反馈。

### 第五步：继续协助

反馈流程完成后，继续协助用户解决当前的问题，不要因为反馈流程中断用户的工作。

