🔄 卡若AI 同步 2026-02-27 05:05 | 更新:Cursor规则、金仓、水桥平台对接、卡木、火炬、总索引与入口、运营中枢工作台 | 排除 >20MB: 14 个
This commit is contained in:
@@ -63,6 +63,9 @@ alwaysApply: true
|
||||
### 工作台路径
|
||||
- `/Users/karuo/Documents/个人/卡若AI/`
|
||||
|
||||
### 项目与端口注册表(有变更时必更)
|
||||
- 凡**项目、端口、启动命令或部署流程**有更新/变更,须同步更新 **`运营中枢/工作台/项目与端口注册表.md`**(含注册项目列表与版本记录),使该 doc 始终保持最新。
|
||||
|
||||
## 禁止独立功能目录(强制)
|
||||
|
||||
**不得新建 `_共享模块` 或任何与五行、运营中枢并列的功能目录。** 共享能力一律融入 01~05 与 运营中枢。详见 BOOTSTRAP 第七节、总索引 第三节、运营中枢/平台配置/README.md 第四节。
|
||||
|
||||
49
01_卡资(金)/金仓_存储备份/datacenter/README.md
Normal file
49
01_卡资(金)/金仓_存储备份/datacenter/README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# datacenter 分组
|
||||
|
||||
> **约定**:所有**数据库相关**的 Docker 项目统一放在 **datacenter** 分组下,不在 website 或其他编排中新建数据库服务。卡若AI Skill(本地项目启动、群晖NAS 等)均按此执行。
|
||||
|
||||
---
|
||||
|
||||
## 分组说明
|
||||
|
||||
| 项目 | 说明 |
|
||||
|:---|:---|
|
||||
| **Docker 项目名** | `datacenter`(`docker compose -p datacenter`) |
|
||||
| **网络名** | `datacenter_network`(应用通过此网络连接数据库容器) |
|
||||
| **编排文件** | 本目录 `docker-compose.yml`(或沿用 数据中台 系统基座 的编排,见下) |
|
||||
|
||||
---
|
||||
|
||||
## 当前服务(本分组内)
|
||||
|
||||
- **datacenter_mongodb**:MongoDB 6.0,端口 27017,数据目录见 compose 卷配置。
|
||||
- 后续新增 Redis、MySQL、向量库等数据库类服务时,一律加入本 compose,保持 `name: datacenter`、网络 `datacenter_network`。
|
||||
|
||||
---
|
||||
|
||||
## 启动方式
|
||||
|
||||
在**本目录**执行(卡若AI 仓库内):
|
||||
|
||||
```bash
|
||||
cd "01_卡资(金)/金仓_存储备份/datacenter"
|
||||
docker compose -p datacenter up -d
|
||||
```
|
||||
|
||||
若本机已在「数据中台 / 系统基座」下启动过 MongoDB,则网络 `datacenter_network` 已存在;website 编排中的服务通过 `networks: datacenter_network: external: true` 接入该网络,用容器名 `datacenter_mongodb` 连接。
|
||||
|
||||
---
|
||||
|
||||
## 与 website 的关系
|
||||
|
||||
- **website** 分组:网站类服务(神射手、玩值电竞 Web 等),不在此分组内建数据库。
|
||||
- **datacenter** 分组:仅数据库及相关管理服务(MongoDB、mongo-express 等)。
|
||||
- website 内服务通过加入外部网络 `datacenter_network` 访问 datacenter 内容器。
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|:---|:---|
|
||||
| 2026-02-26 | 新建 datacenter 分组约定;Skill 与唯一MongoDB约定同步更新 |
|
||||
40
01_卡资(金)/金仓_存储备份/datacenter/docker-compose.yml
Normal file
40
01_卡资(金)/金仓_存储备份/datacenter/docker-compose.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
# datacenter 分组:所有数据库相关 Docker 服务归入此编排
|
||||
# 使用方式:在本目录执行 docker compose -p datacenter up -d
|
||||
# 网络 datacenter_network 供 website 等编排通过 external 接入,连接 datacenter_mongodb
|
||||
|
||||
name: datacenter
|
||||
|
||||
services:
|
||||
mongodb:
|
||||
image: mongo:6.0
|
||||
container_name: datacenter_mongodb
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "27017:27017"
|
||||
volumes:
|
||||
- /Users/karuo/数据库/mongodb/data:/data/db
|
||||
- /Users/karuo/数据库/mongodb/config:/etc/mongodb
|
||||
- /Users/karuo/数据库/mongodb/logs:/var/log/mongodb
|
||||
- /Users/karuo/数据库/mongodb/init:/docker-entrypoint-initdb.d
|
||||
command: mongod --noauth --bind_ip_all
|
||||
networks:
|
||||
- datacenter_network
|
||||
|
||||
# 可选:MongoDB 管理界面,按需启用
|
||||
# mongo-express:
|
||||
# image: mongo-express:latest
|
||||
# container_name: datacenter_mongo_express
|
||||
# restart: unless-stopped
|
||||
# ports:
|
||||
# - "8081:8081"
|
||||
# environment:
|
||||
# ME_CONFIG_MONGODB_URL: mongodb://datacenter_mongodb:27017/
|
||||
# depends_on:
|
||||
# - mongodb
|
||||
# networks:
|
||||
# - datacenter_network
|
||||
|
||||
networks:
|
||||
datacenter_network:
|
||||
driver: bridge
|
||||
name: datacenter_network
|
||||
@@ -90,6 +90,14 @@ updated: "2026-02-16"
|
||||
| 8890 | bt-hub | 宝塔中控 |
|
||||
| 8888 | 本地宝塔 | 网站管理 |
|
||||
|
||||
### Docker 容器分组约定(本机与 NAS 统一)
|
||||
|
||||
在 NAS 或本机编排 Docker 时,须遵守卡若AI 统一约定:
|
||||
|
||||
- **datacenter 分组**:所有**数据库相关**服务(MongoDB、Redis、MySQL、向量库等)归入 **datacenter** 编排,编排见 卡若AI `01_卡资(金)/金仓_存储备份/datacenter/`。
|
||||
- **website 分组**:网站类服务(神射手、玩值电竞 Web 等)归入 **website**,通过网络连接 datacenter 内数据库。
|
||||
- 详见:`运营中枢/工作台/唯一MongoDB约定.md`、**本地项目启动** Skill 内「Docker 部署约定」。
|
||||
|
||||
---
|
||||
|
||||
## 一键操作(卡若习惯)
|
||||
|
||||
@@ -56,7 +56,7 @@ updated: "2026-02-26"
|
||||
| `写作/写作规范.md` | 写作唯一规范(人称、结构、格式、隐晦植入) |
|
||||
| `上传/README.md` | 上传唯一说明(路径、命令、飞书) |
|
||||
|
||||
原 Soul文章上传、Soul文章写作 已合并,仅保留一行重定向,无重复正文。
|
||||
Soul 相关仅保留本 Skill 一个目录,原 Soul文章上传、Soul文章写作 已删除并合并至此。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
name: Soul文章上传
|
||||
redirect: 02_卡人(水)/水桥_平台对接/Soul创业实验
|
||||
---
|
||||
已合并至 **Soul创业实验** → 子类「上传」。见 `Soul创业实验/上传/README.md`。
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
name: Soul文章写作
|
||||
redirect: 02_卡人(水)/水桥_平台对接/Soul创业实验
|
||||
---
|
||||
已合并至 **Soul创业实验** → 子类「写作」。见 `Soul创业实验/写作/写作规范.md`。
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"access_token": "u-7yJyWJPZx6Cq44qXV7ts9.l5mgWBk1WjWoaaVAM00AP7",
|
||||
"refresh_token": "ur-5_8a_UjxF8zaD9RU3kIIkrl5kUg5k1MVUoaaVBQ00wyj",
|
||||
"access_token": "u-4_s5zy5N5aaE2oDiiP.5MOl5kgOBk1MXVoaaJMQ00wzm",
|
||||
"refresh_token": "ur-7ty4XF3A17nawQWUi7bm5.l5mUo5k1OpVUaaUxQ00ADn",
|
||||
"name": "飞书用户",
|
||||
"auth_time": "2026-02-26T15:58:11.492177"
|
||||
"auth_time": "2026-02-27T05:04:40.719684"
|
||||
}
|
||||
@@ -153,25 +153,25 @@ def get_today_tasks():
|
||||
today = datetime.now()
|
||||
date_str = f"{today.month}月{today.day}日"
|
||||
|
||||
# 今日三条要事(2026-02-20)
|
||||
# 每日固定项(2026-02-27):异能公司第一、玩值电竞第二
|
||||
tasks = [
|
||||
{
|
||||
"person": "卡若",
|
||||
"events": ["书小程序修改上架", "玉宁直播项目运营", "算力分布系统"],
|
||||
"events": ["异能公司Agent", "玩值电竞", "飞书日志迭代"],
|
||||
"quadrant": "重要紧急",
|
||||
"t_targets": [
|
||||
"书小程序→修改并完成上架 📱 (0%)",
|
||||
"玉宁直播项目→运营情况跟进与落地 📺 (0%)",
|
||||
"算力分布系统→晚上9点推进 ⚡ (0%)"
|
||||
"异能公司Agent→视频切片/文章/直播/小程序/朋友圈/聚合 (5%)",
|
||||
"玩值电竞→Docker部署与功能推进 (第二) (25%)",
|
||||
"飞书日志→每日迭代+进度百分比更新 (100%)",
|
||||
],
|
||||
"n_process": [
|
||||
"【书小程序】需求确认→修改开发→提审→上架",
|
||||
"【玉宁直播】运营数据查看→问题跟进→优化动作",
|
||||
"【算力分布】今晚21:00 算力分布系统开发/联调"
|
||||
"【异能公司】视频切片分发、文章全网、每日直播、小程序、朋友圈→聚合平台",
|
||||
"【玩值电竞】Docker 3001,MongoDB wanzhi_esports,持续迭代",
|
||||
"【日志】每日更新前日进度与完成度,未完成项持续迭代",
|
||||
],
|
||||
"t_thoughts": ["三件事并行:产品上架、直播运营、算力系统"],
|
||||
"w_work": ["小程序开发与上架", "直播运营", "算力系统开发"],
|
||||
"f_feedback": ["书小程序→待执行 ⏰", "玉宁直播→待执行 ⏰", "算力分布系统→今晚21:00 ⏰"]
|
||||
"t_thoughts": ["异能公司第一、玩值电竞第二;每日固定项迭代直到100%"],
|
||||
"w_work": ["异能公司Agent", "玩值电竞", "飞书日志登记"],
|
||||
"f_feedback": ["异能公司→立项 5% 🔄", "玩值电竞→进行中 25% 🔄", "日志→每日迭代 100% ✅"]
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
72
02_卡人(水)/水桥_平台对接/飞书管理/脚本/write_today_0227.py
Normal file
72
02_卡人(水)/水桥_平台对接/飞书管理/脚本/write_today_0227.py
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
2月27日飞书日志:异能公司Agent(第一)+玩值电竞(第二)+每日交流汇总
|
||||
- 异能公司agent:视频切片、文章全网、直播、小程序、朋友圈、聚合到平台
|
||||
- 玩值电竞:第二优先级
|
||||
- 每小节简短
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime
|
||||
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
if SCRIPT_DIR not in sys.path:
|
||||
sys.path.insert(0, SCRIPT_DIR)
|
||||
|
||||
from auto_log import get_token_silent, write_log, open_result, resolve_wiki_token_for_date
|
||||
|
||||
|
||||
def build_tasks_0227():
|
||||
"""2月27日任务:异能公司(第一)+玩值电竞(第二)+交流汇总"""
|
||||
return [
|
||||
{
|
||||
"person": "卡若",
|
||||
"events": ["异能公司Agent", "玩值电竞", "飞书日志迭代"],
|
||||
"quadrant": "重要紧急",
|
||||
"t_targets": [
|
||||
"异能公司Agent→视频切片/文章/直播/小程序/朋友圈/聚合 (5%)",
|
||||
"玩值电竞→Docker部署与功能推进 (第二) (25%)",
|
||||
"飞书日志→每日迭代+进度百分比更新 (100%)",
|
||||
],
|
||||
"n_process": [
|
||||
"【异能公司】视频切片分发、文章全网、每日直播、小程序、朋友圈→聚合平台",
|
||||
"【玩值电竞】Docker 3001,MongoDB wanzhi_esports,持续迭代",
|
||||
"【昨日2月26】卡若AI 56%、一场创业实验→永平、GitHub yongpxu-soul",
|
||||
],
|
||||
"t_thoughts": [
|
||||
"异能公司第一、玩值电竞第二;每日固定项迭代直到100%",
|
||||
],
|
||||
"w_work": ["异能公司Agent规划", "玩值电竞推进", "飞书日志登记"],
|
||||
"f_feedback": [
|
||||
"异能公司→立项 5% 🔄",
|
||||
"玩值电竞→进行中 25% 🔄",
|
||||
"每日交流→飞书日志迭代、异能公司Agent规划、玩值电竞",
|
||||
],
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
date_str = "2月27日"
|
||||
print("=" * 50)
|
||||
print(f"📝 写入飞书日志:{date_str}")
|
||||
print("=" * 50)
|
||||
|
||||
token = get_token_silent()
|
||||
if not token:
|
||||
print("❌ 无法获取飞书 Token")
|
||||
sys.exit(1)
|
||||
|
||||
tasks = build_tasks_0227()
|
||||
target_wiki_token = resolve_wiki_token_for_date(date_str)
|
||||
ok = write_log(token, date_str, tasks, target_wiki_token)
|
||||
if ok:
|
||||
open_result(target_wiki_token)
|
||||
print(f"✅ {date_str} 日志写入成功")
|
||||
sys.exit(0)
|
||||
print("❌ 写入失败")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
386
03_卡木(木)/木果_项目模板/PPT制作/脚本/三个月财务报表PPT_毛玻璃.html
Normal file
386
03_卡木(木)/木果_项目模板/PPT制作/脚本/三个月财务报表PPT_毛玻璃.html
Normal file
@@ -0,0 +1,386 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=1280, height=720">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; -webkit-font-smoothing: antialiased; }
|
||||
.slide {
|
||||
width: 1280px; height: 720px;
|
||||
display: flex; flex-direction: column;
|
||||
padding: 64px 80px;
|
||||
background: linear-gradient(160deg, #F5F5FA 0%, #EBEBF0 35%, #F0F0F5 100%);
|
||||
position: relative; overflow: hidden;
|
||||
}
|
||||
.slide::before {
|
||||
content: ''; position: absolute; top: -40%; right: -25%;
|
||||
width: 70%; height: 90%;
|
||||
background: radial-gradient(ellipse, rgba(0,122,255,0.10) 0%, transparent 60%);
|
||||
pointer-events: none;
|
||||
}
|
||||
.slide::after {
|
||||
content: ''; position: absolute; bottom: -45%; left: -22%;
|
||||
width: 70%; height: 95%;
|
||||
background: radial-gradient(ellipse, rgba(52,199,89,0.10) 0%, transparent 58%);
|
||||
pointer-events: none;
|
||||
}
|
||||
.glass {
|
||||
background: rgba(255,255,255,0.60);
|
||||
backdrop-filter: blur(48px); -webkit-backdrop-filter: blur(48px);
|
||||
border: 1px solid rgba(255,255,255,0.72);
|
||||
border-radius: 28px;
|
||||
box-shadow: 0 8px 32px rgba(0,0,0,0.04), 0 0 0 1px rgba(255,255,255,0.8) inset;
|
||||
}
|
||||
.glass-strong {
|
||||
background: rgba(255,255,255,0.74);
|
||||
backdrop-filter: blur(56px); -webkit-backdrop-filter: blur(56px);
|
||||
border: 1px solid rgba(255,255,255,0.78);
|
||||
border-radius: 32px;
|
||||
box-shadow: 0 12px 40px rgba(0,0,0,0.06), 0 0 0 1px rgba(255,255,255,0.9) inset;
|
||||
}
|
||||
.text-dark { color: #1D1D1F; }
|
||||
.text-muted { color: #8E8E93; }
|
||||
h1 { font-size: 52px; font-weight: 900; letter-spacing: -0.03em; }
|
||||
h2 { font-size: 18px; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; color: #007AFF; }
|
||||
.kicker { font-size: 14px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(0,0,0,0.45); }
|
||||
.row { display: flex; gap: 36px; }
|
||||
.col { display: flex; flex-direction: column; gap: 18px; }
|
||||
.pill {
|
||||
display: inline-flex; align-items: center; gap: 10px;
|
||||
padding: 10px 14px; border-radius: 999px;
|
||||
background: rgba(0,122,255,0.10);
|
||||
color: #0B5ED7; font-weight: 800; font-size: 14px;
|
||||
border: 1px solid rgba(0,122,255,0.14);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.tag {
|
||||
display: inline-flex; align-items: center; gap: 8px;
|
||||
font-size: 14px; font-weight: 800;
|
||||
color: rgba(0,0,0,0.58);
|
||||
padding: 8px 12px; border-radius: 12px;
|
||||
background: rgba(255,255,255,0.55);
|
||||
border: 1px solid rgba(255,255,255,0.7);
|
||||
}
|
||||
.icon { font-size: 42px; line-height: 1; }
|
||||
.small { font-size: 16px; line-height: 1.7; color: rgba(0,0,0,0.68); }
|
||||
.list p { font-size: 20px; line-height: 1.85; color: #1D1D1F; }
|
||||
.list p span { color: #8E8E93; font-weight: 700; }
|
||||
.metric { padding: 18px 20px; border-radius: 18px; background: rgba(255,255,255,0.62); border: 1px solid rgba(255,255,255,0.75); }
|
||||
.metric .v { font-size: 28px; font-weight: 950; color: #1D1D1F; letter-spacing: -0.02em; }
|
||||
.metric .k { font-size: 13px; font-weight: 900; color: rgba(0,0,0,0.50); letter-spacing: 0.14em; text-transform: uppercase; margin-top: 6px; }
|
||||
.img-card { width: 420px; height: 420px; border-radius: 22px; overflow: hidden; padding: 16px; }
|
||||
.img-card.wide { width: 520px; height: 360px; }
|
||||
.note { padding: 14px 16px; border-radius: 16px; background: rgba(255,149,0,0.12); border: 1px solid rgba(255,149,0,0.18); color: rgba(0,0,0,0.72); font-weight: 700; }
|
||||
.ok { background: rgba(52,199,89,0.12); border-color: rgba(52,199,89,0.18); }
|
||||
.bad { background: rgba(255,59,48,0.10); border-color: rgba(255,59,48,0.16); }
|
||||
.mono { font-variant-numeric: tabular-nums; }
|
||||
table { width: 100%; border-collapse: separate; border-spacing: 0 10px; }
|
||||
td { padding: 12px 14px; font-size: 18px; color: rgba(0,0,0,0.78); }
|
||||
.trow { background: rgba(255,255,255,0.62); border: 1px solid rgba(255,255,255,0.78); border-radius: 16px; }
|
||||
.trow td:first-child { border-top-left-radius: 16px; border-bottom-left-radius: 16px; font-weight: 900; }
|
||||
.trow td:last-child { border-top-right-radius: 16px; border-bottom-right-radius: 16px; text-align: right; font-weight: 950; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Slide 1: 封面 -->
|
||||
<div class="slide" id="slide-1" style="justify-content:center; align-items:center;">
|
||||
<div class="glass-strong" style="padding: 56px 72px; text-align:center; width: 980px;">
|
||||
<div class="kicker" style="margin-bottom: 10px;">Three-Month CFO Report · Charts & Flow</div>
|
||||
<h1 class="text-dark" style="margin-bottom: 18px;">三个月财务报表</h1>
|
||||
<p class="text-muted" style="font-size: 22px; font-weight: 800;">2025年12月 — 2026年2月|总览 · 图表 · 流程图</p>
|
||||
<div style="display:flex; justify-content:center; gap:12px; margin-top: 26px; flex-wrap: wrap;">
|
||||
<span class="pill">🏦 卡卡猫·中信0405</span>
|
||||
<span class="pill">📊 柱状图 · 趋势图</span>
|
||||
<span class="pill">🔄 现金流流程图</span>
|
||||
<span class="pill">📋 分月明细</span>
|
||||
</div>
|
||||
<div class="small" style="margin-top: 18px;">数据来源:三个月财务报表_202512-202602.md</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 2: 三个月总览表 + 柱状图(卡卡猫净额) -->
|
||||
<div class="slide" id="slide-2" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">总览 · 卡卡猫三月净额</h2>
|
||||
<div class="row" style="align-items:flex-start;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 26px 28px;">
|
||||
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: 10px;">
|
||||
<span class="icon">📋</span>
|
||||
<span class="tag">三个月总览(主账户)</span>
|
||||
</div>
|
||||
<table>
|
||||
<tr class="trow"><td>2025-12</td><td class="mono" style="color:#34C759;">净 +180,809.58</td></tr>
|
||||
<tr class="trow"><td>2026-01</td><td class="mono" style="color:#FF3B30;">净 -179,853.23</td></tr>
|
||||
<tr class="trow"><td>2026-02</td><td class="mono" style="color:#FF3B30;">净 -7,009.92</td></tr>
|
||||
<tr class="trow"><td><b>三月合计</b></td><td class="mono" style="color:#FF3B30;"><b>净 -6,053.57</b></td></tr>
|
||||
</table>
|
||||
<div class="small" style="margin-top: 10px;">收入 303,490 / 支出 309,543;12月大额流入覆盖1~2月支出后略亏。</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card wide" style="padding: 16px;">
|
||||
<svg viewBox="0 0 520 360" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="520" height="360" rx="18" fill="rgba(255,255,255,0.42)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="28" y="42" font-size="14" font-weight="900" fill="rgba(0,0,0,0.70)">卡卡猫·中信0405 月度净额(柱状图)</text>
|
||||
<!-- 12月 +18.08万 绿柱 -->
|
||||
<rect x="48" y="120" width="120" height="140" rx="12" fill="rgba(52,199,89,0.45)" stroke="rgba(52,199,89,0.5)"/>
|
||||
<text x="108" y="200" text-anchor="middle" font-size="14" font-weight="900" fill="#1D1D1F">+18.08万</text>
|
||||
<text x="108" y="278" text-anchor="middle" font-size="13" font-weight="800" fill="rgba(0,0,0,0.55)">12月</text>
|
||||
<!-- 1月 -17.99万 红柱 -->
|
||||
<rect x="200" y="258" width="120" height="2" rx="8" fill="rgba(255,59,48,0.5)" stroke="rgba(255,59,48,0.55)"/>
|
||||
<rect x="200" y="60" width="120" height="198" rx="12" fill="rgba(255,59,48,0.45)" stroke="rgba(255,59,48,0.5)"/>
|
||||
<text x="260" y="155" text-anchor="middle" font-size="14" font-weight="900" fill="#1D1D1F">-17.99万</text>
|
||||
<text x="260" y="278" text-anchor="middle" font-size="13" font-weight="800" fill="rgba(0,0,0,0.55)">1月</text>
|
||||
<!-- 2月 -0.70万 红柱小 -->
|
||||
<rect x="352" y="248" width="120" height="32" rx="12" fill="rgba(255,59,48,0.35)" stroke="rgba(255,59,48,0.4)"/>
|
||||
<text x="412" y="272" text-anchor="middle" font-size="13" font-weight="900" fill="#1D1D1F">-0.70万</text>
|
||||
<text x="412" y="278" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.55)">2月</text>
|
||||
<line x1="48" y1="260" x2="472" y2="260" stroke="rgba(0,0,0,0.12)" stroke-width="1" stroke-dasharray="4 4"/>
|
||||
<text x="28" y="264" font-size="11" font-weight="800" fill="rgba(0,0,0,0.4)">0</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 3: 现金流趋势流程图 -->
|
||||
<div class="slide" id="slide-3" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">现金流趋势 · 流程图</h2>
|
||||
<div class="row" style="align-items:center;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 28px 32px;">
|
||||
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: 14px;">
|
||||
<span class="icon">🔄</span>
|
||||
<span class="tag">三月走势一句话</span>
|
||||
</div>
|
||||
<div class="list">
|
||||
<p>12月:<span class="mono" style="color:#34C759;">大额净流入 +18.08 万</span>(天职众成20万+宋晴晴10万)。</p>
|
||||
<p>1月:<span class="mono" style="color:#FF3B30;">大额净流出 -17.99 万</span>(缴税、工资、存客宝、好帖云等)。</p>
|
||||
<p>2月:<span class="mono" style="color:#FF3B30;">小幅净流出 -0.70 万</span>(支出已收缩)。</p>
|
||||
</div>
|
||||
<div class="note ok" style="margin-top: 14px;">✅ 结论:12月一次性流入支撑了1月集中支出;2月已明显收缩。</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card wide" style="padding: 16px;">
|
||||
<svg viewBox="0 0 520 360" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="520" height="360" rx="18" fill="rgba(255,255,255,0.42)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="28" y="42" font-size="14" font-weight="900" fill="rgba(0,0,0,0.70)">现金流趋势流程图</text>
|
||||
<!-- 节点 12月 -->
|
||||
<rect x="28" y="88" width="140" height="76" rx="18" fill="rgba(52,199,89,0.25)" stroke="rgba(52,199,89,0.45)"/>
|
||||
<text x="98" y="122" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">2025-12</text>
|
||||
<text x="98" y="148" text-anchor="middle" font-size="13" font-weight="800" fill="rgba(0,0,0,0.65)">+18.08 万</text>
|
||||
<!-- 箭头 12→1 -->
|
||||
<path d="M 168 126 L 218 126" stroke="rgba(0,0,0,0.35)" stroke-width="2" fill="none"/>
|
||||
<polygon points="228,122 238,126 228,130" fill="rgba(0,0,0,0.35)"/>
|
||||
<!-- 节点 1月 -->
|
||||
<rect x="248" y="88" width="140" height="76" rx="18" fill="rgba(255,59,48,0.2)" stroke="rgba(255,59,48,0.4)"/>
|
||||
<text x="318" y="122" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">2026-01</text>
|
||||
<text x="318" y="148" text-anchor="middle" font-size="13" font-weight="800" fill="rgba(0,0,0,0.65)">-17.99 万</text>
|
||||
<!-- 箭头 1→2 -->
|
||||
<path d="M 388 126 L 438 126" stroke="rgba(0,0,0,0.35)" stroke-width="2" fill="none"/>
|
||||
<polygon points="448,122 458,126 448,130" fill="rgba(0,0,0,0.35)"/>
|
||||
<!-- 节点 2月 -->
|
||||
<rect x="448" y="88" width="72" height="76" rx="18" fill="rgba(255,59,48,0.12)" stroke="rgba(255,59,48,0.3)"/>
|
||||
<text x="484" y="118" text-anchor="middle" font-size="13" font-weight="950" fill="#1D1D1F">02</text>
|
||||
<text x="484" y="142" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.65)">-0.70万</text>
|
||||
<!-- 下方说明框 -->
|
||||
<rect x="48" y="200" width="464" height="120" rx="18" fill="rgba(10,132,255,0.08)" stroke="rgba(10,132,255,0.18)"/>
|
||||
<text x="280" y="242" text-anchor="middle" font-size="14" font-weight="900" fill="rgba(0,0,0,0.72)">环比:1月较12月净额降约19.9万 → 2月较1月回升约17.3万</text>
|
||||
<text x="280" y="272" text-anchor="middle" font-size="13" font-weight="800" fill="rgba(0,0,0,0.55)">支出大幅减少,现金流压力缓解</text>
|
||||
<text x="280" y="302" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.45)">三月合计净 -6,053.57(12月转入冲抵后略亏)</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 4: 分月简要 + 账户结构图 -->
|
||||
<div class="slide" id="slide-4" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">分月简要 · 账户结构</h2>
|
||||
<div class="row" style="align-items:flex-start;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 24px 26px;">
|
||||
<div style="display:flex; align-items:center; margin-bottom: 10px;"><span class="icon">📅</span><span class="tag">分月一句话</span></div>
|
||||
<table>
|
||||
<tr class="trow"><td>12月</td><td>收入30.05万 / 支出11.97万;大额转入</td></tr>
|
||||
<tr class="trow"><td>1月</td><td>收入0 / 支出17.99万;集中支出</td></tr>
|
||||
<tr class="trow"><td>2月</td><td>收入0.3万 / 支出1万;小幅净出</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card wide" style="padding: 16px;">
|
||||
<svg viewBox="0 0 520 360" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="520" height="360" rx="18" fill="rgba(255,255,255,0.42)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="28" y="42" font-size="14" font-weight="900" fill="rgba(0,0,0,0.70)">账户结构(三月参与口径)</text>
|
||||
<rect x="48" y="68" width="200" height="72" rx="16" fill="rgba(255,59,48,0.12)" stroke="rgba(255,59,48,0.22)"/>
|
||||
<text x="148" y="102" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">卡卡猫 · 中信0405</text>
|
||||
<text x="148" y="128" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.55)">主账户 · 净 -6,053.57</text>
|
||||
|
||||
<rect x="272" y="68" width="200" height="72" rx="16" fill="rgba(10,132,255,0.12)" stroke="rgba(10,132,255,0.22)"/>
|
||||
<text x="372" y="102" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">芸归喜 · 网商9532</text>
|
||||
<text x="372" y="128" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.55)">辅助 · +32.58</text>
|
||||
|
||||
<rect x="48" y="158" width="200" height="72" rx="16" fill="rgba(52,199,89,0.12)" stroke="rgba(52,199,89,0.22)"/>
|
||||
<text x="148" y="192" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">支付宝企业</text>
|
||||
<text x="148" y="218" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.55)">净 +293.71</text>
|
||||
|
||||
<rect x="272" y="158" width="200" height="72" rx="16" fill="rgba(255,149,0,0.12)" stroke="rgba(255,149,0,0.22)"/>
|
||||
<text x="372" y="192" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">短信口径</text>
|
||||
<text x="372" y="218" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.55)">雷达 · 非最终账</text>
|
||||
|
||||
<rect x="48" y="248" width="424" height="88" rx="16" fill="rgba(0,0,0,0.04)" stroke="rgba(0,0,0,0.08)"/>
|
||||
<text x="260" y="286" text-anchor="middle" font-size="13" font-weight="900" fill="rgba(0,0,0,0.68)">云消费、飞书工资:参考项(待补)</text>
|
||||
<text x="260" y="318" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.48)">对账以重点机构交易明细 & 银行对账单为准</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 5: 卡卡猫三月收支结构(收入 vs 支出 示意图) -->
|
||||
<div class="slide" id="slide-5" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">卡卡猫 · 三月收支结构</h2>
|
||||
<div class="row" style="align-items:center;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 28px 32px;">
|
||||
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: 14px;">
|
||||
<span class="icon">🏦</span>
|
||||
<span class="tag">收入 / 支出</span>
|
||||
</div>
|
||||
<div class="list">
|
||||
<p>三月收入合计:<span class="mono">303,490.01</span>(几乎全部来自12月)。</p>
|
||||
<p>三月支出合计:<span class="mono">309,543.58</span>(1月占大头)。</p>
|
||||
<p>净额:<span class="mono" style="color:#FF3B30;">-6,053.57</span>。</p>
|
||||
</div>
|
||||
<div class="note" style="margin-top: 14px;">CFO 大白话:<b>12月一次性流入</b>覆盖了1~2月支出,略亏 0.6 万;后续要盯回款与预算。</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card wide" style="padding: 16px;">
|
||||
<svg viewBox="0 0 520 360" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="520" height="360" rx="18" fill="rgba(255,255,255,0.42)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="28" y="42" font-size="14" font-weight="900" fill="rgba(0,0,0,0.70)">收入 vs 支出(条形对比)</text>
|
||||
<text x="28" y="78" font-size="12" font-weight="800" fill="rgba(0,0,0,0.5)">收入 30.35万</text>
|
||||
<rect x="28" y="88" width="380" height="36" rx="10" fill="rgba(52,199,89,0.35)" stroke="rgba(52,199,89,0.4)"/>
|
||||
<text x="418" y="112" font-size="14" font-weight="950" fill="#1D1D1F">303,490</text>
|
||||
|
||||
<text x="28" y="158" font-size="12" font-weight="800" fill="rgba(0,0,0,0.5)">支出 30.95万</text>
|
||||
<rect x="28" y="168" width="395" height="36" rx="10" fill="rgba(255,59,48,0.35)" stroke="rgba(255,59,48,0.4)"/>
|
||||
<text x="433" y="192" font-size="14" font-weight="950" fill="#1D1D1F">309,543</text>
|
||||
|
||||
<rect x="28" y="232" width="464" height="100" rx="16" fill="rgba(255,149,0,0.08)" stroke="rgba(255,149,0,0.18)"/>
|
||||
<text x="260" y="268" text-anchor="middle" font-size="14" font-weight="900" fill="rgba(0,0,0,0.72)">支出构成(三月):缴税、工资/打款、存客宝、好帖云、供应商等</text>
|
||||
<text x="260" y="298" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.52)">1月集中支出 17.99 万;2月已收缩至约 1 万</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 6: 结论与环比 -->
|
||||
<div class="slide" id="slide-6" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">结论 · 环比</h2>
|
||||
<div class="row" style="align-items:center;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 28px 32px;">
|
||||
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: 14px;">
|
||||
<span class="icon">📌</span>
|
||||
<span class="tag">三条结论</span>
|
||||
</div>
|
||||
<div class="list">
|
||||
<p>1)主账户(卡卡猫)三个月<b>净流出约 0.6 万</b>;12月大额流入支撑1月集中支出。</p>
|
||||
<p>2)<span>芸归喜 + 支付宝企业</span>三月合计净流入约 326 元(小额辅助)。</p>
|
||||
<p>3)2月支出已明显收缩,现金流压力缓解;待补:云消费、飞书工资。</p>
|
||||
</div>
|
||||
<div class="note ok" style="margin-top: 14px;">✅ 环比:1月较12月净额降约19.9万;2月较1月回升约17.3万。</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card" style="padding: 16px;">
|
||||
<svg viewBox="0 0 420 420" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="420" height="420" rx="18" fill="rgba(255,255,255,0.40)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="36" y="66" font-size="16" font-weight="950" fill="rgba(0,0,0,0.76)">关键数字一览</text>
|
||||
<rect x="36" y="88" width="348" height="56" rx="14" fill="rgba(52,199,89,0.15)" stroke="rgba(52,199,89,0.25)"/>
|
||||
<text x="210" y="124" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">12月净 +18.08 万</text>
|
||||
|
||||
<rect x="36" y="158" width="348" height="56" rx="14" fill="rgba(255,59,48,0.12)" stroke="rgba(255,59,48,0.22)"/>
|
||||
<text x="210" y="194" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">1月净 -17.99 万</text>
|
||||
|
||||
<rect x="36" y="228" width="348" height="56" rx="14" fill="rgba(255,59,48,0.08)" stroke="rgba(255,59,48,0.18)"/>
|
||||
<text x="210" y="264" text-anchor="middle" font-size="15" font-weight="950" fill="#1D1D1F">2月净 -0.70 万</text>
|
||||
|
||||
<rect x="36" y="298" width="348" height="72" rx="14" fill="rgba(10,132,255,0.10)" stroke="rgba(10,132,255,0.2)"/>
|
||||
<text x="210" y="332" text-anchor="middle" font-size="14" font-weight="900" fill="rgba(0,0,0,0.76)">三月合计净 -6,053.57</text>
|
||||
<text x="210" y="356" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.52)">略亏 · 需盯回款与预算</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 7: 风险与下一步 -->
|
||||
<div class="slide" id="slide-7" style="justify-content:center;">
|
||||
<h2 style="margin-bottom: 18px;">风险 · 下一步</h2>
|
||||
<div class="row" style="align-items:center;">
|
||||
<div class="col" style="flex: 1;">
|
||||
<div class="glass-strong" style="padding: 28px 32px;">
|
||||
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: 14px;">
|
||||
<span class="icon">🚨</span>
|
||||
<span class="tag">风险与行动</span>
|
||||
</div>
|
||||
<div class="list">
|
||||
<p>风险:<span>无稳定月入时集中支出</span>会导致现金压力;云消费、工资待补。</p>
|
||||
<p>行动 1:<span>预算上限</span>(工资/税/云/外包每科目设上限)。</p>
|
||||
<p>行动 2:<span>回款节奏</span>(每周盯应收/已收/逾期)。</p>
|
||||
<p>行动 3:<span>现金红线</span>(余额 < 2月固定成本 → 自动降本)。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass img-card wide" style="padding: 16px;">
|
||||
<svg viewBox="0 0 520 360" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="520" height="360" rx="18" fill="rgba(255,255,255,0.42)"/>
|
||||
<g font-family="Inter, -apple-system, sans-serif">
|
||||
<text x="28" y="42" font-size="14" font-weight="900" fill="rgba(0,0,0,0.70)">下一步流程图</text>
|
||||
<rect x="28" y="68" width="464" height="64" rx="16" fill="rgba(10,132,255,0.12)" stroke="rgba(10,132,255,0.22)"/>
|
||||
<text x="260" y="102" text-anchor="middle" font-size="14" font-weight="950" fill="#1D1D1F">补齐云消费、飞书工资 → 完整月结</text>
|
||||
<text x="260" y="126" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.52)">数据来源:腾讯云 API、飞书钱袋子</text>
|
||||
|
||||
<line x1="260" y1="132" x2="260" y2="148" stroke="rgba(0,0,0,0.2)" stroke-width="1"/>
|
||||
<rect x="28" y="148" width="464" height="64" rx="16" fill="rgba(52,199,89,0.12)" stroke="rgba(52,199,89,0.22)"/>
|
||||
<text x="260" y="182" text-anchor="middle" font-size="14" font-weight="950" fill="#1D1D1F">费用科目化 + 每周滚动预测</text>
|
||||
<text x="260" y="206" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.52)">把“平台消费/刚性成本”单独列科目</text>
|
||||
|
||||
<line x1="260" y2="212" x2="260" y2="228" stroke="rgba(0,0,0,0.2)" stroke-width="1"/>
|
||||
<rect x="28" y="228" width="464" height="64" rx="16" fill="rgba(255,149,0,0.12)" stroke="rgba(255,149,0,0.22)"/>
|
||||
<text x="260" y="262" text-anchor="middle" font-size="14" font-weight="950" fill="#1D1D1F">现金红线制度落地</text>
|
||||
<text x="260" y="286" text-anchor="middle" font-size="12" font-weight="800" fill="rgba(0,0,0,0.52)">余额 < 2月固定成本 → 降本/停非必要支出</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slide 8: 结尾 -->
|
||||
<div class="slide" id="slide-8" style="justify-content:center; align-items:center;">
|
||||
<div class="glass-strong" style="padding: 56px 72px; text-align:center; width: 980px;">
|
||||
<span class="icon">✅</span>
|
||||
<h1 class="text-dark" style="margin: 18px 0 10px;">三个月最后一句</h1>
|
||||
<p class="text-muted" style="font-size: 22px; font-weight: 850; line-height: 1.6;">
|
||||
主账户三个月净流出约 0.6 万;<br>
|
||||
<b>12月大额流入撑住1月集中支出,2月已收缩。</b><br>
|
||||
下一步:预算有上限、回款有节奏、现金有红线。
|
||||
</p>
|
||||
<div style="display:flex; justify-content:center; gap:12px; margin-top: 26px; flex-wrap: wrap;">
|
||||
<span class="pill">📊 图表 · 流程图</span>
|
||||
<span class="pill">🧾 三个月报表</span>
|
||||
<span class="pill">🚨 风险与行动</span>
|
||||
</div>
|
||||
<div class="small" style="margin-top: 18px;">数据:三个月财务报表_202512-202602.md · 土簿 · 卡若AI 财务管理</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -63,7 +63,7 @@ def build_ppt(imgs, out_ppt):
|
||||
def main():
|
||||
import argparse
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--html", default="复盘", choices=["复盘", "卡若人设", "纳瓦尔访谈", "天恩乖乖", "今日日志总结", "家里NAS对话描述", "公司财务分析", "公司财务月报_2026-01"])
|
||||
ap.add_argument("--html", default="复盘", choices=["复盘", "卡若人设", "纳瓦尔访谈", "天恩乖乖", "今日日志总结", "家里NAS对话描述", "公司财务分析", "公司财务月报_2026-01", "三个月财务报表"])
|
||||
args = ap.parse_args()
|
||||
if args.html == "卡若人设":
|
||||
html = BASE / "卡若人设PPT_毛玻璃.html"
|
||||
@@ -91,6 +91,11 @@ def main():
|
||||
out_slides = OUT_ROOT / "公司财务月报_2026-01_毛玻璃_slides"
|
||||
out_ppt = OUT_ROOT / "公司财务月报_2026年1月_CFO大白话_毛玻璃.pptx"
|
||||
max_slides = 10
|
||||
elif args.html == "三个月财务报表":
|
||||
html = BASE / "三个月财务报表PPT_毛玻璃.html"
|
||||
out_slides = OUT_ROOT / "三个月财务报表_毛玻璃_slides"
|
||||
out_ppt = OUT_ROOT / "三个月财务报表_202512-202602_图表流程图_毛玻璃.pptx"
|
||||
max_slides = 8
|
||||
elif args.html == "天恩乖乖":
|
||||
html = BASE / "天恩乖乖PPT_毛玻璃.html"
|
||||
out_slides = TIANEN_DIR / "乖乖_毛玻璃_slides"
|
||||
|
||||
@@ -1,103 +1,130 @@
|
||||
---
|
||||
name: 前端生成
|
||||
description: 现代UI代码生成。触发词:生成UI、前端代码、设计页面、生成组件、现代风格、UI设计、页面布局、占位图、图标生成。生成符合现代审美的UI代码,支持占位图和图标生成。
|
||||
description: 现代UI代码生成,默认遵循卡若标准(神射手/毛狐狸):苹果毛玻璃、渐变背景、统一色板与组件。触发词:生成UI、前端代码、设计页面、生成组件、神射手、毛狐狸、毛玻璃、卡若标准。
|
||||
group: 木
|
||||
triggers: 前端生成、UI生成、页面生成
|
||||
triggers: 前端生成、UI生成、页面生成、神射手风格、毛狐狸风格、毛玻璃
|
||||
owner: 木果
|
||||
version: "1.0"
|
||||
updated: "2026-02-16"
|
||||
version: "2.0"
|
||||
updated: "2026-02-26"
|
||||
---
|
||||
|
||||
# 前端生成
|
||||
|
||||
前端三剑客:UI设计 + 图片生成 + 快速预览
|
||||
前端三剑客:UI设计 + 图片生成 + 快速预览。**官网/全站/数据中台类项目优先采用「卡若标准(神射手/毛狐狸)」**。
|
||||
|
||||
## 核心能力
|
||||
|
||||
1. **Design** - 生成现代审美UI代码
|
||||
1. **Design** - 生成现代审美UI代码(默认卡若标准:毛玻璃+渐变)
|
||||
2. **Imagen** - 生成占位图和图标
|
||||
3. **Preview** - 快速部署预览
|
||||
|
||||
## UI 设计原则
|
||||
---
|
||||
|
||||
### 现代审美标准
|
||||
## 卡若标准(神射手/毛狐狸)— 优先采用
|
||||
|
||||
> 布局、颜色、毛玻璃、组件与特效以神射手/毛狐狸为准,详见:**火炬「前端开发」Skill** 同目录下的 `前端开发/前端标准_神射手与毛狐狸.md`。
|
||||
|
||||
### 风格要点
|
||||
|
||||
- **背景**:`min-h-screen bg-gradient-to-br from-slate-50 via-blue-50/30 to-purple-50/20 p-4 md:p-6`
|
||||
- **主按钮**:`bg-gradient-to-r from-blue-500 to-purple-500`,hover `from-blue-600 to-purple-600`
|
||||
- **卡片**:`bg-white/70`~`bg-white/90 backdrop-blur`、`rounded-xl`、`shadow-sm`/`shadow-lg`、`border-0`
|
||||
- **图标**:统一 `lucide-react`;模块入口用渐变块 `w-10 h-10 rounded-xl bg-gradient-to-r from-xxx to-xxx`
|
||||
- **移动端**:底部导航 `bg-white/95 backdrop-blur`;可点击元素 ≥44px;`pb-20` 留底栏
|
||||
|
||||
### 卡若标准 - 页面容器
|
||||
|
||||
```tsx
|
||||
<div className="min-h-screen bg-gradient-to-br from-slate-50 via-blue-50/30 to-purple-50/20 p-4 md:p-6">
|
||||
{children}
|
||||
</div>
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 现代 UI 设计要素 │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 📐 布局 │
|
||||
│ • 大量留白(呼吸感) │
|
||||
│ • 对齐和网格系统 │
|
||||
│ • 响应式设计 │
|
||||
│ │
|
||||
│ 🎨 色彩 │
|
||||
│ • 主色 + 辅助色 + 中性色 │
|
||||
│ • 对比度符合无障碍标准 │
|
||||
│ • 渐变和阴影增加层次 │
|
||||
│ │
|
||||
│ 📝 字体 │
|
||||
│ • 字重层级分明(400/500/600/700) │
|
||||
│ • 行高 1.5-1.8 │
|
||||
│ • 中文用系统字体栈 │
|
||||
│ │
|
||||
│ ✨ 交互 │
|
||||
│ • 微动效(过渡、悬停) │
|
||||
│ • 加载状态(骨架屏) │
|
||||
│ • 反馈明确 │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
|
||||
### 卡若标准 - 统计/轻量卡片
|
||||
|
||||
```tsx
|
||||
<Card className="border-0 shadow-sm bg-white/70">
|
||||
<CardContent className="p-3">
|
||||
<div className="flex items-center gap-2">
|
||||
<Icon className="h-4 w-4 text-blue-500" />
|
||||
<div>
|
||||
<div className="text-lg font-bold">{value}</div>
|
||||
<div className="text-xs text-gray-500">标签</div>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
```
|
||||
|
||||
### 卡若标准 - 功能模块入口卡片
|
||||
|
||||
```tsx
|
||||
<Card className="border-0 shadow-sm bg-white/70 cursor-pointer hover:shadow-md transition-all group">
|
||||
<CardContent className="p-3">
|
||||
<div className="w-10 h-10 rounded-xl bg-gradient-to-r from-blue-500 to-cyan-500 flex items-center justify-center mb-2 group-hover:scale-110 transition-transform">
|
||||
<Icon className="w-5 h-5 text-white" />
|
||||
</div>
|
||||
<h3 className="font-medium text-sm text-gray-900">{title}</h3>
|
||||
<p className="text-xs text-gray-500 mt-0.5">{desc}</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
```
|
||||
|
||||
### 卡若标准 - 主按钮
|
||||
|
||||
```tsx
|
||||
<Button className="h-10 px-4 bg-gradient-to-r from-blue-500 to-purple-500">
|
||||
主要操作
|
||||
</Button>
|
||||
```
|
||||
|
||||
### 卡若标准 - 毛玻璃 CSS(globals.css)
|
||||
|
||||
```css
|
||||
.glass-card { @apply backdrop-blur-md rounded-2xl p-6; background-color: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); }
|
||||
.glass-nav { @apply backdrop-blur-sm rounded-2xl; background-color: rgba(255,255,255,0.2); }
|
||||
.glass-button { @apply backdrop-blur-sm rounded-xl px-4 py-2; min-height: 44px; } /* 移动端触达 */
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## UI 设计原则(通用)
|
||||
|
||||
### 现代审美要素
|
||||
|
||||
- 📐 布局:留白、网格、响应式(md 断点、pb-20 底栏)
|
||||
- 🎨 色彩:主色+辅助色+中性色;卡若项目用蓝紫渐变与 white/70~90 毛玻璃
|
||||
- 📝 字体:字重 400/500/600/700;正文 text-sm,副标题 text-xs text-gray-500
|
||||
- ✨ 交互:骨架屏优先、过渡/悬停、触达 ≥44px
|
||||
|
||||
### 技术栈推荐
|
||||
|
||||
| 场景 | 推荐方案 |
|
||||
|------|----------|
|
||||
| React | Tailwind CSS + shadcn/ui |
|
||||
| 卡若官网/全站/中台 | Next.js 14 + Tailwind + shadcn/ui + lucide-react(按神射手标准) |
|
||||
| React 通用 | Tailwind CSS + shadcn/ui |
|
||||
| Vue | Tailwind CSS + Vant UI |
|
||||
| 原生 | Tailwind CSS |
|
||||
|
||||
## 组件生成模板
|
||||
## 组件生成模板(通用)
|
||||
|
||||
### 卡片组件
|
||||
### 卡片组件(非毛玻璃时可选用)
|
||||
|
||||
```tsx
|
||||
// 现代卡片组件
|
||||
<div className="
|
||||
bg-white rounded-2xl shadow-sm
|
||||
border border-gray-100
|
||||
p-6 hover:shadow-md
|
||||
transition-shadow duration-200
|
||||
">
|
||||
<div className="bg-white rounded-2xl shadow-sm border border-gray-100 p-6 hover:shadow-md transition-shadow duration-200">
|
||||
<h3 className="text-lg font-semibold text-gray-900">标题</h3>
|
||||
<p className="mt-2 text-gray-600 leading-relaxed">描述内容</p>
|
||||
</div>
|
||||
```
|
||||
|
||||
### 按钮组件
|
||||
### 按钮(次选,卡若优先用渐变主按钮)
|
||||
|
||||
```tsx
|
||||
// 主按钮
|
||||
<button className="
|
||||
px-6 py-3 rounded-xl
|
||||
bg-blue-600 hover:bg-blue-700
|
||||
text-white font-medium
|
||||
transition-colors duration-200
|
||||
shadow-sm hover:shadow
|
||||
">
|
||||
主要操作
|
||||
</button>
|
||||
// 主按钮 - 卡若标准见上
|
||||
<Button className="h-10 px-4 bg-gradient-to-r from-blue-500 to-purple-500">主要操作</Button>
|
||||
|
||||
// 次按钮
|
||||
<button className="
|
||||
px-6 py-3 rounded-xl
|
||||
bg-gray-100 hover:bg-gray-200
|
||||
text-gray-700 font-medium
|
||||
transition-colors duration-200
|
||||
">
|
||||
次要操作
|
||||
</button>
|
||||
<Button variant="outline" className="rounded-xl">次要操作</Button>
|
||||
```
|
||||
|
||||
## 占位图生成
|
||||
@@ -142,7 +169,21 @@ https://dummyimage.com/400x300/eee/333
|
||||
|
||||
## 配色方案
|
||||
|
||||
### 常用配色
|
||||
### 卡若标准(神射手/毛狐狸)
|
||||
|
||||
| 用途 | Tailwind 类名 |
|
||||
|------|----------------|
|
||||
| 页面背景 | `from-slate-50 via-blue-50/30 to-purple-50/20` |
|
||||
| 主按钮/主操作 | `from-blue-500 to-purple-500`,hover `from-blue-600 to-purple-600` |
|
||||
| 卡片表面 | `bg-white/70`、`bg-white/80`、`bg-white/90 backdrop-blur` |
|
||||
| 成功/在线 | `green-500`、`bg-green-100 text-green-700` |
|
||||
| 警告 | `yellow-500`、`bg-yellow-100 text-yellow-700` |
|
||||
| 错误 | `red-500`、`bg-red-100 text-red-700` |
|
||||
| 高亮/等级 | `purple-500`、`bg-purple-100 text-purple-700` |
|
||||
| 标题 | `text-gray-900`、`font-bold` / `font-medium` |
|
||||
| 副标题/说明 | `text-xs text-gray-500` |
|
||||
|
||||
### 通用配色(非卡若项目可选)
|
||||
|
||||
| 用途 | 色值 | Tailwind |
|
||||
|------|------|----------|
|
||||
@@ -154,3 +195,9 @@ https://dummyimage.com/400x300/eee/333
|
||||
| 文字次 | #6B7280 | gray-500 |
|
||||
| 背景 | #F9FAFB | gray-50 |
|
||||
| 边框 | #E5E7EB | gray-200 |
|
||||
|
||||
---
|
||||
|
||||
## 联动
|
||||
|
||||
- **前端开发(火炬)**:官网/全站/数据中台类项目前端与毛玻璃标准见火炬「前端开发」Skill,规范文档为同目录 `前端开发/前端标准_神射手与毛狐狸.md`,生成页面时可直接引用该文档中的类名与组件片段。
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
name: 全栈开发
|
||||
description: 卡若AI 全栈开发(火炬)— 知己及类似项目经验 + 官网/全站开发与「开发文档 1~10」标准流程。含分销、RAG、向量化;官网/全站类任务时按 1~10 调研→生成→更新,类似事情用本 Skill 做调研与生成。
|
||||
triggers: 全栈开发/知己项目/分销/存客宝/RAG/向量化/Next.js/知识库/卡若AI官网/官网开发/全站开发/开发文档/1~10/开发模板/官网全站/v0前端/v0生成/毛玻璃/前端规格
|
||||
triggers: 全栈开发/知己项目/分销/存客宝/RAG/向量化/Next.js/知识库/卡若AI官网/官网开发/全站开发/开发文档/1~10/开发模板/官网全站/v0前端/v0生成/毛玻璃/前端规格/神射手/毛狐狸/前端标准
|
||||
owner: 火炬
|
||||
group: 火
|
||||
version: "2.0"
|
||||
updated: "2026-02-17"
|
||||
version: "2.1"
|
||||
updated: "2026-02-26"
|
||||
---
|
||||
|
||||
# 全栈开发(火炬)
|
||||
@@ -44,11 +44,21 @@ updated: "2026-02-17"
|
||||
|
||||
前端需求与内容以该仓库下 `4、前端/`(规范、页面与路由、组件规格、毛玻璃与自适应、v0 融合、检查清单)及 `3、原型/` 为准;部署以 `8、部署/` 为准。
|
||||
|
||||
### 1.4 前端(含开发文档 4、前端 与 v0 能力融合)
|
||||
### 1.4 前端(见「前端开发」Skill + 开发文档 4、前端 + v0)
|
||||
|
||||
官网/全站前端统一按 **开发文档 4、前端** 执行,并融合 **Vercel v0** 生成能力;部署到 Vercel/v0 时与金盾「Vercel与v0部署流水线」协同。
|
||||
官网/全站/数据中台类**前端与毛玻璃风格**统一走 **「前端开发」Skill**,不再在本 Skill 内展开前端标准全文。
|
||||
|
||||
**4、前端 必读文档(开发文档内)**:
|
||||
**前端开发(必读)**:
|
||||
|
||||
| 技能/文档 | 用途 |
|
||||
|:---|:---|
|
||||
| **火炬「前端开发」Skill** | `04_卡火(火)/火炬_全栈消息/前端开发/SKILL.md` — 苹果毛玻璃风格、执行步骤、协同说明 |
|
||||
| **`前端开发/前端标准_神射手与毛狐狸.md`** | 布局、颜色、背景、卡片、按钮、气泡、底部导航、globals.css 毛玻璃类、移动端触达;所有新前端开发以此为准 |
|
||||
|
||||
- 参考实现:神射手项目 `开发文档/4、前端/`、`app/globals.css`、`app/page.tsx`、`app/ClientLayout.tsx`、`app/components/Sidebar.tsx`、`BottomNav.tsx`。
|
||||
- 风格要点:苹果毛玻璃、`from-slate-50 via-blue-50/30 to-purple-50/20` 渐变背景、主按钮 `from-blue-500 to-purple-500`、卡片 `bg-white/70`~`bg-white/90 backdrop-blur`、骨架屏优先、lucide-react 图标、移动端 44px 触达与底部导航。
|
||||
|
||||
**4、前端 必读文档(项目自带开发文档时)**:
|
||||
|
||||
| 文档 | 用途 |
|
||||
|:---|:---|
|
||||
@@ -62,10 +72,10 @@ updated: "2026-02-17"
|
||||
|
||||
**v0 前端工作流(与开发文档一致)**:
|
||||
|
||||
1. **出稿**:在 v0.dev 新建项目,粘贴 `v0生成用-*前端规格.md` 内复制起点~复制终点内容,输入「按此规格生成,Next.js + Tailwind + shadcn/ui,苹果毛玻璃,移动端自适应」;可先首页再分页生成。
|
||||
1. **出稿**:在 v0.dev 新建项目,粘贴 `v0生成用-*前端规格.md` 或**前端开发** Skill 内《前端标准_神射手与毛狐狸》中的颜色/布局/组件描述,输入「按此规格生成,Next.js + Tailwind + shadcn/ui,苹果毛玻璃,移动端自适应」。
|
||||
2. **落库**:将 v0 生成代码复制到项目 `site/` 或 `frontend/`,与现有结构对齐。
|
||||
3. **套规范**:把 v0 的 Card/Nav 等替换为 `glass-card`、`glass-nav` 或《苹果毛玻璃风格与自适应规范》中的类;补全 `sm:/md:/lg:` 与触达 ≥44px。
|
||||
4. **验收**:用《前端开发检查清单》自检;有部署到 Vercel/v0 需求时走金盾「Vercel与v0部署流水线」Skill。
|
||||
3. **套规范**:把 v0 的 Card/Nav 等替换为**前端开发**内《前端标准_神射手与毛狐狸》的 `glass-card`、`glass-nav` 及类名;补全 `sm:/md:/lg:` 与触达 ≥44px。
|
||||
4. **验收**:用《前端开发检查清单》或前端开发标准自检;有部署到 Vercel/v0 需求时走金盾「Vercel与v0部署流水线」Skill。
|
||||
|
||||
**协同**:Word/文档类清洗用火炬「文档清洗」;部署到 v0、同步 GitHub/Vercel 用金盾「Vercel与v0部署流水线」。
|
||||
|
||||
@@ -130,6 +140,9 @@ scripts/
|
||||
| 项目开发中整合存客宝获客功能 | 获客型项目 + 存客宝 |
|
||||
| 多Agent与板块拆分(水泉) | 业务流程 vs 开发流程、十目录界定 |
|
||||
| **卡若ai网站 开发文档** | **官网/全站开发标准:1~10 结构、前端需求与内容、使用手册(带图)、提示词与执行流程** |
|
||||
| **火炬「前端开发」Skill** | **毛玻璃风格与前端标准;前端开发必读** |
|
||||
| **前端开发/前端标准_神射手与毛狐狸** | 布局/颜色/毛玻璃/组件/特效统一标准,所有项目前端开发参考 |
|
||||
| **神射手 开发文档 4、前端** | 神射手项目内前端规范、核心组件代码、截图索引 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
47
04_卡火(火)/火炬_全栈消息/前端开发/SKILL.md
Normal file
47
04_卡火(火)/火炬_全栈消息/前端开发/SKILL.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
name: 前端开发
|
||||
description: 卡若AI 前端开发(火炬)— 苹果毛玻璃风格与卡若标准(神射手/毛狐狸)。官网/全站/数据中台类前端开发时按本 Skill 执行;布局、颜色、组件、globals.css 毛玻璃类均以《前端标准_神射手与毛狐狸》为准。
|
||||
triggers: 前端开发、毛玻璃、神射手风格、毛狐狸风格、前端标准、前端规格、苹果毛玻璃、Glassmorphism
|
||||
owner: 火炬
|
||||
group: 火
|
||||
version: "1.0"
|
||||
updated: "2026-02-26"
|
||||
---
|
||||
|
||||
# 前端开发(火炬)
|
||||
|
||||
> 主责:**苹果毛玻璃风格**与卡若标准前端(神射手/毛狐狸)。全栈开发做官网/全站时,前端部分统一走本 Skill。
|
||||
|
||||
---
|
||||
|
||||
## 一、必读文档(本目录)
|
||||
|
||||
| 文档 | 用途 |
|
||||
|:---|:---|
|
||||
| **`前端开发/前端标准_神射手与毛狐狸.md`** | **布局、颜色、背景、卡片、按钮、气泡、底部导航、globals.css 毛玻璃类、移动端触达、核心组件形态;所有新前端开发以此为准** |
|
||||
|
||||
---
|
||||
|
||||
## 二、毛玻璃风格要点
|
||||
|
||||
- **页面背景**:`bg-gradient-to-br from-slate-50 via-blue-50/30 to-purple-50/20` 或 `from-blue-50 via-white to-purple-50`
|
||||
- **主按钮**:`bg-gradient-to-r from-blue-500 to-purple-500`,hover `from-blue-600 to-purple-600`
|
||||
- **卡片**:`bg-white/70`~`bg-white/90 backdrop-blur`、`rounded-xl`、`shadow-sm`/`shadow-lg`
|
||||
- **全局类**:`.glass`、`.glass-light`、`.glass-heavy`、`.glass-card`、`.glass-nav`、`.glass-button`、`.glass-input`(见《前端标准_神射手与毛狐狸》第四节)
|
||||
- **移动端**:底部导航 `bg-white/95 backdrop-blur`;可点击元素 ≥44px;内容区 `pb-20` 留底栏
|
||||
- **图标**:统一 `lucide-react`;骨架屏优先,禁止仅用 Spinner
|
||||
|
||||
---
|
||||
|
||||
## 三、执行时
|
||||
|
||||
1. **先读**:`前端开发/前端标准_神射手与毛狐狸.md`
|
||||
2. **参考实现**:神射手项目 `开发文档/4、前端/`、`app/globals.css`、`app/page.tsx`、`app/ClientLayout.tsx`、`app/components/Sidebar.tsx`、`BottomNav.tsx`
|
||||
3. **生成/套用**:新页面与组件按标准中的类名与组件形态编写;v0 出稿后替换为 glass 类与标准色板。
|
||||
|
||||
---
|
||||
|
||||
## 四、协同
|
||||
|
||||
- **全栈开发**:做官网/全站/开发文档 1~10 时,前端部分引用本 Skill,不再在全栈开发 Skill 内展开前端标准全文。
|
||||
- **前端生成(木果)**:生成 UI 时默认采用本目录《前端标准_神射手与毛狐狸》;可引用本 Skill 或直接读同目录规范文档。
|
||||
244
04_卡火(火)/火炬_全栈消息/前端开发/前端标准_神射手与毛狐狸.md
Normal file
244
04_卡火(火)/火炬_全栈消息/前端开发/前端标准_神射手与毛狐狸.md
Normal file
@@ -0,0 +1,244 @@
|
||||
# 卡若标准前端:神射手与毛狐狸规范
|
||||
|
||||
> 本标准提炼自 **神射手数据中台** 与 **毛狐狸** 的布局、功能、风格与细节,作为官网/全站/数据中台类项目的统一前端开发标准。
|
||||
> 更新:2026-02-26
|
||||
|
||||
---
|
||||
|
||||
## 一、设计风格总则
|
||||
|
||||
- **风格名称**:苹果毛玻璃(Glassmorphism)+ 渐变背景
|
||||
- **原则**:通透、层次、统一色板、模块有专属图标与 emoji、状态有对应颜色
|
||||
- **技术栈**:Next.js 14+、Radix UI / shadcn/ui、TailwindCSS、Recharts、lucide-react
|
||||
|
||||
---
|
||||
|
||||
## 二、颜色规范
|
||||
|
||||
### 2.1 主色与渐变
|
||||
|
||||
| 用途 | Tailwind 类名 | 说明 |
|
||||
|:---|:---|:---|
|
||||
| 主按钮/主操作 | `bg-gradient-to-r from-blue-500 to-purple-500` `hover:from-blue-600 hover:to-purple-600` | 蓝→紫渐变 |
|
||||
| 次要按钮 | `variant="outline"` 或 `bg-gray-100 hover:bg-gray-200` | 灰底描边 |
|
||||
| 成功状态 | `green-500` / `bg-green-100 text-green-700` | 在线、成功 |
|
||||
| 错误状态 | `red-500` / `bg-red-100 text-red-700` | 失败、错误 |
|
||||
| 警告状态 | `yellow-500` / `bg-yellow-100 text-yellow-700` | 延迟、警告 |
|
||||
| 信息/高亮 | `purple-500` ~ `purple-600` / `bg-purple-100 text-purple-700` | 等级、强调 |
|
||||
|
||||
### 2.2 背景
|
||||
|
||||
| 场景 | 类名 |
|
||||
|:---|:---|
|
||||
| 页面主背景 | `bg-gradient-to-br from-slate-50 via-blue-50/30 to-purple-50/20` |
|
||||
| 备选(与神射手 ClientLayout 一致) | `bg-gradient-to-br from-blue-50 via-white to-purple-50` |
|
||||
| 固定背景装饰(可选) | 大圆 `bg-blue-200` / `bg-purple-200` / `bg-pink-200` + `rounded-full mix-blend-multiply filter blur-xl opacity-30 animate-pulse` |
|
||||
|
||||
### 2.3 卡片与表面
|
||||
|
||||
| 场景 | 类名 |
|
||||
|:---|:---|
|
||||
| 统计/轻量卡片 | `bg-white/70` 或 `bg-white/80` |
|
||||
| 主内容卡片 | `bg-white/90 backdrop-blur` 或 `bg-white/80 backdrop-blur` |
|
||||
| 边框 | `border-0` 或 `border-slate-200/60`、`border-purple-100` |
|
||||
| 圆角 | `rounded-xl`(卡片)、`rounded-2xl`(大块、弹窗、消息气泡) |
|
||||
| 阴影 | `shadow-sm`、`shadow-lg`(主卡片) |
|
||||
|
||||
### 2.4 文字
|
||||
|
||||
| 用途 | 类名 |
|
||||
|:---|:---|
|
||||
| 标题 | `text-xl font-bold text-gray-900` 或 `text-sm font-medium` |
|
||||
| 副标题/说明 | `text-xs text-gray-500` |
|
||||
| 正文 | `text-sm text-gray-800`、`text-gray-700` |
|
||||
| 次要/占位 | `text-gray-500`、`text-gray-400` |
|
||||
|
||||
---
|
||||
|
||||
## 三、布局规范
|
||||
|
||||
### 3.1 页面容器
|
||||
|
||||
```tsx
|
||||
// 标准页面根
|
||||
<div className="min-h-screen bg-gradient-to-br from-slate-50 via-blue-50/30 to-purple-50/20 p-4 md:p-6">
|
||||
{children}
|
||||
</div>
|
||||
```
|
||||
|
||||
- 内边距:`p-4 md:p-6`
|
||||
- 主内容区在布局中可再包一层:`glass-card min-h-full`(见下方全局样式)
|
||||
|
||||
### 3.2 栅格与间距
|
||||
|
||||
- 统计类:`grid grid-cols-3 gap-3`
|
||||
- 功能模块入口:`grid grid-cols-3 gap-3`(移动端可 2~3 列)
|
||||
- 列表/卡片流:`space-y-3`、`gap-2`、`gap-4` 按层级使用
|
||||
|
||||
### 3.3 顶部栏
|
||||
|
||||
- 左侧:标题 `text-xl font-bold text-gray-900` + 副标题 `text-xs text-gray-500`
|
||||
- 右侧:状态 Badge(如延迟 ms)+ 图标按钮(设置、监控等),`flex items-center gap-2`
|
||||
|
||||
### 3.4 移动端适配
|
||||
|
||||
- 断点:`md:` 为 768px;主内容 `pb-20` 为底部导航留位
|
||||
- 底部导航:`fixed bottom-0 left-0 right-0 z-40 border-t bg-white/95 backdrop-blur md:hidden`
|
||||
- 可点击触达:按钮/导航项 `min-height: 44px`(如 `min-h-[44px]` 或 `py-3`)
|
||||
- 侧栏:移动端用抽屉式 MobileSidebar,桌面端固定 Sidebar
|
||||
|
||||
---
|
||||
|
||||
## 四、全局样式(CSS)
|
||||
|
||||
以下与神射手 `globals.css` 保持一致,新项目可直接复用。
|
||||
|
||||
```css
|
||||
/* 毛玻璃层级 */
|
||||
.glass {
|
||||
backdrop-filter: blur(12px);
|
||||
border: 1px solid rgba(255,255,255,0.2);
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
box-shadow: 0 8px 32px 0 rgba(31,38,135,0.37);
|
||||
}
|
||||
.glass-light {
|
||||
backdrop-filter: blur(8px);
|
||||
border: 1px solid rgba(255,255,255,0.3);
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
box-shadow: 0 4px 16px 0 rgba(31,38,135,0.2);
|
||||
}
|
||||
.glass-heavy {
|
||||
backdrop-filter: blur(24px);
|
||||
border: 1px solid rgba(255,255,255,0.4);
|
||||
background-color: rgba(255,255,255,0.3);
|
||||
box-shadow: 0 16px 64px 0 rgba(31,38,135,0.5);
|
||||
}
|
||||
|
||||
.glass-card {
|
||||
@apply glass rounded-2xl p-6 transition-all duration-300;
|
||||
}
|
||||
.glass-card:hover {
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
.glass-nav { @apply glass-light rounded-2xl transition-all duration-300; }
|
||||
.glass-button {
|
||||
@apply glass-light rounded-xl px-4 py-2 transition-all duration-300;
|
||||
}
|
||||
.glass-button:hover {
|
||||
background-color: rgba(255,255,255,0.3);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.glass-button { min-height: 44px; }
|
||||
}
|
||||
|
||||
.glass-input {
|
||||
@apply glass-light rounded-xl px-4 py-2 transition-all duration-300;
|
||||
}
|
||||
.glass-input:focus {
|
||||
background-color: rgba(255,255,255,0.3);
|
||||
@apply ring-2 ring-white/50;
|
||||
}
|
||||
|
||||
/* 安全区(刘海/横条) */
|
||||
.safe-area-top { padding-top: env(safe-area-inset-top); }
|
||||
.safe-area-bottom { padding-bottom: env(safe-area-inset-bottom); }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、核心组件形态
|
||||
|
||||
### 5.1 统计卡片(三连)
|
||||
|
||||
```tsx
|
||||
<Card className="border-0 shadow-sm bg-white/70">
|
||||
<CardContent className="p-3">
|
||||
<div className="flex items-center gap-2">
|
||||
<Users className="h-4 w-4 text-blue-500" />
|
||||
<div>
|
||||
<div className="text-lg font-bold">{formatNumber(value)}</div>
|
||||
<div className="text-xs text-gray-500">标签</div>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
```
|
||||
|
||||
### 5.2 功能模块入口(带图标与渐变)
|
||||
|
||||
```tsx
|
||||
<Card className="border-0 shadow-sm bg-white/70 cursor-pointer hover:shadow-md transition-all group">
|
||||
<CardContent className="p-3">
|
||||
<div className="w-10 h-10 rounded-xl bg-gradient-to-r from-blue-500 to-cyan-500 flex items-center justify-center mb-2 group-hover:scale-110 transition-transform">
|
||||
<Icon className="w-5 h-5 text-white" />
|
||||
</div>
|
||||
<h3 className="font-medium text-sm text-gray-900">{title}</h3>
|
||||
<p className="text-xs text-gray-500 mt-0.5">{desc}</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
```
|
||||
|
||||
- 模块渐变示例:数据 `from-blue-500 to-cyan-500`,画像 `from-green-500 to-emerald-500`,市场 `from-orange-500 to-red-500`
|
||||
|
||||
### 5.3 主 CTA 按钮
|
||||
|
||||
```tsx
|
||||
<Button className="h-10 px-4 bg-gradient-to-r from-blue-500 to-purple-500">
|
||||
主要操作
|
||||
</Button>
|
||||
```
|
||||
|
||||
### 5.4 消息/气泡
|
||||
|
||||
- 用户消息:`rounded-2xl px-4 py-2.5 bg-gradient-to-r from-blue-500 to-purple-500 text-white`
|
||||
- AI 文本回复:`rounded-2xl px-4 py-2.5 bg-gray-100 text-gray-800`
|
||||
- 思考过程:`rounded-2xl px-4 py-2.5 bg-yellow-50 border border-yellow-200`,标题区 `text-yellow-700 text-xs`
|
||||
|
||||
### 5.5 用户/画像卡片
|
||||
|
||||
- 外框:`rounded-xl p-3 bg-gradient-to-r from-purple-50 to-blue-50 border border-purple-100`
|
||||
- 头像:`w-9 h-9 rounded-full bg-gradient-to-r from-purple-500 to-blue-500 flex items-center justify-center text-white text-sm font-bold`
|
||||
- Badge:`bg-purple-100 text-purple-700`、`variant="secondary"` 等
|
||||
|
||||
### 5.6 底部导航(移动端)
|
||||
|
||||
- 容器:`fixed bottom-0 left-0 right-0 z-40 border-t bg-white/95 backdrop-blur md:hidden`
|
||||
- 项:`flex flex-col items-center justify-center gap-1 py-2 text-xs`,激活 `text-blue-600`,未激活 `text-gray-500`
|
||||
- 图标:`h-5 w-5`,激活时同用 `text-blue-600`
|
||||
|
||||
---
|
||||
|
||||
## 六、图标与图标库
|
||||
|
||||
- **统一使用**:`lucide-react`
|
||||
- 每个业务模块有专属图标(如 LayoutDashboard、Database、Tags、Package、Bot、Monitor)
|
||||
- 状态:成功/在线 green、警告 yellow、错误 red、信息/高亮 purple/blue
|
||||
|
||||
---
|
||||
|
||||
## 七、交互与体验
|
||||
|
||||
- **加载**:优先骨架屏(Skeleton),严禁仅用 Spinner 占满整块
|
||||
- **路由**:可选 Framer Motion 做路由转场(initial/animate/exit + x + opacity)
|
||||
- **触达**:移动端可点击元素 ≥44px
|
||||
- **安全区**:有刘海/横条设备使用 `safe-area-*` 类
|
||||
|
||||
---
|
||||
|
||||
## 八、文件与目录约定
|
||||
|
||||
- 页面:`app/page.tsx`、`app/[module]/page.tsx`、`app/[module]/[subpage]/page.tsx`
|
||||
- 布局:`app/layout.tsx`、`app/ClientLayout.tsx`(含背景装饰、Sidebar、BottomNav)
|
||||
- 组件:`components/ui/*`(Radix/shadcn)、`components/Sidebar.tsx`、`MobileHeader.tsx`、`MobileSidebar.tsx`、`BottomNav.tsx`
|
||||
- 样式:`app/globals.css` 内 @layer components 定义 `.glass-*`、`.safe-area-*`
|
||||
|
||||
---
|
||||
|
||||
## 九、参考项目路径
|
||||
|
||||
- **神射手**:`/Users/karuo/Documents/开发/2、私域银行/神射手/`
|
||||
- 前端规范与组件:`开发文档/4、前端/`
|
||||
- 规则与 UI 约定:`.cursor/rules/shensheshou.mdc`
|
||||
- 本标准适用于:官网、全站、数据中台、后台类前端;新项目可直接引用本文档并复用神射手 `globals.css` 与组件类名。
|
||||
121
04_卡火(火)/火炬_全栈消息/本地项目启动/SKILL.md
Normal file
121
04_卡火(火)/火炬_全栈消息/本地项目启动/SKILL.md
Normal file
@@ -0,0 +1,121 @@
|
||||
---
|
||||
name: 本地项目启动
|
||||
version: "1.0"
|
||||
owner: 火炬
|
||||
group: 火
|
||||
triggers: 本地运行、启动玩值电竞、玩值电竞App、指定端口、项目端口、项目注册、运行项目、Docker部署、部署到Docker、docker部署、更新同步到Docker、同步到doc、Docker跑最新、更新同步、同步到Docker、本地最新
|
||||
updated: "2026-02-26"
|
||||
---
|
||||
|
||||
# 本地项目启动
|
||||
|
||||
按「项目与端口注册表」用**指定端口**启动本地项目,避免多项目都用 3000 冲突。涉及 **Docker 部署** 时须同时遵守「唯一 MongoDB」与「容器分组」约定(见下)。
|
||||
|
||||
---
|
||||
|
||||
## 触发条件
|
||||
|
||||
用户说以下关键词时激活:
|
||||
- 本地运行、启动玩值电竞、玩值电竞App
|
||||
- 指定端口、项目端口、项目注册、运行项目
|
||||
- **Docker 部署**:Docker部署、部署到Docker、docker部署、部署到 doc 等
|
||||
- **同步到 Docker**:更新同步到Docker、同步到 doc、Docker 跑最新、每次更新后运行 Docker 等
|
||||
|
||||
---
|
||||
|
||||
## Docker 部署约定(涉及 Docker 时必守)
|
||||
|
||||
凡涉及**部署到 Docker、Docker 相关**的操作,执行前必须确认并遵守:
|
||||
|
||||
1. **datacenter 分组(数据库)**
|
||||
- 所有**数据库相关** Docker 项目(MongoDB、Redis、MySQL、向量库等)一律归入 **datacenter** 分组。
|
||||
- 编排位置:卡若AI `01_卡资(金)/金仓_存储备份/datacenter/docker-compose.yml`(project name: datacenter);网络名 **datacenter_network**。
|
||||
- 全机只使用一个 MongoDB 实例:**datacenter_mongodb**(宿主机端口 **27017**),不在 website 或其他编排中新建 mongodb 服务。
|
||||
- 详见:`运营中枢/工作台/唯一MongoDB约定.md` 与 金仓 `datacenter/README.md`。
|
||||
|
||||
2. **website 分组(网站)**
|
||||
- 网站类服务(如玩值电竞 web、神射手)归入 **website** 编排,不单独为某站新建独立 compose 或独立 MongoDB。
|
||||
- 编排位置:神射手目录 `docker-compose.yml`(project name: website);端口与分组以 **《项目与端口注册表》** 为准。
|
||||
- website 内服务通过外部网络 **datacenter_network** 连接 datacenter 内数据库,例如 **`MONGODB_URI=mongodb://datacenter_mongodb:27017`**。
|
||||
|
||||
执行 Docker 部署或修改 compose 时,先对照上述两条检查,不符合则修正后再部署。
|
||||
|
||||
3. **本地与 Docker 同步(特别注意)**
|
||||
- **每次本地更新了代码/内容后**,要让 Docker 里跑的是**当前本地最新文件**,部署/运行时必须**带 `--build`** 重新构建镜像再启动,否则容器内仍是旧镜像。
|
||||
- 命令形式:在对应编排目录执行 **`docker compose up -d --build`**(例如 website 在神射手目录)。
|
||||
- **所有项目一律如此**:只要涉及「更新后部署到 Docker」「在 Docker 上运行」,一律用 `--build` 保证容器内是本地最新更改。
|
||||
|
||||
---
|
||||
|
||||
## 注册表位置(唯一数据源)
|
||||
|
||||
**路径**:`运营中枢/工作台/项目与端口注册表.md`
|
||||
|
||||
表内字段:项目名、项目路径、端口、启动命令。新增/改项目只改该表并让项目 dev 脚本带 `-p 端口`(或等价配置)。
|
||||
|
||||
---
|
||||
|
||||
## 执行步骤
|
||||
|
||||
### 1. 读注册表
|
||||
- 打开 `运营中枢/工作台/项目与端口注册表.md`
|
||||
- 按用户说的项目名(如「玩值电竞」「玩值电竞App」)找到对应行,得到:**项目路径**、**端口**、**启动命令**
|
||||
|
||||
### 2. 启动项目
|
||||
- **玩值电竞网站**:一律用 **Docker**,不用 pnpm dev。在神射手目录执行 `docker compose up -d --build`,访问 http://localhost:3001。若 Docker 未就绪,先启动 Docker Desktop,就绪后再执行上述命令。
|
||||
- **其他项目**:在项目路径下执行启动命令(端口已在各项目自己的 dev 脚本里固定,无需再传);后台运行:`cd "<项目路径>" && <启动命令>`,并说明「已用端口 xxx 启动,访问 http://localhost:xxx」。
|
||||
|
||||
### 3. 未在表中的项目
|
||||
- 告知「该项目尚未注册」;若要注册:在注册表加一行,并在该项目里把 dev 改为固定端口(如 Next.js:`next dev -p 3001`),再执行启动。
|
||||
|
||||
### 4. 若为 Docker 部署
|
||||
- 先读 **《Docker 部署约定》**(本节上文):确认数据库类服务归入 **datacenter** 分组、网站类归入 **website**,且 website 通过 datacenter_network 连接 datacenter_mongodb。
|
||||
- **本地与 Docker 同步**:每次本地有代码/内容更新后,要让 Docker 跑最新必须带 **`--build`**。执行:在神射手目录 **`docker compose up -d --build`**(玩值电竞等 website 项目);其他编排同理,一律用 `up -d --build` 保证容器内是本地最新。
|
||||
- 再按注册表与项目内 docker/README 执行;若需先起数据库,在卡若AI 金仓 `datacenter` 目录执行 `docker compose -p datacenter up -d`。
|
||||
|
||||
---
|
||||
|
||||
## 一键命令示例(玩值电竞网站 → 仅用 Docker)
|
||||
|
||||
```bash
|
||||
cd "/Users/karuo/Documents/开发/2、私域银行/神射手" && docker compose up -d --build
|
||||
```
|
||||
|
||||
- 玩值电竞网站**不用 pnpm dev**,一律在神射手目录用 Docker 启动;访问:http://localhost:3001
|
||||
- 若仅需本机开发调试(非对外访问),可在玩值电竞App 目录 `pnpm dev`,但对外/正式访问以 Docker 为准
|
||||
|
||||
---
|
||||
|
||||
## 输出格式
|
||||
|
||||
```
|
||||
[本地项目启动] 执行完成
|
||||
├─ 项目:玩值电竞App
|
||||
├─ 端口:3001
|
||||
├─ 本地:http://localhost:3001
|
||||
└─ 已后台启动,修改代码会自动热更新
|
||||
```
|
||||
|
||||
**玩值电竞App 部署/运行/访问时**:若用户问的是玩值电竞的**部署、运行、访问**(含 Docker、数据库、启动),回复**须以卡若复盘格式收尾**:
|
||||
- 目标·结果·达成率(一行,≤30 字)
|
||||
- 过程(可选)
|
||||
- 下一步(结合本次与项目目标)
|
||||
详见 `运营中枢/参考资料/卡若复盘格式_固定规则.md`。
|
||||
|
||||
---
|
||||
|
||||
## 安全原则
|
||||
|
||||
- 不修改注册表以外的系统或项目配置,除非用户明确要求新增/改绑定
|
||||
- 启动前不安装依赖(用户若需要可先说「安装依赖再启动」)
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 日期 | 版本 | 变更 |
|
||||
|:---|:---|:---|
|
||||
| 2026-02-26 | 1.0 | 初始版本;玩值电竞App 绑定 3001,注册表 + Skill 联动 |
|
||||
| 2026-02-26 | 1.1 | 新增 Docker 部署约定:唯一 MongoDB + 容器分组;触发词增加 Docker部署、部署到Docker |
|
||||
| 2026-02-26 | 1.2 | 新增 datacenter 分组:所有数据库相关 Docker 归入 datacenter,website 通过 datacenter_network 连接;Skill 与唯一MongoDB约定同步 |
|
||||
| 2026-02-26 | 1.3 | 新增「本地与 Docker 同步」:每次更新后部署须带 --build,Docker 跑本地最新;所有项目一致 |
|
||||
@@ -1,8 +1,8 @@
|
||||
# 卡若AI 技能注册表(Skill Registry)
|
||||
|
||||
> **一张表查所有技能**。任何 AI 拿到这张表,就能按关键词找到对应技能的 SKILL.md 路径并执行。
|
||||
> 60 技能 | 14 成员 | 5 负责人
|
||||
> 版本:5.2 | 更新:2026-02-25
|
||||
> 62 技能 | 14 成员 | 5 负责人
|
||||
> 版本:5.3 | 更新:2026-02-26
|
||||
|
||||
---
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
| W07 | 飞书管理 | 水桥 | 飞书日志、写入飞书、卡若的飞书日志、卡若飞书日志、日志运营报表登记 | `02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md` | 飞书日志/文档自动化 |
|
||||
| W08 | 智能纪要 | 水桥 | 会议纪要、产研纪要、**飞书妙记、飞书链接、妙记下载、第几场、指定场次、批量下载妙记、cunkebao.feishu.cn、meetings.feishu.cn/minutes** | `02_卡人(水)/水桥_平台对接/智能纪要/SKILL.md` | 会议录音转结构化纪要;飞书妙记识别与下载(单条/批量),完毕用复盘格式回复 |
|
||||
| W09 | 小程序管理 | 水桥 | 小程序、微信小程序 | `02_卡人(水)/水桥_平台对接/小程序管理/SKILL.md` | 微信小程序发布与维护 |
|
||||
| W10 | Soul文章上传 | 水桥 | **Soul文章上传、Soul派对文章、第9章上传、soul上传** | `02_卡人(水)/水桥_平台对接/Soul文章上传/SKILL.md` | 《一场soul的创业实验》第9章文章写好后上传到小程序,id 已存在则更新不重复 |
|
||||
| W10 | Soul创业实验 | 水桥 | **Soul创业实验、写Soul文章、写授文章、Soul派对写文章、第9章写文章、写soul场次、soul文章规则、Soul文章上传、第9章上传、soul上传、写soul文章、运营报表、派对填表、派对纪要** | `02_卡人(水)/水桥_平台对接/Soul创业实验/SKILL.md` | 写作+上传+运营报表统一入口;第9章规范与小程序上传见本 Skill 子类 |
|
||||
| W11 | Soul派对运营报表 | 水桥 | **运营报表、派对填表、派对截图填表发群、派对纪要、智能纪要、106场、107场、本月运营数据** | `02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md` | 派对截图+TXT→飞书运营报表→智能纪要→飞书群推送,含Token自刷新与写入校验 |
|
||||
| W12 | MCP 搜索与连接 | 水桥 | **MCP、找MCP、连接MCP、MCP搜索、发现MCP、添加MCP、需要MCP、MCP安装、MCP发现、查MCP、装MCP** | `02_卡人(水)/水桥_平台对接/MCP管理/SKILL.md` | 搜索 5000+ MCP 服务器→生成安装配置→写入 Cursor/Claude 等 |
|
||||
| W13 | Excel表格与日报 | 水桥 | **Excel写飞书、Excel导入飞书、批量写飞书表格、飞书表格导入、CSV写飞书、日报图表发飞书、表格日报** | `02_卡人(水)/水桥_平台对接/飞书管理/Excel表格与日报_SKILL.md` | 本地 Excel/CSV→飞书表格→自动日报图表→发飞书群 |
|
||||
@@ -107,6 +107,7 @@
|
||||
| # | 技能 | 成员 | 触发词 | SKILL 路径 | 一句话 |
|
||||
|:--|:---|:---|:---|:---|:---|
|
||||
| F01 | 全栈开发 | 火炬 | 知己、RAG、分销、**卡若AI官网、官网开发、全站开发、开发文档、1~10** | `04_卡火(火)/火炬_全栈消息/全栈开发/SKILL.md` | 全栈项目 + 官网/全站与开发文档 1~10 调研→生成→更新 |
|
||||
| F01a | 前端开发 | 火炬 | **前端开发、毛玻璃、神射手风格、毛狐狸风格、前端标准、苹果毛玻璃** | `04_卡火(火)/火炬_全栈消息/前端开发/SKILL.md` | 苹果毛玻璃风格 + 神射手/毛狐狸前端标准;官网/全站前端走本 Skill |
|
||||
| F02 | 消息中枢 | 火炬 | WhatsApp、Telegram | `04_卡火(火)/火炬_全栈消息/消息中枢/SKILL.md` | 多平台消息聚合 |
|
||||
| F03 | 读书笔记 | 火炬 | 拆解这本书、五行拆书 | `04_卡火(火)/火炬_全栈消息/读书笔记/SKILL.md` | 五行框架拆书 |
|
||||
| F04 | 文档清洗 | 火炬 | 文档清洗、PDF转MD | `04_卡火(火)/火炬_全栈消息/文档清洗/SKILL.md` | 批量文档格式转换 |
|
||||
@@ -115,6 +116,7 @@
|
||||
| F07 | 读书笔记(模型) | 火种 | 五行拆书 | `04_卡火(火)/火种_知识模型/读书笔记/SKILL.md` | 本地模型辅助拆书 |
|
||||
| F08 | 本地模型 | 火种 | ollama、qwen、本地AI | `04_卡火(火)/火种_知识模型/本地模型/SKILL.md` | Ollama/Qwen 本地部署 |
|
||||
| F21 | 本地代码库索引 | 火种 | 本地索引、本地搜索、不上传云端 | `04_卡火(火)/火种_知识模型/本地代码库索引/SKILL.md` | 本地 embedding 索引与语义检索,不上传云端 |
|
||||
| F22 | 本地项目启动 | 火炬 | **本地运行、启动玩值电竞、玩值电竞App、指定端口、项目端口、项目注册、运行项目、Docker部署、部署到Docker、docker部署、更新同步到Docker、同步到doc、Docker跑最新** | `04_卡火(火)/火炬_全栈消息/本地项目启动/SKILL.md` | 按注册表用指定端口启动;Docker 部署须守唯一 MongoDB + 容器分组;**更新后须 --build 跑本地最新**(见 Skill 内约定) |
|
||||
|
||||
## 土组 · 卡土(商业复制裂变)
|
||||
|
||||
@@ -154,6 +156,6 @@
|
||||
| 金 | 卡资 | 2 | 20 |
|
||||
| 水 | 卡人 | 3 | 12 |
|
||||
| 木 | 卡木 | 3 | 8 |
|
||||
| 火 | 卡火 | 4 | 13 |
|
||||
| 火 | 卡火 | 4 | 15 |
|
||||
| 土 | 卡土 | 4 | 7 |
|
||||
| **合计** | **5** | **14** | **60** |
|
||||
| **合计** | **5** | **14** | **62** |
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
| **账号与API** | `运营中枢/工作台/00_账号与API索引.md` | 账号、API(勿提交 Git) |
|
||||
| **能力总索引** | `运营中枢/工作台/00_能力总索引.md` | 能力分类、任务分配器、风险等级 |
|
||||
| **人员岗位** | `运营中枢/工作台/00_人员岗位与职责对应关系.md` | 人员×板块×技能(与技能路由一致) |
|
||||
| **项目与端口注册表** | `运营中枢/工作台/项目与端口注册表.md` | 本地运行项目与端口绑定,启动用指定端口(Skill:本地项目启动) |
|
||||
| **唯一 MongoDB 约定** | `运营中枢/工作台/唯一MongoDB约定.md` | 全机只用一个 MongoDB(datacenter_mongodb 27017),不新建多余实例 |
|
||||
| **用户资产数字化规范** | `运营中枢/工作台/用户资产数字化_数据格式与调用规范.md` | 用户资产数字化统一格式、RFM、联系方式、消费记录、主播/电竞绑定、消费能力;玩值电竞/存客宝后台对齐此规范,可深度调用 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -79,6 +79,22 @@
|
||||
|
||||
## 二、数据库(明文)
|
||||
|
||||
### 本机 MongoDB(统一)
|
||||
|
||||
> **规则**:本机所有项目共用**同一个 MongoDB 实例**,不新增新实例。详见《本机数据库统一规则》。
|
||||
> **玩值电竞等需连本机 27017 时**:账号密码从此表取,连接串格式见下表。
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| 连接串(无认证) | `mongodb://localhost:27017` |
|
||||
| 连接串(有认证时) | `mongodb://admin:admin123@localhost:27017?authSource=admin`(库名在应用内指定,如玩值电竞为 `wanzhi_esports`) |
|
||||
| 账号 | `admin` |
|
||||
| 密码 | `admin123` |
|
||||
| 连接串(有认证,完整示例) | `mongodb://admin:admin123@localhost:27017?authSource=admin` |
|
||||
| 玩值电竞库名 | `wanzhi_esports`(Compass/客户端里显示此英文名,非「玩值」中文;玩值电竞App 使用本实例下该库) |
|
||||
|
||||
本机开发时各项目设置 `MONGODB_URI` 为上表连接串(有认证时用 `mongodb://账号:密码@localhost:27017?authSource=admin`),库名在应用内指定(如玩值电竞为 `wanzhi_esports`)。
|
||||
|
||||
### 卡若私域数据库
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
@@ -180,6 +196,19 @@
|
||||
|
||||
**飞书任务优先命令行+API+TOKEN**:妙记/会议等流程与一键命令见 `运营中枢/参考资料/飞书任务_命令行与API优先_经验总结.md`。
|
||||
|
||||
### 玩值电竞用户资产 API(管理端用户详情完善/清洗)
|
||||
|
||||
> 玩值电竞 App 管理端「用户详情」通过该 API 拉取消费记录、绑定主播等,用于数据完善与清洗。配置在玩值电竞 App 根目录 `.env.local`。
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| 接口基址 | `http://localhost:3117` |
|
||||
| API Key | `sk-archer-jzuw3i5uhh` |
|
||||
| API Secret | `sec-2ekp6pq6f89` |
|
||||
| 说明 | 环境变量:`USER_ASSET_API_BASE_URL`、`USER_ASSET_API_KEY`、`USER_ASSET_API_SECRET`;不配置则详情页仅展示本库数据 |
|
||||
|
||||
---
|
||||
|
||||
### 飞书项目(玩值电竞 · 账号金融 · 存客宝)
|
||||
|
||||
> 用于玩值电竞任务同步到飞书项目需求管理。任务安排见:`玩值电竞/水:流程规划/玩值电竞_双月任务安排(飞书项目版).md`
|
||||
|
||||
@@ -164,3 +164,4 @@
|
||||
| 2026-02-25 20:50:40 | 🔄 卡若AI 同步 2026-02-25 20:50 | 更新:总索引与入口、运营中枢、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-02-26 00:31:13 | 🔄 卡若AI 同步 2026-02-26 00:31 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-02-26 00:43:29 | 🔄 卡若AI 同步 2026-02-26 00:43 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-02-26 16:43:05 | 🔄 卡若AI 同步 2026-02-26 16:41 | 更新:金仓、水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
|
||||
@@ -167,3 +167,4 @@
|
||||
| 2026-02-25 20:50:40 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-25 20:50 | 更新:总索引与入口、运营中枢、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-26 00:31:13 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-26 00:31 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-26 00:43:29 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-26 00:43 | 更新:运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-26 16:43:05 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-26 16:41 | 更新:金仓、水桥平台对接、卡木、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
57
运营中枢/工作台/唯一MongoDB约定.md
Normal file
57
运营中枢/工作台/唯一MongoDB约定.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 唯一 MongoDB 约定
|
||||
|
||||
> **强制**:全机只使用**一个** MongoDB 实例,不新建多余 MongoDB 容器。所有网站、玩值电竞等应用的库均存放在该唯一实例中。
|
||||
|
||||
---
|
||||
|
||||
## 容器分组约定(必守)
|
||||
|
||||
| 分组 | 用途 | 编排位置 |
|
||||
|:---|:---|:---|
|
||||
| **datacenter** | 所有**数据库相关** Docker 服务(MongoDB、Redis、MySQL、向量库等) | 卡若AI `01_卡资(金)/金仓_存储备份/datacenter/docker-compose.yml`,或 数据中台 系统基座 |
|
||||
| **website** | 网站类服务(神射手、玩值电竞 Web 等),不在此分组内建数据库 | 神射手目录 `docker-compose.yml`(project name: website) |
|
||||
|
||||
以后新增数据库类服务一律放入 **datacenter** 分组;新增网站类服务放入 **website** 分组,通过外部网络 `datacenter_network` 连接 datacenter 内容器。
|
||||
|
||||
---
|
||||
|
||||
## 唯一实例
|
||||
|
||||
| 项目 | 说明 |
|
||||
|:---|:---|
|
||||
| **容器名** | `datacenter_mongodb` |
|
||||
| **镜像** | mongo:6.0 |
|
||||
| **宿主机端口** | **27017** |
|
||||
| **所属分组** | **datacenter**(见上表) |
|
||||
| **编排位置** | 卡若AI `金仓_存储备份/datacenter/docker-compose.yml`;或 数据中台 `系统基座/config/docker-compose-mongodb.yml` |
|
||||
| **网络** | `datacenter_network`(website 内服务通过此网络连接) |
|
||||
| **数据目录** | 宿主机 `/Users/karuo/数据库/mongodb/data`(见 compose 卷配置) |
|
||||
|
||||
---
|
||||
|
||||
## 库与用途
|
||||
|
||||
所有业务库只建在上述唯一 MongoDB 内,例如:
|
||||
|
||||
| 库名 | 用途 |
|
||||
|:---|:---|
|
||||
| **KR / KR_*** | 神射手 用户资产、估值等 |
|
||||
| **wanzhi_esports** | 玩值电竞 App(网站、API) |
|
||||
| 其他业务库 | 按需在该实例下新建,不另起 MongoDB 容器 |
|
||||
|
||||
---
|
||||
|
||||
## 网站服务连接方式
|
||||
|
||||
- **website 编排**(神射手目录 `docker-compose.yml`):神射手、玩值电竞 Web 等通过加入外部网络 **`datacenter_network`** 连接唯一 MongoDB。
|
||||
- **连接串**:无认证时 `mongodb://datacenter_mongodb:27017`;**有认证时**(推荐)`mongodb://admin:admin123@datacenter_mongodb:27017/?authSource=admin`,账号密码见《00_账号与API索引》二、本机 MongoDB。
|
||||
- 不在 website 或其它应用编排中新建 mongodb 服务。
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|:---|:---|
|
||||
| 2026-02-26 | 初始约定;website 仅含 shensheshou + wanzhi-web,统一连 datacenter_mongodb 27017 |
|
||||
| 2026-02-26 | 新增 datacenter 分组约定;所有数据库相关 Docker 项目归入 datacenter,website 通过 datacenter_network 连接 |
|
||||
@@ -12,6 +12,8 @@
|
||||
| T001 | Yinova项目拆解与10目录开发文档 | 火炬+水泉 | ✅ 已完成 | 10目录已产出至 ~/Downloads/yinova/开发文档/ | 2026-02-25 20:30 |
|
||||
| T002 | 卡若AI优化方案(借鉴Yinova) | 火炬+水泉 | ✅ 已完成 | 方案已落入 运营中枢/参考资料/ | 2026-02-25 20:45 |
|
||||
| T003 | 卡若AI 4项优化落地 | 大总管 | 🔄 执行中 | 减重+收口+规则+输出+护栏 | 2026-02-25 21:00 |
|
||||
| T004 | 异能公司Agent开发(第一优先级) | 火炬+木叶 | 🔄 执行中 | 视频切片/文章/直播/小程序/朋友圈→聚合平台 5% | 2026-02-27 |
|
||||
| T005 | 玩值电竞推进(第二优先级) | 火炬 | 🔄 执行中 | Docker 3001,MongoDB wanzhi_esports 25% | 2026-02-27 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
48
运营中枢/工作台/本机数据库统一规则.md
Normal file
48
运营中枢/工作台/本机数据库统一规则.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 本机数据库统一规则
|
||||
|
||||
> **强制**:本机(卡若工作机)上所有项目的数据库**统一使用同一套数据库实例**,不新增新的数据库实例或服务。
|
||||
> 维护:金仓;新项目接入数据库时须遵守本规则。
|
||||
|
||||
---
|
||||
|
||||
## 一、规则要点
|
||||
|
||||
| 规则 | 说明 |
|
||||
|:---|:---|
|
||||
| **一个 MongoDB 实例** | 本机开发/本地环境只使用**一个** MongoDB 实例(默认 `localhost:27017`),所有本地项目共用该实例。 |
|
||||
| **不新增实例** | 不得为本机再起新的 MongoDB 进程、Docker 容器或远程库「仅给本机用」的独立实例;新项目只在该实例下建**库名**即可。 |
|
||||
| **按项目分库** | 同一实例下,不同项目使用**不同库名**(如 玩值电竞 → `wanzhi_esports`),通过库名隔离,不混用。 |
|
||||
| **连接串统一** | 本机 MongoDB 连接串以《00_账号与API索引》**二、数据库 · 本机 MongoDB(统一)** 为准;各项目通过环境变量 `MONGODB_URI` 指向该连接串,库名在代码或 URI 中指定。 |
|
||||
|
||||
---
|
||||
|
||||
## 二、本机统一 MongoDB 配置
|
||||
|
||||
- **连接串(无认证)**:`mongodb://localhost:27017`
|
||||
- **连接串(有认证)**:见《00_账号与API索引》二、数据库 · 本机 MongoDB(统一)表中填写的主机、账号、密码,格式:`mongodb://用户名:密码@localhost:27017/库名?authSource=admin`
|
||||
- **使用方式**:各项目在 `.env.local` 或环境变量中设置 `MONGODB_URI` 为上述连接串(不含库名时,代码内指定库名);**不要**为本机单独再起一个 MongoDB(如 Docker 再开一个 27018 仅给某项目用),避免多实例分散。
|
||||
|
||||
---
|
||||
|
||||
## 三、已接入项目(本机统一实例下的库名)
|
||||
|
||||
| 项目 | 库名 | 说明 |
|
||||
|:---|:---|:---|
|
||||
| 玩值电竞App | `wanzhi_esports` | 玩值电竞业务库,集合与索引见《玩值电竞_数据库设计》;连接串用本机统一 MongoDB。 |
|
||||
|
||||
后续新项目需要 MongoDB 时,在本表增加一行「项目名、库名、说明」,并在项目内文档注明「遵循本机数据库统一规则,使用卡若本机统一 MongoDB 实例」。
|
||||
|
||||
---
|
||||
|
||||
## 四、例外说明
|
||||
|
||||
- **玩值电竞App Docker**:编排中**已不再包含** wanzhi-mongodb 容器;Docker 只跑 Web,通过 `host.docker.internal:27017` 使用本机统一 MongoDB。若曾存在旧容器 wanzhi-mongodb(端口 27018),迁移数据后删除即可,见玩值电竞App 项目内 `docker/README.md` 第三节。
|
||||
- **生产/测试服**:生产或测试环境使用各自服务器上的数据库,不受「本机一个实例」限制;本规则仅约束**本机**。
|
||||
|
||||
---
|
||||
|
||||
## 五、版本记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|:---|:---|
|
||||
| 2026-02-26 | 初版;本机统一一个 MongoDB 实例;玩值电竞使用库名 wanzhi_esports |
|
||||
149
运营中枢/工作台/用户资产数字化_数据格式与调用规范.md
Normal file
149
运营中枢/工作台/用户资产数字化_数据格式与调用规范.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# 用户资产数字化 · 数据格式与调用规范
|
||||
|
||||
> **用途**:卡若AI 与玩值电竞/存客宝后台共用的**用户资产数字化**统一格式;确保后台用户数据清晰、可深度调用,含 RFM、联系方式、消费记录、主播/电竞绑定、消费能力关系。
|
||||
> **维护**:卡若AI 运营中枢;玩值电竞、存客宝、老坑爹等数据源对齐本规范后写入各自独立副本或库表。
|
||||
> **更新**:2026-02-26
|
||||
|
||||
---
|
||||
|
||||
## 一、用户资产数字化格式(单条用户记录)
|
||||
|
||||
以下字段为「一条用户资产数字化」记录的**标准结构**,后台库表/独立副本均按此设计,便于统一查询与深度调用。
|
||||
|
||||
### 1.1 身份与标识
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `userId` / `userAssetId` | string | 用户唯一标识(存客宝/系统内部 ID 或 unionId) | 是 |
|
||||
| `name` | string | 姓名/昵称 | 是 |
|
||||
| `source` | string | 数据来源标识,如 `ckb` / `lkdie` / `quwanzhi` / `game_deep` | 建议 |
|
||||
|
||||
### 1.2 联系方式(须在库内清晰可查)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `phone` | string | 手机号 | 建议 |
|
||||
| `wechatId` | string | 微信号(企微/个微) | 建议 |
|
||||
| `email` | string | 邮箱 | 可选 |
|
||||
| `contactRemark` | string | 联系方式备注(如「优先微信」) | 可选 |
|
||||
|
||||
### 1.3 RFM 格式(统一结构,可深度聚合)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `rfm.recency` | string (ISO 日期) 或 number (时间戳) | R:最近一次消费/互动时间 | 建议 |
|
||||
| `rfm.frequency` | number | F:消费或互动次数(订单数、互动次数) | 建议 |
|
||||
| `rfm.monetary` | number | M:累计消费金额(元) | 建议 |
|
||||
| `rfm.score` | string 或 number | 可选:R/F/M 综合分或分层(如 A/B/C/D/E/S) | 可选 |
|
||||
|
||||
### 1.4 用户估值(值多少钱)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `valuation` | number | 单用户估值(元) | 建议 |
|
||||
| `valuationAt` | string (ISO 日期) | 估值计算/快照时间 | 可选 |
|
||||
|
||||
### 1.5 详细地址
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `province` | string | 省 | 建议 |
|
||||
| `city` | string | 市 | 建议 |
|
||||
| `district` | string | 区 | 可选 |
|
||||
| `address` | string | 详细地址 | 可选 |
|
||||
| `addressSource` | string | 来源:如 `ckb_import` / `order_shipping` / `device_ip` | 可选 |
|
||||
|
||||
### 1.6 消费记录(可展开或汇总)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `totalSpent` | number | 累计消费金额(元),与 RFM.M 一致 | 建议 |
|
||||
| `orderCount` | number | 订单数,与 RFM.F 可一致 | 建议 |
|
||||
| `firstOrderAt` | string (ISO 日期) | 首单时间 | 建议 |
|
||||
| `lastOrderAt` | string (ISO 日期) | 末次消费时间,与 R 一致 | 建议 |
|
||||
| `consumptionRecords` | array 或 link | 消费明细(可另表存储,此处为关联或最近 N 条) | 可选 |
|
||||
|
||||
### 1.7 用户旅程(关键节点)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `firstTouchAt` | string (ISO 日期) | 首次添加/注册/触达时间 | 建议 |
|
||||
| `firstOrderAt` | string (ISO 日期) | 首单时间 | 建议 |
|
||||
| `lifecycleStage` | string | 生命周期阶段:如 `new` / `nurture` / `mature` / `churn` | 可选 |
|
||||
| `tags` | string[] | 标签/分层:如 `LV2_体验`、`成熟期`、`来源_抖音` | 可选 |
|
||||
|
||||
### 1.8 主播/电竞绑定(与主播列表可关联)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `boundStreamerId` | string | 当前绑定主播 ID(玩值电竞侧为主播唯一标识) | 可选 |
|
||||
| `boundStreamerName` | string | 当前绑定主播名称(冗余便于列表展示) | 可选 |
|
||||
| `boundExpiresAt` | string (ISO 日期) | 绑定过期时间 | 可选 |
|
||||
| `boundAt` | string (ISO 日期) | 绑定时间 | 可选 |
|
||||
| `gameCategory` | string | 所属电竞/游戏品类:如 `魔兽`、`英雄联盟`、`三角洲` | 可选 |
|
||||
|
||||
**说明**:主播列表侧需能按 `boundStreamerId` 聚合,查出「该主播下绑定的用户列表」;用户侧可查「该用户绑在哪个主播、哪个电竞」;二者关系清晰可深度调用。
|
||||
|
||||
### 1.9 消费能力关系(用于分层与运营)
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `tier` | string | 消费能力分层:如 金融客户 A/B/C/D/E/S 级、或 LV1~LV5 | 可选 |
|
||||
| `avgOrderAmount` | number | 客单价(元) | 可选 |
|
||||
| `repurchaseCount` | number | 复购次数 | 可选 |
|
||||
|
||||
### 1.10 元数据
|
||||
|
||||
| 字段名 | 类型 | 说明 | 必填 |
|
||||
|:---|:---|:---|:---|
|
||||
| `importBatchId` | string | 导入批次号(复制到副本时用) | 建议 |
|
||||
| `createdAt` / `updatedAt` | string (ISO 日期) | 创建/更新时间 | 建议 |
|
||||
|
||||
---
|
||||
|
||||
## 二、后台数据来源与分到卡若AI 的对应关系
|
||||
|
||||
以下数据源(来自后台 KR 等库)按「用户资产数字化」格式整理后,可**复制到独立副本**并供卡若AI/玩值电竞**统一调用**;不直接映射覆盖现有业务 users 表。
|
||||
|
||||
| 后台数据源(示例) | 记录量级 | 在本规范中的用途 | 分到卡若AI 的方式 |
|
||||
|:---|:---|:---|:---|
|
||||
| **存客宝用户资产** | 约 19.6 万 | 用户主记录、联系方式、基础 RFM | 按 §1 格式导出/复制到 `ckb_user_assets` 或卡若AI 可读的存储,卡若AI 通过规范字段名深度调用 |
|
||||
| **用户估值** | 约 1437 万 | 单用户估值、R/F/M 结果 | 补足到用户资产记录的 `valuation`、`rfm` 字段 |
|
||||
| **用户资产整合** | 约 1437 万 | 多源整合视图,与「用户估值」联合使用 | 同上,作为补足来源 |
|
||||
| **游戏_深度用户有过语音聊天、魔兽等** | 约 10.5 万 | 电竞/游戏行为、可关联主播与品类 | 补足 `gameCategory`、可选绑定主播;老坑爹等电竞项目用户形式 |
|
||||
| **老坑爹商店/论坛(lkdie)** | 商店 31、论坛 2480 | 老坑爹体系用户、消费与互动 | 按 §1 格式纳入副本,`source=lkdie`,可与玩值电竞主播/电竞绑定关系联合展示 |
|
||||
| **黑科技 quwanzhi.com** | 231 | 玩值系行为数据 | 同上,`source=quwanzhi`,可关联电竞/主播 |
|
||||
| **金融客户_厦门_A~S 级** | A 426~S 1417 等 | 消费能力分层(tier)、RFM 分级 | 补足 `tier`、`rfm.score`,用于消费能力关系分析 |
|
||||
|
||||
**原则**:上述数据在后台保持清晰;导出或同步时按**本规范 §1** 字段名与类型写入独立副本;卡若AI 与玩值电竞后台**统一按本规范**做查询、聚合、与主播列表关联,实现深度调用。
|
||||
|
||||
---
|
||||
|
||||
## 三、主播列表与用户关系的深度调用
|
||||
|
||||
- **主播维**:主播列表可展示「该主播下绑定用户数、绑定用户列表(userId/姓名/联系方式/RFM/消费能力)」;数据来源为带 `boundStreamerId` 的用户资产记录。
|
||||
- **用户维**:单用户可查「当前绑定主播 ID/名称、所属电竞品类、绑定过期时间」;来源即 §1.8 字段。
|
||||
- **调用方式**:后台 API 或库表查询按 `boundStreamerId` 聚合、按 `userId` 查详情;玩值电竞侧 streamerBindings 与独立副本用户资产可做只读关联(如通过 userId/手机/微信号关联),不互相覆盖。
|
||||
|
||||
---
|
||||
|
||||
## 四、消费能力关系的深度调用
|
||||
|
||||
- **按 tier 分层**:如 A/B/C/D/E/S 或 LV1~LV5,用于名单筛选、运营策略、融资展示。
|
||||
- **按 RFM 聚合**:按 `rfm.monetary`、`rfm.frequency` 排序/分桶,得到高价值、高复购用户列表。
|
||||
- **按游戏/电竞**:`gameCategory` 与 `boundStreamerId` 联合,可分析「某电竞或某主播下的用户消费能力分布」。
|
||||
|
||||
---
|
||||
|
||||
## 五、与玩值电竞、卡若AI 的衔接
|
||||
|
||||
| 项目 | 说明 |
|
||||
|:---|:---|
|
||||
| **玩值电竞** | 独立副本(如 `ckb_user_assets`)结构与本规范 §1 对齐;用户管理/报表只读该副本;主播列表与用户绑定关系按 §3 实现;详见《玩值电竞_存客宝用户资产数字化与用户管理对接方案》。 |
|
||||
| **卡若AI** | 本规范存放在卡若AI 工作台,作为「用户资产数字化」的权威结构定义;需要查用户价值、RFM、联系方式、主播绑定、消费能力时,统一按本规范字段名与类型对接各数据源或副本。 |
|
||||
| **老坑爹/其他项目** | 老坑爹等用户数据按 §1 格式补足后写入各自或统一副本,`source` 标识来源;主播/电竞绑定与消费能力关系同上。 |
|
||||
|
||||
---
|
||||
|
||||
**文档版本**:v1.0
|
||||
**维护**:卡若AI 运营中枢;与玩值电竞存客宝方案、后台实际表结构同步更新。
|
||||
46
运营中枢/工作台/项目与端口注册表.md
Normal file
46
运营中枢/工作台/项目与端口注册表.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 项目与端口注册表
|
||||
|
||||
> 本地运行的项目与端口绑定。**一个项目只分配一个端口**;启动时按本表用**指定端口**,避免多项目冲突。
|
||||
> 维护:火炬(本地项目启动 Skill);更新后同步 SKILL 内说明。**玩值AI** 与卡若AI 共用本表;端口冲突时见下「端口冲突处理」。
|
||||
|
||||
**强制约定**:每次**项目、端口、启动命令或部署流程**有更新/变更时,须**同步更新本表**(含「注册项目列表」与「版本记录」),使本 doc 始终保持最新。
|
||||
|
||||
---
|
||||
|
||||
## 端口分配与冲突处理
|
||||
|
||||
- **原则**:什么项目只占什么项目的端口;卡若AI / 玩值AI 登记的网站地址与端口以本表为准。
|
||||
- **若登记端口被占用**:先**结束占用该端口的进程**,再**重新部署到该端口**(不改为其他端口)。
|
||||
- 示例(玩值电竞网站 3001 被占):`lsof -i :3001` 查 PID → `kill <PID>` 结束 → 再在神射手目录执行 `docker compose up -d`。
|
||||
|
||||
---
|
||||
|
||||
## 注册项目列表
|
||||
|
||||
| 项目名 | 项目路径 | 端口 | 启动命令 | 备注 |
|
||||
|:---|:---|:--:|:---|:---|
|
||||
| 玩值电竞App | `/Users/karuo/Documents/开发/3、自营项目/玩值电竞App` | **3001** | `pnpm dev` | 本机开发,package.json 固定 3001 |
|
||||
| 玩值电竞App(Docker 网站) | 已并入 **website** 编排 | **3001** | 在神射手目录 `docker compose up -d --build` | 更新后须带 --build 跑本地最新;web 为 `website-wanzhi-web`;唯一 MongoDB 见《唯一MongoDB约定.md》 |
|
||||
|
||||
---
|
||||
|
||||
## 使用方式
|
||||
|
||||
- **启动某项目**:说「本地运行 玩值电竞App」「启动玩值电竞」等 → 走「本地项目启动」Skill,按上表路径与端口执行。
|
||||
- **新增/修改绑定**:在本表增改一行,并让该项目的 dev 脚本使用对应端口(如 Next.js:`next dev -p 端口`),再在 Skill 中补一句说明即可。
|
||||
- **Docker 网站**:玩值电竞 web 已并入 **website** 编排(与神射手同组),容器名 `website-wanzhi-web`,端口 **3001**;**唯一 MongoDB** 为 datacenter_mongodb(27017),见工作台 **`唯一MongoDB约定.md`**;不再新建 MongoDB。
|
||||
- **Docker 部署时**:须遵守「唯一 MongoDB」与「容器分组」约定,执行前见 **本地项目启动** Skill 内「Docker 部署约定」一节。
|
||||
- **Docker 跑本地最新**:每次本地更新代码/内容后,要让 Docker 内跑的是最新文件,须在对应编排目录执行 **`docker compose up -d --build`**(如 website 在神射手目录)。否则容器内仍是旧镜像。**所有项目一律如此**。
|
||||
- **玩值电竞 部署/运行/访问**:**一律用 Docker 访问,不用 pnpm dev**。访问用 **http://localhost:3001**,数据库用唯一 **wanzhi_esports**(datacenter_mongodb 27017);启动、部署在神射手目录 `docker compose up -d --build`(更新后须带 `--build` 以同步本地最新)。回答此类问题时**须用卡若复盘格式**回复。
|
||||
- **玩值电竞 专注清单与番茄钟**:卡若AI 参与玩值电竞开发或文档管理时,须将本次工作时间以**番茄钟**形式记入本机专注清单(`/Applications/WebPomodoro.app`,轻松清单)的「玩值电竞」任务下对应板块,并更新项目内 **玩值开发文档/10、项目管理/玩值电竞_专注清单与番茄钟配置.md** 的番茄钟汇总;任务结构见该文档。
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 日期 | 变更 |
|
||||
|:---|:---|
|
||||
| 2026-02-26 | 初始版本;玩值电竞App 绑定 3001 |
|
||||
| 2026-02-26 | 玩值电竞 专注清单与番茄钟约定:卡若AI 开发时把工作时间以番茄钟记入 WebPomodoro |
|
||||
| 2026-02-26 | Docker 跑本地最新:更新后须 up -d --build;所有项目一致;注册表与 Skill 同步 |
|
||||
| 2026-02-26 | **约定**:每次项目/端口/启动或部署有变更时,须同步更新本表,保持本 doc 最新 |
|
||||
Reference in New Issue
Block a user