+
📝 总结
+
+
PPT 制作能力已纳入卡若AI,绘本风与复盘风模板可复用;规格→生成→套规范→验收 流程闭环。
-
▶ 下一步执行
-
-
- - 1. 后续绘本/汇报类 PPT 可直接调用 PPT制作 Skill。
- - 2. 复盘 PPT 模板可固化为脚本,支持 v0/React 毛玻璃 → 截图 → 导出 PPT。
- - 3. 未完成:无。
+ ▶ 下一步执行
+
+
+ - ① 后续绘本/汇报类 PPT 可直接调用 PPT制作 Skill。
+ - ② 复盘 PPT 模板可固化为脚本,支持 v0/React 毛玻璃 → 截图 → 导出 PPT。
+ - ③ 未完成:无。
diff --git a/03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py b/03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py
index 371bf708..8bd9f909 100644
--- a/03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py
+++ b/03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py
@@ -19,34 +19,32 @@ from pptx import Presentation
from pptx.util import Inches
BASE = Path(__file__).resolve().parent
-HTML = BASE / "复盘PPT_毛玻璃.html"
-OUT_SLIDES = BASE.parent.parent.parent.parent.parent / "卡若Ai的文件夹" / "报告" / "复盘_毛玻璃_slides"
-OUT_PPT = Path("/Users/karuo/Documents/卡若Ai的文件夹/报告/复盘_2026-02-23_毛玻璃.pptx")
+OUT_ROOT = Path("/Users/karuo/Documents/卡若Ai的文件夹/报告")
-def screenshot_slides():
+def screenshot_slides(html_path, out_slides_dir, max_slides=10):
"""用 playwright 截取每页"""
if not HAS_PLAYWRIGHT:
- print("⚠️ playwright 未安装,跳过截图。运行: pip install playwright && playwright install chromium")
+ print("⚠️ playwright 未安装")
return []
- OUT_SLIDES.mkdir(parents=True, exist_ok=True)
+ out_slides_dir.mkdir(parents=True, exist_ok=True)
imgs = []
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page(viewport={"width": 1280, "height": 720})
- page.goto(f"file://{HTML}")
- for i in range(1, 6):
+ page.goto(f"file://{html_path}")
+ for i in range(1, max_slides + 1):
sel = f"#slide-{i}"
el = page.locator(sel)
if el.count() > 0:
- path = OUT_SLIDES / f"slide_{i:02d}.png"
+ path = out_slides_dir / f"slide_{i:02d}.png"
el.screenshot(path=path)
imgs.append(str(path))
browser.close()
return imgs
-def build_ppt(imgs):
+def build_ppt(imgs, out_ppt):
"""将图片组装成 PPT"""
prs = Presentation()
prs.slide_width = Inches(13.333)
@@ -56,23 +54,35 @@ def build_ppt(imgs):
if Path(p).exists():
s = prs.slides.add_slide(layout)
s.shapes.add_picture(p, Inches(0), Inches(0), width=prs.slide_width)
- OUT_PPT.parent.mkdir(parents=True, exist_ok=True)
- prs.save(OUT_PPT)
- return OUT_PPT
+ out_ppt.parent.mkdir(parents=True, exist_ok=True)
+ prs.save(out_ppt)
+ return out_ppt
def main():
- if HAS_PLAYWRIGHT:
- imgs = screenshot_slides()
+ import argparse
+ ap = argparse.ArgumentParser()
+ ap.add_argument("--html", default="复盘", choices=["复盘", "卡若人设"])
+ args = ap.parse_args()
+ if args.html == "卡若人设":
+ html = BASE / "卡若人设PPT_毛玻璃.html"
+ out_slides = OUT_ROOT / "卡若人设_毛玻璃_slides"
+ out_ppt = OUT_ROOT / "卡若人设介绍_毛玻璃.pptx"
+ max_slides = 5
else:
- imgs = list(OUT_SLIDES.glob("slide_*.png"))
- imgs = sorted([str(p) for p in imgs])
+ html = BASE / "复盘PPT_毛玻璃.html"
+ out_slides = OUT_ROOT / "复盘_毛玻璃_slides"
+ out_ppt = OUT_ROOT / "复盘_2026-02-23_毛玻璃.pptx"
+ max_slides = 5
+ if HAS_PLAYWRIGHT:
+ imgs = screenshot_slides(html, out_slides, max_slides)
+ else:
+ imgs = sorted([str(p) for p in out_slides.glob("slide_*.png")])
if not imgs:
- print("❌ 无截图可用。请先手动打开 HTML 截图,或安装 playwright。")
- print(" HTML 路径:", HTML)
+ print("❌ 无截图可用。HTML 路径:", html)
sys.exit(1)
- build_ppt(imgs)
- print("✅ PPT 已生成:", OUT_PPT)
+ build_ppt(imgs, out_ppt)
+ print("✅ PPT 已生成:", out_ppt)
if __name__ == "__main__":
diff --git a/04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md b/04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md
index dbc2da56..8447b35e 100644
--- a/04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md
+++ b/04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md
@@ -61,6 +61,8 @@ updated: "2026-02-16"
## 五行结构(核心)
+**格式约定**:金水木火土各块内用 1、2、3、4 编号,不用「金-1」等形式。语言简洁、大白话。
+
```
《书名》- 作者
│
@@ -69,38 +71,38 @@ updated: "2026-02-16"
│
├── 金(定位与角色)🏴黄
│ ├── 定位与角色:是谁、给谁、站在什么位置上
-│ ├── 金-1:人物/作者定位
-│ ├── 金-2:目标人群与对立面
-│ ├── 金-3:核心价值主张
-│ └── 金-4:时代/环境红利位置
+│ ├── 1:人物/作者定位
+│ ├── 2:目标人群与对立面
+│ ├── 3:核心价值主张
+│ └── 4:时代/环境红利位置
│
├── 水(经历与路径)🏴蓝
│ ├── 经历与路径:事情是怎么发生的
-│ ├── 水-1:关键经历时间线
-│ ├── 水-2:重大转折点
-│ ├── 水-3:失败/试错/代价
-│ └── 水-4:路径选择逻辑
+│ ├── 1:关键经历时间线
+│ ├── 2:重大转折点
+│ ├── 3:失败/试错/代价
+│ └── 4:路径选择逻辑
│
├── 木(方法与产出)🏴绿 ⭐干货最密集区
│ ├── 方法与产出:具体怎么干、能产出什么
-│ ├── 木-1:核心方法论
-│ ├── 木-2:工具/模型/技巧
-│ ├── 木-3:可复用动作清单
-│ └── 木-4:实际产出形态
+│ ├── 1:核心方法论
+│ ├── 2:工具/模型/技巧
+│ ├── 3:可复用动作清单
+│ └── 4:实际产出形态
│
├── 火(认知与判断)🏴红 ⭐拉开层级的地方
│ ├── 认知与判断:为什么这么想、怎么判断对错
-│ ├── 火-1:核心认知差异
-│ ├── 火-2:关键判断标准
-│ ├── 火-3:反共识观点
-│ └── 火-4:高阶洞察
+│ ├── 1:核心认知差异
+│ ├── 2:关键判断标准
+│ ├── 3:反共识观点
+│ └── 4:高阶洞察
│
├── 土(系统与沉淀)🏴橙 ⭐老板级视角
│ ├── 系统与沉淀:如何长期稳定、不崩盘
-│ ├── 土-1:系统结构
-│ ├── 土-2:风险与边界
-│ ├── 土-3:长期复利机制
-│ └── 土-4:可持续性总结
+│ ├── 1:系统结构
+│ ├── 2:风险与边界
+│ ├── 3:长期复利机制
+│ └── 4:可持续性总结
│
├── 问题与解答(必须给参考答案)
│ └── 问题 + 书中原意 + 可照抄的参考答案
@@ -142,8 +144,8 @@ from scripts.write_to_xmind import write_book_to_xmind
note_data = {
"summary": "这是一本...",
- "gold": ["金-1:...", "金-2:...", "金-3:...", "金-4:..."],
- "water": ["水-1:...", "水-2:...", "水-3:...", "水-4:..."],
+ "gold": ["1:...", "2:...", "3:...", "4:..."],
+ "water": ["1:...", "2:...", "3:...", "4:..."],
# ... 其他数据
}
diff --git a/04_卡火(火)/火炬_全栈消息/读书笔记/参考资料/卡读提示词.md b/04_卡火(火)/火炬_全栈消息/读书笔记/参考资料/卡读提示词.md
index f5106ead..712a5cbc 100644
--- a/04_卡火(火)/火炬_全栈消息/读书笔记/参考资料/卡读提示词.md
+++ b/04_卡火(火)/火炬_全栈消息/读书笔记/参考资料/卡读提示词.md
@@ -8,7 +8,7 @@
你是「卡读」,专注于五行结构化拆书的书童。
-请严格按照以下结构拆解我提供的书籍,**不允许遗漏模块、不允许打乱顺序、不允许泛化**。
+请严格按照以下结构拆解我提供的书籍,**不允许遗漏模块、不允许打乱顺序、不允许泛化**。金水木火土各块内用 1、2、3、4 编号,不用「金-1」等形式。**语言简洁、大白话**。
---
@@ -24,46 +24,46 @@
解决:是谁、给谁、站在什么位置上
-- **金-1:人物/作者/主角定位**
-- **金-2:目标人群与对立面**
-- **金-3:核心价值主张(一句话)**
-- **金-4:时代/环境红利位置**
+- **1:人物/作者/主角定位**
+- **2:目标人群与对立面**
+- **3:核心价值主张(一句话)**
+- **4:时代/环境红利位置**
### 水(经历与路径)
解决:事情是怎么发生的
-- **水-1:关键经历时间线**
-- **水-2:重大转折点**
-- **水-3:失败/试错/代价**
-- **水-4:路径选择逻辑**
+- **1:关键经历时间线**
+- **2:重大转折点**
+- **3:失败/试错/代价**
+- **4:路径选择逻辑**
### 木(方法与产出)
解决:具体怎么干、能产出什么
-- **木-1:核心方法论**
-- **木-2:工具/模型/技巧**
-- **木-3:可复用动作清单**
-- **木-4:实际产出形态(钱/产品/影响力)**
+- **1:核心方法论**
+- **2:工具/模型/技巧**
+- **3:可复用动作清单**
+- **4:实际产出形态(钱/产品/影响力)**
### 火(认知与判断)
解决:为什么这么想、怎么判断对错
-- **火-1:核心认知差异**
-- **火-2:关键判断标准**
-- **火-3:反共识观点**
-- **火-4:高阶洞察(长期有效)**
+- **1:核心认知差异**
+- **2:关键判断标准**
+- **3:反共识观点**
+- **4:高阶洞察(长期有效)**
### 土(系统与沉淀)
解决:如何长期稳定、不崩盘
-- **土-1:系统结构**
-- **土-2:风险与边界**
-- **土-3:长期复利机制**
-- **土-4:可持续性总结**
+- **1:系统结构**
+- **2:风险与边界**
+- **3:长期复利机制**
+- **4:可持续性总结**
---
diff --git a/04_卡火(火)/火种_知识模型/读书笔记/SKILL.md b/04_卡火(火)/火种_知识模型/读书笔记/SKILL.md
index 034142e6..0986a1cc 100644
--- a/04_卡火(火)/火种_知识模型/读书笔记/SKILL.md
+++ b/04_卡火(火)/火种_知识模型/读书笔记/SKILL.md
@@ -69,38 +69,38 @@ updated: "2026-02-16"
│
├── 金(定位与角色)🏴黄
│ ├── 定位与角色:是谁、给谁、站在什么位置上
-│ ├── 金-1:人物/作者定位
-│ ├── 金-2:目标人群与对立面
-│ ├── 金-3:核心价值主张
-│ └── 金-4:时代/环境红利位置
+│ ├── 1:人物/作者定位
+│ ├── 2:目标人群与对立面
+│ ├── 3:核心价值主张
+│ └── 4:时代/环境红利位置
│
├── 水(经历与路径)🏴蓝
│ ├── 经历与路径:事情是怎么发生的
-│ ├── 水-1:关键经历时间线
-│ ├── 水-2:重大转折点
-│ ├── 水-3:失败/试错/代价
-│ └── 水-4:路径选择逻辑
+│ ├── 1:关键经历时间线
+│ ├── 2:重大转折点
+│ ├── 3:失败/试错/代价
+│ └── 4:路径选择逻辑
│
├── 木(方法与产出)🏴绿 ⭐干货最密集区
│ ├── 方法与产出:具体怎么干、能产出什么
-│ ├── 木-1:核心方法论
-│ ├── 木-2:工具/模型/技巧
-│ ├── 木-3:可复用动作清单
-│ └── 木-4:实际产出形态
+│ ├── 1:核心方法论
+│ ├── 2:工具/模型/技巧
+│ ├── 3:可复用动作清单
+│ └── 4:实际产出形态
│
├── 火(认知与判断)🏴红 ⭐拉开层级的地方
│ ├── 认知与判断:为什么这么想、怎么判断对错
-│ ├── 火-1:核心认知差异
-│ ├── 火-2:关键判断标准
-│ ├── 火-3:反共识观点
-│ └── 火-4:高阶洞察
+│ ├── 1:核心认知差异
+│ ├── 2:关键判断标准
+│ ├── 3:反共识观点
+│ └── 4:高阶洞察
│
├── 土(系统与沉淀)🏴橙 ⭐老板级视角
│ ├── 系统与沉淀:如何长期稳定、不崩盘
-│ ├── 土-1:系统结构
-│ ├── 土-2:风险与边界
-│ ├── 土-3:长期复利机制
-│ └── 土-4:可持续性总结
+│ ├── 1:系统结构
+│ ├── 2:风险与边界
+│ ├── 3:长期复利机制
+│ └── 4:可持续性总结
│
├── 问题与解答(必须给参考答案)
│ └── 问题 + 书中原意 + 可照抄的参考答案
@@ -142,8 +142,8 @@ from scripts.write_to_xmind import write_book_to_xmind
note_data = {
"summary": "这是一本...",
- "gold": ["金-1:...", "金-2:...", "金-3:...", "金-4:..."],
- "water": ["水-1:...", "水-2:...", "水-3:...", "水-4:..."],
+ "gold": ["1:...", "2:...", "3:...", "4:..."],
+ "water": ["1:...", "2:...", "3:...", "4:..."],
# ... 其他数据
}
diff --git a/04_卡火(火)/火种_知识模型/读书笔记/参考资料/卡读提示词.md b/04_卡火(火)/火种_知识模型/读书笔记/参考资料/卡读提示词.md
index f5106ead..712a5cbc 100644
--- a/04_卡火(火)/火种_知识模型/读书笔记/参考资料/卡读提示词.md
+++ b/04_卡火(火)/火种_知识模型/读书笔记/参考资料/卡读提示词.md
@@ -8,7 +8,7 @@
你是「卡读」,专注于五行结构化拆书的书童。
-请严格按照以下结构拆解我提供的书籍,**不允许遗漏模块、不允许打乱顺序、不允许泛化**。
+请严格按照以下结构拆解我提供的书籍,**不允许遗漏模块、不允许打乱顺序、不允许泛化**。金水木火土各块内用 1、2、3、4 编号,不用「金-1」等形式。**语言简洁、大白话**。
---
@@ -24,46 +24,46 @@
解决:是谁、给谁、站在什么位置上
-- **金-1:人物/作者/主角定位**
-- **金-2:目标人群与对立面**
-- **金-3:核心价值主张(一句话)**
-- **金-4:时代/环境红利位置**
+- **1:人物/作者/主角定位**
+- **2:目标人群与对立面**
+- **3:核心价值主张(一句话)**
+- **4:时代/环境红利位置**
### 水(经历与路径)
解决:事情是怎么发生的
-- **水-1:关键经历时间线**
-- **水-2:重大转折点**
-- **水-3:失败/试错/代价**
-- **水-4:路径选择逻辑**
+- **1:关键经历时间线**
+- **2:重大转折点**
+- **3:失败/试错/代价**
+- **4:路径选择逻辑**
### 木(方法与产出)
解决:具体怎么干、能产出什么
-- **木-1:核心方法论**
-- **木-2:工具/模型/技巧**
-- **木-3:可复用动作清单**
-- **木-4:实际产出形态(钱/产品/影响力)**
+- **1:核心方法论**
+- **2:工具/模型/技巧**
+- **3:可复用动作清单**
+- **4:实际产出形态(钱/产品/影响力)**
### 火(认知与判断)
解决:为什么这么想、怎么判断对错
-- **火-1:核心认知差异**
-- **火-2:关键判断标准**
-- **火-3:反共识观点**
-- **火-4:高阶洞察(长期有效)**
+- **1:核心认知差异**
+- **2:关键判断标准**
+- **3:反共识观点**
+- **4:高阶洞察(长期有效)**
### 土(系统与沉淀)
解决:如何长期稳定、不崩盘
-- **土-1:系统结构**
-- **土-2:风险与边界**
-- **土-3:长期复利机制**
-- **土-4:可持续性总结**
+- **1:系统结构**
+- **2:风险与边界**
+- **3:长期复利机制**
+- **4:可持续性总结**
---
diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md
index 498e7738..298a11a0 100644
--- a/运营中枢/工作台/gitea_push_log.md
+++ b/运营中枢/工作台/gitea_push_log.md
@@ -108,3 +108,4 @@
| 2026-02-23 14:56:38 | 🔄 卡若AI 同步 2026-02-23 14:56 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
| 2026-02-23 15:05:27 | 🔄 卡若AI 同步 2026-02-23 15:05 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
| 2026-02-23 15:14:09 | 🔄 卡若AI 同步 2026-02-23 15:14 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
+| 2026-02-23 18:42:25 | 🔄 卡若AI 同步 2026-02-23 18:42 | 更新:总索引与入口、卡木、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 9 个 |
diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md
index e4150190..2797c400 100644
--- a/运营中枢/工作台/代码管理.md
+++ b/运营中枢/工作台/代码管理.md
@@ -111,3 +111,4 @@
| 2026-02-23 14:56:38 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 14:56 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
| 2026-02-23 15:05:27 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 15:05 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
| 2026-02-23 15:14:09 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 15:14 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
+| 2026-02-23 18:42:25 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 18:42 | 更新:总索引与入口、卡木、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 9 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
diff --git a/运营中枢/脚本/iPad连接检测.sh b/运营中枢/脚本/iPad连接检测.sh
new file mode 100755
index 00000000..efea0cb8
--- /dev/null
+++ b/运营中枢/脚本/iPad连接检测.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# iPad 连接状态检测(快速检查)
+echo "=== iPad/Mac 连接检测 ==="
+echo ""
+echo "1. libimobiledevice 检测:"
+if idevice_id -l 2>/dev/null | grep -q .; then
+ echo " ✅ 已检测到 iOS 设备"
+ ideviceinfo 2>/dev/null | grep -E "ProductName|ProductType|ProductVersion"
+else
+ echo " ❌ 未检测到 iPad"
+ echo ""
+ echo " 请检查:"
+ echo " • iPad 已解锁"
+ echo " • 弹窗出现时点「信任此电脑」"
+ echo " • 使用可传数据的数据线(30针转 USB)"
+ echo " • 若通过扩展坞:部分扩展坞只支持充电,不支持数据"
+ echo " • 尝试直接用 30针→USB 线连 Mac,绕过扩展坞"
+fi
+echo ""
+echo "2. USB 设备(含扩展坞):"
+system_profiler SPUSBDataType 2>/dev/null | grep -E "Product ID|Vendor ID|Serial|Apple|iPad" || echo " 无法获取"
+echo ""
+echo "3. Duet 状态:"
+[ -d /Applications/Duet.app ] && echo " ✅ Duet Mac 已安装" || echo " ❌ Duet 未安装"