diff --git a/.cursor/rules/karuo-ai.mdc b/.cursor/rules/karuo-ai.mdc index 9bf3ae8c..877f8bbd 100644 --- a/.cursor/rules/karuo-ai.mdc +++ b/.cursor/rules/karuo-ai.mdc @@ -33,7 +33,7 @@ alwaysApply: true - 复盘块标题必须写**具体日期**和**具体时间**(当次回复时的真实 **YYYY-MM-DD HH:mm**,如 2026-03-01 15:20),日期、时间都要写上去,不能写占位符; - 五块齐全,**每块用小图标识别**:🎯 目标·结果·达成率 · 📌 过程 · 💡 反思 · 📝 总结 · ▶ 下一步执行; - **复盘块内不用表格**;目标·结果·达成率整行 ≤30 字,含达成率 XX%; - - **能加颜色则加**:为复盘标题的日期时间、各块小标题加颜色(如 HTML `日期时间`),便于区分;不支持则用粗体; + - **日期时间与块标题用 Markdown 粗体**(如 **2026-03-01 15:20**、**🎯 目标·结果·达成率**),禁止用 HTML 标签,否则 Cursor 等场景会露标;详见 `卡若复盘格式_固定规则.md`; - 回复正文可适当用图标(✅❌📁🔗⚠️ 等)增强可读性;下一步须结合本对话与项目/卡若AI 目标、关联未完成项、以实现目标为核心。 - 格式与书写要求见:`运营中枢/参考资料/卡若复盘格式_固定规则.md`。 diff --git a/04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md b/04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md index ce361002..9638abd5 100644 --- a/04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md +++ b/04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md @@ -1,16 +1,17 @@ --- name: 全栈开发 -description: 卡若AI 全栈开发(火炬)— 知己及类似项目经验 + 官网/全站开发与「开发文档 1~10」标准流程;吸收 Superpowers 实施计划粒度、TDD 推荐、两阶段评审与分支收尾。含分销、RAG、向量化;官网/全站类任务时按 1~10 调研→计划→执行→评审→复盘。 +description: 卡若AI 全栈开发(火炬)— 知己及类似项目经验 + 官网/全站开发与「开发文档 1~10」标准流程;吸收 Superpowers 实施计划粒度、TDD 推荐、两阶段评审与分支收尾。含分销、RAG、向量化;官网/全站类任务时按 1~10 调研→计划→执行→评审→复盘。**以后开发新网站一律用本 Skill 做调研与执行。** triggers: 全栈开发/知己项目/分销/存客宝/RAG/向量化/Next.js/知识库/卡若AI官网/官网开发/全站开发/开发文档/1~10/开发模板/官网全站/v0前端/v0生成/毛玻璃/前端规格/神射手/毛狐狸/前端标准/实施计划/两阶段评审 owner: 火炬 group: 火 -version: "2.2" -updated: "2026-02-16" +version: "2.3" +updated: "2026-02-17" --- # 全栈开发(火炬) -> 主责:知己类项目经验 + **官网/全站开发**与开发文档 1~10 标准流程。协同:水泉(需求拆解)、金盾(存客宝)、木果(开发模板)。 +> 主责:知己类项目经验 + **官网/全站开发**与开发文档 1~10 标准流程。协同:水泉(需求拆解)、金盾(存客宝)、木果(开发模板)。 +> **约定**:以后开发网站(新站、官网、全站、数据中台等)**都用本 Skill 做调研、计划与执行**,按 1~10 与卡若AI 官网标准实施。 --- @@ -41,14 +42,20 @@ updated: "2026-02-16" ### 1.3 参考项目(标准模板) -**卡若AI 官网** 开发文档为当前标准参考,路径(按用户环境替换): +**卡若AI 官网** 为当前标准参考项目,新站开发时按该仓库的 1~10 与能力清单对齐。 -- 开发文档根:`/Users/karuo/Documents/开发/3、自营项目/卡若ai网站/开发文档/` +**路径**(按用户环境替换): + +- 项目根:`/Users/karuo/Documents/开发/3、自营项目/卡若ai网站/` +- 开发文档根:`开发文档/` - 入口:`开发文档/README.md`(1~10 索引)、`1、需求/卡若AI项目使用说明.md` - 使用指引:`10、项目管理/开发文档使用指引(卡若交互式).md` - 使用手册(带图):`9、手册/使用手册(带图).md` +- 开发进度:`10、项目管理/开发进度.md` - 复盘模板:`10、项目管理/迭代复盘模板.md` +**官网已具备能力(做新站时对照补齐)**:首页直接对话(免登录)、/chat 对接 LLM(平台配置 + CHAT_API_KEY)、技能/流程/任务/网关/用户/平台治理 控制台、技能同步卡若AI(skills_export.json + /api/skills/sync)、控制台技能批量启用禁用、任务/流程 inline 编辑、细粒度 RBAC(viewer/operator/admin/owner)、SQLite + 可选 Prisma/Postgres 迁移(见 `7、数据库/Prisma迁移说明.md`)、苹果毛玻璃 UI、部署脚本(如 deploy.sh → NAS)。 + 前端需求与内容以该仓库下 `4、前端/`(规范、页面与路由、组件规格、毛玻璃与自适应、v0 融合、检查清单)及 `3、原型/` 为准;部署以 `8、部署/` 为准。 ### 1.4 实施计划标准(吸收 Superpowers writing-plans) @@ -173,7 +180,7 @@ scripts/ | 项目开发能力_来自知己 | 10 目录、端口、附件、截图、经验、复盘 | | 项目开发中整合存客宝获客功能 | 获客型项目 + 存客宝 | | 多Agent与板块拆分(水泉) | 业务流程 vs 开发流程、十目录界定 | -| **卡若ai网站 开发文档** | **官网/全站开发标准:1~10 结构、前端需求与内容、使用手册(带图)、提示词与执行流程** | +| **卡若ai网站 开发文档** | **官网/全站开发标准:1~10 结构、前端需求与内容、使用手册(带图)、提示词与执行流程;以后开发网站都用本 Skill + 该参考项目能力清单实施** | | **火炬「前端开发」Skill** | **毛玻璃风格与前端标准;前端开发必读** | | **前端开发/前端标准_神射手与毛狐狸** | 布局/颜色/毛玻璃/组件/特效统一标准,所有项目前端开发参考 | | **神射手 开发文档 4、前端** | 神射手项目内前端规范、核心组件代码、截图索引 | diff --git a/运营中枢/参考资料/API网关与常用AI配置说明.md b/运营中枢/参考资料/API网关与常用AI配置说明.md index d25b3250..8d0ca6d1 100644 --- a/运营中枢/参考资料/API网关与常用AI配置说明.md +++ b/运营中枢/参考资料/API网关与常用AI配置说明.md @@ -1,14 +1,15 @@ # API 网关与常用 AI 配置说明 -> 官网控制台与卡若AI 主仓库对齐:每个网关可配置**多个 API 端点**,勾选「参与轮询」的端点用于故障切换与轮流调用,确保调用成功。密钥从 `运营中枢/工作台/00_账号与API索引.md` 或网关 `.env` 配置,此处不写明文。 +> 官网控制台与卡若AI 主仓库对齐。控制台内 **API Key 明文显示**,便于与《00_账号与API索引》对照填写;密钥来源见工作台 `00_账号与API索引.md` 或网关 `.env`。 --- -## 一、网关定义与「多 API 轮询」 +## 一、参与轮询 / 未参与轮询 -- **网关**:一条网关可包含**多个 API 端点**(Base URL)。每个端点可单独勾选**是否参与轮询**;仅勾选「参与轮询」的端点会参与故障切换与轮流调用。 -- **轮流/故障切换**:请求时按主用网关下「参与轮询」的端点依次尝试;失败则换下一端点或下一网关,直到成功或全部失败。主用网关在官网控制台通过「切为主用」选择。 -- **与主仓库一致**:主仓库 `OPENAI_API_BASES` / `OPENAI_API_KEYS` 多接口排队逻辑与官网「多端点 + 参与轮询」一致,便于卡若自动使用多个 API/模型并确保调用成功。 +- **参与轮询**:已填写 API Key 的网关,会参与故障切换与轮流调用;在控制台「API 网关」页归入「参与轮询」区块显示。 +- **未参与轮询**:未填写 API Key 的网关不参与轮询;填写并保存后即参与轮询,归入「参与轮询」区块。 +- **轮流/故障切换**:请求时按主用网关下已填 Key 的端点依次尝试;失败则换下一网关,直到成功或全部失败。主用网关在官网控制台通过「设为主用」选择。 +- **与主仓库一致**:主仓库 `OPENAI_API_BASES` / `OPENAI_API_KEYS` 多接口排队逻辑与官网「已填 Key = 参与轮询」一致,便于卡若自动使用多个 API/模型并确保调用成功。 --- @@ -35,9 +36,9 @@ ## 四、官网控制台使用方式 -- 打开 **卡若AI 官网 → 控制台 → API 网关**,可见预填的上述网关(与主仓库、已有 API 一致);可新增、编辑、删除,以及「切为主用」选择当前主用网关。 -- **每个网关可配置多个 API 端点**:点击网关行左侧箭头展开,可添加/删除端点、填写每个端点的 URL,并**勾选「参与轮询」**。仅勾选参与轮询的端点会用于故障切换与轮流调用,便于卡若自动使用多个 API 确保调用成功。 -- 网关级:名称、优先级、重试次数、超时;端点级:URL、是否参与轮询。密钥在调用侧或主仓库网关 `.env` 中配置。 +- 打开 **卡若AI 官网 → 控制台 → API 网关**,可见与主仓库一致的平台列表(本机网关、OpenAI、OpenRouter、通义、v0、智增增);可新增、编辑、删除,以及「设为主用」选择当前主用网关。 +- **参与轮询 / 未参与轮询**:页面分两块——「参与轮询」(已填 API Key)、「未参与轮询」(未填 Key)。每个网关填写 Base URL 与 API Key(**明文显示**,便于与《00_账号与API索引》对照);填好保存后即参与轮询。 +- 网关级:名称、Base URL、API Key、优先级、重试、超时。Key 可从卡若AI 工作台《账号与API索引》复制;控制台内明文显示便于核对,不掩码。 --- diff --git a/运营中枢/参考资料/TimeMachine快照保留7天说明.md b/运营中枢/参考资料/TimeMachine快照保留7天说明.md new file mode 100644 index 00000000..6956e455 --- /dev/null +++ b/运营中枢/参考资料/TimeMachine快照保留7天说明.md @@ -0,0 +1,42 @@ +# Time Machine 快照至少保留 7 天 · 说明与配置 + +> 本机约定:时间机器快照最少保持 7 天。本文说明系统限制与已做配置。 + +--- + +## 一、系统限制(Apple 官方) + +- **本地快照**(本机 APFS 快照):约每小时一个,**默认仅保留约 24 小时**;在需要空间或过旧时会被自动删除。**系统设置中无法将本地快照保留期改为 7 天。** +- **备份目的地**(外置盘/网络盘):Time Machine 会按“每小时 / 每日 / 每周”策略保留备份,**直到备份盘满**后再按从旧到新删除。没有“最少保留 N 天”的官方选项;实际能保留多久取决于备份盘容量(建议 ≥ 本机容量 2 倍)。 + +因此,“至少保留 7 天”只能通过**备份盘空间充足**和**定期检查**来尽量满足。 + +--- + +## 二、本机已做配置 + +1. **每日检查脚本** + - 路径:`运营中枢/脚本/TimeMachine_保留7天检查.sh` + - 行为:当备份目的地可用时,检查当前最早备份是否距今 ≥ 7 天;结果写入工作台日志。 + - 若备份盘未挂载或 `tmutil listbackups` 超时(15 秒),则只记一条“跳过检查”,不报错。 + +2. **launchd 每日任务** + - plist:`~/Library/LaunchAgents/com.karuo.timemachine.retention7d.plist` + - 每天 **10:00** 执行上述脚本。 + - 加载:`launchctl load ~/Library/LaunchAgents/com.karuo.timemachine.retention7d.plist` + - 卸载:`launchctl unload ~/Library/LaunchAgents/com.karuo.timemachine.retention7d.plist` + +3. **日志位置** + - 脚本结果:`运营中枢/工作台/TimeMachine_保留检查.log` + - launchd 标准输出/错误:`运营中枢/工作台/TimeMachine_保留检查_launchd.log` + +--- + +## 三、建议 + +- 保证**备份盘空间充足**,这样 Time Machine 在按空间回收时,通常仍会保留远超 7 天的历史。 +- 定期看下 `TimeMachine_保留检查.log`:若出现“不足 7 天”的提醒,可清理备份盘或换更大容量盘,以维持至少 7 天快照。 + +--- + +*文档归属:卡若AI 运营中枢 · 与本机 Time Machine 约定一致* diff --git a/运营中枢/参考资料/卡若复盘格式_固定规则.md b/运营中枢/参考资料/卡若复盘格式_固定规则.md index a6ee1fd9..a6f506fa 100644 --- a/运营中枢/参考资料/卡若复盘格式_固定规则.md +++ b/运营中枢/参考资料/卡若复盘格式_固定规则.md @@ -69,12 +69,13 @@ 复盘块内**固定用图标识别各块**:🎯 目标·结果·达成率 · 📌 过程 · 💡 反思 · 📝 总结 · ▶ 下一步;其余段落按需选用,不喧宾夺主。 -**颜色(能加则加)**:回复时在平台支持的前提下,为复盘标题的**日期、时间**以及**各块小标题**加颜色,便于一眼区分。示例(HTML): -- 日期时间:`2026-03-01 15:20`(蓝色突出) -- 块标题:如 🎯 **目标·结果·达成率** 可用 `🎯 目标·结果·达成率` -- 或整行标题:`[卡若复盘](2026-03-01 15:20)` +**日期时间与块标题的显示(强制避免 HTML 露标)**: +在 Cursor、飞书、多数 Markdown 等场景下,**不要使用 HTML 标签**(如 ``),否则会显示为纯文本、露出标签。**一律用 Markdown 粗体**标出日期时间和各块小标题,保证任何环境都能正确显示: +- 日期时间示例:**2026-03-01 15:20** +- 复盘标题行示例:**复盘**(**2026-03-01 15:20**) +- 各块小标题保持「图标 + 粗体」:**🎯 目标·结果·达成率**、**📌 过程**、**💡 反思**、**📝 总结**、**▶ 下一步执行** -若当前环境不支持 HTML 着色,则用**粗体**标出日期时间与各块标题。 +仅在**确定在支持内联 HTML 的富文本环境**(如自有网页、部分邮件客户端)中展示时,才可选使用 `日期时间` 等着色;否则默认粗体即可。 --- diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index 3113ea86..1fcca382 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -183,3 +183,4 @@ | 2026-03-01 08:00:22 | 🔄 卡若AI 同步 2026-03-01 08:00 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 | | 2026-03-01 08:08:52 | 🔄 卡若AI 同步 2026-03-01 08:08 | 更新:水溪整理归档、运营中枢工作台 | 排除 >20MB: 14 个 | | 2026-03-01 08:15:03 | 🔄 卡若AI 同步 2026-03-01 08:15 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 | +| 2026-03-01 08:16:32 | 🔄 卡若AI 同步 2026-03-01 08:16 | 更新:Cursor规则、运营中枢工作台 | 排除 >20MB: 14 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index 472099e1..b544e7c3 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -186,3 +186,4 @@ | 2026-03-01 08:00:22 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-01 08:00 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-01 08:08:52 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-01 08:08 | 更新:水溪整理归档、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-01 08:15:03 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-01 08:15 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-01 08:16:32 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-01 08:16 | 更新:Cursor规则、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | diff --git a/运营中枢/脚本/TimeMachine_保留7天检查.sh b/运营中枢/脚本/TimeMachine_保留7天检查.sh new file mode 100755 index 00000000..0ca7f7b2 --- /dev/null +++ b/运营中枢/脚本/TimeMachine_保留7天检查.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Time Machine 快照至少保留 7 天:每日检查脚本 +# 当备份目的地可用时,检查是否仍有 ≥7 天的备份历史;结果写入工作台日志。 +# 说明:Apple 本地快照默认约 24 小时,无法通过系统设置改为 7 天;本脚本仅检查「备份目的地」上的备份历史。 + +RETENTION_DAYS=7 +LOG_DIR="/Users/karuo/Documents/个人/卡若AI/运营中枢/工作台" +LOG_FILE="$LOG_DIR/TimeMachine_保留检查.log" +STAMP=$(date "+%Y-%m-%d %H:%M:%S") + +mkdir -p "$LOG_DIR" + +# 获取默认目的地下的备份列表(15 秒超时,避免未挂载时挂起) +TMP_LIST=$(mktemp) +( tmutil listbackups 2>/dev/null > "$TMP_LIST"; ) & +TM_PID=$! +for _ in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do + kill -0 "$TM_PID" 2>/dev/null || break + sleep 1 +done +kill "$TM_PID" 2>/dev/null +BACKUPS=$(cat "$TMP_LIST" 2>/dev/null) +rm -f "$TMP_LIST" +if [[ -z "$BACKUPS" ]]; then + echo "[$STAMP] 备份列表不可用(可能未连接备份盘),跳过 7 天保留检查。" >> "$LOG_FILE" + exit 0 +fi + +# 取最早一条备份路径,解析日期(格式:.../YYYY-MM-DD-HHMMSS) +OLDEST_PATH=$(echo "$BACKUPS" | head -1) +# 路径末尾形如 2026-02-28-082912 +OLDEST_DATE_STR=$(basename "$OLDEST_PATH" | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' | head -1) +if [[ -z "$OLDEST_DATE_STR" ]]; then + echo "[$STAMP] 无法解析最早备份日期,跳过检查。" >> "$LOG_FILE" + exit 0 +fi + +# 计算最早备份距今天数(macOS 使用 -j -f) +TODAY_EPOCH=$(date -j -f "%Y-%m-%d" "$(date +%Y-%m-%d)" "+%s" 2>/dev/null) +OLDEST_EPOCH=$(date -j -f "%Y-%m-%d" "$OLDEST_DATE_STR" "+%s" 2>/dev/null) +if [[ -z "$OLDEST_EPOCH" ]] || [[ -z "$TODAY_EPOCH" ]]; then + DAYS_AGO=0 +else + DAYS_AGO=$(( (TODAY_EPOCH - OLDEST_EPOCH) / 86400 )) +fi + +if [[ "$DAYS_AGO" -ge "$RETENTION_DAYS" ]]; then + echo "[$STAMP] 通过:最早备份 $OLDEST_DATE_STR,距今 ${DAYS_AGO} 天,≥ ${RETENTION_DAYS} 天保留。" >> "$LOG_FILE" + exit 0 +else + echo "[$STAMP] 提醒:最早备份 $OLDEST_DATE_STR,距今 ${DAYS_AGO} 天,不足 ${RETENTION_DAYS} 天。请确保备份盘空间充足以保留至少 7 天快照。" >> "$LOG_FILE" + exit 0 +fi