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:
John
2026-06-15 15:04:43 -07:00
commit 2e14873f2d
272 changed files with 64133 additions and 0 deletions
+33
View File
@@ -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. 有副作用(写文件、网络请求)的代码标注「仅供参考,不可直接运行」
+28
View File
@@ -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` 工具使用效果最佳
+38
View File
@@ -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 个字段,太多拆成多步
+30
View File
@@ -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` 查看已暂存内容,默认查看未暂存
+43
View File
@@ -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 张,否则截断并说明总数
+28
View File
@@ -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` 时提示用户缩小范围
+76
View File
@@ -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/`
+37
View File
@@ -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 行时提示用户过滤后再展示
+28
View File
@@ -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:` 区段的具体错误
+42
View File
@@ -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 个时只展示关键节点,其余省略
+28
View File
@@ -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. 官方文档优先于第三方博客