commit 2df696c3905395d400f2c26d2483e04eccd05a9a Author: gitea_admin Date: Tue Sep 29 12:35:04 2026 +0800 发布:学生会策划部工作包(Skills + MCP) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87b26b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +__pycache__/ +*.py[cod] +.env +.env.* +.dsh/secrets/ +*.key +*.pem +credentials.json +node_modules/ +dist/ +.venv/ +*.log +.DS_Store + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d078581 --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# 学生会策划部工作包(Skills + MCP) + +面向**南通理工学院·土木工程学院学生会策划部**的可迁移工作包:一套主 Skill、配套文档生产 Skill, +以及推荐的 MCP 连接器配置与说明。用于把"活动从立项到结项"的文档工作流整体搬到另一台机器。 + +## 目录结构 + +``` +. +├── skills/ +│ ├── su-planning-office/ ★ 主技能:公文起草/排版/预算/校规约束/交付自检 +│ ├── minimax-docx/ Word(.docx)生成与编辑(OpenXML) +│ ├── minimax-xlsx/ Excel(.xlsx)生成、编辑与校验脚本 +│ ├── pptx-generator/ PPT 生成(JSON 驱动) +│ ├── ppt-beautify/ PPT 美化/版式 +│ ├── html-to-docx-cn-gotchas/ 中文 HTML→DOCX 的坑与处置 +│ ├── tencent-docs-mcp/ 腾讯文档 MCP 用法与排错 +│ └── tencent-survey/ 腾讯问卷 MCP 用法 +└── mcp/ + ├── README.md 在 WorkBuddy / DSH 中如何启用 + ├── mcp.servers.example.json 推荐连接器定义(占位符,无凭据) + └── connectors-recommended.md 推荐清单:优先级、用途、暂不建议项 +``` + +## 主技能内容(skills/su-planning-office) + +- `SKILL.md` —— 触发词、校规硬约束、工作流、硬性规则 +- `references/document-catalog.md` —— 9 类文档的必备字段与骨架 +- `references/regulations-ntpc.md` —— 校规摘录(第二课堂 / 请假权限 / 处分 / 综合测评) +- `references/doc-standards.md` —— 排版规范(以国标为准的落地表) +- `references/gbt-9704-2012.md` —— **GB/T 9704—2012《党政机关公文格式》全文** + 关键数值速查 +- `references/budget-and-reimbursement.md` —— 科目、大小写金额、审批与报销附件 +- `references/review-checklist.md` —— 交付前自检清单 +- `assets/templates/*.md` —— 六类文档骨架(策划书、通知、纪要、新闻稿、总结、预算表) +- `assets/reference/GB-T-9704-2012.pdf` —— 国标原文(图 1—12 为图片,文本无法还原) +- `scripts/check_submission.py` —— 纯标准库交付自检,含第二课堂学时速算 + +## 安装 + +**WorkBuddy**:把 `skills/<名称>/` 整体复制到 `~/.workbuddy/skills/`,重启或刷新技能目录即可被发现。 + +**DSH / Claude 类环境**:复制到对应技能根目录(DSH 为 `~/.dsh/skills/`)。 +跨工具复用时可建目录联接,避免同一份内容维护两遍: + +```powershell +New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\skills\su-planning-office" ` + -Target "$env:USERPROFILE\.workbuddy\skills\su-planning-office" +``` + +## 快速验证 + +```bash +python skills/su-planning-office/scripts/check_submission.py 策划书-示例-20261015-v1.0-张三.docx +python skills/su-planning-office/scripts/check_submission.py --pu --activity 志愿服务 +``` + +## 环境要求 + +- Python 3.9+(自检脚本仅用标准库;生成 Office 文件需 `python-docx` / `openpyxl` / `python-pptx`) +- Node ≥ 20(仅 CLI 型连接器,如创客贴) +- MCP 连接器见 `mcp/README.md` + +## 出处与许可 + +- `su-planning-office`:本项目原创。 +- 其余 Skill 来自技能市场(MiniMax、腾讯等),均保留各自目录内的 `LICENSE` / `_skillhub_meta.json`, + 版权归原作者;此处仅为随包分发以便复现工作流。 +- `GB-T-9704-2012.pdf` 为国家标准原文,仅供本私有仓库内部查阅。 diff --git a/mcp/README.md b/mcp/README.md new file mode 100644 index 0000000..6501886 --- /dev/null +++ b/mcp/README.md @@ -0,0 +1,37 @@ +# MCP 连接器(本包附带的配置与说明) + +本目录**只放配置模板与使用说明,不含任何凭据**。 + +| 文件 | 用途 | +| --- | --- | +| `mcp.servers.example.json` | 推荐的 MCP 服务器定义(地址、超时、`${VAR}` 占位符),供迁移或参考 | +| `connectors-recommended.md` | 推荐清单:优先级、用途、启用方式、暂不建议项 | + +## 在 WorkBuddy 中启用(推荐路径) + +这些连接器**已经内置**在 WorkBuddy 里——`connectors/default/mcp.json` 中存在对应的 +`connector:*` 条目,默认 `disabled: true`。正确做法: + +1. 打开【连接器】面板,搜索连接器名称(如"腾讯文档"); +2. 点击启用,按提示在浏览器完成 OAuth 授权; +3. 授权后回到会话即可调用其工具。 + +> ⚠️ **不要手改 `~/.workbuddy/mcp.json` 里的令牌字段**。OAuth 类连接器的凭据由宿主下发, +> 手写常导致 `no_token` / 假 502。排错见 Skill `tencent-docs-mcp`。 + +## 在 DSH(DeepSeek Harness)中启用 + +DSH 不读取 WorkBuddy 的连接器面板。若要迁移,把 `mcp.servers.example.json` 中需要条目的 +`mcpServers` 合并进 DSH 的 MCP 配置,并按需去掉 `disabled` 字段;带 `${VAR}` 的项先设置环境变量。 + +## 凭据与环境变量 + +- **不放令牌**:本目录任何文件都不得写入 access token、API key、Cookie。 +- `tencent-map` 需要 `TENCENT_MAP_KEY`(腾讯位置服务控制台申请)。 +- 其余 OAuth 连接器由面板授权,无需手工填写。 + +## 与 Skill 的配合 + +- 腾讯文档 → Skill `skills/tencent-docs-mcp` +- 腾讯问卷 → Skill `skills/tencent-survey` +- 主体工作流(策划书、预算、通知、纪要、新闻稿、总结、PPT 大纲)→ Skill `skills/su-planning-office` diff --git a/mcp/connectors-recommended.md b/mcp/connectors-recommended.md new file mode 100644 index 0000000..18ddcfd --- /dev/null +++ b/mcp/connectors-recommended.md @@ -0,0 +1,31 @@ +# 推荐 MCP 连接器(学生会策划部工作流) + +按「先开三个核心,再按需加」的原则。一次启用 **≤ 4 个**——每个 MCP 都会把工具塞进上下文, +开太多会拖慢判断、诱发误调用;不用的保持 `disabled: true`。 + +| 优先级 | 连接器 | 给策划部的用处 | 类型 / 启用要点 | +| --- | --- | --- | --- | +| ★ 必开 | **腾讯文档** `tencent-docs` | 多人合稿策划书、在线分工表、素材目录;与 Skill `tencent-docs-mcp` 配套 | OAuth;`https://docs.qq.com/openapi/mcp` | +| ★ 必开 | **腾讯问卷** `tencent-survey` | 报名、签到、满意度回收,替代用 Word 附件做统计;与 Skill `tencent-survey` 配套 | OAuth;`https://wj.qq.com/api/v2/mcp` | +| ★ 必开 | **扫描全能王** `camscanner` | 发票、签收表、证书扫描 OCR → 报销附件归档,直接压住"缺凭证被退单" | OAuth;`https://ai-tools.camscanner.com/mcp` | +| 推荐 | **WPS 金山文档** `kdocs` | 学院若统一用 WPS 写公文/表格,可替代腾讯文档(二者取一) | OAuth;`https://mcp-center.wps.cn/skill_hub/mcp` | +| 推荐 | **创客贴** `chuangkit` | 海报、封面、展板批量出图;本包只负责文案与尺寸清单 | **CLI 型**(非 MCP):`npm i -g @chuangkit-labs/agent-cli@0.1.3` → `ckt-agent auth login` | +| 推荐 | **微云** `tencent-weiyun` | 现场照片/视频等大体积素材归档 | OAuth;`https://www.weiyun.com/api/v3/mcpserver` | +| 可选 | **汉仪字体** `hanyi-fonts` | 海报用字的可商用授权,规避字体版权风险 | OAuth;`https://hanyi-mcp.hellofont.cn/mcp` | +| 可选 | **腾讯地图** `tencent-map` | 场地导航、交通指引、外出/近岸活动路线 | 需先申请并设置 `TENCENT_MAP_KEY` | +| 可选 | **Canva** `canva` | 偏国际化风格的设计需求 | OAuth;`https://mcp.canva.cn/mcp` | + +## 暂不建议 + +- `edu-next`、`teacher-assistant`:面向教学场景,对策划部收益不明; +- `dingtalk`:除非学校统一用钉钉; +- `ezjoin-meeting`:在线会议 Agent 用不上(直接用腾讯会议客户端); +- `notion`:国内校园协作基本用不到。 + +## 三条使用原则 + +1. **OAuth 类走【连接器】面板 + 浏览器授权**,不要手改 `~/.workbuddy/mcp.json`—— + 凭据由宿主下发,手写常出现 `no_token` 或假 502(参见 Skill `tencent-docs-mcp` 的排错段)。 +2. **CLI 型**(创客贴、飞书 `lark-cli`)需要 Node ≥ 20 且会做全局 npm 安装; + 装完先跑一次 `auth status` 确认已登录。 +3. **带环境变量的**(如 `tencent-map` 的 `${TENCENT_MAP_KEY}`)先配置变量再启用,否则连接必然失败。 diff --git a/mcp/mcp.servers.example.json b/mcp/mcp.servers.example.json new file mode 100644 index 0000000..3d92ea6 --- /dev/null +++ b/mcp/mcp.servers.example.json @@ -0,0 +1,56 @@ +{ + "_readme": "推荐 MCP 连接器示例(仅作参考/迁移用)。WorkBuddy 已内置这些连接器:其 connectors/default/mcp.json 中为 connector:* 条目且默认 disabled=true,请在【连接器】面板启用并在浏览器完成授权。切勿把真实令牌写进本文件——OAuth 类连接器的凭据由宿主下发。带 ${VAR} 的项需先设置对应环境变量。", + "mcpServers": { + "tencent-docs": { + "type": "streamableHttp", + "url": "https://docs.qq.com/openapi/mcp", + "timeout": 600000, + "disabled": false + }, + "tencent-survey": { + "type": "streamableHttp", + "url": "https://wj.qq.com/api/v2/mcp", + "timeout": 30000, + "disabled": false + }, + "camscanner": { + "type": "streamableHttp", + "url": "https://ai-tools.camscanner.com/mcp", + "timeout": 120000, + "disabled": false + }, + "kdocs": { + "type": "streamableHttp", + "url": "https://mcp-center.wps.cn/skill_hub/mcp", + "timeout": 600000, + "staticHeaders": { + "X-Request-Source": "workbuddy" + }, + "disabled": true + }, + "tencent-weiyun": { + "type": "streamableHttp", + "url": "https://www.weiyun.com/api/v3/mcpserver", + "timeout": 60000, + "disabled": true + }, + "canva": { + "type": "streamableHttp", + "url": "https://mcp.canva.cn/mcp", + "timeout": 60000, + "disabled": true + }, + "hanyi-fonts": { + "type": "streamableHttp", + "url": "https://hanyi-mcp.hellofont.cn/mcp", + "timeout": 30000, + "disabled": true + }, + "tencent-map": { + "type": "sse", + "url": "https://mcp.map.qq.com/sse?key=${TENCENT_MAP_KEY}&format=0", + "timeout": 30000, + "disabled": true + } + } +} diff --git a/skills/html-to-docx-cn-gotchas/SKILL.md b/skills/html-to-docx-cn-gotchas/SKILL.md new file mode 100644 index 0000000..32d14fb --- /dev/null +++ b/skills/html-to-docx-cn-gotchas/SKILL.md @@ -0,0 +1,95 @@ +--- +name: html-to-docx-cn-gotchas +description: 用腾讯文档 tencent-docx 插件(tdoc-orchestrator → design-token / doc-typeset / html-review → html-to-docx)把现成的 Markdown 内容做成中文 Word 文档时,绕开三个已实测确认的坑:① Windows 下官方 setup 脚本依赖装不上(bin/python vs Scripts/python.exe);② 表格单元格内的 ASCII 空格被自动加宽成双空格;③