chore(.cursor): 同步 rules/skills/docs 与 karuo-party(排除凭证);补充 .gitignore

Made-with: Cursor
This commit is contained in:
卡若
2026-03-20 18:41:30 +08:00
parent 939e9cc6b7
commit 17ce20c8ee
39 changed files with 2385 additions and 245 deletions

View File

@@ -1,127 +1,21 @@
# Soul 创业派对 - .cursor 配置说明
# Soul 创业派对 · `.cursor` 速览
本目录按 **cursor标准模板** 重构rules、skills、agent 为**开发团队**服务,用于约束开发、防止互窜、经验升级。
## 路径约定
---
- 所有 Skill、会议纪要、agent 经验路径均以 **本 Git 仓库根** 为基准(与 `miniprogram/``soul-api/` 同级)。
- Rules 中「必须 Read」的路径形如 `.cursor/skills/{name}/SKILL.md`
- Python 脚本统一可用 `config/paths.py``ROOT``SKILLS``AGENT``MEETING`
## 目录结构
## 入口优先级
```
.cursor/
├── README.md # 本说明(入口)
├── config/ # 配置paths.py、workspace.txt、model_switch.json
├── rules/ # 规则boundary、checklist、助理、会议、老板分身-索引)
├── skills/ # Skills按角色分配
├── agent/ # 智能体(标准开发团队结构)
│ ├── 老板分身/ # 最高权限,协调所有角色
│ ├── 开发助理/ # 规则进化、通用经验、项目索引、bat 入口
│ │ ├── evolution/ # 通用经验池
│ │ ├── script/ # 一键-列出经验池.bat、一键-添加经验.bat 等
│ │ └── 项目索引/ # 各角色开发进度(小程序.md、管理端.md 等)
│ ├── 小程序开发工程师/
│ ├── 管理端开发工程师/
│ ├── 后端工程师/
│ ├── 产品经理/
│ ├── 软件测试/
│ └── 团队/ # 跨角色共享经验
├── scripts/ # 共享脚本evolution.py、经验模板.md、db-exec
├── docs/ # 文档(职责定义、边界、分析)
├── process/ # 工作流
├── meeting/ # 会议纪要(橙子生成)
└── archive/ # 历史归档
```
1. **三端开发**`rules/soul-project-boundary.mdc` + `skills/*-dev` / `change-checklist`
2. **派对 AI**:若存在仓库根目录 `派对AI/`,可补充读其 `BOOTSTRAP.md`;与 `.cursor` 冲突时 **以 `.cursor` 三端约定为准**(见 `rules/party-ai-dev.mdc`)。
---
## 噪声与体积
## 开发团队
- `meeting/``agent/`:历史纪要/evolution 会增多,属正常;需要时可按月归档到子目录或压缩备份。
- `scripts/db-exec/node_modules/`:已在 `.cursorignore``.gitignore` 中排除,首次使用在 `db-exec` 下执行 `npm install`
| 角色 | 负责 | 主 Skill | Agent 目录 |
|------|------|----------|------------|
| 小程序开发工程师 | miniprogram/ | SKILL-小程序开发.md | agent/小程序开发工程师/ |
| 管理端开发工程师 | soul-admin/ | SKILL-管理端开发.md | agent/管理端开发工程师/ |
| 后端开发 | soul-api/ | SKILL-API开发.md | agent/后端工程师/ |
| 产品经理 | 开发文档/1、需求/、临时需求池/ | SKILL-产品经理.md | agent/产品经理/ |
| 测试人员 | miniprogram、soul-admin、soul-api | SKILL-测试.md | agent/软件测试/ |
| 助理橙子 | 讨论后记录、经验升级 | SKILL-助理橙子-文档同步.md | agent/开发助理/ |
## 文档
**经验**:每角色 `agent/{角色}/evolution/`,团队共享 `agent/团队/evolution/`。用户说「吸收经验」「升级 skills」→ 入库 + 升级 Skill说「保存开发进度」「任务完成」→ 更新 `agent/开发助理/项目索引/{角色}.md`
---
## 快速决策(必须 Read = 使用 Read 工具读取完整内容)
| 编辑/场景 | 必须 Read 的 Skill | 自动加载的 Rule |
|-----------|-------------------|----------------|
| miniprogram/ | `SKILL-小程序开发.md` | soul-miniprogram-boundary |
| soul-admin/ | `SKILL-管理端开发.md` | soul-admin-boundary |
| soul-api/ | `SKILL-API开发.md` | soul-api |
| 开发文档/1、需求/、临时需求池/ | `SKILL-产品经理.md` | product-manager |
| 测试、测试用例、回归测试、功能测试、QA | `SKILL-测试.md` | - |
| 小橙、橙子、讨论完毕、记录、同步文档 | `SKILL-助理橙子-文档同步.md` | assistant-xiaofeng |
| 吸收经验、升级 skills、保存开发进度、任务完成、搞定了 | `SKILL-助理橙子-文档同步.md` | assistant-xiaofeng |
| 跨端功能开发 | `SKILL-角色流程控制.md` | - |
| 变更完成 | `SKILL-变更关联检查.md` | soul-change-checklist |
| 开个会、团队会议、需求评审、方案讨论 | `SKILL-团队会议.md` | soul-meeting |
| 会议结束、散会 | `SKILL-助理橙子-文档同步.md`(会议收尾) | soul-meeting |
---
## Rules 一览
| 规则 | 生效范围 | 用途 |
|------|----------|------|
| soul-project-boundary | `**`alwaysApply | 项目组成、核心原则、会话自检 |
| 老板分身-索引 | `**`alwaysApply | 经验自动收集、Soul 角色推断、编码习惯 |
| soul-change-checklist | miniprogram、soul-admin、soul-api | 变更后必过 |
| assistant-xiaofeng | 触发词 | 小橙触发器 → SKILL-助理橙子-文档同步 |
| soul-miniprogram-boundary | miniprogram/** | 只调 /api/miniprogram/* |
| soul-admin-boundary | soul-admin/** | 只调 /api/admin/*、/api/db/* |
| soul-api | soul-api/** | 路由边界 + 编码规范(合并版) |
| product-manager | 开发文档/1、需求/、临时需求池/ | 产品经理 glob 触发 |
| soul-meeting | 触发词 | 开个会、团队会议、需求评审 → SKILL-团队会议 |
---
## Skills 一览
### 角色主 Skill
| 角色 | 主 Skill | 辅助 Skill |
|------|----------|------------|
| 小程序开发工程师 | SKILL-小程序开发 | 三端架构 → API开发 → 变更关联检查 |
| 管理端开发工程师 | SKILL-管理端开发 | 三端架构 → API开发 → 变更关联检查 |
| 后端开发 | SKILL-API开发 | soul-api 规范 → 三端架构 → 变更关联检查 → MySQL直接操作 |
| 产品经理 | SKILL-产品经理 | 需求汇总、运营与变更 |
| 测试人员 | SKILL-测试 | 变更关联检查、小程序/管理端/API 规范 |
| 助理橙子 | SKILL-助理橙子-文档同步 | - |
### 场景 Skill
| 场景 | Skill |
|------|-------|
| 跨端协同 | SKILL-角色流程控制 |
| 变更检查 | SKILL-变更关联检查、soul-change-checklist |
| 文档同步、经验升级 | SKILL-助理橙子-文档同步 |
| **多角色会议** | **SKILL-团队会议** |
| next-project | SKILL-next-project仅预览 |
| 项目拆解 | SKILL-Next全栈拆解为前后端分离与小程序 |
---
## 文档与脚本
| 文档 | 说明 |
|------|------|
| [开发团队职责定义](./docs/开发团队职责定义.md) | 六角色职责、Skills 分配 |
| [三角色边界定义](./docs/三角色边界定义.md) | 开发三角色源码与业务边界 |
| [config/目录地图](./config/目录地图.md) | paths.py 路径别名 |
| [meeting/](./meeting/) | 会议纪要(橙子生成) |
| [经验清单](./agent/开发助理/经验清单.md) | 跨角色经验索引 |
| evolution 脚本 | `python .cursor/scripts/evolution.py list` 列出经验池;`add --stdin` 添加经验 |
| 一键 bat | `agent/开发助理/script/一键-列出经验池.bat` 等 |
---
## 会话启动自检
新 Cursor 打开本项目时,优先执行 soul-project-boundary 中的「会话启动自检」:仅沿用本项目的 rules、skills、开发风格与配置排除无关规则。
- 架构与迭代说明:`docs/cursor规则与架构分析及优化建议.md`

View File

@@ -13,5 +13,3 @@
| 2026-03-14 | 我的页设置入口隐藏;资料修改引导场景梳理(登录后、@某人、找伙伴、链接卡若) | [2026-03-14.md](./2026-03-14.md) |
| 2026-03-16 | 编辑资料页分享名片:转发/朋友圈特殊处理Canvas 绘制封面,标题「昵称+为您分享名片」 | [2026-03-16.md](./2026-03-16.md) |
| 2026-03-17 | 代付美团式:读页→代付页→分享;详情页双态(发起人/好友);目录 loading、最新新增 5 条折叠 | [2026-03-17.md](./2026-03-17.md) |
| 2026-03-19 | 原生按钮覆盖定位chooseAvatar 等用绝对定位 overlay 覆盖,禁止 button 包裹,避免原生样式影响 | [2026-03-19-原生按钮覆盖定位.md](./2026-03-19-原生按钮覆盖定位.md) |
| 2026-03-20 | 手机号一键登录与公用组件getPhoneNumber 耦合 agreePrivacyAuthorizationlogin-modal 组件;登录后手机号同步 | [2026-03-20-手机号登录与公用组件.md](./2026-03-20-手机号登录与公用组件.md) |

View File

@@ -53,10 +53,6 @@
| 2026-03-17 | 后端、团队 | 架构/最佳实践 | api-dev SKILL | Redis 缓存parts/hot/recommended/stats/config/章节 content容灾回退 DBOSS 上传;/health 返回 database/redis 状态 |
| 2026-03-18 | 小程序、团队 | 业务规则/最佳实践 | - | 分享链路兼容好友/朋友圈 singlePage单页模式能力降级不支付/不自动领取),引导点击底部“前往小程序”进入完整版 |
| 2026-03-18 | 产品、后端、管理端、测试 | 文档归档/需求口径 | - | 文档归档整理:以《以界面定需求》为基准,各角色重整“功能需求+验收口径+风险点”并写入各自经验库;补齐《项目落地推进表》 |
| 2026-03-19 | 小程序 | 最佳实践 | miniprogram-dev SKILL §11 | 原生按钮覆盖定位chooseAvatar 等用绝对定位 overlay 覆盖,禁止 button 包裹,避免原生样式影响(灰色矩形等) |
| 2026-03-20 | 安全工程师 | 触发词约定 | security-server-ops、soul-project-boundary | 「帮我部署api到线上」→ 直接执行 soul-api/master.py |
| 2026-03-20 | 安全工程师 | 触发词约定 | security-server-ops、soul-project-boundary | 「管理端帮我部署到xx环境」→ 语义化解析正式→master.py测试→deploy.py |
| 2026-03-20 | 小程序 | 最佳实践 | miniprogram-dev SKILL §8 | 手机号登录getPhoneNumber 需耦合 agreePrivacyAuthorizationonNeedPrivacyAuthorization 支持页面;登录弹窗公用组件 login-modal |
---
@@ -67,4 +63,4 @@
---
**最后更新**2026-03-20
**最后更新**2026-03-18

View File

@@ -6,7 +6,7 @@
## 项目总结
Soul 创业派对产品定位:面向创业者的社区/工具型小程序。核心需求文档在 `开发文档/1、需求/`(按日期命名,以最新为主;见 `1、需求/索引.md`,项目推进表在 `开发文档/10、项目管理/项目落地推进表.md`,临时需求/分析在 `临时需求池/`
Soul 创业派对产品定位:面向创业者的社区/工具型小程序。核心需求文档在 `开发文档/1、需求/需求汇总.md`,项目推进表在 `开发文档/10、项目管理/项目落地推进表.md`,临时需求/分析在 `临时需求池/`
---

View File

@@ -31,11 +31,9 @@ Soul 创业派对全项目架构与约定路由隔离miniprogram/admin/db
| 2026-03-17 | 性能优化与 Redis 缓存方案落地Redis 容灾回退 DB、OSS 上传容灾;/health 返回 database/redis 状态 | 已完成 |
| 2026-03-18 | 吸收经验:分享进入链路需兼容朋友圈 singlePage单页模式不执行支付/自动领取等强动作并引导“前往小程序” | 已完成 |
| 2026-03-18 | 会议:超级个体开通后自动创建@人统一走 Person幂等键绑定 userId默认资料 flags 后端输出 | 已完成 |
| 2026-03-20 | 「帮我部署api到线上」→ 安全工程师执行 soul-api/master.pysecurity-server-ops、soul-project-boundary 触发词升级 | 已完成 |
| 2026-03-20 | 「管理端帮我部署到xx环境」→ 语义化解析:正式/线上/生产→master.py测试/dev→deploy.pysoul-admin 部署脚本索引 | 已完成 |
> **格式说明**:每次架构级讨论后在此追加一行,日期格式 YYYY-MM-DD
---
**最后更新**2026-03-20
**最后更新**2026-03-18

View File

@@ -41,11 +41,9 @@
| 2026-03-17 | 会议收尾:源码优化 5 项全部完成;开发环境测试通过 | 已完成 |
| 2026-03-18 | 吸收经验:分享链路需兼容好友/朋友圈 singlePage单页模式能力降级并引导“前往小程序”进入完整版 | 已完成 |
| 2026-03-18 | 会议:支付超级个体前/开通后资料默认校验,跳转 avatar-nickname 引导页(仅头像+昵称) | 已完成 |
| 2026-03-19 | 吸收经验原生按钮覆盖定位chooseAvatar 用绝对定位 overlay 覆盖头像,禁止 button 包裹,已升级 SKILL §11 | 已完成 |
| 2026-03-20 | 手机号一键登录getPhoneNumber 耦合 agreePrivacyAuthorizationonNeedPrivacyAuthorization 支持 read/my/gift-pay/index/settings登录弹窗公用组件 components/login-modal登录后手机号同步 _syncPhoneFromProfileAfterLogin | 已完成 |
> **格式说明**:每次开发后在此追加一行,日期格式 YYYY-MM-DD状态用已完成 / 进行中 / 待续 / 搁置
---
**最后更新**2026-03-20
**最后更新**2026-03-18

View File

@@ -53,7 +53,6 @@ AGENT_BACKEND = AGENT / "后端工程师"
AGENT_PRODUCT = AGENT / "产品经理"
AGENT_TEST = AGENT / "软件测试"
AGENT_TEAM = AGENT / "团队"
AGENT_SECURITY = AGENT / "安全工程师"
# ========== 常用文件 ==========
RULE_MAIN = RULES / "老板分身-索引.mdc"
@@ -81,9 +80,6 @@ ROLE_TO_AGENT = {
"软件测试": "软件测试",
"测试": "软件测试",
"测试人员": "软件测试",
# 安全
"安全工程师": "安全工程师",
"安全": "安全工程师",
# 通用
"团队": "团队",
}

View File

@@ -0,0 +1,156 @@
# Soul 创业派对 · .cursor 规则与架构分析及优化建议
> 分析日期2026-03-19
> 范围:`.cursor/` 下 rules、skills、agent、config、meeting、scripts
> **2026-03-20**:已批量将 `e:\Gongsi\...` 改为仓库相对路径 `.cursor/...``party-ai-dev.mdc` 已补充与 `.cursor` 的优先级;根目录 `.gitignore` 已忽略 `karuo-party/credentials/`;新增 `.cursor/README.md`、`.cursorignore`db-exec node_modules
---
## 整体架构图
![Soul 项目与 .cursor 架构](./soul-project-cursor-architecture.png)
---
## 一、整体架构总览
### 1.1 项目与 .cursor 的关系
```
项目根一场soul的创业实验-永平)
├── miniprogram/ # 微信原生小程序 C 端 → /api/miniprogram/*
├── soul-admin/ # React 管理后台(主用)→ /api/admin/*、/api/db/*
├── soul-api/ # Go + Gin + GORM 接口服务
├── next-project/ # 仅预览,非线上
├── new-soul/soul-admin/ # 新版参考,迁移时对照
└── .cursor/ # Cursor AI 规则与智能体配置
├── rules/ # 全局/场景规则alwaysApply 或 globs
├── skills/ # 按角色/场景的 Skill写作、上传、开发、会议等
├── agent/ # 角色经验与项目索引evolution、项目索引
├── config/ # paths.py、workspace 等
├── meeting/ # 会议纪要
├── scripts/ # 进化脚本、Gitea 同步、db-exec 等
└── docs/ # 本分析等文档
```
### 1.2 规则层Rules与技能层Skills关系
| 类型 | 作用 | 典型文件 |
|------|------|----------|
| **Rules** | 会话自检、项目边界、谁调哪组 API、何时加载哪个 Skill | soul-project-boundary.mdc、老板分身-索引.mdc、soul-meeting.mdc、soul-change-checklist.mdc、party-ai-dev.mdc |
| **Skills** | 具体执行规范:怎么写代码、怎么开会、怎么检查变更 | miniprogram-dev、admin-dev、api-dev、team-meeting、change-checklist、assistant-doc-sync |
- **角色推断**:按「当前编辑目录」或「用户触发词」→ 确定角色 → **必须 Read 对应 Skill 文件**后执行。
- **老板分身**:权限最高,可调度所有角色;开会时由乘风按 team-meeting 主持;经验自动收集写各角色 evolution。
### 1.3 三端与 API 路由(核心原则)
| 端 | 目录 | 允许调用的 API | 禁止 |
|----|------|----------------|------|
| 小程序 | miniprogram/ | `/api/miniprogram/*` | admin、db |
| 管理端 | soul-admin/ | `/api/admin/*``/api/db/*` | miniprogram 混用 |
| 后端 | soul-api/ | 按使用方挂 miniprogram / admin / db 分组 | 通用路径混用 |
---
## 二、优化与迭代建议
### 2.1 路径可移植性(高优先级)✅ 已落地
**原问题**rules 与部分 skills 中曾写死 **Windows 绝对路径** `e:\Gongsi\Mycontent\.cursor\skills\...`,在 macOS/Linux 或不同机器上会失效。**当前**:已统一为仓库根相对路径 `.cursor/skills/...` 等,详见 `rules/soul-project-boundary.mdc` 的「路径约定」。
**涉及文件**
- `rules/老板分身-索引.mdc`team-meeting SKILL 路径
- `rules/soul-project-boundary.mdc`:所有「必须 Read 的主 Skill 文件」表格(按编辑目录、按语义触发词、按场景触发词)
- `rules/soul-meeting.mdc`team-meeting、assistant-doc-sync 路径
- `rules/soul-change-checklist.mdc`change-checklist SKILL 路径
- `skills/assistant-doc-sync/SKILL.md`:项目索引路径
- `skills/mysql-direct/SKILL.md``cd e:\Gongsi\Mycontent`
**建议**
1. **统一改为相对项目根的路径**
例如:`项目根/.cursor/skills/team-meeting/SKILL.md`,或在规则中明确写:
「以当前项目根为基准Read `.cursor/skills/{skill-name}/SKILL.md`」。
2. 若 Cursor 支持「工作区根」变量,可写成占位符(如 `{workspace}/.cursor/skills/...`),在文档中说明各系统下的解析方式。
3. **config/paths.py** 已定义 `SKILLS = CURSOR / "skills"`,可在 `.cursor/README.md` 或 rules 中说明:**所有 Skill 路径以 `paths.py` 的 SKILLS 为准,规则中仅写相对 SKILLS 的路径**(如 `skills/team-meeting/SKILL.md`),由 AI 结合当前项目根解析。
### 2.2 跨平台脚本与入口
**问题**:老板分身规则里「若无法写文件则输出 JSON并提示用户双击 `agent/开发助理/script/一键-添加经验.bat`」。`.bat` 仅适用于 WindowsMac/Linux 用户无法使用。
**建议**
1. 增加 **Shell 版**`一键-添加经验.sh`,实现相同逻辑(或调用同一份 Python/Node 脚本)。
2. 在规则中改为:「提示用户执行 `agent/开发助理/script/一键-添加经验.bat`Windows`一键-添加经验.sh`Mac/Linux或根据环境说明」。
### 2.3 party-ai-dev.mdc 与 老板分身 的优先级
**问题**`party-ai-dev.mdc` 要求「优先使用派对 AI派对AI/BOOTSTRAP.md、SKILL_REGISTRY.md而老板分身等规则在 `.cursor/rules` 下,若同时生效可能产生「先读卡若还是先读派对」的冲突。
**建议**
1.**party-ai-dev.mdc****老板分身-索引.mdc** 中明确写清:
「当本仓库为 Soul 派对项目且存在 派对AI/ 目录时,优先按 party-ai-dev 启动顺序;否则按 .cursor/rules 与 skills 执行。」
2. 或约定:**派对AI 仅用于「在派对AI 目录下开发」的会话****在 miniprogram/soul-admin/soul-api 等目录下开发时,仅用 .cursor 的 rules+skills**,避免双重入口。
### 2.4 soul-change-checklist 与 change-checklist Skill 的引用方式
**问题**soul-change-checklist.mdc 第三十条要求 Read 的路径仍是 Windows 绝对路径。
**建议**:与 2.1 一致,改为「项目根/.cursor/skills/change-checklist/SKILL.md」或相对路径说明并在 checklist 规则末尾加一句「Skill 详细流程见 `.cursor/skills/change-checklist/SKILL.md`」。
### 2.5 会议纪要与收尾路径
**问题**soul-meeting.mdc 中会议纪要、项目索引、会议记录索引等路径未写死 Windows但 assistant-doc-sync SKILL 里项目索引写的是 `e:\Gongsi\Mycontent\.cursor\agent\...`
**建议**assistant-doc-sync 内所有路径改为「项目根/.cursor/agent/...」或相对路径,与 config/paths.py 中的 AGENT、PROJECT_INDEX 等保持一致表述。
### 2.6 角色与 Skill 的集中索引
**现状**角色→Skill 的映射分散在 soul-project-boundary按目录、按触发词、按场景和 paths.pyROLE_TO_AGENT
**建议**:在 `.cursor/README.md``docs/` 下维护一份「角色 ↔ Skill 一览表」,便于新人/新 Agent 快速查阅rules 中可写「详见 .cursor/README.md#角色与Skill映射」。
### 2.7 经验自动收集的脚本与 Mac 兼容
**现状**evolution 写入由 scripts/evolution.py 等完成paths 来自 config/paths.py已跨平台仅「一键-添加经验」的入口是 .bat。
**建议**:同 2.2,补充 .sh 或统一用 Python 脚本入口,在规则中同时给出 Windows 与 Mac/Linux 的说明。
---
## 三、规则与 Skill 清单速查
| 名称 | 类型 | 作用 |
|------|------|------|
| soul-project-boundary.mdc | Rule | 项目边界、三端 API 约定、角色推断与 Skill 加载 |
| 老板分身-索引.mdc | Rule | 老板分身权限、经验自动收集、编码习惯、三端分工 |
| soul-meeting.mdc | Rule | 开会/散会触发、会议纪要路径、收尾流程 |
| soul-change-checklist.mdc | Rule | 变更后关联检查清单(防漏改) |
| party-ai-dev.mdc | Rule | 优先派对 AI、飞书复盘、小程序上传约定 |
| miniprogram-dev | Skill | 小程序开发规范 |
| admin-dev | Skill | 管理端开发规范 |
| api-dev | Skill | 后端 API 规范 |
| product-manager | Skill | 产品需求与验收 |
| testing | Skill | 测试与回归 |
| team-meeting | Skill | 多角色会议流程 |
| assistant-doc-sync | Skill | 小橙/文档同步/经验入库/会议收尾 |
| change-checklist | Skill | 变更关联检查详细流程 |
| role-flow-control | Skill | 跨端协同与角色流程 |
| three-tier-arch | Skill | 三端架构与框架分析 |
| new-version-analyze | Skill | 新版分析、迁移对比 |
| next-preview / next-split | Skill | next-project 仅预览、拆解指引 |
| mysql-direct | Skill | MySQL 直接操作、db-exec |
---
## 四、总结
- **架构**:项目为三端(小程序 + 管理端 + soul-api.cursor 通过 rules 定边界与触发、skills 定执行细节、agent 存经验与项目索引,**config/paths.py** 为路径与角色映射中心。
- **优先迭代**
1所有 **Skill/agent 路径** 改为可移植(相对项目根或相对 .cursor
2**一键-添加经验** 增加 Mac/Linux 入口;
3**party-ai 与 .cursor** 的适用场景或优先级写清楚。
- 按上述调整后,在不同系统和不同克隆路径下都能一致生效,且便于后续扩展角色或 Skill。

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -23,7 +23,8 @@
```powershell
# 在 soul-api 目录下执行
cd e:\Gongsi\Mycontent\soul-api
# 在仓库根目录下执行(与 miniprogram、soul-api 同级)
cd soul-api
.\scripts\test-p0-endpoints.ps1
```

View File

@@ -8,9 +8,9 @@ alwaysApply: false
当用户提及**小橙、橙子、橙橙、🍊**,或说**「讨论完毕」「记录一下」「同步到开发文档」「更新文档」「吸收经验」「升级 skills」「记录经验」「保存开发进度」「更新项目索引」「记录开发进度」「任务完成」「搞定了」「完成了」「会议结束」「散会」「会开完了」**时:
**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md` 的完整内容**,然后严格按其流程执行。
**必须使用 Read 工具读取 `.cursor/skills/assistant-doc-sync/SKILL.md` 的完整内容**,然后严格按其流程执行。
### 行为摘要(供模型快速理解,完整流程以 SKILL 文件为准)
1. **文档同步**:从对话中提炼结论/待办/变更 → 写入 `开发文档/1、需求/YYYY-MM-DD-需求.md`(当日文件,以日期最新为主)、`开发文档/10、项目管理/运营与变更.md`、`临时需求池/` 等对应文档
1. **文档同步**:从对话中提炼结论/待办/变更 → 写入 `开发文档/1、需求/需求汇总.md`、`开发文档/10、项目管理/运营与变更.md`、`临时需求池/` 等对应文档
2. **经验入库**:提炼经验 → 写入 `agent/{角色}/evolution/YYYY-MM-DD.md` → 更新 `agent/开发助理/项目索引/{索引名}.md`(写日期)→ 更新 `agent/开发助理/经验清单.md` → 升级对应 SKILL

View File

@@ -1,8 +1,14 @@
# 派对 AI 开发规则
## 强制:使用派对 AI 进行开发
## 与本仓库 `.cursor` 的优先级(避免入口打架)
所有开发操作**优先使用派对 AI**(路径:`/Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/派对AI/`),派对 AI 优先于卡若 AI 读取使用
- **三端编码与接口**:以本仓库 `.cursor/rules`(如 `soul-project-boundary.mdc`)与 `.cursor/skills` 为准——小程序/管理端/soul-api 路由隔离、变更检查、角色 Skill 加载等**不因派对 AI 而绕过**
- **派对 AI 目录**:若仓库根下存在 `派对AI/`,开发前可补充读取其 `BOOTSTRAP.md`、`SKILL_REGISTRY.md`,用于派对域身份、运营与流程;与 `.cursor` 冲突时,**代码与 API 约定以 `.cursor` 为准**。
- **卡若 AI 全局规则**:仅在本会话需要时参考;本仓库会话自检仍以 **本仓库 `.cursor/`** 为主。
## 强制:使用派对 AI 进行开发(当 `派对AI/` 存在时)
所有开发操作**优先结合派对 AI**(路径:**仓库根下的** `派对AI/`,与 `miniprogram/` 同级)。若本仓库无 `派对AI/` 目录,则跳过本节启动顺序,仅按 `.cursor` 执行。
### 启动顺序

View File

@@ -8,4 +8,4 @@ alwaysApply: false
当编辑 **开发文档/1、需求/**、**临时需求池/**、**开发文档/10、项目管理/** 时,推断当前角色为**产品经理**。
**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md` 的完整内容**,然后按其规范执行需求分析、文档编写、验收标准制定。
**必须使用 Read 工具读取 `.cursor/skills/product-manager/SKILL.md` 的完整内容**,然后按其规范执行需求分析、文档编写、验收标准制定。

View File

@@ -26,8 +26,8 @@ alwaysApply: false
## Skill 加载(必须执行)
**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\admin-dev\SKILL.md` 的完整内容**,按其规范进行开发。该 Skill 包含代码风格、业务逻辑、API 对接细节等完整约定。
**必须使用 Read 工具读取 `.cursor/skills/admin-dev/SKILL.md` 的完整内容**,按其规范进行开发。该 Skill 包含代码风格、业务逻辑、API 对接细节等完整约定。
接口实现与路由分组的规范在 `e:\Gongsi\Mycontent\.cursor\rules\soul-api.mdc`(编辑 soul-api 时自动加载)。
接口实现与路由分组的规范在 `.cursor/rules/soul-api.mdc`(编辑 soul-api 时自动加载)。
违反上述路径或职责边界即视为「互窜」,需纠正后再提交。

View File

@@ -6,7 +6,7 @@ alwaysApply: false
# soul-api 开发规范
> **Skill 加载**:编辑 soul-api 代码时,**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\api-dev\SKILL.md` 的完整内容**,该 Skill 包含业务对接、与前端边界协同等补充约定。本规则侧重编码规范与路由边界。
> **Skill 加载**:编辑 soul-api 代码时,**必须使用 Read 工具读取 `.cursor/skills/api-dev/SKILL.md` 的完整内容**,该 Skill 包含业务对接、与前端边界协同等补充约定。本规则侧重编码规范与路由边界。
## 1. 路由按使用方归类(强制)

View File

@@ -30,7 +30,7 @@ alwaysApply: false
- **每次**在 miniprogram、soul-admin、soul-api 内完成一轮修改后,**先过一遍上表 + 二**,再视为本次变更完成。
- 若本次变更涉及多端(例如小程序新功能 + 管理端配置页),应在同一次任务内一并完成或明确记录未做项,避免漏改。
- 更详细的检查流程:**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\change-checklist\SKILL.md` 的完整内容**,按其「以领域为单位思考」的方法逐项确认。
- 更详细的检查流程:**必须使用 Read 工具读取 `.cursor/skills/change-checklist/SKILL.md` 的完整内容**(相对本仓库根),按其「以领域为单位思考」的方法逐项确认。
## 四、聊天中触发变更检查

View File

@@ -6,7 +6,7 @@ alwaysApply: true
# Soul 创业派对 - 会议触发器
当用户表达**开会意图**时(包括但不限于以下触发词),**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\team-meeting\SKILL.md` 的完整内容**,然后严格按其流程主持会议。
当用户表达**开会意图**时(包括但不限于以下触发词),**必须使用 Read 工具读取 `.cursor/skills/team-meeting/SKILL.md` 的完整内容**(相对本仓库根),然后严格按其流程主持会议。
## 语义化触发词(理解意图,不必完全匹配)
@@ -24,9 +24,9 @@ alwaysApply: true
当用户说**「会议结束」「散会」「会开完了」「结束会议」**时:
1. 助理橙子立即执行收尾流程
2. **生成会议纪要**`e:\Gongsi\Mycontent\.cursor\meeting\YYYY-MM-DD_主题.md`
3. **各角色经验入库**`e:\Gongsi\Mycontent\.cursor\agent\{角色}\evolution\YYYY-MM-DD.md`
4. **更新项目索引**`agent/开发助理/项目索引/{索引名}.md` 开发进度表追加一行
5. **更新会议记录索引**`e:\Gongsi\Mycontent\.cursor\meeting\README.md`
2. **生成会议纪要**`.cursor/meeting/YYYY-MM-DD_主题.md`
3. **各角色经验入库**`.cursor/agent/{角色}/evolution/YYYY-MM-DD.md`
4. **更新项目索引**`.cursor/agent/开发助理/项目索引/{索引名}.md` 开发进度表追加一行
5. **更新会议记录索引**`.cursor/meeting/README.md`
**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md` 执行收尾。**
**必须使用 Read 工具读取 `.cursor/skills/assistant-doc-sync/SKILL.md` 执行收尾。**

View File

@@ -23,8 +23,8 @@ alwaysApply: false
## Skill 加载(必须执行)
**必须使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\miniprogram-dev\SKILL.md` 的完整内容**,按其规范进行开发。该 Skill 包含代码风格、业务逻辑、API 对接细节等完整约定。
**必须使用 Read 工具读取 `.cursor/skills/miniprogram-dev/SKILL.md` 的完整内容**,按其规范进行开发。该 Skill 包含代码风格、业务逻辑、API 对接细节等完整约定。
接口实现与路由分组的规范在 `e:\Gongsi\Mycontent\.cursor\rules\soul-api.mdc`(编辑 soul-api 时自动加载)。
接口实现与路由分组的规范在 `.cursor/rules/soul-api.mdc`(编辑 soul-api 时自动加载)。
违反上述路径或职责边界即视为「互窜」,需纠正后再提交。

View File

@@ -20,31 +20,30 @@ alwaysApply: true
| 预览/参考 | next-project/ | 仅预览,非线上 | 不依赖 |
| **新版管理端** | **new-soul/soul-admin/** | 新版参考实现,迁移时对照 | soul-api |
## 需求目录与命名约定
- **需求目录**`开发文档/1、需求/`
- **命名**`YYYY-MM-DD-需求.md` 或 `YYYY-MM-DD-简短描述.md`
- **主需求**:以日期最新的需求文件为主;同步需求时新建/更新当日文件,并更新 `1、需求/索引.md`
- **基准**`以界面定需求.md` 为界面级需求基准,新增/改版界面或业务规则时先更新该文档
## 核心原则
- 小程序只调 `/api/miniprogram/*`;管理端只调 `/api/admin/*`、`/api/db/*`;禁止混用。
- 变更完成必过 soul-change-checklist.mdc聊天中说「变更完成」「检查一下」「准备提交」时主动触发检查。
## 路径约定Skill / agent / meeting
- 下表及本仓库 Skill 中的路径均以 **本 Git 仓库根目录** 为基准(与 `miniprogram/`、`soul-api/` 同级),**不使用盘符或另一台机器上的绝对路径**。
- 使用 Read / Write 工具时:填写 **`仓库根/.cursor/...`**,例如 `.cursor/skills/api-dev/SKILL.md`(与规则中的写法一致即可)。
- 脚本中的物理路径以 `config/paths.py` 的 `ROOT`、`SKILLS`、`AGENT`、`MEETING` 为准。
## 角色推断与 Skill 加载(必须执行)
根据**当前编辑目录**或**语义触发词****必须使用 Read 工具读取对应的主 Skill 文件完整内容**,然后按其规范执行开发:
### 按编辑目录
| 编辑目录 | 推断角色 | 必须 Read 的主 Skill 文件(绝对路径 |
|----------|----------|---------------------------------------|
| miniprogram/ | 小程序开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\miniprogram-dev\SKILL.md` |
| soul-admin/ | 管理端开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\admin-dev\SKILL.md` |
| soul-api/ | 后端开发 | `e:\Gongsi\Mycontent\.cursor\skills\api-dev\SKILL.md` |
| 开发文档/1、需求/、临时需求池/ | 产品经理 | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md` |
| .cursor/ | 助理橙子 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md` |
| 编辑目录 | 推断角色 | 必须 Read 的主 Skill 文件(相对仓库根 |
|----------|----------|----------------------------------------|
| miniprogram/ | 小程序开发工程师 | `.cursor/skills/miniprogram-dev/SKILL.md` |
| soul-admin/ | 管理端开发工程师 | `.cursor/skills/admin-dev/SKILL.md` |
| soul-api/ | 后端开发 | `.cursor/skills/api-dev/SKILL.md` |
| 开发文档/1、需求/、临时需求池/ | 产品经理 | `.cursor/skills/product-manager/SKILL.md` |
| .cursor/ | 助理橙子 | `.cursor/skills/assistant-doc-sync/SKILL.md` |
### 按语义触发词(说啥切角色,无需编辑文件)
@@ -52,26 +51,23 @@ alwaysApply: true
| 触发词 | 推断角色 | 必须 Read 的 Skill 文件 |
|--------|----------|-------------------------|
| 后端、API、soul-api、接口、Go、GORM | 后端开发 | `e:\Gongsi\Mycontent\.cursor\skills\api-dev\SKILL.md` |
| 管理端、soul-admin、React、后台管理 | 管理端开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\admin-dev\SKILL.md` |
| 小程序、miniprogram、C 端、微信小程序 | 小程序开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\miniprogram-dev\SKILL.md` |
| 产品、需求、验收、排期、需求文档 | 产品经理 | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md` |
| 测试、测试用例、回归测试、功能测试、QA | 测试人员 | `e:\Gongsi\Mycontent\.cursor\skills\testing\SKILL.md` |
| 挖矿、安全、服务器操作、部署、miner_guard、xmrig、入侵排查 | 安全工程师 | `e:\Gongsi\Mycontent\.cursor\skills\security-miner-guard\SKILL.md`、`e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md` |
| 后端、API、soul-api、接口、Go、GORM | 后端开发 | `.cursor/skills/api-dev/SKILL.md` |
| 管理端、soul-admin、React、后台管理 | 管理端开发工程师 | `.cursor/skills/admin-dev/SKILL.md` |
| 小程序、miniprogram、C 端、微信小程序 | 小程序开发工程师 | `.cursor/skills/miniprogram-dev/SKILL.md` |
| 产品、需求、验收、排期、需求文档 | 产品经理 | `.cursor/skills/product-manager/SKILL.md` |
| 测试、测试用例、回归测试、功能测试、QA | 测试人员 | `.cursor/skills/testing/SKILL.md` |
### 按场景触发词
| 场景触发词 | 必须 Read 的 Skill 文件(绝对路径 |
|------------|-------------------------------------|
| 小橙、橙子、橙橙、🍊、讨论完毕、记录一下、记录、同步文档 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md` |
| 吸收经验、升级 skills、记录经验、保存开发进度、更新项目索引、记录开发进度、任务完成、搞定了、完成了 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md` |
| 跨端功能开发 | `e:\Gongsi\Mycontent\.cursor\skills\role-flow-control\SKILL.md` |
| 变更完成、检查一下、准备提交 | `e:\Gongsi\Mycontent\.cursor\skills\change-checklist\SKILL.md` |
| 开个会、开会、团队会议、乘风开会、需求评审、方案讨论、大家一起讨论 | `e:\Gongsi\Mycontent\.cursor\skills\team-meeting\SKILL.md`(老板分身/乘风主持) |
| 会议结束、散会、会开完了 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md`(会议收尾) |
| **加个需求**、加个需求xxx | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md`(产品经理三端分析 → 功能规划 → 指派) |
| **新版分析**、版本对比、迁移分析、甲方代码分析、快速分析新版、抽取需求 | `e:\Gongsi\Mycontent\.cursor\skills\new-version-analyze\SKILL.md`(新版快速分析 → 差异清单 → 接口冲突 → 迁移迭代) |
| **帮我部署api到线上** | `e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md`(安全工程师 → 执行 soul-api/master.py |
| **管理端帮我部署到xx环境** | `e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md`(安全工程师 → 语义化解析 xx正式/线上/生产→master.py测试/dev→deploy.py |
| 场景触发词 | 必须 Read 的 Skill 文件(相对仓库根 |
|------------|----------------------------------------|
| 小橙、橙子、橙橙、🍊、讨论完毕、记录一下、记录、同步文档 | `.cursor/skills/assistant-doc-sync/SKILL.md` |
| 吸收经验、升级 skills、记录经验、保存开发进度、更新项目索引、记录开发进度、任务完成、搞定了、完成了 | `.cursor/skills/assistant-doc-sync/SKILL.md` |
| 跨端功能开发 | `.cursor/skills/role-flow-control/SKILL.md` |
| 变更完成、检查一下、准备提交 | `.cursor/skills/change-checklist/SKILL.md` |
| 开个会、开会、团队会议、乘风开会、需求评审、方案讨论、大家一起讨论 | `.cursor/skills/team-meeting/SKILL.md`(老板分身/乘风主持) |
| 会议结束、散会、会开完了 | `.cursor/skills/assistant-doc-sync/SKILL.md`(会议收尾) |
| **加个需求**、加个需求xxx | `.cursor/skills/product-manager/SKILL.md`(产品经理三端分析 → 功能规划 → 指派) |
| **新版分析**、版本对比、迁移分析、甲方代码分析、快速分析新版、抽取需求 | `.cursor/skills/new-version-analyze/SKILL.md`(新版快速分析 → 差异清单 → 接口冲突 → 迁移迭代) |
**注意**:「必须 Read」= 使用 Read 工具读取**绝对路径**的完整文件内容后执行,不可跳过或仅凭记忆。
**注意**:「必须 Read」= 使用 Read 工具读取上述路径相对于**当前工作区仓库根**的完整文件内容后执行,不可跳过或仅凭记忆。

View File

@@ -6,7 +6,7 @@ alwaysApply: true
# 老板分身 - 能力与约束Soul 创业派对)
> **老板分身权限最高**:协调所有智能体(小程序开发工程师、管理端开发工程师、后端工程师、产品经理、开发助理等)。其他 agent 执行任务时遵循本规则;老板分身可调度、协调、指派任一角色。
> **激活方式**:用户说「老板」「分身」「乘风」「架构」「帮我协调」时,从旁观者转为主动参与。**开会时**:用户说「开会」「开个会」「团队会议」「乘风开会」「需求评审」「方案讨论」等表达开会意图时,**必须先**用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\skills\team-meeting\SKILL.md` 完整内容,然后由老板分身(乘风)按该协议主持多角色会议,不可仅回复而不执行流程。
> **激活方式**:用户说「老板」「分身」「乘风」「架构」「帮我协调」时,从旁观者转为主动参与。**开会时**:用户说「开会」「开个会」「团队会议」「乘风开会」「需求评审」「方案讨论」等表达开会意图时,**必须先**用 Read 工具读取 `.cursor/skills/team-meeting/SKILL.md` 完整内容(相对本仓库根),然后由老板分身(乘风)按该协议主持多角色会议,不可仅回复而不执行流程。
> **会话自检**:仅沿用本项目 `.cursor/` 下的 rules、skills、agent忽略与本项目无关的全局 rules/skills。
> **角色驱动**Soul 角色与 agent 映射见 `config/paths.py` 的 ROLE_TO_AGENT。
@@ -39,12 +39,11 @@ alwaysApply: true
- 产品/需求/config→**产品经理**
- 测试/自检/QA→**软件测试**
- 架构/选型/路由约定/三端协同→**团队**
- 挖矿/安全/服务器操作/部署/入侵排查→**安全工程师**
- 无法判断→**通用**(写入开发助理)
3. **若可写文件**
- **有明确目标角色**:写入 `.cursor/agent/{角色}/evolution/YYYY-MM-DD-简短描述.md`,并更新该目录下的 `索引.md`
- **无法判断角色**:写入 `.cursor/agent/开发助理/evolution/`
4. **若无法写文件**:输出 JSON并提示用户双击 `agent/开发助理/script/一键-添加经验.bat`
4. **若无法写文件**:输出 JSON并提示用户在仓库根执行:`.cursor/agent/开发助理/script/一键-添加经验.bat`Windows或同目录下的 `.sh` / Python 入口macOS/Linux若已提供
### Soul 目标角色与 target_roles 取值

View File

@@ -0,0 +1,55 @@
# 与 Gitea192.168.1.201)同步
## 远程
- **gitea-local**`http://192.168.1.201:3000/fnvtk/soul-yongping.git`(拉取 + 推送)
## 手动同步
```bash
./.cursor/scripts/gitea-sync.sh
```
## 每 10 分钟自动同步macOS launchd
- 已安装:`~/Library/LaunchAgents/com.soul.yongping.gitea-sync.plist`
- 每 10 分钟执行一次,登录后自动加载
**启用:**
```bash
launchctl load ~/Library/LaunchAgents/com.soul.yongping.gitea-sync.plist
```
**停用:**
```bash
launchctl unload ~/Library/LaunchAgents/com.soul.yongping.gitea-sync.plist
```
**查看是否在跑:**
```bash
launchctl list | grep com.soul.yongping.gitea-sync
```
## 认证192.168.1.201 需登录时)
若 push/pull 需要账号密码,定时任务无法弹窗,请把凭证写进 remote URL勿提交到仓库
```bash
git remote set-url gitea-local 'http://用户名:token或密码@192.168.1.201:3000/fnvtk/soul-yongping.git'
```
或用系统钥匙串:
```bash
git config --global credential.helper osxkeychain
# 然后手动执行一次 gitea-sync.sh输入一次账号密码之后由钥匙串记住
```
## 日志
- 脚本内部:`.cursor/scripts/gitea-sync.log`
- launchd 标准输出:`.cursor/scripts/gitea-sync-launchd.log`
- launchd 错误:`.cursor/scripts/gitea-sync-launchd.err.log`

View File

@@ -0,0 +1,163 @@
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted
/bin/bash: /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/.cursor/scripts/gitea-sync.sh: Operation not permitted

View File

View File

@@ -0,0 +1,48 @@
[2026-03-19 14:54:01] --- sync start (branch=devlop, remote=gitea-local) ---
From http://192.168.1.201:3000/fnvtk/soul-yongping
* [new branch] devlop -> gitea-local/devlop
* [new branch] main -> gitea-local/main
error: cannot pull with rebase: You have unstaged changes.
error: Please commit or stash them.
[devlop 28a69cbc] sync: 2026-03-19 14:54
Committer: 卡若 <karuo@MacBook-Pro.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
26 files changed, 164 insertions(+), 2133 deletions(-)
create mode 100644 .cursor/scripts/README-gitea-sync.md
create mode 100644 .cursor/scripts/gitea-sync-launchd.err.log
create mode 100644 .cursor/scripts/gitea-sync-launchd.log
create mode 100644 .cursor/scripts/gitea-sync.log
create mode 100755 .cursor/scripts/gitea-sync.sh
create mode 100644 project.config.json
delete mode 100644 开发文档/1、需求/文章详情-阅读页线框图.md
delete mode 100644 开发文档/1、需求/链接人与事-所有同步需求.md
delete mode 100644 开发文档/代付功能-美团式方案与场景清单.md
delete mode 100644 开发文档/全站测试报告_20260315.md
delete mode 100644 开发文档/存客宝对接逻辑图.md
delete mode 100644 开发文档/小程序管理/scripts/reports/体验版二维码_soul-party_20260315_2344.png
delete mode 100644 开发文档/小程序管理/scripts/reports/体验版二维码_soul-party_20260316_0221.png
delete mode 100644 开发文档/小程序管理/scripts/reports/体验版二维码_soul-party_20260316_1804.png
delete mode 100644 开发文档/找朋友代付-流程与配置.md
delete mode 100644 开发文档/新版管理端迁移到稳定版-需求评估.md
delete mode 100644 开发文档/新版迁移-开发方案与清单.md
delete mode 100644 开发文档/稳定版-小程序与API对比.md
delete mode 100644 开发文档/稳定版-源码质量分析报告.md
delete mode 100644 开发文档/稳定版-管理端与小程序对接分析.md
delete mode 100644 开发文档/稳定版适配新界面-调整清单.md
delete mode 100644 开发文档/管理端两版界面差异-新需求参考.md
delete mode 100644 开发文档/管理端迁移分析-基于小程序功能.md
delete mode 100644 开发文档/规则引擎迁移-影响分析.md
delete mode 100644 开发文档/迁移完成度与待办清单.md
remote: Failed to authenticate user
fatal: Authentication failed for 'http://192.168.1.201:3000/fnvtk/soul-yongping.git/'
[2026-03-19 14:54:02] --- sync end ---

46
.cursor/scripts/gitea-sync.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
# 与 Gitea192.168.1.201)双向同步:先拉取,有本地变更则提交并推送
# 可手动执行,也可由 launchd 每 10 分钟执行
set -e
REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
REMOTE="gitea"
LOG_FILE="$REPO_ROOT/.cursor/scripts/gitea-sync.log"
cd "$REPO_ROOT"
BRANCH=$(git rev-parse --abbrev-ref HEAD)
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"; }
log "--- sync start (branch=$BRANCH, remote=$REMOTE) ---"
# 1. 拉取远程更新(若有未提交变更则先 stashpull 后再 pop
STASHED=""
if [ -n "$(git status -s)" ]; then
git stash push -u -m "gitea-sync $(date +%s)" 2>/dev/null && STASHED=1 || true
fi
git fetch "$REMOTE" 2>&1 | tee -a "$LOG_FILE" || true
if git ls-remote --exit-code --heads "$REMOTE" "$BRANCH" &>/dev/null; then
git pull "$REMOTE" "$BRANCH" --no-edit 2>&1 | tee -a "$LOG_FILE" || log "pull 失败或冲突,继续尝试推送本地变更"
fi
[ -n "$STASHED" ] && git stash pop 2>/dev/null || true
# 2. 若有本地未提交变更,则提交并推送
STATUS=$(git status -s)
if [ -n "$STATUS" ]; then
git add -A
git commit -m "sync: $(date '+%Y-%m-%d %H:%M')" 2>&1 | tee -a "$LOG_FILE" || log "commit failed (nothing to commit or conflict)"
git push "$REMOTE" "$BRANCH" 2>&1 | tee -a "$LOG_FILE" || log "push failed"
else
# 若有已提交但未推送的提交,也推送(仅当远程有此分支且本地比远程多提交时)
if git ls-remote --exit-code --heads "$REMOTE" "$BRANCH" &>/dev/null; then
AHEAD=$(git rev-list "refs/remotes/${REMOTE}/${BRANCH}"..HEAD --count 2>/dev/null || echo 0)
if [ "${AHEAD:-0}" -gt 0 ]; then
git push "$REMOTE" "$BRANCH" 2>&1 | tee -a "$LOG_FILE" || log "push failed"
fi
else
git push -u "$REMOTE" "$BRANCH" 2>&1 | tee -a "$LOG_FILE" || log "push (new branch) failed"
fi
fi
log "--- sync end ---"

View File

@@ -30,7 +30,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
| 要点类型 | 写入位置 | 示例 |
|----------|----------|------|
| 需求清单项 | `开发文档/1、需求/YYYY-MM-DD-需求.md`(当日文件,以日期最新为主) | 会员分润差异化、VIP 手动设置;同步后更新 `1、需求/索引.md` |
| 需求清单项 | `开发文档/1、需求/需求汇总.md` 需求清单表 | 会员分润差异化、VIP 手动设置 |
| 近期讨论 | `开发文档/10、项目管理/运营与变更.md` | 第五部分或新增节 |
| 技术分析 | `临时需求池/``开发文档/8、部署/` | 分润需求-技术分析.md |
| 项目推进 | `开发文档/10、项目管理/项目落地推进表.md` | 第十二节永平落地表 |
@@ -53,7 +53,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
1. **确定角色**根据本次对话涉及目录miniprogram/soul-admin/soul-api/需求文档)推断对应角色
2. **提炼进度**:从对话中提取本次开发完成的内容、当前阶段、待续项
3. **更新项目索引**:打开 `e:\Gongsi\Mycontent\.cursor\agent\开发助理\项目索引\{索引文件名}.md`(索引文件名见步骤 5.1 映射表)
3. **更新项目索引**:打开 `.cursor\agent\开发助理\项目索引\{索引文件名}.md`(索引文件名见步骤 5.1 映射表)
- 在「开发进度」表追加一行,**必须写日期**YYYY-MM-DD
- 视需要更新「项目总结」段落
- 文末「最后更新」改为当前日期
@@ -61,12 +61,12 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
### 4.6 会议收尾(会议结束、散会、会开完了时)
当用户说**「会议结束」「散会」「会开完了」**时,执行会议收尾流程(完整流程见 `e:\Gongsi\Mycontent\.cursor\skills\team-meeting\SKILL.md` 第 4 节):
当用户说**「会议结束」「散会」「会开完了」**时,执行会议收尾流程(完整流程见 `.cursor\skills\team-meeting\SKILL.md` 第 4 节):
1. **生成会议纪要**`e:\Gongsi\Mycontent\.cursor\meeting\YYYY-MM-DD_主题.md`,按 `_模板.md` 填写;**必须包含「问题与作答区」**,将待确认/待澄清项列出为问题表,作答列留空
2. **各角色经验入库**:追加到 `e:\Gongsi\Mycontent\.cursor\agent\{角色目录}\evolution\YYYY-MM-DD.md`(角色→目录见步骤 5.1 映射表)
1. **生成会议纪要**`.cursor\meeting\YYYY-MM-DD_主题.md`,按 `_模板.md` 填写;**必须包含「问题与作答区」**,将待确认/待澄清项列出为问题表,作答列留空
2. **各角色经验入库**:追加到 `.cursor\agent\{角色目录}\evolution\YYYY-MM-DD.md`(角色→目录见步骤 5.1 映射表)
3. **更新项目索引**:各参会角色对应的 `agent/开发助理/项目索引/{索引名}.md` 开发进度表追加一行,写日期
4. **更新会议记录索引**`e:\Gongsi\Mycontent\.cursor\meeting\README.md` 索引表追加
4. **更新会议记录索引**`.cursor\meeting\README.md` 索引表追加
5. **Skill 升级**(若有影响开发规范的决议):更新对应 SKILL-xxx.md
6. **回复**:会议收尾已完成,纪要见 `meeting/YYYY-MM-DD_主题.md`
@@ -83,7 +83,6 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
| 后端开发 | `agent/后端工程师/evolution/` | `agent/开发助理/项目索引/后端.md` |
| 产品经理 | `agent/产品经理/evolution/` | `agent/开发助理/项目索引/产品.md` |
| 测试人员 | `agent/软件测试/evolution/` | `agent/开发助理/项目索引/测试.md` |
| 安全工程师 | `agent/安全工程师/evolution/` | `agent/开发助理/项目索引/团队.md` |
| 助理橙子 | `agent/开发助理/evolution/` | `agent/开发助理/项目索引/助理橙子.md` |
| 跨角色/团队 | `agent/团队/evolution/` | `agent/开发助理/项目索引/团队.md` |
@@ -107,16 +106,16 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
- 应升级的 Skill
2. **写入经验文件**(绝对路径):
- 路径:`e:\Gongsi\Mycontent\.cursor\agent\{角色目录}\evolution\YYYY-MM-DD.md`
- 路径:`.cursor\agent\{角色目录}\evolution\YYYY-MM-DD.md`
- 当天文件不存在则新建;文件名用日期,经验按天存储
3. **更新项目索引**(绝对路径):
- 路径:`e:\Gongsi\Mycontent\.cursor\agent\开发助理\项目索引\{索引名}.md`(见 5.1 映射)
- 路径:`.cursor\agent\开发助理\项目索引\{索引名}.md`(见 5.1 映射)
- 在「开发进度」表追加一行,**必须写日期**YYYY-MM-DD
- 更新文末「最后更新」为当前日期
4. **更新经验清单**
- 路径:`e:\Gongsi\Mycontent\.cursor\agent\开发助理\经验清单.md`
- 路径:`.cursor\agent\开发助理\经验清单.md`
- 在索引表追加一行
5. **升级 Skill**:根据经验类型,更新对应 `.cursor/skills/{skill}/SKILL.md`
@@ -130,10 +129,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
```
开发文档/
├── 1、需求/
│ ├── 索引.md # 主需求 = 日期最新的需求文件
│ ├── YYYY-MM-DD-需求.md # 需求文件按日期命名,以最新为主
│ └── 以界面定需求.md # 界面级需求基准
├── 1、需求/需求汇总.md # 需求清单、业务需求
├── 8、部署/ # 技术方案、部署说明
├── 10、项目管理/
│ ├── 项目落地推进表.md # 里程碑、永平落地
@@ -156,7 +152,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
**小橙**执行:
1. 提炼VIP 手动设置已完成;会员分润差异化待实现;好友优惠仅针对文章
2. 更新 `1、需求/YYYY-MM-DD-需求.md`(当日文件):新增「需求清单」行;同步后更新 `1、需求/索引.md`
2. 更新 `需求汇总.md`:新增「需求清单」行
3. 更新 `运营与变更.md`:第五部分追加近期讨论
4. 回复:已记录并更新开发文档,详见 xxx

View File

@@ -0,0 +1,159 @@
# 卡若创业派对运营技能包
> **打包日期**2026-03-20
> **项目**一场soul的创业实验-永平
> **技能包路径**`.cursor/skills/karuo-party/`
---
## 📦 打包内容
本技能包整合了卡若创业派对的 4 大核心运营技能:
1. **运营报表**Soul派对运营数据全自动写入飞书表格
2. **飞书视频文字下载**:从飞书妙记下载视频和文字
3. **视频切片**:视频转录、高光识别、批量切片、成片输出
4. **多平台分发**:一键分发到抖音/B站/视频号/小红书/快手
---
## 🔐 凭证管理
所有凭证统一存储在 `credentials/` 目录:
### 飞书凭证
- **`.feishu_tokens.json`**:飞书访问令牌(自动刷新)
### 视频平台 Cookies
- **视频号**`cookies/视频号_cookies.json`(有效期 ~24-48h
- **B站**`cookies/B站_cookies.json`(有效期 ~6个月
- **小红书**`cookies/小红书_cookies.json`(有效期 ~1-3天
- **快手**`cookies/快手_cookies.json`(有效期 ~7-30天
- **抖音**`cookies/抖音_cookies.json`(账号封禁中)
---
## 📁 目录结构
```
.cursor/skills/karuo-party/
├── SKILL.md # 主技能入口
├── README.md # 本文件
├── credentials/ # 凭证目录
│ ├── .feishu_tokens.json # 飞书Token
│ └── cookies/ # 平台Cookies
│ ├── 视频号_cookies.json
│ ├── B站_cookies.json
│ ├── 小红书_cookies.json
│ ├── 快手_cookies.json
│ └── 抖音_cookies.json
└── skills/ # 子技能文档
├── 运营报表_SKILL.md
├── 飞书视频文字下载_SKILL.md
├── 视频切片_SKILL.md
└── 多平台分发_SKILL.md
```
---
## 🚀 快速开始
### 1. 运营报表
```bash
FEISHU_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本"
cd "$FEISHU_SCRIPT"
python3 soul_party_to_feishu_sheet.py 115
```
### 2. 飞书视频文字下载
```bash
JIYAO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/智能纪要/脚本"
python3 "$JIYAO_SCRIPT/feishu_minutes_export_github.py" "<妙记链接>"
python3 "$JIYAO_SCRIPT/feishu_minutes_download_video.py" "<妙记链接>"
```
### 3. 视频切片
```bash
VIDEO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/视频切片/脚本"
conda activate mlx-whisper
python3 "$VIDEO_SCRIPT/soul_slice_pipeline.py" --video "<原视频.mp4>" --clips 8
```
### 4. 多平台分发
```bash
DIST_SCRIPT="/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/多平台分发/脚本"
python3 "$DIST_SCRIPT/distribute_all.py" --video-dir "<成片目录>"
```
---
## 📝 使用说明
### 激活方式
当用户提到以下触发词时,自动激活本技能包:
- **运营报表**、**派对填表**、**派对截图**
- **飞书视频下载**、**妙记下载**、**飞书妙记**
- **视频剪辑**、**切片发布**、**视频切片**
- **多平台分发**、**一键分发**、**全平台发布**
- **卡若创业派对**、**派对运营**
### 执行流程
1. **读取对应子技能**:根据用户需求,读取 `skills/` 目录下对应的 SKILL.md
2. **检查凭证**:确认 `credentials/` 目录下相关凭证文件存在且有效
3. **执行命令**按子技能文档中的命令执行路径指向卡若AI原始脚本目录
4. **结果反馈**:执行完成后反馈结果
---
## ⚠️ 注意事项
1. **脚本路径**所有脚本仍在卡若AI原始目录本技能包仅提供技能文档和凭证管理
2. **凭证同步**:凭证更新后需手动复制到本技能包的 `credentials/` 目录
3. **跨平台兼容**macOS 用 `python3`Windows 用 `python`
---
## 🔄 凭证更新
### 飞书 Token
```bash
cd "/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本"
python3 auto_log.py
# 更新后,将 .feishu_tokens.json 复制到本技能包的 credentials/ 目录
```
### 平台 Cookies
各平台 Cookie 文件位于 `credentials/cookies/` 目录。更新方式:
- **视频号**:浏览器登录后,使用 `cookie_manager.py` 提取
- **B站**:使用 `bilibili-api-python` 自动获取
- **小红书/快手**Playwright 自动化登录后提取
---
## 📚 相关文档
- **主技能入口**`SKILL.md`
- **卡若创业派对项目**`/Users/karuo/Documents/个人/卡若AI/02_卡人/水岸_项目管理/卡若创业派对/README.md`
- **运营报表脚本**`/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本/`
- **视频切片脚本**`/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/视频切片/脚本/`
- **多平台分发脚本**`/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/多平台分发/脚本/`
---
## 📋 版本记录
| 版本 | 日期 | 说明 |
|:---|:---|:---|
| 1.0 | 2026-03-20 | 初版:整合运营报表、视频切片、多平台分发、飞书视频文字下载 4 大技能,统一凭证管理 |

View File

@@ -0,0 +1,233 @@
---
name: 卡若创业派对运营
description: >
卡若创业派对全链路运营技能包。包含运营报表、视频切片、多平台分发、飞书视频文字下载等核心能力。
所有凭证飞书TOKEN、各平台Cookies统一管理在 credentials/ 目录。
当用户提到 运营报表、视频切片、多平台分发、飞书视频下载、派对运营、卡若创业派对 时自动激活。
triggers: 运营报表、视频切片、多平台分发、飞书视频下载、派对运营、卡若创业派对、派对填表、视频剪辑、一键分发、妙记下载
owner: 水岸
group: 运营
version: "1.0"
updated: "2026-03-20"
---
# 卡若创业派对运营 Skill 包
> **项目定位**Soul 创业派对全链路——从派对结束到内容变现
> **技能包路径**`.cursor/skills/karuo-party/`
> **凭证目录**`credentials/`飞书TOKEN、各平台Cookies
---
## 一、技能包组成
本技能包包含以下 4 个核心子技能:
| # | 技能名 | 文件路径 | 触发词 | 用途 |
|:--|:---|:---|:---|:---|
| ① | Soul派对运营报表 | `skills/运营报表_SKILL.md` | 运营报表、派对填表、派对截图 | 截图→飞书表格→发群 |
| ② | 飞书视频文字下载 | `skills/飞书视频文字下载_SKILL.md` | 妙记下载、飞书视频、飞书妙记 | 文字+视频→本地 |
| ③ | 视频切片 | `skills/视频切片_SKILL.md` | 视频剪辑、切片发布 | 原视频→转录→高光→成片 |
| ④ | 多平台分发 | `skills/多平台分发_SKILL.md` | 一键分发、全平台发布 | 成片→抖音/B站/视频号/小红书/快手 |
---
## 二、凭证管理
所有凭证统一存储在 `credentials/` 目录:
### 2.1 飞书凭证
| 文件 | 说明 | 用途 |
|:---|:---|:---|
| `.feishu_tokens.json` | 飞书访问令牌 | 运营报表、智能纪要、素材库 |
**Token 自动刷新**:所有脚本遇 401 自动用 refresh_token 刷新,无需手动。
### 2.2 视频平台 Cookies
| 平台 | Cookie 文件 | 有效期 | 状态 |
|:---|:---|:---|:---|
| 视频号 | `cookies/视频号_cookies.json` | ~24-48h | ✅ 可用 |
| B站 | `cookies/B站_cookies.json` | ~6个月 | ✅ 可用 |
| 小红书 | `cookies/小红书_cookies.json` | ~1-3天 | ✅ 可用 |
| 快手 | `cookies/快手_cookies.json` | ~7-30天 | ⚠️ 需检查 |
| 抖音 | `cookies/抖音_cookies.json` | ~2-4h | ❌ 账号封禁 |
**Cookie 管理**`cookie_manager.py` 统一管理自动迁移、API 预检、防重复登录。
---
## 三、快速使用
### 3.1 运营报表(派对结束后)
```bash
# 路径指向卡若AI原始脚本目录
FEISHU_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本"
cd "$FEISHU_SCRIPT"
python3 auto_log.py # 刷新Token首次或过期时
python3 soul_party_to_feishu_sheet.py 115 # 填表+发群
```
**详细流程**:见 `skills/运营报表_SKILL.md`
### 3.2 飞书视频文字下载
```bash
JIYAO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/智能纪要/脚本"
# 导出文字
python3 "$JIYAO_SCRIPT/feishu_minutes_export_github.py" "<妙记链接>" -o "/Users/karuo/Documents/聊天记录/soul"
# 下载视频
python3 "$JIYAO_SCRIPT/feishu_minutes_download_video.py" "<妙记链接>" -o "/Users/karuo/Movies/soul视频/原视频"
```
**详细流程**:见 `skills/飞书视频文字下载_SKILL.md`
### 3.3 视频切片
```bash
VIDEO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/视频切片/脚本"
eval "$(~/miniforge3/bin/conda shell.zsh hook)"
conda activate mlx-whisper
python3 "$VIDEO_SCRIPT/soul_slice_pipeline.py" --video "<原视频.mp4>" --clips 8 --two-folders
```
**详细流程**:见 `skills/视频切片_SKILL.md`
### 3.4 多平台分发
```bash
DIST_SCRIPT="/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/多平台分发/脚本"
# 定时排期第1条立即后续 30-120min 随机间隔
python3 "$DIST_SCRIPT/distribute_all.py" --video-dir "<成片目录>"
# 立即全部发布
python3 "$DIST_SCRIPT/distribute_all.py" --now
```
**详细流程**:见 `skills/多平台分发_SKILL.md`
---
## 四、完整流程(派对结束后)
### Phase 1数据入库
1. **运营报表**:提取效果数据 → 填表 → 发群
2. **飞书妙记**:导出文字 → 下载视频
### Phase 2智能纪要
1. 提炼纪要 JSON
2. 生成纪要 HTML→PNG
3. 纪要图入报表
4. 纪要图发群
### Phase 3视频生产
1. **视频切片**:转录 → 高光识别 → 批量切片 → 增强
2. **多平台分发**:成片 → 5平台发布定时排期
### Phase 4文章内容
1. 写第9章文章
2. 上传小程序
3. 推送飞书群
**详细流程**见卡若AI项目 `02_卡人/水岸_项目管理/卡若创业派对/README.md`
---
## 五、凭证更新
### 5.1 飞书 Token 更新
```bash
cd "/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本"
python3 auto_log.py
```
更新后,将 `.feishu_tokens.json` 复制到本技能包的 `credentials/` 目录。
### 5.2 平台 Cookie 更新
各平台 Cookie 文件位于 `credentials/cookies/` 目录。更新方式:
1. **视频号**:浏览器登录后,使用 `cookie_manager.py` 提取
2. **B站**:使用 `bilibili-api-python` 自动获取
3. **小红书/快手**Playwright 自动化登录后提取
更新后Cookie 文件会自动同步到本技能包。
---
## 六、目录结构
```
.cursor/skills/karuo-party/
├── SKILL.md # 本文件(主入口)
├── README.md # 说明文档
├── credentials/ # 凭证目录
│ ├── .feishu_tokens.json # 飞书Token
│ └── cookies/ # 平台Cookies
│ ├── 视频号_cookies.json
│ ├── B站_cookies.json
│ ├── 小红书_cookies.json
│ ├── 快手_cookies.json
│ └── 抖音_cookies.json
└── skills/ # 子技能文件
├── 运营报表_SKILL.md
├── 飞书视频文字下载_SKILL.md
├── 视频切片_SKILL.md
└── 多平台分发_SKILL.md
```
---
## 七、使用说明
### 7.1 激活方式
当用户提到以下触发词时,自动激活本技能包:
- **运营报表**、**派对填表**、**派对截图**
- **飞书视频下载**、**妙记下载**、**飞书妙记**
- **视频剪辑**、**切片发布**、**视频切片**
- **多平台分发**、**一键分发**、**全平台发布**
- **卡若创业派对**、**派对运营**
### 7.2 执行流程
1. **读取对应子技能**:根据用户需求,读取 `skills/` 目录下对应的 SKILL.md
2. **检查凭证**:确认 `credentials/` 目录下相关凭证文件存在且有效
3. **执行命令**按子技能文档中的命令执行路径指向卡若AI原始脚本目录
4. **结果反馈**:执行完成后反馈结果
### 7.3 注意事项
- **脚本路径**所有脚本仍在卡若AI原始目录本技能包仅提供技能文档和凭证管理
- **凭证同步**:凭证更新后需手动复制到本技能包的 `credentials/` 目录
- **跨平台兼容**macOS 用 `python3`Windows 用 `python`
---
## 八、相关文档
- **卡若创业派对项目**`/Users/karuo/Documents/个人/卡若AI/02_卡人/水岸_项目管理/卡若创业派对/README.md`
- **运营报表脚本**`/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本/`
- **视频切片脚本**`/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/视频切片/脚本/`
- **多平台分发脚本**`/Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/多平台分发/脚本/`
---
## 版本记录
| 版本 | 日期 | 说明 |
|:---|:---|:---|
| 1.0 | 2026-03-20 | 初版:整合运营报表、视频切片、多平台分发、飞书视频文字下载 4 大技能,统一凭证管理 |

View File

@@ -0,0 +1,6 @@
# 本机凭证目录
将飞书 token、各平台 cookies 等**仅放在本机**,文件名与结构见上级 `karuo-party` 的 SKILL / README。
- 本目录已在仓库根 `.gitignore` 中忽略,**不要**把真实密钥提交到 Git。
- 若目录为空,按 `skills/karuo-party` 文档从模板复制并重命名即可。

View File

@@ -0,0 +1,170 @@
---
name: 多平台分发
description: >
一键将视频分发到 5 个平台抖音、B站、视频号、小红书、快手
API 优先策略:视频号纯 API、B站 bilibili-api-python、抖音纯 API。
支持定时排期第1条立即发后续 30-120 分钟随机间隔)、并行分发、去重、失败自动重试。
triggers: 多平台分发、一键分发、全平台发布、批量分发、视频分发
owner: 木叶
group: 木
version: "4.0"
updated: "2026-03-11"
---
# 多平台分发 Skillv4.0
> **核心原则**API 发布为主Playwright 为辅。确保确定性地分发到各平台。
> **v4.0 变更**:视频号已切换为纯 API、统一元数据生成器、定时排期优化、简介/标签/分区自动填充。
---
## 一、平台与实现方式
| 平台 | 实现方式 | 定时发布 | Cookie 有效期 | 120 场实测 |
|------|----------|----------|---------------|------------|
| **视频号** | **纯 API**DFS 上传 + post_create | API 原生支持 | ~24-48h | 12/12 成功 |
| **B站** | **bilibili-api-python** API 优先 → Playwright 兜底 | API `dtime` | ~6 个月 | 12/12 成功 |
| **小红书** | Playwright headless 自动化 | UI 定时(降级立即) | ~1-3 天 | 12/12 成功 |
| **快手** | Playwright headless 自动化 | UI 定时 | ~7-30 天 | Cookie 过期 |
| **抖音** | 纯 APIVOD + bd-ticket-guard | API `timing_ts` | ~2-4h | 账号封禁中 |
> **关于视频号官方 API 边界**
> 按《视频号与腾讯相关 API 整理》结论,微信官方目前**没有开放「短视频上传/发布」接口**;本 Skill 中的视频号发布能力,属于对 `https://channels.weixin.qq.com` 视频号助手网页协议的逆向封装DFS 上传 + `post_create`),仅在你本机使用,需自行承担协议变更与合规风险。
> 官方可控能力(直播记录、橱窗、留资、罗盘数据、本地生活等)的服务端 API 入口为:`https://developers.weixin.qq.com/doc/channels/api/`,如需做直播/橱窗/留资集成,可基于该文档在单独 Skill 中扩展。
---
## 二、一键命令
```bash
cd /Users/karuo/Documents/个人/卡若AI/03_卡木/木叶_视频内容/多平台分发/脚本
# 定时排期第1条立即后续 30-120min 随机间隔
python3 distribute_all.py
# 立即全部发布
python3 distribute_all.py --now
# 只发指定平台
python3 distribute_all.py --platforms 视频号 B站
# 自定义视频目录
python3 distribute_all.py --video-dir "/path/to/videos/"
# 检查 Cookie / 重试失败
python3 distribute_all.py --check
python3 distribute_all.py --retry
```
---
## 三、定时排期v4.0 优化)
### 3.1 排期规则
- **第 1 条**:立即发布(`first_delay=0`
- **第 2 条起**:前一条 + random(30, 120) 分钟
- 若总跨度 > 24h自动按比例压缩
- 12 条视频典型跨度 ~10-14h
### 3.2 各平台定时实现
| 平台 | 定时方式 | 参数 |
|------|----------|------|
| B站 | API `meta.dtime` | Unix 时间戳(秒) |
| 视频号 | API 暂不支持原生定时 | 描述中标注时间/手动设置 |
| 抖音 | API `timing_ts` | Unix 时间戳 |
| 快手 | Playwright UI | `schedule_helper.py` |
| 小红书 | Playwright UI | `schedule_helper.py` |
---
## 四、元数据自动生成v4.0 新增)
`video_metadata.py` 根据文件名自动生成各平台差异化内容:
```python
from video_metadata import VideoMeta
meta = VideoMeta.from_filename("AI最大的缺点是上下文太短.mp4")
meta.title("B站") # 优化后的标题
meta.description("B站") # 标题 + 标签 + 品牌标记
meta.tags_str("B站") # AI工具,效率提升,Soul派对,...
meta.bilibili_meta() # B站投稿完整 meta含 tid/tag/desc
meta.title_short() # 小红书短标题≤20字
meta.hashtags("视频号") # #AI工具 #效率提升 ... #小程序 卡若创业派对
```
### 4.1 内容结构
- **标题**:手工优化标题库优先,否则从文件名智能提取
- **简介**:标题 + 换行 + 话题标签 + `#小程序 卡若创业派对`
- **标签**基于关键词匹配AI/创业/副业/Soul 等 12 类)+ 通用标签
- **分区**B站 tid=160生活>日常)
- **风控过滤**`content_filter.py` 自动替换敏感词70+ 映射,严格/宽松分级)
---
## 五、商品链接/小黄车(调研结果)
| 平台 | 功能 | 实现方式 | 状态 |
|------|------|----------|------|
| B站 | 花火计划商品链接 | 需企业认证 + 品牌合作授权 | 需手动配置 |
| 视频号 | 挂小程序 | 视频号主页 > 设置 > 服务菜单 > 小程序 | 需手动配置 |
| 抖音 | 小黄车 | 需开通橱窗(粉丝 ≥1000 | 账号封禁 |
| 快手 | 商品卡片 | 需开通快手小店 | 需手动配置 |
| 小红书 | 商品笔记 | 需开通小红书店铺 | 需手动配置 |
**当前做法**:在描述中统一添加 `#小程序 卡若创业派对` 引导用户搜索。
---
## 六、Cookie 管理
`cookie_manager.py` 统一管理:
- 中央存储:`多平台分发/cookies/{平台}_cookies.json`
- 自动迁移:旧路径 → 中央存储(首次使用时)
- API 预检5 平台各自 auth API 校验有效性
- 防重复登录:有效 Cookie 不触发重新获取
---
## 七、去重机制
- 日志:`publish_log.json`JSON Lines
- 去重键:`(平台名, 视频文件名)`
- 双保险:调度器层 + 平台层
- `--no-dedup` 跳过,`--retry` 重跑失败
---
## 八、目录结构
```
木叶_视频内容/
├── 多平台分发/ ← 本 Skill调度器 + 共享工具)
│ ├── SKILL.md
│ └── 脚本/
│ ├── distribute_all.py # 主调度器 v4
│ ├── video_metadata.py # 统一元数据生成器v4 新增)
│ ├── schedule_generator.py # 定时排期v4: 第1条立即发
│ ├── schedule_helper.py # Playwright 定时 UI 辅助
│ ├── publish_result.py # 统一 PublishResult + 去重
│ ├── title_generator.py # 标题生成(被 video_metadata 取代)
│ ├── content_filter.py # 敏感词过滤70+ 映射)
│ ├── cookie_manager.py # Cookie 统一管理5 平台 API 预检)
│ ├── video_utils.py # 视频处理(封面、元数据)
│ └── publish_log.json # 发布日志
├── 抖音发布/ ← 纯 API账号封禁中
├── B站发布/ ← bilibili-api-python API
├── 视频号发布/ ← 纯 APIDFS 协议v5
├── 小红书发布/ ← Playwright headless
└── 快手发布/ ← Playwright headless
```
---
## 九、依赖
- Python 3.10+
- httpx, bilibili-api-python, playwright, Pillow
- ffmpeg/ffprobe系统已安装
- `playwright install chromium`

View File

@@ -0,0 +1,583 @@
---
name: 视频切片
description: Soul派对视频切片 + 快速混剪 + 切片动效包装(片头/片尾/程序化)+ 剪映思路借鉴(智能剪口播/镜头分割)。触发词含视频剪辑、切片发布、快速混剪、切片动效包装、程序化包装、片头片尾。
group: 木
triggers: 视频剪辑、切片发布、字幕烧录、**快速混剪、混剪预告、快剪串联、切片动效包装、程序化包装、片头片尾、批量封面、视频包装**、镜头切分、场景检测
owner: 木叶
version: "1.3"
updated: "2026-03-03"
---
# 视频切片
> **语言**:所有文档、字幕、封面文案统一使用**简体中文**。soul_enhance 自动繁转简。
> **Soul 视频输出**Soul 剪辑的成片统一导出到 `/Users/karuo/Movies/soul视频/最终版/`,原视频在 `原视频/`,中间产物在 `其他/`。
> **联动规则**:每次执行视频切片时,自动检查是否需要「切片动效包装」或「快速混剪」。若用户提到片头/片尾/程序化包装/批量封面,则联动调用 `切片动效包装/10秒视频` 模板渲染,再与切片合成。若用户提到快速混剪/混剪预告/快剪串联,则在切片或成片生成后再调用 `脚本/quick_montage.py` 输出一条节奏版预告。
## ⭐ Soul派对切片流程默认
```
原始视频 → MLX转录 → 字幕转简体 → 高光识别(API 优先/最佳模型,失败则 Ollama→规则) → 批量切片 → soul_enhance → 输出成片
↑ ↓
提取后立即繁转简+修正错误 封面+字幕(已简体)+加速10%+去语气词
```
**切片时长**:每段为**完整的一个片段**,时长 **30 秒300 秒**,由该完整片段起止时间决定。**标题**用一句**刺激性观点**(见 `Soul竖屏切片_SKILL.md`)。
**提问→回答 结构**若片段内有人提问前3秒优先展示**提问问题**,再播回答;高光识别填 `question``hook_3sec` 与之一致,成片整条去语助词。详见 `参考资料/视频结构_提问回答与高光.md``参考资料/高光识别提示词.md`
**Soul 竖屏专用**:抖音/首页用竖屏成片、完整参数与流程见 → **`Soul竖屏切片_SKILL.md`**(竖屏 498×1080、crop 参数、批量命令)。
### 最新切片风格(当前默认)
以后默认按这套风格出切片与成片:
| 项 | 当前默认风格 |
|------|------|
| **封面** | **Soul 绿 + 半透明质感 + 深色渐变** |
| **前3秒** | **优先提问→回答**,有提问时 Hook = `question` |
| **标题** | **一句刺激性观点**,文件名 = 封面标题 = `highlights.title` |
| **字幕** | 居中、白字黑描边、关键词亮金黄高亮 |
| **节奏** | 去语助词 + 整体加速 10% |
| **成片尺寸** | 竖屏 **498×1080** |
这套风格与 `参考资料/高光识别提示词.md``参考资料/热点切片_标准流程.md``Soul竖屏切片_SKILL.md` 保持一致。
### 一键命令Soul派对专用
#### 一体化流水线(推荐)
```bash
cd 03_卡木/木叶_视频内容/视频切片/脚本
conda activate mlx-whisper
python3 soul_slice_pipeline.py --video "/path/to/soul派对会议第57场.mp4" --clips 6
# 仅重新烧录(字幕转简体后重跑增强)
python3 soul_slice_pipeline.py -v "视频.mp4" -n 6 --skip-transcribe --skip-highlights --skip-clips
# 切片+成片后,额外生成一条快速混剪
python3 soul_slice_pipeline.py -v "视频.mp4" -n 8 --two-folders --quick-montage
```
流程:**转录 → 字幕转简体 → 高光识别 → 批量切片 → 增强**
#### 分步命令
```bash
# 1. 转录MLX Whisper约3分钟/2.5小时视频)
eval "$(~/miniforge3/bin/conda shell.zsh hook)"
conda activate mlx-whisper
mlx_whisper audio.wav --model mlx-community/whisper-small-mlx --language zh --output-format all
# 2. 高光识别API 优先,未配置则 Ollama → 规则;流水线会在读取 transcript 前自动转简体)
python3 identify_highlights.py -t transcript.srt -o highlights.json -n 6
# 需配置 OPENAI_API_KEY 或 OPENAI_API_BASES/KEYS/MODELS默认模型 gpt-4o
# 3. 切片
python3 batch_clip.py -i 视频.mp4 -l highlights.json -o clips/ -p soul
# 4. 增强处理(封面+字幕+加速soul_enhance
python3 soul_enhance.py -c clips/ -l highlights.json -t transcript.srt -o clips_enhanced/
```
### 快速混剪(新增)
适用场景:已经有 `切片/``成片/`,需要快速出一条 2040 秒节奏版预告、招商预热视频、短视频串联版。
**默认策略**
| 项 | 规则 |
|------|------|
| **顺序** | 优先按 `virality_score` / `rank` 排序;无分数时按序号 |
| **取样** | 每条默认截取 **4 秒**高密度片段 |
| **成片目录输入** | 自动跳过前 **2.6 秒**封面,避免混剪里全是封面 |
| **输出** | 统一分辨率、统一节奏后拼成一条 `快速混剪.mp4` |
```bash
# 从成片目录生成快速混剪(推荐)
python3 脚本/quick_montage.py \
-i "/path/to/成片" \
-o "/path/to/快速混剪.mp4" \
-l "/path/to/highlights.json" \
--source-kind final \
-n 8 \
-s 4
# 一体化流水线里直接附带生成
python3 脚本/soul_slice_pipeline.py \
-v "/path/to/原视频.mp4" \
--two-folders \
--quick-montage \
--montage-source finals \
--montage-max-clips 8 \
--montage-seconds 4
```
#### 按章节主题提取推荐第9章单场成片
以**章节 .md 正文**为来源提取核心主题,再在转录稿中匹配时间,不限于 5 分钟、片段数与章节结构一致。详见 `参考资料/主题片段提取规则.md`
```bash
# 从章节生成 highlights再走 batch_clip + soul_enhance
python3 chapter_themes_to_highlights.py -c "第112场.md" -t transcript.srt -o highlights_from_chapter.json
python3 batch_clip.py -i 视频.mp4 -l highlights_from_chapter.json -o clips/ -p soul112
python3 soul_enhance.py -c clips/ -l highlights_from_chapter.json -t transcript.srt -o clips_enhanced/
```
- **主题来源**:章节 .md 按 `---` 分块,每块一个主题;文件名由 batch_clip 按 `前缀_序号_标题` 生成(标题仅保留中文与安全字符)。
### Soul 竖屏成片(横版源 → 竖屏中段去白边)
**约定**:以后剪辑 Soul 视频,成片统一做「竖屏中段」裁剪:横版 1920×1080 只保留中间竖条并去掉左右白边,输出 498×1080 竖屏。
| 步骤 | 说明 |
|------|------|
| 源 | 横版 1920×1080soul_enhance 输出) |
| 1 | 取竖条 608×1080起点 **x=483**(相对画面左) |
| 2 | 裁掉左侧白边 60px、右侧白边 50px → 内容区宽 498 |
| 输出 | **498×1080** 竖屏,仅内容窗口 |
**FFmpeg 一条命令(固定参数):**
```bash
# 单文件。输入为 1920×1080 的 enhanced 成片
ffmpeg -y -i "输入_enhanced.mp4" -vf "crop=608:1080:483:0,crop=498:1080:60:0" -c:a copy "输出_竖屏中段.mp4"
```
**批量对某目录下所有 \*_enhanced.mp4 做竖屏中段:**
```bash
# 脚本目录下执行,或直接调用
python3 脚本/soul_vertical_crop.py --dir "/path/to/clips_enhanced" --suffix "_竖屏中段"
```
参数说明见:`参考资料/竖屏中段裁剪参数说明.md`
### 增强功能说明
| 功能 | 说明 |
|------|------|
| **封面贴片** | 前2.5秒 Hook苹方/思源黑体 |
| **字幕烧录** | 关键词加粗加大亮金黄突出,去语助词+去空格 |
| **加速10%** | 节奏更紧凑,适合短视频 |
### 时间预估
| 步骤 | 2.5小时视频 |
|------|------------|
| MLX转录 | 3分钟 |
| 切片10个 | 2分钟 |
| 增强处理 | 8分钟 |
| **总计** | **约13分钟** |
---
## AI 生成与 LTX 可选集成
在「已有录播 → 转录→高光→切片→成片」主流程外,可选用 **LTX**GitHub: Lightricks/LTX-Video、LTX-2、LTX-Desktop-MPS实现
| 能力 | 用途 |
|------|------|
| **Retake**LTX-2 / LTX Desktop | 对已有视频**某段时间**重生成,替换口误/补拍,再走成片流程 |
| **Text/Image/Audio to video** | AI 生成口播替代、片头片尾、插播片段,生成 mp4 后进 `切片/` 或成片流程 |
| **Video extension** | 片段前后自然延长,衔接切片 |
| **自动 Prompt 增强** | 高光/标题文案 → 更易被生成模型理解,便于 I2V/Retake |
**详细能力表与 API/本地/Desktop 接入**:见 `参考资料/LTX_能力与集成说明.md`
**Soul 竖屏场景**:见 `Soul竖屏切片_SKILL.md` 第九节「AI 生成与 LTX 可选集成」。
**约定**LTX 生成的片段统一经 soul_enhance封面+字幕+竖屏)输出,与录播成片一致。
---
## 📹 通用视频处理
一键处理视频:转录 → 字幕清洗 → 视频增强 → 烧录字幕 → **输出单个成片**
---
## ⚡ 一键命令
```bash
# 最简用法 - 输出: 视频名_带字幕.mp4
python3 /Users/karuo/Documents/个人/卡若AI/04_效率工具/视频切片/scripts/one_video.py -i "视频.mp4"
# 指定输出路径
python3 scripts/one_video.py -i "视频.mp4" -o "成片.mp4"
```
### 处理流程
```
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ 提取音频 │──▶│MLX转录 │──▶│字幕清洗 │──▶│视频增强 │──▶│烧录字幕 │
│ (5秒) │ │(1-3分钟)│ │繁转简 │ │降噪美颜 │ │ │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
┌────────────────┐
│ 单个带字幕成片 │
│ 可直接发布 │
└────────────────┘
```
### 时间预估
| 视频时长 | 处理时间 |
|---------|---------|
| 5分钟 | 1-2分钟 |
| 30分钟 | 5-8分钟 |
| 1小时 | 10-15分钟 |
---
## 🎯 自动优化项
脚本自动完成以下优化,无需手动操作:
| 优化项 | 说明 |
|--------|------|
| 繁转简 | 自动将繁体字幕转为简体 |
| 去语气词 | 删除"嗯"、"啊"、"那个"等 |
| 修正错误 | 自动修正常见转录错误 |
| 音频降噪 | FFT降噪+高低频过滤 |
| 画面美颜 | 亮度+饱和度微调 |
| 音量标准化 | 统一音量级别 |
---
## 📝 手动分步操作
如需更精细控制,可分步执行:
### 1. 转录
```bash
# 激活环境
eval "$(~/miniforge3/bin/conda shell.zsh hook)"
conda activate mlx-whisper
# 提取音频
ffmpeg -y -i "视频.mp4" -vn -ar 16000 -ac 1 audio.wav
# MLX Whisper转录
mlx_whisper audio.wav --model mlx-community/whisper-small-mlx --language zh --output-format srt
```
### 2. 字幕清洗
```bash
# 繁转简+修正错误
python3 scripts/fix_subtitles.py --input transcript.srt --output clean.srt
```
### 3. 视频增强
```bash
# 降噪+美颜
ffmpeg -y -i "视频.mp4" \
-vf "eq=brightness=0.05:saturation=1.1" \
-af "afftdn=nf=-25:nr=10:nt=w,highpass=f=80,lowpass=f=8000,volume=1.2" \
-c:v h264_videotoolbox -b:v 5M \
-c:a aac -b:a 128k \
enhanced.mp4
```
### 4. 烧录字幕
```bash
# Clean版推荐
python3 scripts/burn_subtitles_clean.py -i enhanced.mp4 -s clean.srt -o 成片.mp4
```
---
## 🎨 字幕样式
### 默认样式Clean版
| 元素 | 字号 | 颜色 | 效果 |
|------|------|------|------|
| 内容字幕 | 42px竖屏/ 36px横屏 | 白色 | 黑色描边,无阴影 |
| 关键词 | 同上 | 金黄色 | 自动高亮 |
### 关键词高亮列表
自动高亮的关键词(金黄色):
- 数字100万、30万、10万、5万、1万
- 概念私域、AI、自动化、矩阵、IP、获客、变现、转化
- 平台:抖音、公众号、微信、存客宝
---
## 🔊 音频处理参数
| 滤镜 | 作用 | 参数 |
|------|------|------|
| highpass | 去低频杂音 | f=80Hz |
| lowpass | 去高频噪音 | f=8000Hz |
| afftdn | FFT降噪 | nf=-25, nr=10 |
| volume | 音量调整 | 1.2倍 |
---
## 📁 脚本列表
| 脚本 | 功能 | 使用频率 |
|------|------|---------|
| **soul_slice_pipeline.py** | Soul 切片一体化流水线 | ⭐⭐⭐ 最常用 |
| **soul_enhance.py** | 封面+字幕(简体)+加速+去语气词 | ⭐⭐⭐ |
| **soul_vertical_crop.py** | Soul 竖屏中段批量裁剪横版→498×1080 去白边) | ⭐⭐⭐ |
| **kill_ffmpeg_when_clip_done.py** | 剪辑结束后自动关掉 ffmpeg监视剪映/PID 或立即杀) | ⭐ 按需 |
| **scene_detect_to_highlights.py** | 镜头/场景检测 → highlights.jsonPySceneDetect可接 batch_clip | ⭐⭐ |
| chapter_themes_to_highlights.py | 按章节 .md 主题提取片段本地模型→highlights.json | ⭐⭐⭐ |
| identify_highlights.py | 高光识别API 优先→Ollama→规则默认 gpt-4o | ⭐⭐ |
| batch_clip.py | 批量切片 | ⭐⭐ |
| one_video.py | 单视频一键成片 | ⭐⭐ |
| burn_subtitles_clean.py | 字幕烧录(无阴影) | ⭐ |
| fix_subtitles.py | 字幕清洗(繁转简) | ⭐ |
---
## 🛠 环境配置
### 已安装默认使用MLX Whisper
- **MLX Whisper**: `~/miniforge3/envs/mlx-whisper`**默认转录引擎**
- Apple Silicon优化比CPU Whisper快10倍+
- 2.5小时视频转录仅需3分钟
- **字体**: `03_卡木/木叶_视频内容/视频切片/fonts/`(优先)
- **字幕**: 统一简体中文soul_enhance 自动繁转简)
### 转录命令(默认)
```bash
# 激活MLX环境
eval "$(~/miniforge3/bin/conda shell.zsh hook)"
conda activate mlx-whisper
# MLX Whisper转录推荐
mlx_whisper audio.wav --model mlx-community/whisper-small-mlx --language zh --output-format all
```
### 高光识别模型API 优先)
高光识别默认使用**当前可用最佳模型**:优先走 **OpenAI 兼容 API**(见下),未配置或失败时再用本地 Ollama最后规则兜底。
- **单接口**`OPENAI_API_BASE``OPENAI_API_KEY``OPENAI_MODEL`(默认 `gpt-4o`)。
- **多接口故障切换**`OPENAI_API_BASES``OPENAI_API_KEYS``OPENAI_MODELS`(逗号分隔,按顺序尝试)。
- 不写死密钥,从环境变量读取;详见 `运营中枢/参考资料/卡若AI异常处理与红线.md` 与 API 稳定性规则。
### 依赖检查
```bash
# FFmpeg
ffmpeg -version
# MLX环境
eval "$(~/miniforge3/bin/conda shell.zsh hook)"
conda activate mlx-whisper
python -c "import mlx_whisper; print('OK')"
# Python库
pip3 list | grep -E "moviepy|Pillow|opencc|openai"
```
### 安装依赖
```bash
pip3 install --break-system-packages moviepy Pillow opencc-python-reimplemented
# 镜头切分可选PySceneDetect
pip3 install 'scenedetect[opencv]'
```
---
## 🔧 剪辑结束后自动关 ffmpeg
脚本 **soul_enhance**、**batch_clip**、**soul_slice_pipeline** 在退出时(含 Ctrl+C会自动结束本进程启动的 ffmpeg 子进程,避免剪辑结束后仍占用 CPU。
若使用 **剪映/VideoFusion** 等 GUI 剪辑,可先运行监视脚本,剪辑应用退出后自动杀 ffmpeg
```bash
# 先启动监视,再打开剪映;关掉剪映后会自动结束 ffmpeg
python3 脚本/kill_ffmpeg_when_clip_done.py --app VideoFusion
# 或监视指定 PID
python3 脚本/kill_ffmpeg_when_clip_done.py --pid 12345
# 仅立即杀掉当前所有 ffmpeg
python3 脚本/kill_ffmpeg_when_clip_done.py --kill-now
```
---
## ❓ 常见问题
### Q: 转录不准确?
A: 使用medium模型将脚本中的`whisper-small-mlx`改为`whisper-medium-mlx`
### Q: 字幕太小/太大?
A: 修改`one_video.py`第142行的`font_size`
### Q: 处理太慢?
A:
1. 视频已自动使用VideoToolbox GPU加速
2. 字幕默认限制80条以内
### Q: 输出文件太大?
A: 降低码率:将`-b:v 5M`改为`-b:v 3M`
---
## 🎬 切片动效包装(联动能力)
用 React 程序化生成片头/片尾/封面,与切片产出一键合成。**每次执行视频切片时,若用户提到片头/片尾/包装/批量封面,则联动本能力**。
### 联动规则(必守)
| 场景 | 是否联动 | 操作 |
|:---|:---|:---|
| 用户说片头/片尾/程序化包装/批量封面 | ✓ | 先执行切片 → 渲染动效模板 → 合成 |
| 默认 Soul 切片、单视频成片 | 可选 | 执行后提示可选用切片动效包装 |
### 10秒视频模板卡若AI 品牌)
路径:`视频切片/切片动效包装/10秒视频/`
| Composition | 说明 |
|:---|:---|
| Video10s | 简洁版:渐变 + 标题 + 副标题 |
| Video10sRich | 内容丰富版:粒子 + 极限环 + 流动线条 |
规格:竖屏 1080×192010 秒30fps。
### 一键命令(动效包装)
```bash
cd 03_卡木/木叶_视频内容/视频切片/切片动效包装/10秒视频
# 预览
npm run dev
# 渲染片头(简洁版)
npx remotion render src/index.ts Video10s /Users/karuo/Documents/卡若Ai的文件夹/导出/程序化视频/片头.mp4
# 渲染片头(丰富版)
npx remotion render src/index.ts Video10sRich /Users/karuo/Documents/卡若Ai的文件夹/导出/程序化视频/片头_丰富.mp4
```
### 与切片合成流程
```
切片产出(clips_enhanced/)
【联动】渲染片头/片尾
ffmpeg 合成:片头 + 切片 + 片尾
```
### 参考资料
- 速查:`视频切片/切片动效包装/参考资料/切片动效包装速查.md`
- 官方https://www.remotion.dev/docs
---
## 🎞 剪映思路借鉴与自实现(可选能力)
> 参考 **剪映专业版**`/Applications/VideoFusion-macOS.app`)内可读配置与流程,用开源方案自实现「智能剪口播」与「智能镜头分割」,不依赖剪映二进制。详见:`参考资料/剪映_智能剪口播与智能片段分割_逆向分析.md`。
### 智能剪口播(口播稿 → 按文案/时间轴切片段)
| 剪映逻辑 | 本技能对应实现 |
|----------|----------------|
| 语音→文字 + 时间戳 | **MLX Whisper** 转录 → `transcript.srt` |
| 按文案智能剪、口播稿↔时间轴对齐 | **高光识别**`identify_highlights` / `chapter_themes_to_highlights`)→ `highlights.json``batch_clip` |
| 前端配置键 | `script_ai_cut_config``transcript_options`(仅作对照,不读写剪映) |
**结论**:现有流程「转录 → 字幕转简 → 高光识别 → 批量切片 → soul_enhance」已覆盖「智能剪口播」能力按句/按段细切可与 `transcript.srt` 时间戳结合,在 `highlights.json` 中按句生成条目即可。
### 智能镜头分割(按镜头/场景切分)
剪映 **SceneEditDetection** 思路(仅借鉴思路与参数,算法用开源实现):
- **输入**:帧序列;剪映内部为 96×96 小图 + 数组缓冲。
- **算法思路**:图像特征 + 滑动窗口 + 后处理阈值 → 输出镜头边界。
- **剪映可读参数**`SceneEditDetection/config.json`
`sliding_window_size: 7``img_feat_dims: 128``post_process_threshold: 0.35`、backbone/predhead 模型名(内部用,不引用)。
**自实现方案**:使用 **PySceneDetect**ContentDetector/AdaptiveDetector按阈值与最小场景长度得到切点再转为与 `batch_clip` 兼容的 `highlights.json`
**一键:镜头检测 → highlights → 批量切片 → 增强**
```bash
cd 03_卡木/木叶_视频内容/视频切片/脚本
pip install 'scenedetect[opencv]' # 仅首次
# 镜头检测 → 生成 highlights.json
python3 scene_detect_to_highlights.py -i "原视频.mp4" -o "输出目录/highlights_from_scenes.json" -t 27 --min-scene-len 15
# 用生成的 highlights 做切片 + 增强(与现有流水线一致)
python3 batch_clip.py -i "原视频.mp4" -l "输出目录/highlights_from_scenes.json" -o "输出目录/clips/" -p scene
python3 soul_enhance.py -c "输出目录/clips/" -l "输出目录/highlights_from_scenes.json" -t "输出目录/transcript.srt" -o "输出目录/clips_enhanced/"
```
**参数速查**
| 参数 | 说明 | 建议 |
|------|------|------|
| `--threshold` / `-t` | 内容变化阈值,越大切点越少 | 27可试 2035 |
| `--min-scene-len` | 最小场景长度(帧) | 15 |
| `--min-duration` | 过滤短于 N 秒的片段 | 按需 |
| `--max-clips` / `-n` | 最多保留片段数 | 0=不限制 |
**与「高光切片」二选一**
- **高光切片**:按话题/金句/提问(需转录 + 高光识别),适合口播、访谈。
- **镜头切片**:按画面切换切分,适合多机位、快剪、无稿素材;可先跑 `scene_detect_to_highlights` 再走同一套 `batch_clip` + `soul_enhance`
### 参考资料(剪映与流程)
- **剪映逆向分析**`03_卡木/木叶_视频内容/视频切片/参考资料/剪映_智能剪口播与智能片段分割_逆向分析.md`
- 智能剪口播 H5 路径、智能片段分割 config 与参数、自实现建议与合规说明。
- **热点切片标准流程**`参考资料/热点切片_标准流程.md`(五步、两目录、命令速查)。
- **高光识别提示词**`参考资料/高光识别提示词.md`(提问→回答、节奏感、快速混剪优先片段规则)。
---
## 📊 输出示例
```
输入: 会议录像.mp4 (500MB, 30分钟)
输出: 会议录像_带字幕.mp4 (200MB)
- 中文字幕已烧录
- 音频已降噪
- 画面已优化
- 可直接发布抖音/视频号
```
---
## 🔗 工作目录
```
03_卡木/木叶_视频内容/视频切片/
├── 脚本/
│ ├── soul_slice_pipeline.py # ⭐ Soul 一体化
│ ├── soul_enhance.py # ⭐ 封面+字幕+加速
│ ├── scene_detect_to_highlights.py # 镜头检测→highlights剪映思路自实现
│ ├── one_video.py # 单视频成片
│ └── ...
├── 参考资料/
│ ├── 剪映_智能剪口播与智能片段分割_逆向分析.md # 剪映思路与参数参考
│ ├── 热点切片_标准流程.md
│ └── 竖屏中段裁剪参数说明.md
├── 切片动效包装/ # 联动能力:片头/片尾/程序化
│ ├── 10秒视频/ # React 程序化模板
│ └── 参考资料/切片动效包装速查.md
├── fonts/
└── SKILL.md
```

View File

@@ -0,0 +1,522 @@
---
name: Soul派对运营报表
description: Soul 派对运营数据全自动写入飞书表格(按月份选 2月/3月 标签)→ 会议纪要图片入表 → 发飞书群(数据+纪要图);与智能纪要联动,一站式可执行。含 Token 自动刷新、写入校验、小程序数据、派对录屏链接。完整流程可复制执行,支持基因胶囊打包。
triggers: 运营报表、派对填表、派对截图填表发群、会议纪要上传、本月运营数据、全部月份统计、派对纪要、智能纪要、106场、107场、113场、114场、115场
parent: 飞书管理
owner: 水桥
group: 水
version: "3.0"
updated: "2026-03-04"
---
# Soul 派对运营报表 · 基因胶囊
> **一句话**:派对截图 + TXT → 飞书运营报表(按月份选表)→ 填数据 + 填纪要图 + 派对录屏链接 + 发群(文字 + 图片),与**会议纪要**联动,完整流程可复制执行,可打包为基因胶囊。
---
## 零、完整流程提取(可复制执行)
以下为从「派对结束」到「报表+群消息+纪要图」全链路的**逐步清单**与**一键命令**,便于 AI 或人工按序执行。
### 0.1 流程图
```mermaid
flowchart LR
subgraph 输入
A1[关闭页截图] --> A2[小助手弹窗]
A2 --> A3[派对 TXT]
A3 --> A4[飞书妙记链接]
end
subgraph 步骤
B1[1. 注册场次+填数据] --> B2[2. 发群文字]
B2 --> B3[3. 生成纪要图]
B3 --> B4[4. 纪要图入表]
B4 --> B5[5. 纪要图发群]
end
subgraph 输出
C1[飞书运营报表]
C2[飞书群消息]
end
A1 --> B1
B1 --> C1
B2 --> C2
B4 --> C1
B5 --> C2
```
### 0.2 前置条件
| 项 | 说明 |
|:---|:---|
| Python 3 + requests | `pip3 install requests` |
| 飞书 Token | 脚本目录下 `.feishu_tokens.json`,过期时运行 `python3 auto_log.py` |
| 场次已注册 | 在 `soul_party_to_feishu_sheet.py` 中已添加 ROWS、SESSION_DATE_COLUMN、SESSION_MONTH、PARTY_VIDEO_LINKS可选、MINIPROGRAM_EXTRA / MINIPROGRAM_EXTRA_3可选 |
| 派对 TXT | 如 `soul 派对 115场 20260304.txt`,用于纪要文本/纪要图 |
### 0.3 逐步命令(以 115 场为例)
| 步 | 动作 | 输入 | 命令 | 输出/校验 |
|:---|:---|:---|:---|:---|
| 1 | 填效果数据+小程序+派对录屏+发群 | 场次号 115 | `cd 飞书管理/脚本 && python3 soul_party_to_feishu_sheet.py 115` | 控制台见「已写入」「已同步推送到飞书群」「已写入派对录屏链接」 |
| 2 | 纪要文本入表(可选) | TXT 路径、日期列 4 | `python3 write_party_minutes_from_txt.py "/path/to/soul 派对 115场 20260304.txt" 4` | 控制台见「已写入派对智能纪要到今日总结」 |
| 3 | 生成纪要图 | 见智能纪要 Skill | JSON→HTML→截图输出到 `卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png` | 得到 PNG 文件 |
| 4 | 纪要图入表 | PNG 路径、sheet-id、date-col | `python3 feishu_write_minutes_to_sheet.py --party-image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4` | 控制台见「已上传派对智能纪要图片」 |
| 5 | 纪要图发群 | PNG 路径 | `cd 智能纪要/脚本 && python3 send_to_feishu.py --image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png"` | 飞书群收到长图 |
**路径约定**:飞书管理脚本目录 = `02_卡人/水桥_平台对接/飞书管理/脚本/`;智能纪要脚本 = `02_卡人/水桥_平台对接/智能纪要/脚本/`;报告输出 = `卡若Ai的文件夹/报告/`
### 0.4 一键顺序命令块(复制即用)
```bash
# 假设已配置 115 场且 TXT 与报告路径如下,按顺序执行
FEISHU_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本"
JIYAO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/智能纪要/脚本"
REPORT="/Users/karuo/Documents/卡若Ai的文件夹/报告"
TXT="/Users/karuo/Documents/聊天记录/soul/soul 派对 115场 20260304.txt"
cd "$FEISHU_SCRIPT"
python3 auto_log.py
python3 soul_party_to_feishu_sheet.py 115
python3 write_party_minutes_from_txt.py "$TXT" 4
# 纪要图需先按智能纪要 Skill 生成 HTML 再截图得到 PNG再执行
# python3 feishu_write_minutes_to_sheet.py --party-image "$REPORT/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4
# cd "$JIYAO_SCRIPT" && python3 send_to_feishu.py --image "$REPORT/soul_115场_智能纪要_20260304.png"
```
### 0.5 新场次从零到完成清单
1. **在 `soul_party_to_feishu_sheet.py` 中**:添加 `ROWS['116']``SESSION_DATE_COLUMN['116']``SESSION_MONTH['116']`,以及在 `_maybe_send_group``date_label``src_date` 中加 `'116'`;若需派对录屏则填 `PARTY_VIDEO_LINKS['116']`;若需小程序则填 `MINIPROGRAM_EXTRA_3['5']`3 月 5 日)。
2. **执行填表**`python3 soul_party_to_feishu_sheet.py 116`
3. **可选**:纪要文本 `write_party_minutes_from_txt.py "<txt>" 5`;纪要图按智能纪要生成后 `feishu_write_minutes_to_sheet.py --party-image <png> --sheet-id bJR5sA --date-col 5`,再 `send_to_feishu.py --image <png>`
### 0.6 故障排查速查
| 现象 | 处理 |
|:---|:---|
| 未找到日期列 | 先 `python3 auto_log.py` 再重试;确认 SESSION_DATE_COLUMN、SESSION_MONTH 与表头一致 |
| 90202 wrong range | 单格写入时 range 写成 `E29:E29` 形式 |
| 派对录屏未写入 | 检查 PARTY_VIDEO_LINKS 是否非空且格式为完整 URL |
| 小程序数据未写入 | 3 月用 MINIPROGRAM_EXTRA_3键为当月「日期号」如 '4' |
| 飞书群未收到 | 检查 Webhook、机器人是否启用 |
---
## 一站式完整流程(填数据 → 填图片 → 发群)
**目标**:同一场派对做完「填运营报表数据 → 把会议纪要图片填进报表 → 把纪要图发到飞书群」,顺序执行、流程清晰。
| 步骤 | 动作 | 命令 / 说明 |
|:---|:---|:---|
| **1** | **填数据 + 发群(文字)** | `cd 飞书管理/脚本`<br/>`python3 soul_party_to_feishu_sheet.py 115`<br/>→ 效果数据写入当月表对应日期列,并**自动推送竖状文字到飞书群**(含报表链接) |
| **2** | **生成会议纪要图** | 按 **智能纪要 Skill**`02_卡人/水桥_平台对接/智能纪要/SKILL.md`txt → JSON → HTML → 截图 PNG输出到 `卡若Ai的文件夹/报告/` |
| **3** | **填图片到报表** | `cd 飞书管理/脚本`<br/>`python3 feishu_write_minutes_to_sheet.py --party-image "<报告路径>/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4`<br/>→ 纪要图写入运营报表「今日总结」对应列3 月 115 场 = 第 4 列) |
| **4** | **把纪要图发到飞书群** | `cd 智能纪要/脚本`<br/>`python3 send_to_feishu.py --image "<报告路径>/soul_115场_智能纪要_20260304.png"`<br/>→ 默认 Webhook 为**运营报表同一飞书群**,群内会收到纪要长图 |
**执行顺序**1 → 2 → 3 → 4即可完成「数据入表 + 纪要图入表 + 群内先收文字再收纪要图」。
- **2 月场次**:步骤 3 不传 `--sheet-id`/`--date-col` 时,默认写 2 月表 19/20 列;步骤 4 不变。
- **同群**:运营报表发群与纪要图发群使用同一 Webhook见 1.3),群内先看到场次数据,再看到纪要图。
---
## 快速开始30 秒上手)
```bash
# ❶ 安装依赖(一次性)
pip3 install requests
# ❷ 刷新飞书 Token每天首次或 Token 过期时)
cd 飞书管理/脚本 && python3 auto_log.py
# ❸ 写入派对效果数据(自动选 2月/3月 工作表 + 发群)
python3 soul_party_to_feishu_sheet.py 115
# ❹ 生成派对智能纪要文本并写入「今日总结」(可选,与纪要图二选一或都做)
python3 write_party_minutes_from_txt.py "/path/to/soul 派对 115场 20260304.txt" 4
# ❺ 批量写入小程序数据(可选)
python3 write_miniprogram_batch.py
```
所有脚本路径:飞书管理相关在 `飞书管理/脚本/`,纪要生成与发图在 `智能纪要/脚本/`。**3 月场次**会自动写入 3 月工作表标签,不会误写到 2 月。
---
## 一、完整配置清单
### 1.1 飞书应用
| 项目 | 值 |
|:---|:---|
| App ID | `cli_a48818290ef8100d` |
| App Secret | `dhjU0qWd5AzicGWTf4cTqhCWJOrnuCk4` |
| 授权回调 | `http://localhost:5050/api/auth/callback` |
| 权限 | `wiki:wiki` `docx:document` `drive:drive` |
### 1.2 运营报表(飞书电子表格)
| 项目 | 值 |
|:---|:---|
| 表格链接2月 | https://cunkebao.feishu.cn/wiki/wikcnIgAGSNHo0t36idHJ668Gfd?sheet=7A3Cy9 |
| 表格链接3月 | https://cunkebao.feishu.cn/wiki/wikcnIgAGSNHo0t36idHJ668Gfd?sheet=bJR5sA |
| spreadsheet_token | `wikcnIgAGSNHo0t36idHJ668Gfd` |
| 2 月 sheet_id | `7A3Cy9` |
| 3 月 sheet_id | `bJR5sA` |
| 表格结构 | A 列=指标名,第 1 行=日期1、2…第 2 行可含「113场」「114场」等第 3~12 行=效果数据,第 15 行=小程序访问,第 28 行=今日总结,第 29 行=派对录屏(飞书妙记链接) |
| 月份选择 | 脚本按 `SESSION_MONTH` 自动选 2 月或 3 月工作表,避免串月 |
### 1.3 飞书群 Webhook报表数据 + 纪要图同群)
| 项目 | 值 |
|:---|:---|
| Webhook URL | `https://open.feishu.cn/open-apis/bot/v2/hook/34b762fc-5b9b-4abb-a05a-96c8fb9599f1` |
| 用途 | ① 填表后自动推送竖状格式消息(场次数据+报表链接);② 会议纪要图片发群(智能纪要 `send_to_feishu.py --image` 默认即此 Webhook |
### 1.4 Token 管理
| 项目 | 说明 |
|:---|:---|
| Token 文件 | 脚本同目录 `.feishu_tokens.json` |
| 含字段 | `access_token``refresh_token``auth_time` |
| 自动刷新 | 所有脚本遇 401 自动用 refresh_token 刷新,无需手动 |
| 手动刷新 | `python3 auto_log.py` (静默刷新,不需浏览器) |
---
## 二、脚本清单与用途
### 2.1 核心脚本(日常使用)
| 脚本 | 功能 | 命令 |
|:---|:---|:---|
| `soul_party_to_feishu_sheet.py` | 按场次写入效果数据到**当月工作表**对应日期列 + 飞书群推送2 月/3 月自动选标签) | `python3 soul_party_to_feishu_sheet.py 115` |
| `write_party_minutes_from_txt.py` | 从 TXT 生成智能纪要**文本**写入「今日总结」行(需指定日期列号) | `python3 write_party_minutes_from_txt.py "<txt路径>" 4` |
| `auto_log.py` | Token 刷新 + 飞书日志写入 | `python3 auto_log.py` |
### 2.2 辅助脚本
| 脚本 | 功能 | 命令 |
|:---|:---|:---|
| `feishu_write_minutes_to_sheet.py` | 会议纪要/派对总结**图片**上传到「今日总结」对应日期列(默认 2 月 19/20 日列3 月某场需指定 sheet 与日期列;**发群**需另执行智能纪要 `send_to_feishu.py --image` | `python3 feishu_write_minutes_to_sheet.py [内部图] [派对图]`<br/>3 月 115 场:`--party-image <png路径> --sheet-id bJR5sA --date-col 4` |
| `feishu_sheet_monthly_stats.py` | 月度运营数据统计 | `python3 feishu_sheet_monthly_stats.py 2``all` |
| `write_miniprogram_to_sheet.py` | **单日**写入小程序三核心数据(访问次数、访客、交易金额) | `python3 write_miniprogram_to_sheet.py 23 55 55 0` |
| `write_miniprogram_batch.py` | **批量**将 `MINIPROGRAM_EXTRA` 中所有日期的小程序数据写入报表 | `python3 write_miniprogram_batch.py` |
### 2.3 派对录屏链接(自动写入)
填表时若在 `soul_party_to_feishu_sheet.py` 中配置了 `PARTY_VIDEO_LINKS[场次]`(飞书妙记完整 URL会**自动**写入「派对录屏」行对应列(如 115 场 → E29。新场次需在脚本中补全链接后重新执行该场次填表。
### 2.4 小程序运营数据(自动写入)
每日填表时,若在 `soul_party_to_feishu_sheet.py` 中配置了 **2 月** `MINIPROGRAM_EXTRA`**3 月** `MINIPROGRAM_EXTRA_3`,会**自动**把当日小程序三核心数据写入对应日期列。数据需从 **Soul 小程序 / 微信公众平台 → 小程序 → 统计 → 实时访问、概况** 获取后填入配置:
| 指标 | 数据来源 | 行A 列关键词) |
|:---|:---|:---|
| 访问次数 | 微信公众平台 → 小程序 → 统计 → 实时访问 | 小程序访问 |
| 访客 | 同上 | 访客 |
| 交易金额 | 同上 | 交易金额 |
**配置方式**(在 `soul_party_to_feishu_sheet.py` 中):
```python
# 派对录屏(飞书妙记链接),写入「派对录屏」行
PARTY_VIDEO_LINKS = {
'115': 'https://cunkebao.feishu.cn/minutes/obcnxxxx...', # 从飞书妙记复制
}
# 2 月小程序数据
MINIPROGRAM_EXTRA = {
'23': {'访问次数': 55, '访客': 55, '交易金额': 0}, # 2月23日
}
# 3 月小程序数据113/114/115 场填表时自动写 3 月表)
MINIPROGRAM_EXTRA_3 = {
'4': {'访问次数': 60, '访客': 60, '交易金额': 0}, # 3月4日 115场从 Soul 小程序后台获取后填入
}
```
- 数据来源Soul 小程序 / 微信公众平台 → 小程序 → 统计,每日手动查看后填入
- 填派对表时自动带出:运行 `soul_party_to_feishu_sheet.py` 某场时2 月用 `MINIPROGRAM_EXTRA`、3 月用 `MINIPROGRAM_EXTRA_3` 同列写入小程序三项,并若有 `PARTY_VIDEO_LINKS` 则写入派对录屏行
- 单日写入(仅 2 月表):`python3 write_miniprogram_to_sheet.py 23 55 55 0`(日期列号 访问次数 访客 交易金额)
- 历史补全:在 `MINIPROGRAM_EXTRA` 中配齐多日数据后执行 `python3 write_miniprogram_batch.py`
---
## 三、完整操作流程
**整体顺序**:先执行 **[ 一站式完整流程 ]**(本文件开头)中的 ① 填数据发群 → ② 生成纪要图 → ③ 填图片到报表 → ④ 纪要图发群,再按需做小程序或纪要文本。
### 3.1 每日派对结束后操作(当前流程)
```
输入:派对关闭页截图 + 小助手弹窗截图 + TXT 聊天记录(+ 可选:小程序当日数据)
输出:飞书运营报表(当月标签)写入 + 飞书群推送(文字) + 纪要图入表 + 纪要图发群(与会议纪要联动)
```
**月份与工作表**:脚本根据 `SESSION_MONTH` 自动选择 2 月或 3 月工作表3 月场次(如 113、114、115写入 3 月标签,不会写入 2 月。
#### Step 1提取数据从截图
从派对关闭页和小助手弹窗提取 10 项数据:
| 序号 | 指标 | 来源 |
|:---|:---|:---|
| 1 | 主题 | TXT 提炼 ≤12 字 |
| 2 | 时长(分钟) | 关闭页「派对时长」 |
| 3 | Soul推流人数 | 关闭页「本场获得额外曝光」 |
| 4 | 进房人数 | 关闭页「派对成员」或小助手「进房人数」 |
| 5 | 人均时长 | 小助手「人均时长」 |
| 6 | 互动数量 | 小助手「互动数量」 |
| 7 | 礼物 | 关闭页「本场收到礼物」 |
| 8 | 灵魂力 | 关闭页「收获灵魂力」 |
| 9 | 增加关注 | 关闭页「新增粉丝」或小助手「增加关注」 |
| 10 | 最高在线 | 关闭页「最高在线」 |
#### Step 2在脚本中注册新场次
打开 `soul_party_to_feishu_sheet.py`,在 `ROWS` 字典中添加:
```python
# 格式:'场次号': [主题, 时长, 推流, 进房, 人均, 互动, 礼物, 灵魂力, 关注, 最高在线]
'107': ['主题关键词 ≤12字', 140, 35000, 400, 8, 90, 3, 25, 10, 45],
```
`SESSION_DATE_COLUMN``SESSION_MONTH` 中添加映射(**按月份选工作表标签**3 月填 3 月表):
```python
SESSION_DATE_COLUMN = {'105': '20', '106': '21', '107': '23', '113': '2', '114': '3', '115': '4'}
SESSION_MONTH = {'105': 2, '106': 2, '107': 2, '113': 3, '114': 3, '115': 3}
```
并在 `_maybe_send_group``date_label``src_date` 中为该场次加上对应「X月X日」和 TXT 日期(如 `'115': '3月4日'``'115': '20260304'`)。
#### Step 3执行写入 + 校验
```bash
# 写入效果数据(自动选 2月/3月 表 + 校验 + 发群)
python3 soul_party_to_feishu_sheet.py 115
# 生成智能纪要文本并写入「今日总结」(日期列号 = 当月几号,如 3月4日 填 4
python3 write_party_minutes_from_txt.py "/path/to/soul 派对 115场 20260304.txt" 4
```
成功输出示例3 月场次):
```
✅ 已选 3月 工作表sheet_id=bJR5sA
✅ 已写入飞书表格115场 效果数据(竖列 E3:E12共10格校验通过
✅ 已同步推送到飞书群(竖状格式)
✅ 已写入派对智能纪要到「今日总结」→ 2月4日列校验通过
```
若需将**智能纪要图片**放入「今日总结」并**发到飞书群**:见下节「智能纪要图片上传到报表 + 发群」。
---
## 3.2 智能纪要图片上传到报表 + 发群(十步清单)
**智能纪要 Skill**`02_卡人/水桥_平台对接/智能纪要/SKILL.md`)联动:纪要图写入运营报表「今日总结」对应列,并**发到运营报表同一飞书群**。
| 序号 | 步骤 | 说明 |
|:---|:---|:---|
| 1 | 准备派对 txt | 如 `soul 派对 115场 20260304.txt`(聊天记录/soul |
| 2 | 智能提炼 JSON | 按智能纪要规范从 txt 提炼分享人、重点片段、干货、行动项,生成 `xxx_meeting.json` |
| 3 | 生成 HTML | `智能纪要/脚本/generate_meeting.py --input xxx_meeting.json --output "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.html"` |
| 4 | 导出目录 | HTML/PNG 一律导出到 `卡若Ai的文件夹/报告/`,不落在 Skill 内 |
| 5 | 截图 PNG | `智能纪要/脚本/screenshot.py "<报告路径>.html" --output "<报告路径>.png"` |
| 6 | 确认场次与月份 | 115 场 → 3 月表、日期列 42 月场次用默认 19/20 列 |
| 7 | 上传到报表 | `飞书管理/脚本/feishu_write_minutes_to_sheet.py --party-image "<报告路径>.png" --sheet-id bJR5sA --date-col 4`3 月) |
| 8 | **纪要图发群** | `智能纪要/脚本/send_to_feishu.py --image "<报告路径>.png"`(默认 Webhook = 运营报表群,群内收到纪要长图) |
| 9 | 2 月表 | 不指定时默认 `SHEET_ID=7A3Cy9`派对图→19 列、内部会议→20 列;发群命令同上 |
| 10 | 协作 | 纪要内容与样式以智能纪要 Skill 为准;本 Skill 负责写入报表、Token 及与发群流程衔接 |
**3 月场次参数速查**`--sheet-id bJR5sA``--date-col` = 当月日期(如 4 日填 `4`)。纪要生成与截图命令详见智能纪要 Skill「智能纪要图片上传到运营报表」小节。
---
## 四、写入校验机制
所有写入操作均含**写后读回校验**
| 场景 | 校验方式 |
|:---|:---|
| 效果数据写入 | 写入后读回首格(主题),比对一致才算成功 |
| 智能纪要写入 | 写入后读回单元格内容,检查字数 > 0 |
| Token 过期 | 自动刷新后重试,不降级为追加行(避免写入错误位置) |
| 日期列未找到 | 直接报错退出,不降级为追加行 |
校验未通过时脚本会打印具体差异信息,方便排查。
---
## 五、飞书群推送格式
**两类推送(同一飞书群)**:① 填表后自动推送竖状文字(场次数据+报表链接);② 纪要图发群需执行智能纪要 `send_to_feishu.py --image <png路径>`,默认即本群 Webhook。一站式顺序见文首「一站式完整流程」。
写入成功后自动发送到飞书群竖状格式每行一项。链接按当月工作表变化3 月场次会带 `sheet=bJR5sA`
```
【Soul 派对运营报表】
链接https://cunkebao.feishu.cn/wiki/wikcnIgAGSNHo0t36idHJ668Gfd?sheet=bJR5sA
115场3月4日已登记
主题:破产两次 家庭先于事业
时长分钟156
Soul推流人数36974
进房人数484
人均时长分钟8
互动数量82
礼物1
灵魂力3
增加关注15
最高在线56
数据来源soul 派对 115场 20260304.txt
```
---
## 六、智能纪要生成规则
**文本纪要**`write_party_minutes_from_txt.py` 从派对 TXT 自动提炼结构化纪要:
| 板块 | 内容 |
|:---|:---|
| 关键词 | 从 TXT 头部 `关键词:` 行提取 |
| 一、核心内容 | 按关键词匹配提取退伍军人、AI切入、私域、编导对赌、项目切割等 |
| 二、金句 | 从对话中提炼可操作的建议 |
| 三、下一步 | 行动建议(联系管理、搜索培训等) |
纪要**文本**写入运营报表「今日总结」行、对应日期列(需传入日期列号,如 3 月 4 日传 `4`)。**纪要图片**上传到同一格并**发群**:见 **§3.2 智能纪要图片上传到报表 + 发群**3 月用 `--party-image --sheet-id bJR5sA --date-col <日>`,发群用 `智能纪要/脚本/send_to_feishu.py --image <png>`
---
## 七、跨平台兼容
### macOS推荐
```bash
# 安装依赖
pip3 install requests
# 所有命令直接用 python3
python3 soul_party_to_feishu_sheet.py 106
```
### Windows
```cmd
# 安装依赖
pip install requests
# Windows 用 python不是 python3
python soul_party_to_feishu_sheet.py 106
python write_party_minutes_from_txt.py "C:\Downloads\soul 派对 106场 20260221.txt" 21
python auto_log.py
```
### 路径差异
| 项目 | macOS | Windows |
|:---|:---|:---|
| 脚本目录 | `/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/飞书管理/脚本/` | `C:\Users\用户名\卡若AI\02_卡人\水桥_平台对接\飞书管理\脚本\` |
| Python | `python3` | `python` |
| TXT 路径 | `/Users/karuo/Downloads/xxx.txt` | `C:\Users\用户名\Downloads\xxx.txt` |
| Token 文件 | 脚本同目录 `.feishu_tokens.json`(两个平台一致) | 同左 |
### 环境变量覆盖(可选)
所有配置项均可通过环境变量覆盖,无需改脚本:
```bash
export FEISHU_SPREADSHEET_TOKEN=wikcnIgAGSNHo0t36idHJ668Gfd
export FEISHU_SHEET_ID=7A3Cy9
export FEISHU_GROUP_WEBHOOK=https://open.feishu.cn/open-apis/bot/v2/hook/34b762fc-...
export FEISHU_APP_ID=cli_a48818290ef8100d
export FEISHU_APP_SECRET=dhjU0qWd5AzicGWTf4cTqhCWJOrnuCk4
```
---
## 八、常见问题
| 问题 | 解决 |
|:---|:---|
| `❌ 无法获取飞书 Token` | 运行 `python3 auto_log.py` 刷新 Token |
| `❌ 未找到日期列` | Token 过期导致读表失败,先 `python3 auto_log.py` 再重试 |
| `⚠️ 飞书群推送失败` | 检查 Webhook URL 是否有效、群机器人是否被禁用 |
| `❌ 写入失败 401` | Token 过期,脚本会自动刷新并重试;若仍失败则 `python3 auto_log.py` |
| Windows 中文路径乱码 | 确保终端编码为 UTF-8`chcp 65001` |
| `pip3 not found` | Windows 用 `pip`macOS 可能需 `pip3``python3 -m pip` |
---
## 九、表格结构参考
2 月表sheet=7A3Cy9、3 月表sheet=bJR5sA结构一致
```
表头第1行 [空] | 3月 | 1 | 2 | 3 | 4 | 5 | 6 | ...
第2行 一、效果数据 | | 113场 | 114场 | 115场 | 116场 | ...
第3行 主题 | | xx | xx | xx | |
第4行 时长 | | xx | xx | xx | |
...
第12行 最高在线 | | xx | xx | xx | |
...
第15行 小程序访问| | xx | xx | xx | | ← 访问次数、访客、交易金额
...
第28行 今日总结 | | xx | xx | xx | | ← 智能纪要(文本或图片)
```
`SESSION_DATE_COLUMN``SESSION_MONTH` 决定写入哪一列、哪张表。
---
## 十、新增场次模板
每次新增场次,在 `soul_party_to_feishu_sheet.py` 中改以下几处:
```python
# 1. ROWS 字典加一行主题可带冲击性≤12 字)
'116': ['主题≤12字', 时长, 推流, 进房, 人均, 互动, 礼物, 灵魂力, 关注, 最高在线],
# 2. SESSION_DATE_COLUMN 加日期映射(当月几号)
SESSION_DATE_COLUMN = {..., '116': '5'}
# 3. SESSION_MONTH 加月份3 月场次必填 3否则会写入 2 月表)
SESSION_MONTH = {..., '116': 3}
# 4. _maybe_send_group 内 date_label、src_date 加映射(否则不发群)
# date_label = {..., '116': '3月5日'}
# src_date = {..., '116': '20260305'}
# 5. 若当日有小程序数据,在 MINIPROGRAM_EXTRA 中加:
# MINIPROGRAM_EXTRA = {..., '5': {'访问次数': 60, '访客': 60, '交易金额': 0}}
```
---
## 十一、基因胶囊打包入口
本 Skill 支持打包为基因胶囊,便于继承与分发。打包后产出位于 `卡若Ai的文件夹/导出/基因胶囊/`
```bash
cd /Users/karuo/Documents/个人/卡若AI
python3 "05_卡土/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "02_卡人/水桥_平台对接/飞书管理/运营报表_SKILL.md"
# 或按技能名(在 SKILL_REGISTRY 中匹配)
python3 "05_卡土/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "Soul派对运营报表"
```
打包后将生成:胶囊 JSON、基因胶囊功能流程图.md、说明文档.md含解包命令与引用
---
## 版本记录
| 版本 | 日期 | 说明 |
|:---|:---|:---|
| 1.0 | 2026-02-20 | 初版:截图填表发群 |
| 2.0 | 2026-02-22 | 基因胶囊Token 自动刷新、写入校验、智能纪要、跨平台、完整配置清单 |
| 2.1 | 2026-03-04 | 月份路由2月/3月 工作表分离7A3Cy9 / bJR5sASESSION_MONTH 防串月;支持 113115 场;小程序批量 write_miniprogram_batch运营报表 SKILL 与当前流程同步 |
| 2.2 | 2026-03-04 | **智能纪要上传到报表**§3.2 十步清单txt→JSON→HTML→PNG→feishu_write_minutes_to_sheet与智能纪要 Skill 联动3 月用 --party-image --sheet-id bJR5sA --date-col |
| 2.3 | 2026-03-04 | **会议纪要 + 运营报表 + 发群一站式**:文首新增「一站式完整流程」四步(①填数据发群 ②生成纪要图 ③填图片到报表 ④纪要图发群);飞书群统一:数据推送与纪要图发群同 Webhook纪要图发群用智能纪要 `send_to_feishu.py --image`§3.2 增加「发群」步骤与说明 |
| 3.0 | 2026-03-04 | **完整流程提取 + 基因胶囊**新增「零、完整流程提取」流程图、前置条件、逐步命令表、一键命令块、新场次清单、故障排查派对录屏链接写入E29:E29 范围);§十一 基因胶囊打包入口与 pack 命令 |

View File

@@ -0,0 +1,131 @@
---
name: 飞书视频和文字下载
description: 飞书妙记单条/批量下载视频mp4与文字txt纯 API+Cookie不打开浏览器。含 Cookie 获取链、默认输出目录、查找最早长视频。
triggers: 飞书视频下载、飞书文字下载、妙记下载视频、妙记导出文字、飞书妙记下载、下载飞书视频、下载飞书文字、飞书视频和文字下载
owner: 水桥
group: 水
version: "1.0"
updated: "2026-03-12"
parent_skill: 智能纪要
---
# 飞书视频和文字下载
> **基因能力**:从飞书妙记链接或 object_token命令行下载**视频mp4**与**文字txt**,无需打开浏览器。
> 归属:水桥 · 智能纪要子能力,可独立打包为基因胶囊复用。
---
## 一、默认输出目录
| 类型 | 默认目录 |
|:---|:---|
| **文字txt** | `/Users/karuo/Documents/聊天记录/soul` |
| **视频mp4** | `/Users/karuo/Movies/soul视频/原视频` |
脚本未指定 `-o`/`--output` 时使用上表;解包到其他环境时可修改为本地路径。
---
## 二、权限Cookie 获取链5 级)
妙记**文字导出**与**视频下载**均依赖 Web CookieOpen API 的 tenant_token 无法访问妙记正文/视频)。
1. **cookie_minutes.txt** 第一行(脚本同目录或 `智能纪要/脚本/`
2. **环境变量** `FEISHU_MINUTES_COOKIE`
3. **本机浏览器**browser_cookie3Safari/Chrome/Firefox/Edge
4. **Cursor 内置浏览器**SQLite 明文
`~/Library/Application Support/Cursor/Partitions/cursor-browser/Cookies`
查询 `host_key LIKE '%feishu%' OR host_key LIKE '%cunkebao%'`
5. **手动兜底**:浏览器 F12 → 飞书妙记 list 请求 → 复制 Cookie 到 cookie_minutes.txt
---
## 三、命令行用法
### 3.1 脚本根路径(本基因默认)
```text
SCRIPT_DIR="/Users/karuo/Documents/个人/卡若AI/02_卡人/水桥_平台对接/智能纪要/脚本"
```
解包到其他项目时,将上述路径改为本地「智能纪要/脚本」所在路径。
### 3.2 下载视频(单条)
```bash
# 链接或 object_token 均可
python3 "$SCRIPT_DIR/feishu_minutes_download_video.py" "https://cunkebao.feishu.cn/minutes/obcnc53697q9mj6h1go6v25e"
python3 "$SCRIPT_DIR/feishu_minutes_download_video.py" obcnc53697q9mj6h1go6v25e -o ~/Downloads/
```
- 输出:默认 `原视频/` 下,文件名含标题与日期。
- 依赖:`requests`Cookie 见第二节。
### 3.3 导出文字(单条)
```bash
# 导出为 txt同上需 Cookie
python3 "$SCRIPT_DIR/feishu_minutes_export_github.py" "https://cunkebao.feishu.cn/minutes/obcnc53697q9mj6h1go6v25e" -o "/Users/karuo/Documents/聊天记录/soul"
```
- 输出:默认 `聊天记录/soul` 下 txt 文件。
### 3.4 批量文字(按场次范围)
```bash
python3 "$SCRIPT_DIR/download_soul_minutes_101_to_103.py" --from 90 --to 102
```
### 3.5 查找「最早且时长≥1小时且有画面」的妙记
```bash
python3 "$SCRIPT_DIR/find_oldest_long_video_minute.py"
python3 "$SCRIPT_DIR/find_oldest_long_video_minute.py" --max-status 200
python3 "$SCRIPT_DIR/find_oldest_long_video_minute.py" --list-only
```
- 使用 list API 的 `duration`(毫秒)筛 ≥1 小时,再按 create_time 从早到晚用 status API 筛有 `video_download_url`,输出最早一条的 object_token、标题、日期、时长。
---
## 四、核心 API供二次开发
| 能力 | 方法 | 说明 |
|:---|:---|:---|
| **列表** | `GET /minutes/api/space/list?size=50&space_name=1&last_time={ts}` | 分页用 `last_time` 为上一页最后一条的 create_time |
| **文字** | `POST /minutes/api/export` | params: object_token, format=2, add_speaker=trueHeader: Cookie + Referer + bv-csrf-token |
| **视频** | `GET /minutes/api/status?object_token=xxx` | 返回 `data.video_info.video_download_url`,再 GET 该 URL 流式下载 |
- 域名:`cunkebao.feishu.cn``meetings.feishu.cn`(同一套 Cookie
- list 条目含 `duration`(毫秒)、`create_time``topic``object_token`
---
## 五、脚本清单(依赖父目录 智能纪要/脚本)
| 脚本 | 功能 |
|:---|:---|
| `feishu_minutes_download_video.py` | 单条妙记视频下载status → mp4 |
| `feishu_minutes_export_github.py` | 单条妙记文字导出export → txt |
| `feishu_auth_helper.py` | tenant_token / Cookie 测试、refresh-cookie |
| `cursor_cookie_util.py` | 从 Cursor 浏览器提取 Cookiefeishu/github |
| `download_soul_minutes_101_to_103.py` | 批量场次文字(--from/--to |
| `find_oldest_long_video_minute.py` | 查找最早、时长≥1h、有视频的妙记 |
---
## 六、解包后使用(继承本基因)
1. 将本基因 **unpack** 到目标项目的 `智能纪要/飞书视频文字下载/` 或任意目录。
2. 确保目标环境存在「智能纪要/脚本」或等价脚本目录,并安装 `requests`
3. 把本 SKILL 中 `SCRIPT_DIR` 改为目标环境中的脚本路径。
4. 配置 Cookiecookie_minutes.txt 或 FEISHU_MINUTES_COOKIE 或 Cursor Cookie 提取。
---
## 七、相关文档
- 父技能:`02_卡人/水桥_平台对接/智能纪要/SKILL.md`
- 权限与排查:`智能纪要/参考资料/飞书妙记下载-权限与排查说明.md`
- 账号与 API 索引:`运营中枢/工作台/00_账号与API索引.md`

View File

@@ -79,8 +79,6 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
## 8. 平台合规与能力检测2025 起)
- **隐私按需授权**:涉及用户信息的接口(登录、手机号、位置等)必须在用户**实际触发功能时**再请求授权,禁止在 `app.onLaunch` 中集中请求。需配置《小程序用户隐私保护指引》,使用 `<button open-type="agreePrivacyAuthorization">` 获取同意。
- **getPhoneNumber 必须耦合**`open-type="getPhoneNumber|agreePrivacyAuthorization"`(基础库 2.32.3+),否则无法弹窗获取手机号。同时需在 app.js 的 `onNeedPrivacyAuthorization` 中将该页面加入支持列表,并提供 `showPrivacyModal` + 同意按钮,否则会 resolve(disagree) 导致失败。
- **登录弹窗**:使用公用组件 `components/login-modal`read/my/gift-pay 等页面引入,避免重复实现。
- **能力检测**:使用新 API 前用 `wx.canIUse('api.xxx')` 检测,低版本做降级。
- **Skyline可选**:性能敏感页面可在 `page.json` 中配置 `"renderer": "skyline"`,仍使用 WXML/WXSS。
@@ -106,24 +104,7 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
---
## 11. 原生按钮覆盖定位(避免样式干扰)
- **场景**:在头像、图片等区域需触发 `open-type="chooseAvatar"` 等原生能力时,**禁止用 button 包裹**目标元素,否则会受原生样式影响(灰色矩形、边框等)。
- **正确做法**:用 **button 绝对定位覆盖** 在目标区域上方,与展示元素为同级关系。
- **结构示例**
```html
<view class="avatar-wrap">
<view class="avatar-inner">...</view>
<view class="vip-badge">VIP</view>
<button class="avatar-overlay-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar"></button>
</view>
```
- **样式**`.avatar-wrap { position: relative; }``.avatar-overlay-btn { position: absolute; top: 0; left: 0; width/height 与目标一致; background: transparent; border: none; }``::after { border: none; }`。
- **口诀**:同级覆盖,绝对定位,透明按钮。
---
## 12. 何时使用本 Skill
## 11. 何时使用本 Skill
-**miniprogram/** 下新增或修改页面、组件、utils 时。
- 在小程序内新增或修改任何网络请求路径时(必须保持 `/api/miniprogram/...`)。
@@ -133,6 +114,5 @@ description: Soul 创业派对小程序开发规范。在 miniprogram/ 下编辑
- 做个人中心、设置页布局时(遵循 §7卡片区边距 16rpx
- 做阅读、文章等需长按复制的文本时(遵循 §9text 加 user-select
- 做编辑资料页分享名片时(遵循 §10
- 做头像上传、chooseAvatar 等需 button 触发的原生能力时(遵循 §11用绝对定位覆盖禁止 button 包裹)。
遵循本 Skill 可保证小程序只与 soul-api 的 miniprogram 路由组对接,避免与管理端或 next-project 接口混用。

View File

@@ -39,8 +39,9 @@ cd .cursor/scripts/db-exec && npm install
### 3.2 执行单条 SQL
在**本仓库根目录**下执行(与 `miniprogram/``soul-api/` 同级):
```bash
cd e:\Gongsi\Mycontent
node .cursor/scripts/db-exec/run.js "SELECT 1"
node .cursor/scripts/db-exec/run.js "DESCRIBE orders"
node .cursor/scripts/db-exec/run.js "ALTER TABLE users ADD COLUMN new_field VARCHAR(64) DEFAULT ''"

View File

@@ -192,10 +192,10 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
2. 排除:技术债、规则不清、与稳定版冲突的部分
3. 按**最小功能**拆分,保证每个任务迁移后能完整运行
4. 排期顺序:**界面修改优先** → 大逻辑排后P0逻辑不通→ P1功能缺失→ P2优化
5. 写入需求清单(当日需求文件),形成迁移任务清单
5. 写入需求汇总,形成迁移任务清单
**产出**
- `开发文档/1、需求/YYYY-MM-DD-需求.md` 追加需求(当日文件,以日期最新为主;同步后更新 `1、需求/索引.md`
- `开发文档/1、需求/需求汇总.md` 追加需求
- `开发文档/新版迁移-开发方案与清单.md` 或等价迁移清单
---
@@ -259,7 +259,7 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
4. **逻辑分层**:每个功能过三层(界面/接口/数据)
5. **体验评估**:补充空态、错误态、边界处理
6. **接口规范与冲突**:产出接口规范与冲突清单
7. **抽取需求**:写入需求清单(当日需求文件),形成迁移任务清单
7. **抽取需求**:写入需求汇总,形成迁移任务清单
8. **需求评审(迁移前必做)**:列出功能点 + 样式变更,逐一确认,产出评审清单
9. **回复用户**:给出分析摘要 + 文档路径 + 建议执行顺序;**迁移须在需求评审通过后开始**
@@ -273,7 +273,7 @@ description: 新版快速分析 Skill。甲方/第三方 AI 写的新版本,
| 接口规范与冲突 | `开发文档/新版迁移-接口规范与冲突清单.md` |
| 迁移方案/清单 | `开发文档/新版迁移-开发方案与清单.md``新版功能迁移到稳定版方案.md` |
| **需求评审清单** | `开发文档/新版迁移-需求评审清单.md`(功能点 + 样式变更,含确认状态) |
| 需求清单 | `开发文档/1、需求/YYYY-MM-DD-需求.md`(以日期最新为主) |
| 需求汇总 | `开发文档/1、需求/需求汇总.md` |
若已有同名文档,在其基础上**追加或更新**,不重复创建。

View File

@@ -42,7 +42,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
### 0.3 功能规划与协调变更
1. **输出需求分析**:写入 `临时需求池/YYYY-MM-DD-需求简述.md` 或追加到 `开发文档/1、需求/YYYY-MM-DD-需求.md` 需求清单(以日期最新为主,同步后更新 `1、需求/索引.md`
1. **输出需求分析**:写入 `临时需求池/YYYY-MM-DD-需求简述.md` 或追加到 `需求汇总.md` 需求清单
2. **三端任务拆分**:按上表列出「小程序任务」「管理端任务」「后端任务」
3. **协调变更**:若需更新《以界面定需求》,同步更新界面清单与业务逻辑
4. **指派**:明确各任务对应角色(小程序开发工程师、管理端开发工程师、后端工程师),并给出执行顺序建议(通常:后端 → 小程序;管理端视依赖可并行或后置)
@@ -73,7 +73,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
| 职责 | 说明 | 产出 |
|------|------|------|
| 需求分析 | 业务需求拆解、优先级、技术可行性 | 需求分析文档、临时需求池 |
| 需求文档 | 需求清单、业务规则、验收标准 | 1、需求/YYYY-MM-DD-需求.md以最新为主、运营与变更.md |
| 需求文档 | 需求清单、业务规则、验收标准 | 需求汇总.md、运营与变更.md |
| 验收 | 功能验收、回归检查 | 验收清单、项目推进表 |
| 协调 | 与开发沟通、排期、变更 | 运营与变更、项目落地推进表 |
@@ -83,7 +83,7 @@ description: Soul 创业派对产品经理需求与验收。需求分析、需
| 文档 | 说明 |
|------|------|
| `开发文档/1、需求/` | 需求清单(按日期命名,以最新为主)、业务需求;见 `1、需求/索引.md` |
| `开发文档/1、需求/需求汇总.md` | 需求清单、业务需求 |
| `临时需求池/` | 需求分析、技术分析 |
| `开发文档/10、项目管理/项目落地推进表.md` | 里程碑、永平落地 |
| `开发文档/10、项目管理/运营与变更.md` | 近期讨论、变更记录 |

View File

@@ -25,7 +25,7 @@ description: Soul 创业派对开发团队多角色会议。语义化触发:
```
第零步(可选):回顾历史
→ 使用 Read 工具读取 `e:\Gongsi\Mycontent\.cursor\meeting\README.md` 的索引表
→ 使用 Read 工具读取 `.cursor\meeting\README.md` 的索引表
→ 若议题与近期会议相关Read 最近 12 份纪要(如 YYYY-MM-DD_主题.md
→ 便于延续上次讨论、避免重复决议
@@ -93,10 +93,10 @@ description: Soul 创业派对开发团队多角色会议。语义化触发:
### 4.1 生成会议纪要文件
1. **确定文件名**`YYYY-MM-DD_议题关键词.md`(日期为今天)
2. **创建文件**`e:\Gongsi\Mycontent\.cursor\meeting\YYYY-MM-DD_议题关键词.md`
3. **内容**:按 `e:\Gongsi\Mycontent\.cursor\meeting\_模板.md` 填写完整纪要
2. **创建文件**`.cursor\meeting\YYYY-MM-DD_议题关键词.md`
3. **内容**:按 `.cursor\meeting\_模板.md` 填写完整纪要
4. **问题与作答区**(必须):将「待确认项」「待澄清项」列出为问题表,责任角色标明谁负责回答,作答列留空供后续填写
5. **更新索引**:在 `e:\Gongsi\Mycontent\.cursor\meeting\README.md` 的索引表中追加一行
5. **更新索引**:在 `.cursor\meeting\README.md` 的索引表中追加一行
### 4.2 各角色经验入库(按日期文件)
@@ -115,7 +115,7 @@ description: Soul 创业派对开发团队多角色会议。语义化触发:
```
确定今天日期 YYYY-MM-DD
检查 e:\Gongsi\Mycontent\.cursor\agent\{角色目录}\evolution\YYYY-MM-DD.md 是否存在
检查 `.cursor/agent/{角色目录}/evolution/YYYY-MM-DD.md` 是否存在
不存在 → 创建,写入文件头(# {角色名} 经验记录 - YYYY-MM-DD
从本次会议讨论中,提炼该角色的经验条目追加进去
@@ -123,12 +123,12 @@ description: Soul 创业派对开发团队多角色会议。语义化触发:
更新 agent/开发助理/项目索引/{索引名}.md开发进度表追加一行写日期
```
若有跨角色共享的经验(架构决策、业务规则、路由约定),**必须**同时写入 `e:\Gongsi\Mycontent\.cursor\agent\团队\evolution\YYYY-MM-DD.md`,并在对应角色文件中注明「详见 agent/团队/evolution/」。
若有跨角色共享的经验(架构决策、业务规则、路由约定),**必须**同时写入 `.cursor/agent/团队/evolution/YYYY-MM-DD.md`,并在对应角色文件中注明「详见 agent/团队/evolution/」。
### 4.3 Skill 升级(重要决议时)
若本次会议产生了影响开发规范的决议:
- 更新对应 `e:\Gongsi\Mycontent\.cursor\skills\SKILL-xxx.md`
- 更新对应 `.cursor\skills\SKILL-xxx.md`
- 在会议纪要「各角色经验」节标注「已升级 SKILL-xxx.md」
---
@@ -137,11 +137,11 @@ description: Soul 创业派对开发团队多角色会议。语义化触发:
| 输出物 | 位置 | 负责人 |
|--------|------|--------|
| 会议纪要 | `e:\Gongsi\Mycontent\.cursor\meeting\YYYY-MM-DD_主题.md` | 助理橙子 |
| 各角色经验 | `e:\Gongsi\Mycontent\.cursor\agent\{角色}\evolution\YYYY-MM-DD.md` | 助理橙子 |
| 会议纪要 | `.cursor\meeting\YYYY-MM-DD_主题.md` | 助理橙子 |
| 各角色经验 | `.cursor/agent/{角色}/evolution/YYYY-MM-DD.md` | 助理橙子 |
| 项目索引更新 | agent/开发助理/项目索引/{角色}.md 的开发进度表 | 助理橙子 |
| Skill 升级(按需) | `.cursor/skills/{skill}/SKILL.md` | 助理橙子 |
| 会议记录索引更新 | `e:\Gongsi\Mycontent\.cursor\meeting\README.md` | 助理橙子 |
| 会议记录索引更新 | `.cursor\meeting\README.md` | 助理橙子 |
---

9
.gitignore vendored
View File

@@ -37,3 +37,12 @@ soul-api/soul-api-new
# 备份文件
*.backup
# 本机运营凭证karuo-party保留 credentials/README.md
.cursor/skills/karuo-party/credentials/cookies/
.cursor/skills/karuo-party/credentials/.feishu_tokens.json
.cursor/skills/karuo-party/credentials/*.json
!.cursor/skills/karuo-party/credentials/README.md
# Cursor 索引减负db-exec 依赖(仓库根已有 node_modules/ 规则,此处显式强调子路径)
.cursor/scripts/db-exec/node_modules/