Document local MindSpace delivery links and block production URLs in dev.
Agents must deliver public pages via Portal 8081 with /MindSpace/<userId>/public/ paths; forbid mindspace.tkmind.cn and bare 5173/public links during local development. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
---
|
||||
description: MindSpace 页面本地交付链接必须用 8081 Portal + /MindSpace/ 路径,禁止生产域名
|
||||
globs: skills/**/*.md,chat-skills.mjs,page-template-enforcement.mjs,user-publish.mjs
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# MindSpace 本地交付链接
|
||||
|
||||
用户在本机开发(`pnpm dev`、5173/8081)时,向用户交付的公开页链接必须符合以下规则。
|
||||
|
||||
## 必须(本地)
|
||||
|
||||
- 主链接:`http://127.0.0.1:8081/MindSpace/<用户ID>/public/<页面>.html`
|
||||
- Page Data API 与 bind 走 Portal **8081**,不是 Vite 5173
|
||||
- 可选(5173 代理):`http://127.0.0.1:5173/MindSpace/<用户ID>/public/<页面>.html`
|
||||
|
||||
## 禁止(本地 dev 时)
|
||||
|
||||
- `https://mindspace.tkmind.cn/...` — 生产短链域名
|
||||
- `https://m.tkmind.cn/...` — 除非用户**明确要求**生产链接
|
||||
- `http://127.0.0.1:5173/public/...` — 缺少 `/MindSpace/<用户ID>/`
|
||||
- `http://127.0.0.1:8081/public/...` — 缺少 `/MindSpace/<用户ID>/`
|
||||
|
||||
## 示例(用户 `1c99b83b-0454-474f-a5d2-129d34506a32`)
|
||||
|
||||
```markdown
|
||||
[行程清单](http://127.0.0.1:8081/MindSpace/1c99b83b-0454-474f-a5d2-129d34506a32/public/trip-itinerary.html)
|
||||
[后台管理](http://127.0.0.1:8081/MindSpace/1c99b83b-0454-474f-a5d2-129d34506a32/public/trip-itinerary-admin.html)
|
||||
```
|
||||
|
||||
详见 `skills/static-page-publish/SKILL.md` 与 `skills/page-data-collect/SKILL.md` 的「回复格式」节。
|
||||
+7
-1
@@ -1,10 +1,16 @@
|
||||
// Keep browser-safe: do not import user-publish.mjs (uses node:fs/path/url).
|
||||
import { shouldUseScheduledTaskAutomation } from './scheduled-task-intent.mjs';
|
||||
|
||||
const MINDSPACE_DELIVERY_LINK_RULE =
|
||||
'本地开发交付必须用 http://127.0.0.1:8081/MindSpace/<用户ID>/public/...(Page Data API 走 Portal 8081);' +
|
||||
'可选经 5173 代理:http://127.0.0.1:5173/MindSpace/<用户ID>/public/...;' +
|
||||
'禁止 https://mindspace.tkmind.cn/、https://m.tkmind.cn/(除非用户明确要求生产链接)、' +
|
||||
'禁止 http://127.0.0.1:5173/public/...、禁止省略 /MindSpace/<用户ID>/ 前缀。';
|
||||
|
||||
const PAGE_TEMPLATE_PROMPT_SUFFIX =
|
||||
'【硬性要求】必须先 load_skill 并 read_file 官方 templates/*.html,仅替换 {{PLACEHOLDER}};' +
|
||||
'禁止修改 <style> 结构或新增模板外 CSS 类;正文内容只能填入占位符 HTML 片段。' +
|
||||
'交付链接必须含 /MindSpace/<用户ID>/public/...,禁止 http://127.0.0.1:5173/public/...。';
|
||||
MINDSPACE_DELIVERY_LINK_RULE;
|
||||
|
||||
const PUBLISH_SKILL_NAME = 'static-page-publish';
|
||||
export const PAGE_DATA_COLLECT_SKILL_NAME = 'page-data-collect';
|
||||
|
||||
@@ -275,6 +275,7 @@ await client.deleteRow('dataset_name', rowId);
|
||||
| **本地开发** | `http://127.0.0.1:8081/MindSpace/<用户ID>/public/xxx.html`(Page Data API 走 Portal 8081;5173 仅 UI 预览) |
|
||||
| **生产** | `https://m.tkmind.cn/MindSpace/<用户ID>/public/xxx.html` |
|
||||
|
||||
- **本地开发禁止**使用 `https://mindspace.tkmind.cn/...` 或 `https://m.tkmind.cn/...` 作为交付链接(即使用户在本机浏览器验收)。
|
||||
- **禁止**交付占位 host(如 `http://本地服务/...`);聊天展示层不得把 `127.0.0.1:8081` 替换成不可点击文字。
|
||||
- `/u/用户名/pages/...` 仅作补充,用户可见主链接必须是 MindSpace `/public/` 路径。
|
||||
- bind 会同步工作区 HTML 到发布快照,但禁止先发布占位内容再补文件。
|
||||
@@ -347,7 +348,7 @@ await client.deleteRow('dataset_name', rowId);
|
||||
4. 通过 Portal 打开 `deliveryUrl` 时,页面源码含 `__MINDSPACE_PAGE_DATA__`
|
||||
5. HTML 含 `page-data-client.js`;已 bind 或发布后平台会注入 pageId
|
||||
6. HTML **不含**硬编码 `127.0.0.1:` 作为 API 基址;不含 `/api/survey/`、`PLACEHOLDER_PAGE_ID`
|
||||
7. 本地交付链接使用 `http://127.0.0.1:8081/MindSpace/...`;生产使用 `https://m.tkmind.cn/MindSpace/...`;禁止 `http://本地服务/...`
|
||||
7. 本地交付链接使用 `http://127.0.0.1:8081/MindSpace/...`;生产使用 `https://m.tkmind.cn/MindSpace/...`;**本地禁止** `mindspace.tkmind.cn` / `m.tkmind.cn`;禁止 `http://本地服务/...`
|
||||
8. 向用户说明:访客如何提交、管理员如何用口令查看记录
|
||||
9. HTML 未调用 `softDeleteRows` / `deleteRows` 等客户端不存在的方法;删除使用 `deleteRow(dataset, rowId)`
|
||||
10. 若 bind 报 `quota_exceeded` 且 `overQuota: true`,停止交付并提示清理空间;grace 仅适用于「当次写完、尚未超配额」场景
|
||||
@@ -356,6 +357,6 @@ await client.deleteRow('dataset_name', rowId);
|
||||
|
||||
除数据能力外,优先返回 **deliveryUrl / workspaceUrl** 的 Markdown 链接 `[标题](完整URL)`,并简要说明后台入口与口令(如有)。
|
||||
|
||||
- 本地:`http://127.0.0.1:8081/MindSpace/<用户ID>/public/xxx.html`
|
||||
- 本地:`http://127.0.0.1:8081/MindSpace/<用户ID>/public/xxx.html`(**禁止** `https://mindspace.tkmind.cn/...`)
|
||||
- 生产:`https://m.tkmind.cn/MindSpace/<用户ID>/public/xxx.html`
|
||||
- 必须附带 bind 返回的 `pageId`(UUID),便于用户在「页面数据」面板排查
|
||||
|
||||
@@ -80,6 +80,8 @@ description: 在专属 MindSpace 目录生成可公开访问的静态 HTML 报
|
||||
- **本地开发(经 5173 UI 代理)**:`http://127.0.0.1:5173/MindSpace/<用户ID>/public/...`(5173 会把 `/MindSpace` 转发到 Portal;**不是** `5173/public/...`)
|
||||
- **生产**:`https://m.tkmind.cn/MindSpace/<用户ID>/public/...` 或环境配置的 `H5_PUBLIC_BASE_URL`
|
||||
- **禁止的错误交付链接(anti-pattern)**:
|
||||
- ❌ `https://mindspace.tkmind.cn/<用户ID>/public/xxx.html` — 生产域名;**本地开发禁止**(即使用户在本机验收)
|
||||
- ❌ `https://m.tkmind.cn/...` — 生产域名;本地 dev 禁止,除非用户明确要求「生产链接」
|
||||
- ❌ `http://127.0.0.1:5173/public/xxx.html` — 5173 是 Vite SPA,不托管工作区 `public/`,会回退 `index.html`
|
||||
- ❌ `http://127.0.0.1:8081/public/xxx.html` — 缺少 `/MindSpace/<用户ID>/`
|
||||
- ❌ 把磁盘路径 `public/xxx.html` 直接拼到任意 host 后面
|
||||
|
||||
Reference in New Issue
Block a user