diff --git a/01_卡资(金)/金仓_存储备份/聊天记录管理/fallback/recent_chats_fallback.json b/01_卡资(金)/金仓_存储备份/聊天记录管理/fallback/recent_chats_fallback.json index 7ac6159c..71f70efb 100644 --- a/01_卡资(金)/金仓_存储备份/聊天记录管理/fallback/recent_chats_fallback.json +++ b/01_卡资(金)/金仓_存储备份/聊天记录管理/fallback/recent_chats_fallback.json @@ -1,13 +1,141 @@ { -"updated": "2026-03-27T05:09:45.689139+00:00", +"updated": "2026-03-27T13:31:47.306600+00:00", "conversations": [ { +"对话ID": "042ce191-9b1a-437e-8687-41ee02f83ceb", +"名称": "文件上传和删除管理", +"项目": "服务器", +"首条消息": "处理,并且帮我把已经处理的那些删除的那个附件不上传,把那个已经删除的那些那个文件同步的在服务器上也删除一遍,然后把这个本地的那个改动一改动的文件,并且不要附件,不要上传最小模块的改动的那个文件和新增的那个功能,上传到那个部署到 KR 的宝塔上面", +"创建时间": "2026-03-27T10:29:10.417000+00:00", +"消息数量": 124 +}, +{ +"对话ID": "641eb947-f5d1-49b2-9ee2-88bcbff7120a", +"名称": "用户详情页优化与企业匹配", +"项目": "开发", +"首条消息": "你看就把原有的这个用户管理,那个管理后台的那个用户运营的每一个用户点击进去的界面放换成那个,换成这个用户详情的这一张图吗?就换成用户强行的图。然后还有一点是什么?你要就是咱们过的时候要考虑的权全一些,就是他的几个维度,并且这一张图就不要太长,然后能做成图标的就做成图标,那保持能在一页之内,并且他能后面能匹配这个用户,能匹配推荐到哪一个哪一类型的企业?我们后台能匹配的那些已经登记的企业内,他能直接联系到企业的负责人吗", +"创建时间": "2026-03-27T10:08:44.536000+00:00", +"消息数量": 104 +}, +{ +"对话ID": "12b2c4ba-f01c-4511-bfe5-0adfae01762f", +"名称": "上传到github和gitea 的mbti内", +"项目": "工具维护", +"首条消息": "上传到github和gitea 的mbti内", +"创建时间": "2026-03-27T09:16:29.013000+00:00", +"消息数量": 103 +}, +{ +"对话ID": "43b9822e-69b6-4dd4-b158-81affa752c81", +"名称": "清除病毒或者无用的那个附件跟帮我清除一下,然后告诉我清除了多少,清除了哪些内容,然后把这个网站的那个空大小给帮我压缩了下去", +"项目": "未分类", +"首条消息": "清除病毒或者无用的那个附件跟帮我清除一下,然后告诉我清除了多少,清除了哪些内容,然后把这个网站的那个空大小给帮我压缩了下去", +"创建时间": "2026-03-27T08:56:41.004000+00:00", +"消息数量": 1 +}, +{ +"对话ID": "9dc485d9-d9c1-4eeb-84d1-917b8a089665", +"名称": "客户获客与行为轨迹推送", +"项目": "开发", +"首条消息": "获得客资\n那个参考着一个那个创业实验的这个功能,然后再在咱们的那个后台上面增加一个功能,在这个管理后台里面增加一个功能,这个主要的话就是一个那个还就填写飞书的 VIP账号。填写飞书的那个微博号,把这个。用户运营,把用户运营这一个地方的话,就是用户增加一个推送到那个 Webhook 上面的这么一个功能,是有人去付款,这里面的主要的规则就是第一个有人付款了,付完款测试你完脸之后付款。那支付测试完脸,付完款之后,支付了一块钱之后就直接的去给他去添加,就推送到群里面去,那并且那个推送到群里面去第二个事情的话,就是他的行为轨迹的一个监控,所有买一点行为轨迹的一个监控也同时推到群里面看。他点击了哪一些按钮直接操作,然后最后的话就推送到微博号,然后这个主要的话是在后台直接可以去做配置或者刻字的一个配置。然后这个推送的格式,行为轨迹的格式可以参考这个 IP 的,并且不要重复推送。推送的格式,参考这个格式以及最近的行为是吃的这么一个行为。目前的话就是从点击付款和点击付款获客,然后点击完充值的时候也是直接获客,然后还有他点击完成测试的时候,也是可以获得手机号的时候直接获客,这几个路径帮我那个打通发送到微信", +"创建时间": "2026-03-27T08:18:21.849000+00:00", +"消息数量": 135 +}, +{ +"对话ID": "2d831082-1c62-4a9f-a987-26fa1680c740", +"名称": "测试员", +"项目": "开发", +"首条消息": "测试员\n那个你是这个高级的测试员,然后帮我打开网站每一个页面,包括小程序,每一个页面、每一个接口、每一个中转的服务和网站都做一些测试,一个点、一个按钮的去操作一个页面,每一个页面去截图,去验证逻辑性以及它整个的流通性湿滑度。做一个检查,全面的一个测试。,如果有 bug,直接帮我到开发文档里面写清楚那个 bug 和修复的东西,在需求里面写清楚,形成相应的一个文档。前面的把所有的页面全部检查一遍", +"创建时间": "2026-03-27T06:54:16.245000+00:00", +"消息数量": 92 +}, +{ +"对话ID": "f9cc0e04-c396-4199-b9ca-3135d702a857", +"名称": "超级管理后台", +"项目": "服务器", +"首条消息": "超级管理后台\n超管,超超超级管理后台的话,主要是管理这个里面的各个的那个公司,管你哥哥的那个企业,他的那个能力,你把那个超级管理后台里面的那个企业管理和用户管理,这个是放到第二个标签底下,然后是那个包括你的数小程序买点这里话是放到运营中了。里面换一个位置。那超级管理后台,主要你的用户就是这些用户的话,要看一下相应的那个用户的那个总览窗的第一页,这个另起一个标签,就在那个起运营总览下面,运营总览改成总览,就是用户总览跟企业管理这个独立的独立一个标签出来,然后小程序。埋点跟小程序的那个相关的这个内容,要检测一下这个问题有出错直接帮我处理掉\n", +"创建时间": "2026-03-27T06:47:27.659000+00:00", +"消息数量": 31 +}, +{ +"对话ID": "e9fc1366-4fcc-42e8-adb0-6f34c2a3c1f7", +"名称": "开发ai", +"项目": "飞书", +"首条消息": "开发ai\n/Users/karuo/Documents/开发/3、自营项目/mbti王 那个用卡路 AI 在 MBTI 的这一个项目里面去增加一个开发的五个角色的这一个 AI 来管理这个东西,并且在这五个角色的 AI 里面来把这个 MBTI 的这个开发的相应的功能跟项目发到那个群里面。发到这个群里面,这个是通过 NBTI 的这个 skill 这几个机器的来做这个事情。那把这个记录一下,只发到这个群跟 BTI,这个是跟这个群直接 并且这个进度每开发是一个完整的功能之后才推送到群里面吗?直到完成百分百的时候才推送到群里面,而不是每一次都需都要推送,然后这个是以飞书标签的形式推送,那个只跟 BTI 这里的捆绑了,用先生成那个 NBTI 专用的那个 skill 对 AI 来做这个事情,开发的 AI 来做这个事情。\n\nhttps://open.feishu.cn/open-apis/bot/v2/hook/112d597f-371e-40c2-93ee-ccc3023476cf ", +"创建时间": "2026-03-27T06:39:10.519000+00:00", +"消息数量": 26 +}, +{ +"对话ID": "74e6acde-04f7-4d9c-ae9a-8d0cde68d4af", +"名称": "本地运行", +"项目": "开发", +"首条消息": "本地运行", +"创建时间": "2026-03-27T06:12:14.931000+00:00", +"消息数量": 117 +}, +{ +"对话ID": "63edc42f-34dd-4bb7-89ee-a24cd2107209", +"名称": "管理后台", +"项目": "未分类", +"首条消息": "那个。那个把整个这个 NBTI 的后台它只保留5个板块,第一个板块是概览,第二个板块是用户管理,第三个板块是成交跟订单相关的功能。第四个板块是,就是那个就左侧的那个边栏,第五个板块的话就是那个分销推广的那个管理,那么那个第二个板块的话,这个题库管理这些都是题库,还有那个价格,还有企业余额这一些内容都是在系统设置里面直接合并起来,然后把优化一下管理这个后台首页上面的话要看到所有的那个测试用户的前10个的用户列表。然后把整个首页以在整个的那个项目目标的一个方式来进行一个重构,这个是管理后台的一个普通管理后台的这么一个界面的一个调整。然后里面的功能帮我优化一下,并找 bug 直接修复掉", +"创建时间": "2026-03-27T06:05:52.078000+00:00", +"消息数量": 128 +}, +{ +"对话ID": "124a14d5-034d-470a-85b5-0a2e0de42955", +"名称": "小程序", +"项目": "开发", +"首条消息": "小程序\n\n那个深度服务里面的那个,我的里面那个深度服务的这个界面进行重构。那个把这个专利服务企业服务这个做一个合并。", +"创建时间": "2026-03-27T06:08:42.693000+00:00", +"消息数量": 94 +}, +{ +"对话ID": "45f71cd3-97cd-4d14-9bee-4b7cc3e46173", +"名称": "bug修复", +"项目": "开发", +"首条消息": "bug@mbti王/开发文档/需求/修复 20260327.md 是那个推广中心,也稍微那个隐藏一下,那不要那么明显。", +"创建时间": "2026-03-27T06:04:21.237000+00:00", +"消息数量": 33 +}, +{ +"对话ID": "963ff06c-93d4-499f-91c3-a87985fff951", +"名称": "Promotional center visibility adjustment", +"项目": "开发", +"首条消息": "bug@mbti王/开发文档/需求/修复 20260327.md 是那个推广中心,也稍微那个隐藏一下,那不要那么明显。", +"创建时间": "2026-03-27T05:54:40.605000+00:00", +"消息数量": 1 +}, +{ +"对话ID": "6349a3a6-5fe2-491c-8fe0-68852b6b99a2", +"名称": "获客", +"项目": "存客宝", +"首条消息": "获客插件\n\n那个帮我在论坛点击的时候,现在之前是从网站注册的时候加到存客宝的那个接口,然后现在那个从存客宝的那那些接口里面来获得那个统计存客宝的接口里面来获得相应的那个统计,让我直接可以那个帖子看帖子的时候看完20%点击的时候就需要去注册。并且需要注册的时候,并且可以获得从那个手机号最丝滑的一个形式,帮我思考一下怎么样的最快的一个形式可以让那个跟存科宝对接或者手机号,并且让存科宝直接去添加,那检测一下相应的里边相应的代码,这个是在存科宝获客的这个功能里面。你帮我设计并且思考一下这个如何去操作,实际上最好的一个操作的一个形式,帮我把这个流程做的丝滑一点,并且把这个考虑做全,也做成后台的一个插件,并且告诉直接帮我打开插件的那个页面,做完", +"创建时间": "2026-03-27T05:42:22.674000+00:00", +"消息数量": 104 +}, +{ +"对话ID": "8cbf8c39-8eba-4dde-9131-50742b9b167c", +"名称": "本地运行", +"项目": "未分类", +"首条消息": "本地\n\n运行 数据库使用", +"创建时间": "2026-03-27T05:33:38.915000+00:00", +"消息数量": 86 +}, +{ "对话ID": "50655062-4aa0-4bf7-81e2-925eb8e66179", "名称": "Website plugin for anchor point statistics", "项目": "未分类", "首条消息": "你个,@www.lkdie.com/lkdiecom 这个不是那个整理那个 show 的创业实验,这本书整理的是那个锚点,这里的话是以后是通用型的,所有的这个锚点弄的是网站,这个网站上面的所有的那个锚点,那你要抽象一点,不要指定去搞这个创意文件文档的那个锚点去除掉,然后这个以这个做成这个网站的一个插件的形式做这么一个功能。并且把这个插件安装好那用那个 skill 那个加所有的那个。宝典点击的描锚,点击锚点的统计,在后台里面找一个合适,会是后台里面那个增加这么一个板块,然后把这个添加进去。今天经济后台统计的标签号,标签统计的,以及这个用户推荐绑定的这么一个功能,所有的标签都统计进去,前端的所有的点击,所有的标签都统计进去了。", "创建时间": "2026-03-27T05:03:39.863000+00:00", -"消息数量": 21 +"消息数量": 68 +}, +{ +"对话ID": "16f46d5c-95b6-47fa-978c-cf40f2f44ce1", +"名称": "网站-分析", +"项目": "工具维护", +"首条消息": "网站分析@www.lkdie.com/lkdiecom 详细的分析一下这个网站的内部目录,然后所有的文件及垃圾文件帮我处理一下,正好保持能正常的这个整个的这个文件,然后写好这个整个除了这个 Disco、DS c u z 这个论坛基础功能,还叠加了什么其他的一个功能以及它功能上的。作用,用卡罗 AI 做一个开发文档出来", +"创建时间": "2026-03-27T05:02:48.522000+00:00", +"消息数量": 117 }, { "对话ID": "8df1d11b-731f-43bd-aac9-2c3299e23557", diff --git a/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md b/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md new file mode 100644 index 00000000..54159047 --- /dev/null +++ b/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md @@ -0,0 +1,70 @@ +# 开发五角色与飞书里程碑(间名 · 五方演岗) + +> **真源**:本文件;**勿**在业务项目仓库的 `.cursor/skills/` 下复制正文 Skill。任意仓库开发时由 Agent **按路径读取**本 Skill 执行。 +> **注册**:`SKILL_REGISTRY.md` → **F01e** +> **触发词**:开发五角色、五方演岗、飞书里程碑、完整功能推送、项目里程碑卡片、里程碑通报(飞书) + +## 一、目的 + +用 **五个开发角色** 分工协作(由 Cursor / 卡路 AI 按本 Skill 扮演与自检),在 **任意项目** 交付 **可验收的完整功能** 时,可选地将进度以 **飞书消息卡片(标签式字段)** 推送到 **该项目绑定的唯一群 Webhook**。 + +## 二、五角色定义(抽象、全项目复用) + +| 代号 | 角色 | 核心职责 | +|:---|:---|:---| +| R1 | **产品官** | 需求边界、验收标准、优先级;控制范围蔓延 | +| R2 | **架构师** | API 契约、数据模型、多端/多栈一致性 | +| R3 | **前端** | 页面与交互、样式、埋点与前端联调 | +| R4 | **后端** | 接口、后台、迁移脚本、权限与数据 | +| R5 | **质控与发布** | 自测/回归;**仅**在确认「完整功能」闭环后 **才允许触发飞书推送** | + +协作顺序:R1 验收口径 → R2 定契约 → R3/R4 并行 → R5 确认后推送。 + +## 三、飞书推送规则(强制) + +1. **按项目绑定**:每个项目使用 **独立** 环境变量存 Webhook(示例:`FEISHU_WEBHOOK_MBTI`、`FEISHU_WEBHOOK_SOUL`),**禁止**串项目、串群。 +2. **推送频率**:仅在 **一个完整功能** 完成且 **可交付验收** 时发 **一条**;**禁止**每次小改动、每次对话结束都推。 +3. **阶段 100%**:用户明确约定阶段/版本收尾时,可再发一条 **阶段完成** 总览(与单功能推送不重复刷屏)。 +4. **消息形态**:自定义机器人 `msg_type: interactive`、飞书卡片 **schema 2.0**(见 [自定义机器人](https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot));正文用 **【标签】** 分行展示五角色摘要。 +5. **安全**:Webhook **只放环境变量或私密配置**,**不要**提交到 Git。若群机器人启用了 **自定义关键词**,须保证卡片 `text` 类字段命中关键词;可用 `--keyword-line` 与群设置对齐。 +6. **脚本真源**:与本 Skill 同目录的 `feishu_milestone_notify.py`。 + +### 调用示例 + +```bash +# 通用:指定读取哪个环境变量里的 URL +export FEISHU_WEBHOOK_MILESTONE='https://open.feishu.cn/open-apis/bot/v2/hook/……' +python3 "/Users/karuo/Documents/个人/卡若AI/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/feishu_milestone_notify.py" \ + --webhook-env FEISHU_WEBHOOK_MILESTONE \ + --product "某某项目" \ + --feature "功能一句话" \ + --repo "/path/to/repo" \ + --body $'- 改动点\n- 自测说明' + +# MBTI 王(环境变量名可与群约定) +export FEISHU_WEBHOOK_MBTI='……' +python3 ".../feishu_milestone_notify.py" \ + --webhook-env FEISHU_WEBHOOK_MBTI \ + --product "MBTI王" \ + --keyword-line "MBTI王 项目更新" \ + --feature "……" --body "……" +``` + +干跑:`--dry-run`(只打印 JSON)。 + +## 四、Agent 自检清单(推送前) + +- [ ] 是否 **完整功能** 可独立验收? +- [ ] R3/R4 已联调、R5 已核对主路径? +- [ ] 对应项目的 Webhook 环境变量已配置? +- [ ] 关键词校验(若启用)已通过? +- [ ] 非重复推送(同一功能无新增验收点则不再推)? + +## 五、与业务仓库的关系 + +- **业务仓库**(如 mbti王)可保留 **薄封装脚本**(转发到本目录 `feishu_milestone_notify.py`),或直接在文档中写 **卡若AI 脚本的绝对路径**。 +- **禁止**在业务仓库 `.cursor/skills/` 再放本 Skill 正文;更新 Skill **只改卡若AI 本文件**。 + +## 六、全局规则说明 + +卡若 AI 全局规则中的「飞书群禁发」与 **用户显式授权某一项目、某一 Webhook 做里程碑通报** 并存时,以 **用户对该群、该环境变量的明确授权** 为准;且须遵守本节「按项目绑定、低频、完整功能」约束。 diff --git a/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/feishu_milestone_notify.py b/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/feishu_milestone_notify.py new file mode 100644 index 00000000..92a9f43d --- /dev/null +++ b/04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/feishu_milestone_notify.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +通用:完整功能里程碑 → 飞书群卡片(interactive / schema 2.0)。 +Webhook 从指定环境变量读取,勿写入仓库。 +文档:https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot +""" +from __future__ import annotations + +import argparse +import json +import os +import sys +import urllib.error +import urllib.request + + +def build_card( + *, + product: str, + keyword_line: str, + feature: str, + body_md: str, + milestone_label: str | None, + percent: int | None, + repo_path: str, +) -> dict: + lines = [ + f"**{keyword_line}**", + "", + f"**【项目】** {product}", + f"**【功能】** {feature}", + ] + if milestone_label: + lines.append(f"**【里程碑】** {milestone_label}") + if percent is not None: + lines.append(f"**【进度】** {percent}%") + lines.extend( + [ + f"**【仓库】** `{repo_path}`", + "", + "**【五角色摘要】**", + "【产品】验收口径已对齐", + "【架构】接口/数据与多端一致", + "【前端】页面与交互/埋点已落地", + "【后端】API/后台已联调", + "【质控】本功能可独立验收", + "", + "---", + "", + body_md.strip(), + ] + ) + markdown_content = "\n".join(lines) + header_title = f"{product} · 功能里程碑" + return { + "msg_type": "interactive", + "card": { + "schema": "2.0", + "config": { + "update_multi": True, + "style": { + "text_size": { + "normal_v2": { + "default": "normal", + "pc": "normal", + "mobile": "heading", + } + } + }, + }, + "body": { + "direction": "vertical", + "padding": "12px 12px 12px 12px", + "elements": [ + { + "tag": "markdown", + "content": markdown_content, + "text_align": "left", + "text_size": "normal_v2", + "margin": "0px 0px 0px 0px", + } + ], + }, + "header": { + "title": {"tag": "plain_text", "content": header_title[:50]}, + "subtitle": {"tag": "plain_text", "content": feature[:60]}, + "template": "green", + "padding": "12px 12px 12px 12px", + }, + }, + } + + +def post_webhook(url: str, payload: dict) -> tuple[int, str]: + data = json.dumps(payload, ensure_ascii=False).encode("utf-8") + req = urllib.request.Request( + url, + data=data, + headers={"Content-Type": "application/json; charset=utf-8"}, + method="POST", + ) + try: + with urllib.request.urlopen(req, timeout=30) as resp: + raw = resp.read().decode("utf-8", errors="replace") + return resp.status, raw + except urllib.error.HTTPError as e: + raw = e.read().decode("utf-8", errors="replace") + return e.code, raw + except urllib.error.URLError as e: + return -1, str(e.reason) + + +def main() -> int: + parser = argparse.ArgumentParser(description="飞书里程碑卡片(五角色 Skill · F01e)") + parser.add_argument("--feature", required=True, help="完整功能名称(一句话)") + parser.add_argument( + "--body", + default="", + help="详细说明(Markdown;建议写改动点、涉及端、自测说明)", + ) + parser.add_argument("--milestone", default="", help="可选:里程碑标签") + parser.add_argument("--percent", type=int, default=None, help="可选:进度 0-100") + parser.add_argument( + "--repo", + default="", + help="仓库路径展示用(默认当前目录)", + ) + parser.add_argument( + "--product", + default="项目", + help="项目名称(卡片标题与【项目】行)", + ) + parser.add_argument( + "--keyword-line", + default="", + help="嵌入正文首行,用于飞书机器人自定义关键词命中;默认「{product} 项目更新」", + ) + parser.add_argument( + "--webhook-env", + default="FEISHU_WEBHOOK_MILESTONE", + help="从该环境变量读取 Webhook URL", + ) + parser.add_argument("--dry-run", action="store_true", help="只打印 JSON,不请求") + args = parser.parse_args() + + repo = args.repo.strip() or os.getcwd() + product = args.product.strip() or "项目" + keyword = (args.keyword_line.strip() or f"{product} 项目更新").strip() + + url = os.environ.get(args.webhook_env.strip(), "").strip() + payload = build_card( + product=product, + keyword_line=keyword, + feature=args.feature.strip(), + body_md=args.body or "(无补充说明)", + milestone_label=args.milestone.strip() or None, + percent=args.percent, + repo_path=repo, + ) + + if args.dry_run: + print(json.dumps(payload, ensure_ascii=False, indent=2)) + return 0 + + if not url: + print(f"缺少环境变量 {args.webhook_env}", file=sys.stderr) + return 2 + + status, text = post_webhook(url, payload) + print(text) + if status != 200: + return 1 + try: + j = json.loads(text) + if j.get("code") != 0: + return 1 + except json.JSONDecodeError: + return 1 if status != 200 else 0 + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/BOOTSTRAP.md b/BOOTSTRAP.md index 04ffb6b1..2765dc2b 100644 --- a/BOOTSTRAP.md +++ b/BOOTSTRAP.md @@ -24,6 +24,7 @@ | 触发词 | SKILL 路径 | |:---|:---| | 全栈开发/官网/开发文档 | `04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md` | +| 开发五角色/飞书里程碑/五方演岗 | `04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md`(**F01e**,勿放业务仓 `.cursor/skills`) | | 全栈测试/功能测试 | `04_卡火(火)/火炬_全栈消息/全栈开发/全栈测试/SKILL.md` | | 飞书日志/写飞书 | `02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md` | | 会议纪要/飞书妙记 | `02_卡人(水)/水桥_平台对接/智能纪要/SKILL.md` | diff --git a/SKILL_REGISTRY.md b/SKILL_REGISTRY.md index b3aee417..cbf3a7f2 100644 --- a/SKILL_REGISTRY.md +++ b/SKILL_REGISTRY.md @@ -2,7 +2,7 @@ > **一张表查所有技能**。任何 AI 拿到这张表,就能按关键词找到对应技能的 SKILL.md 路径并执行。 > 80 技能 + Soul技能归口(K01~K03 等补充项,见下文) | 15 成员 | 5 负责人 -> 版本:5.21 | 更新:2026-03-26 +> 版本:5.22 | 更新:2026-03-27 > > **技能配置、安装、删除、掌管人登记** → 见 **`运营中枢/工作台/01_技能控制台.md`**。 @@ -137,6 +137,7 @@ | F01b | 全栈测试 | 火炬 | **全栈测试、功能测试、回归测试、深度测试、E2E测试、API测试、发布测试、测试验收** | `04_卡火(火)/火炬_全栈消息/全栈开发/全栈测试/SKILL.md` | 功能开发后系统化验收:前端/后端/数据库/脚本/发布引擎五维测试;**每完成一个功能必须调用** | | F01c | **项目开发占卜术**(间名 **演门测机**) | 火炬 | **项目开发占卜术、开发占卜、Q门3.0、奇门项目盘、八门复盘、起盘、盘势、门迫** | `04_卡火(火)/火炬_全栈消息/项目开发占卜术/SKILL.md` | 奇门 Q门 3.0 八门健康度扫描;**仅用户点名起盘**时附在复盘 v6.0 五块**之后**,**不**写入标准 🎯 | | F01d | **卡若复盘格式** | 火炬 | **复盘格式、卡若复盘、达成率怎么写、复盘 v6、视频号分发复盘、Human 3.0 复盘** | `04_卡火(火)/火炬_全栈消息/卡若复盘格式/SKILL.md` | v6.0:🎯 三行目标/结果/达成率;💡 Human 3.0 四象限快扫;达成率 0~100% 绑定验收;禁 ➡️/📊 复述与标准 ☯ | +| F01e | **开发五角色与飞书里程碑**(间名 **五方演岗**) | 火炬 | **开发五角色、五方演岗、飞书里程碑、完整功能推送、项目里程碑卡片、里程碑通报、MBTI飞书推送** | `04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md` | 五角色分工 + 仅完整功能后推飞书卡片;脚本与同目录 `feishu_milestone_notify.py`;**勿**在业务仓库 `.cursor/skills` 复制正文 | | F02 | 消息中枢 | 火炬 | WhatsApp、Telegram | `04_卡火(火)/火炬_全栈消息/消息中枢/SKILL.md` | 多平台消息聚合 | | F02a | **艾叶 IM Bridge** | 火炬 | **艾叶、IM、聊天对接、消息网关、微信对接、企业微信对接、飞书对接、WhatsApp对接、网页聊天、IM桥接、通道配置、艾叶IM** | `04_卡火(火)/火炬_全栈消息/艾叶/SKILL.md` | 多平台 IM 网关:个人微信/企业微信/飞书/WhatsApp/网页→卡若AI 对话 | | F03 | 读书笔记 | 火炬 | 拆解这本书、五行拆书 | `04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md` | 五行框架拆书 | diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index 59115237..cda7741f 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -449,3 +449,4 @@ | 2026-03-27 00:01:59 | 🔄 卡若AI 同步 2026-03-27 00:01 | 更新:金仓、火炬、运营中枢工作台 | 排除 >20MB: 12 个 | | 2026-03-27 00:09:17 | 🔄 卡若AI 同步 2026-03-27 00:09 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | | 2026-03-27 12:23:39 | 🔄 卡若AI 同步 2026-03-27 12:23 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | +| 2026-03-27 13:09:53 | 🔄 卡若AI 同步 2026-03-27 13:09 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index e5b0bab7..176c0867 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -452,3 +452,4 @@ | 2026-03-27 00:01:59 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-27 00:01 | 更新:金仓、火炬、运营中枢工作台 | 排除 >20MB: 12 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-27 00:09:17 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-27 00:09 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-27 12:23:39 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-27 12:23 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-27 13:09:53 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-27 13:09 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 12 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | diff --git a/运营中枢/工作台/开发域_Skill模块化索引.md b/运营中枢/工作台/开发域_Skill模块化索引.md index 127169af..3c6a7464 100644 --- a/运营中枢/工作台/开发域_Skill模块化索引.md +++ b/运营中枢/工作台/开发域_Skill模块化索引.md @@ -36,6 +36,7 @@ | 开发文档 1~10 操控 | F09 | 开发文档操控 | `04_卡火(火)/火炬_全栈消息/开发文档操控/SKILL.md` | | 需求 / 计划 | W05、W06 | 需求拆解、任务规划 | `02_卡人(水)/水泉_规划拆解/…` | | 复盘格式 | F01d | 卡若复盘格式 | `04_卡火(火)/火炬_全栈消息/卡若复盘格式/SKILL.md` | +| 五角色协作 + 飞书里程碑(勿放业务仓 skills) | F01e | 开发五角色与飞书里程碑 | `04_卡火(火)/火炬_全栈消息/开发五角色与飞书里程碑/SKILL.md` | | 奇门起盘(仅点名) | F01c | 项目开发占卜术 | `04_卡火(火)/火炬_全栈消息/项目开发占卜术/SKILL.md` | ### M2 · 前端 / UI / 可视化稿 diff --git a/运营中枢/工作台/阿猫Mac_OpenClaw配置情况分析.md b/运营中枢/工作台/阿猫Mac_OpenClaw配置情况分析.md index ac924302..d2a8452b 100644 --- a/运营中枢/工作台/阿猫Mac_OpenClaw配置情况分析.md +++ b/运营中枢/工作台/阿猫Mac_OpenClaw配置情况分析.md @@ -193,6 +193,7 @@ | **进程** | **`/usr/local/opt/node/bin/node`** + `…/openclaw/dist/index.js gateway --port 18789`(**禁止**用 `~/.local/node22` 的 22.14,否则不满足 OpenClaw ≥22.16)。 | | **日志** | `~/.openclaw/launchd-gateway-longmao.out.log` / `launchd-gateway-longmao.err.log`。 | | **重装/修复** | 在能 SSH 的机器上执行:`bash 运营中枢/工作台/脚本/amiao_install_openclaw_launchagent.sh`(可用环境变量 `AMIAO_SSH` 覆盖 SSH 命令)。 | +| **配置升级后起不来** | 若 `launchd-gateway-longmao.err.log` 出现 **`Config invalid`**(例如 `tools.media.audio.models.0: Unrecognized key: "apiKey"`),在阿猫上用 **Homebrew Node** 执行:`PATH="/usr/local/opt/node/bin:/Users/kr/.local/share/npm-global/bin:$PATH" openclaw doctor --fix`,再 `launchctl kickstart -k "gui/$(id -u)/com.openclaw.gateway.longmao"`。 | | **旧任务** | 曾存在的 **`ai.openclaw.gateway`** 已 **unload** 且 plist 改名为 `ai.openclaw.gateway.plist.off_20260327`,避免与龙虾 **双实例抢端口** 或用错 Node。 | | **范围说明** | 本 plist 在 **`~/Library/LaunchAgents`**,属 **用户级**:**开机后需用户 kr 登录 macOS 一次** 才会加载;未登录桌面会话前不会启动(与系统级 LaunchDaemon 不同)。 |