Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.
Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: code-playground
|
||||
description: 代码展示与运行技能:在聊天中展示代码并支持 JavaScript 沙盒执行(需启用 codeplayground 扩展)
|
||||
---
|
||||
|
||||
# 代码演练场
|
||||
|
||||
使用 `codeplayground` MCP 扩展在聊天中展示可运行的代码片段。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 生成代码示例后,让用户直接在聊天里运行验证
|
||||
- 展示算法、数据处理逻辑
|
||||
- JavaScript 演示(可执行);其他语言(展示+复制)
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Code Playground** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_playground(title, code, language, description?)` — 展示代码并可选执行
|
||||
|
||||
## 支持语言
|
||||
|
||||
- **JavaScript** — 有「运行」按钮,`console.log` 输出显示在下方
|
||||
- 其他语言(`rust`、`python`、`typescript` 等)— 展示+语法高亮+复制按钮
|
||||
|
||||
## 规则
|
||||
|
||||
1. JS 执行在沙盒 iframe 中,无网络访问,无 DOM 操作
|
||||
2. 代码不超过 200 行,超出拆分展示
|
||||
3. 有副作用(写文件、网络请求)的代码标注「仅供参考,不可直接运行」
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: diff-viewer
|
||||
description: 代码对比可视化技能:以高亮 diff 形式展示文件修改前后(需启用 diffviewer 扩展)
|
||||
---
|
||||
|
||||
# Diff 查看器
|
||||
|
||||
使用 `diffviewer` MCP 扩展在聊天中渲染代码修改对比。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要看代码改动前后对比
|
||||
- 展示重构、bug 修复、配置变更的效果
|
||||
- 比 markdown 代码块更直观地呈现变更
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Diff Viewer** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_diff(title, old_content, new_content, language?)` — 渲染带行号的 diff
|
||||
|
||||
## 规则
|
||||
|
||||
1. `language` 填文件类型(`rust`、`typescript`、`python` 等),用于语法提示
|
||||
2. 内容太大时只截取关键改动部分,加说明
|
||||
3. 配合 `git_diff` 工具使用效果最佳
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: form-builder
|
||||
description: 动态表单技能:向用户展示结构化输入表单,收集多字段信息(需启用 formbuilder 扩展)
|
||||
---
|
||||
|
||||
# 表单收集
|
||||
|
||||
使用 `formbuilder` MCP 扩展在聊天中展示交互式表单,替代多轮逐一询问。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 需要收集 3 个以上结构化字段
|
||||
- 有下拉选项、必填校验的场景
|
||||
- 配置向导、信息录入、参数填写
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Form Builder** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_form(title, description?, fields)` — 渲染表单并等待用户提交
|
||||
|
||||
## 字段类型
|
||||
|
||||
| type | 说明 |
|
||||
|------|------|
|
||||
| `text` | 单行文本 |
|
||||
| `number` | 数字 |
|
||||
| `textarea` | 多行文本 |
|
||||
| `select` | 下拉选择(需提供 `options`) |
|
||||
| `checkbox` | 勾选框 |
|
||||
|
||||
## 规则
|
||||
|
||||
1. 用户提交后,结果以 JSON 回传,解析后继续任务
|
||||
2. `required: true` 的字段前端会校验,不会提交空值
|
||||
3. 表单不超过 8 个字段,太多拆成多步
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: git
|
||||
description: Git 操作技能:查看状态、diff、提交历史、blame、提交代码
|
||||
---
|
||||
|
||||
# Git 操作
|
||||
|
||||
使用内置 `git` 平台扩展完成常见版本控制任务。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户询问代码改动、提交历史、谁修改了某行
|
||||
- 用户要提交代码、查看 diff、切换分支
|
||||
|
||||
## 工具
|
||||
|
||||
| 工具 | 用途 |
|
||||
|------|------|
|
||||
| `git_status` | 查看工作区状态和当前分支 |
|
||||
| `git_diff` | 查看未暂存或已暂存的改动 |
|
||||
| `git_log` | 查看提交历史 |
|
||||
| `git_blame` | 查看指定文件某几行的最后修改人 |
|
||||
| `git_commit` | 暂存指定文件并提交(自动添加 -s 签名) |
|
||||
|
||||
## 规则
|
||||
|
||||
1. `git_commit` 前先用 `git_status` 确认改动范围,避免误提交
|
||||
2. 提交信息用英文、简短、说明 why 而非 what
|
||||
3. 不要提交 `.env`、密钥、大二进制文件
|
||||
4. `git_diff` 的 `staged: true` 查看已暂存内容,默认查看未暂存
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: kanban
|
||||
description: 看板可视化技能:将任务列表渲染为多列看板(需启用 kanban 扩展)
|
||||
---
|
||||
|
||||
# 看板展示
|
||||
|
||||
使用 `kanban` MCP 扩展在聊天中渲染任务看板。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要查看项目进度、任务分布
|
||||
- 展示待办/进行中/已完成三阶段状态
|
||||
- 多个任务需要按优先级可视化
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Kanban Board** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_kanban(title, columns)` — 渲染 N 列看板
|
||||
|
||||
## 数据结构
|
||||
|
||||
```
|
||||
columns: [
|
||||
{ name: "待处理", cards: [
|
||||
{ id: "1", title: "修复登录 bug", priority: "high", description: "..." }
|
||||
]},
|
||||
{ name: "进行中", cards: [...] },
|
||||
{ name: "已完成", cards: [...] }
|
||||
]
|
||||
```
|
||||
|
||||
## 优先级
|
||||
|
||||
`high`(红)/ `medium`(黄)/ `low`(灰)
|
||||
|
||||
## 规则
|
||||
|
||||
1. 列数不限,但超过 5 列会很挤,建议合并
|
||||
2. 每列卡片不超过 20 张,否则截断并说明总数
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: search
|
||||
description: 代码搜索技能:在代码库中搜索文本、符号、文件名(基于 ripgrep)
|
||||
---
|
||||
|
||||
# 代码搜索
|
||||
|
||||
使用内置 `search` 平台扩展在工作区内快速定位代码。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要找某个函数/变量/类定义在哪里
|
||||
- 用户要找包含某段文字的文件
|
||||
- 用户要找符合某种命名规律的文件
|
||||
|
||||
## 工具
|
||||
|
||||
| 工具 | 用途 |
|
||||
|------|------|
|
||||
| `search_text` | 按文本/正则搜索,支持 glob 过滤、大小写控制 |
|
||||
| `search_files` | 按文件名通配符查找文件 |
|
||||
| `search_symbol` | 精确匹配完整单词(适合找函数/变量名) |
|
||||
|
||||
## 规则
|
||||
|
||||
1. 优先用 `search_symbol` 找符号,精确度更高
|
||||
2. `search_text` 的 `file_glob` 可缩小范围(如 `*.rs`、`src/**`)
|
||||
3. 结果超出 `max_results` 时提示用户缩小范围
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
name: static-page-publish
|
||||
description: 在专属 MindSpace 目录生成可公开访问的静态 HTML 报告与页面(TKMind H5 通用技能)
|
||||
---
|
||||
|
||||
# 静态页面 / 报告发布
|
||||
|
||||
本技能为 **TKMind H5 多用户环境** 的通用发布流程。安装到用户工作区后,内容会按用户替换为专属目录与公网前缀。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要「生成网页 / HTML 报告 / 可视化页面 / 分享链接」
|
||||
- 用户提到「放到 MindSpace」「给个能打开的链接」
|
||||
|
||||
## 规则摘要
|
||||
|
||||
1. 只在**当前用户工作区**(会话 `working_dir`)内读写与搜索,从 `.` 开始
|
||||
2. 查找 CSV/文档时只用相对路径(如 `oa/report.csv`),**禁止**去上级目录、MindSpace 根目录、其它用户目录或主机路径搜索
|
||||
3. 读 CSV/列目录:用工作区内的 `shell`(`ls oa/`、`cat file.csv`)或 `tree`;**禁止**用公网 URL 代替
|
||||
4. 公网链接**仅**用于让用户浏览器打开已发布的 HTML,不能用来列目录或读数据文件
|
||||
5. 静态文件保存即可访问,**无需重启**
|
||||
|
||||
详细约束以工作区内的 `.goosehints` 与 `.agents/skills/static-page-publish/SKILL.md` 为准。
|
||||
|
||||
## 推荐工作流
|
||||
|
||||
1. 确认需求(标题、章节、视觉风格、是否需要 hero 图)
|
||||
2. `write` 创建 `.html`(需要时在同目录建 `assets/` 放主图)
|
||||
3. 在 `<head>` 写入 **mindspace-cover**(必须与页面主题一致,见下文)
|
||||
4. 保存后服务端**立即**生成 `<文件名>.thumbnail.svg`(Agent 交互阶段即生效)
|
||||
5. 按「回复格式」返回**可点击**公网链接
|
||||
|
||||
## 回复格式(必须)
|
||||
|
||||
向用户交付页面时,**必须使用 Markdown 可点击链接**:
|
||||
|
||||
```markdown
|
||||
[马来西亚旅游攻略](https://goo.tkmind.cn/MindSpace/<用户名>/malaysia-travel-guide.html)
|
||||
```
|
||||
|
||||
要求:
|
||||
|
||||
- **必须**使用 `[页面标题](完整URL)`,不要只给裸 URL 或「点这里」
|
||||
- 标题用页面真实主题名
|
||||
- 可同时给出相对路径(如 `malaysia-travel-guide.html`)
|
||||
- 说明:保存即生效,无需重启
|
||||
|
||||
## 信息流预览图(必须)
|
||||
|
||||
每个 HTML 必须在 `<head>` 包含与**页面主题一致**的元数据。系统据此生成 **精美的 3:4 信息流封面**(工作区 `*.thumbnail.svg` +「我的空间」卡片 + 保存弹窗预览):
|
||||
|
||||
```html
|
||||
<meta name="description" content="一句话摘要,显示在预览图副标题">
|
||||
<meta name="mindspace-cover" content='{"tag":"旅行","emoji":"🇲🇾","accent":"#ff6b35","accent2":"#24243e","subtitle":"马来西亚深度游","cover":"assets/hero.jpg"}'>
|
||||
```
|
||||
|
||||
| 字段 | 要求 |
|
||||
|------|------|
|
||||
| `tag` | 与主题一致:旅行 / 美食 / 报告 / **运动** / **活动** 等 |
|
||||
| `accent` / `accent2` | 页面主色,与 hero/背景 CSS 一致 |
|
||||
| `subtitle` | 一句话卖点;未写时用 description |
|
||||
| `cover` / `image` | **必须**指向高质量主图(相对 HTML 或 `https://`);见下文 |
|
||||
| `emoji` | 可选;也可写在 title 中 |
|
||||
|
||||
### 精美预览图(必须达标)
|
||||
|
||||
保存 HTML 后,系统会**立即**生成 `<文件名>.thumbnail.svg` 作为卡片封面。要产出**可在信息流中直接展示的精美封面**,必须:
|
||||
|
||||
1. **视觉类页面**(旅行、美食、活动、运动、品牌、产品、促销等)**必须**在 `assets/` 放置高质量 hero 主图(建议宽度 ≥1200px),并在 `cover` 字段引用(如 `assets/hero.jpg`)
|
||||
2. **纯文字报告**可仅用配色 + tag,但仍须保证 `accent` / `subtitle` 与页面风格一致
|
||||
3. `tag`、`accent`、`accent2`、`subtitle` 必须与页面实际视觉一致;**禁止**省略 mindspace-cover 或填无关默认值
|
||||
4. 若缺少 hero 主图,封面会退化为简陋默认图,**视为未达标**
|
||||
|
||||
**禁止**省略 mindspace-cover 或填写与页面无关的通用配色;促销/运动/品牌页必须写明 `tag`、`accent` 和 `cover`。
|
||||
|
||||
本地对比示例:`node scripts/thumbnail-preview-demo.mjs` → `/thumbnail-demo/`
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: table-viewer
|
||||
description: 表格可视化技能:将数据渲染为可排序、筛选的交互式表格(需启用 tableviewer 扩展)
|
||||
---
|
||||
|
||||
# 表格查看器
|
||||
|
||||
使用 `tableviewer` MCP 扩展在聊天中渲染交互式数据表格。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户展示结构化数据(数据库查询结果、CSV、对比列表)
|
||||
- 数据超过 5 行且有多列时,优先用表格而非 markdown
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Table Viewer** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_table(title, columns, rows)` — 渲染可排序/筛选表格
|
||||
|
||||
## 示例
|
||||
|
||||
```
|
||||
show_table(
|
||||
title: "销售数据",
|
||||
columns: ["月份", "销售额", "环比增长"],
|
||||
rows: [["1月", 12000, "+5%"], ["2月", 13500, "+12.5%"]]
|
||||
)
|
||||
```
|
||||
|
||||
## 规则
|
||||
|
||||
1. `columns` 与每行数据顺序必须一致
|
||||
2. 数值类型保持为数字(不要转成字符串),排序才准确
|
||||
3. 超过 500 行时提示用户过滤后再展示
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: test-runner
|
||||
description: 测试运行技能:运行 cargo test 并解析通过/失败结果
|
||||
---
|
||||
|
||||
# 测试运行
|
||||
|
||||
使用内置 `test_runner` 平台扩展运行项目测试并分析结果。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要验证改动是否破坏了现有测试
|
||||
- 用户要跑某个 crate 或特定测试用例
|
||||
- 需要查看有哪些测试可运行
|
||||
|
||||
## 工具
|
||||
|
||||
| 工具 | 用途 |
|
||||
|------|------|
|
||||
| `run_tests` | 运行测试,可按包名和测试名过滤,支持超时 |
|
||||
| `list_tests` | 列出所有可用测试(不执行) |
|
||||
|
||||
## 规则
|
||||
|
||||
1. 修复 bug 后**必须**运行相关测试确认
|
||||
2. 用 `test_filter` 只跑受影响的测试,避免全量耗时
|
||||
3. 默认超时 120 秒,大型集成测试可适当调高
|
||||
4. 看到 FAILED 行后,重点关注 `failures:` 区段的具体错误
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
name: timeline
|
||||
description: 时间轴可视化技能:将事件序列渲染为交互式时间线(需启用 timeline 扩展)
|
||||
---
|
||||
|
||||
# 时间轴展示
|
||||
|
||||
使用 `timeline` MCP 扩展在聊天中渲染时间线。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 展示项目里程碑、发版历史
|
||||
- git log 可视化
|
||||
- 事件序列、历史脉络梳理
|
||||
|
||||
## 前提
|
||||
|
||||
Settings → Extensions 中启用 **Timeline** 扩展。
|
||||
|
||||
## 工具
|
||||
|
||||
`show_timeline(title, events)` — 渲染垂直时间轴
|
||||
|
||||
## 数据结构
|
||||
|
||||
```
|
||||
events: [
|
||||
{
|
||||
date: "2024-01-15",
|
||||
title: "v1.0 发布",
|
||||
description: "首个正式版本上线",
|
||||
category: "发版",
|
||||
color: "#5c98f9" // 可选,不填自动按 category 着色
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## 规则
|
||||
|
||||
1. `date` 格式灵活(`2024-01`、`2024-01-15`、`Q1 2024` 均可)
|
||||
2. 同一 `category` 自动使用同一颜色
|
||||
3. 事件超过 30 个时只展示关键节点,其余省略
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: web
|
||||
description: 网页抓取与搜索技能:访问网页、查阅文档、搜索互联网
|
||||
---
|
||||
|
||||
# 网页访问
|
||||
|
||||
使用内置 `web` 平台扩展获取网页内容和搜索信息。
|
||||
|
||||
## 何时使用
|
||||
|
||||
- 用户要查某个 API 文档、库的用法
|
||||
- 用户要搜索最新新闻、技术资料
|
||||
- 需要验证某个 URL 的内容
|
||||
|
||||
## 工具
|
||||
|
||||
| 工具 | 用途 |
|
||||
|------|------|
|
||||
| `fetch_url` | 抓取指定 URL 的内容,可提取纯文本 |
|
||||
| `web_search` | 通过 DuckDuckGo 搜索,返回标题/摘要/链接列表 |
|
||||
|
||||
## 规则
|
||||
|
||||
1. 优先用 `web_search` 探索,再用 `fetch_url` 读取具体页面
|
||||
2. `extract_text: true`(默认)获取可读文本,`false` 获取原始 HTML
|
||||
3. 不要访问不明来源的链接,向用户确认后再访问
|
||||
4. 官方文档优先于第三方博客
|
||||
Reference in New Issue
Block a user