From d430655541d170611a98b4be147782ab19d567f3 Mon Sep 17 00:00:00 2001 From: kang Date: Wed, 27 May 2026 00:49:56 +0800 Subject: [PATCH] init: project scaffold --- .gitignore | 12 ++++++++++ .memory/source-analysis.md | 16 +++++++++++++ .memory/worklog.json | 11 +++++++++ .project.json | 31 ++++++++++++++++++++++++ AGENTS.md | 38 +++++++++++++++++++++++++++++ CLAUDE.md | 38 +++++++++++++++++++++++++++++ RULES.md | 49 ++++++++++++++++++++++++++++++++++++++ index.html | 46 +++++++++++++++++++++++++++++++++++ source | 1 + 9 files changed, 242 insertions(+) create mode 100644 .gitignore create mode 100644 .memory/source-analysis.md create mode 100644 .memory/worklog.json create mode 100644 .project.json create mode 100644 AGENTS.md create mode 100644 CLAUDE.md create mode 100644 RULES.md create mode 100644 index.html create mode 160000 source diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd31b51 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +node_modules/ +dist/ +build/ +.env +.env.local +.env.production +__pycache__/ +*.pyc +.DS_Store +.vscode/ +.idea/ +*.log diff --git a/.memory/source-analysis.md b/.memory/source-analysis.md new file mode 100644 index 0000000..34e24c9 --- /dev/null +++ b/.memory/source-analysis.md @@ -0,0 +1,16 @@ +# FreeMoCap 源码解析 源码解析 + +> 创建日期:2026-05-27 +> 上游版本:待填写 + +## 概览 + +待补充 + +## 核心模块 + +待补充 + +## 关键流程 + +待补充 diff --git a/.memory/worklog.json b/.memory/worklog.json new file mode 100644 index 0000000..5e6f19b --- /dev/null +++ b/.memory/worklog.json @@ -0,0 +1,11 @@ +{ + "entries": [ + { + "ts": "2026-05-27T00:00:00+08:00", + "type": "milestone", + "message": "项目创建: FreeMoCap 源码解析", + "hash": "", + "files_changed": 0 + } + ] +} diff --git a/.project.json b/.project.json new file mode 100644 index 0000000..5bade7e --- /dev/null +++ b/.project.json @@ -0,0 +1,31 @@ +{ + "name": "FreeMoCap 源码解析", + "description": "开源动捕系统源码深度解析:多摄像头三角化 + MediaPipe pose + Blender 导出全链路", + "status": "active", + "kind": "analysis", + "created": "2026-05-27", + "urls": [], + "ports": [ + { + "port": 4720, + "label": "dev", + "fixed": true + } + ], + "worklog": { + "path": ".memory/worklog.json", + "auto": true + }, + "ownership": "personal", + "source": { + "upstream": "https://github.com/freemocap/freemocap", + "path": "source/", + "last_sync": "2026-05-27", + "version": "v1.8.2" + }, + "analysis": { + "path": ".memory/source-analysis.md", + "version": "v1.8.2", + "last_updated": "2026-05-27" + } +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..fe6535c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,38 @@ +# FreeMoCap 源码解析 Agent Rules + +## Must Read First + +- 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md` +- 全项目元数据规范:`/Users/kangwan/Projects/code/20260317-rules-dashboard/SCHEMA.md` +- `.project.json` 是机器真源:公网链接、快捷登录、凭证引用都以它为准 +- `RULES.md` 是人工规则和部署事实:启动命令、平台、域名、注意事项都写这里 +- 不允许编造不存在的域名、账号、密码;未知就保持空白并明确标记待补充 + +## Environment Consistency Contract + +- 新建 Web / API / 后台服务 / 全栈 App 项目必须以 Docker 作为本地与线上共同运行基准 +- 本地验证默认使用 `docker compose up --build`,不能只用宿主机 `npm run dev` / `pnpm dev` / `python main.py` 作为交付依据 +- 线上部署必须复用同一套 `Dockerfile` / `docker-compose*.yml` 构建逻辑;`git push` 本身不等于线上容器更新 +- 第一次形成可运行代码时,必须补齐 `Dockerfile`、`docker-compose.yml` 或等价 compose 文件、`.dockerignore`、`.env.example` +- 静态研究页、纯文档、macOS / iOS 原生 App、GPU / GUI / 特殊硬件项目可以例外,但必须在本项目 `RULES.md` 写明原因和实际运行环境 + +## Deployment Metadata Contract + +- 任何任务只要新增、删除或修改公网地址,必须在同一次任务里更新 `.project.json` +- `urls[]` 推荐显式写 `type`:`app`、`backend`、`docs`、`admin`、`repo` +- 项目专属的网页登录信息,如果允许放进仓库,就写 `.project.json.quick_login` +- 不能直接入库的敏感登录,不要伪造 `quick_login`,改为写 `.project.json.credentials` 引用 +- 数据库密码、API Key、服务器 root 密码,不属于 `quick_login` +- 部署时默认可以携带本地测试运行数据和密钥;助手只需先提醒风险,除非用户明确说“不带密钥 / 不带数据” +- 密钥只能作为运行时配置传输或写入服务器密钥管理,不得提交进 Git,不得在聊天 / 日志 / `.project.json.quick_login` 中明文展开 + +## Completion Gate + +- 每次开发结束前必须汇报 `git status -sb` +- 代码改动必须有人工语义 commit;`auto-save` 只算安全快照 +- 能推送时必须推到 Gitea `origin`,不能推送时说明 ahead/behind 和原因 +- 新 Web / API / 后台服务 / 全栈 App 项目,上推前必须汇报 Docker build / compose 启动 / health check 或 smoke test 结果 +- 替换或发布 App 时必须更新版本号、发布记录和回退包路径 +- 部署完成后,不允许在 `.project.json` 缺少最新公网链接的状态下结束任务 +- 部署完成后,必须同步更新 `RULES.md` 的部署事实 +- 如果只更新了代码但没回写部署元数据,这个任务不算完成 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..fe6535c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,38 @@ +# FreeMoCap 源码解析 Agent Rules + +## Must Read First + +- 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md` +- 全项目元数据规范:`/Users/kangwan/Projects/code/20260317-rules-dashboard/SCHEMA.md` +- `.project.json` 是机器真源:公网链接、快捷登录、凭证引用都以它为准 +- `RULES.md` 是人工规则和部署事实:启动命令、平台、域名、注意事项都写这里 +- 不允许编造不存在的域名、账号、密码;未知就保持空白并明确标记待补充 + +## Environment Consistency Contract + +- 新建 Web / API / 后台服务 / 全栈 App 项目必须以 Docker 作为本地与线上共同运行基准 +- 本地验证默认使用 `docker compose up --build`,不能只用宿主机 `npm run dev` / `pnpm dev` / `python main.py` 作为交付依据 +- 线上部署必须复用同一套 `Dockerfile` / `docker-compose*.yml` 构建逻辑;`git push` 本身不等于线上容器更新 +- 第一次形成可运行代码时,必须补齐 `Dockerfile`、`docker-compose.yml` 或等价 compose 文件、`.dockerignore`、`.env.example` +- 静态研究页、纯文档、macOS / iOS 原生 App、GPU / GUI / 特殊硬件项目可以例外,但必须在本项目 `RULES.md` 写明原因和实际运行环境 + +## Deployment Metadata Contract + +- 任何任务只要新增、删除或修改公网地址,必须在同一次任务里更新 `.project.json` +- `urls[]` 推荐显式写 `type`:`app`、`backend`、`docs`、`admin`、`repo` +- 项目专属的网页登录信息,如果允许放进仓库,就写 `.project.json.quick_login` +- 不能直接入库的敏感登录,不要伪造 `quick_login`,改为写 `.project.json.credentials` 引用 +- 数据库密码、API Key、服务器 root 密码,不属于 `quick_login` +- 部署时默认可以携带本地测试运行数据和密钥;助手只需先提醒风险,除非用户明确说“不带密钥 / 不带数据” +- 密钥只能作为运行时配置传输或写入服务器密钥管理,不得提交进 Git,不得在聊天 / 日志 / `.project.json.quick_login` 中明文展开 + +## Completion Gate + +- 每次开发结束前必须汇报 `git status -sb` +- 代码改动必须有人工语义 commit;`auto-save` 只算安全快照 +- 能推送时必须推到 Gitea `origin`,不能推送时说明 ahead/behind 和原因 +- 新 Web / API / 后台服务 / 全栈 App 项目,上推前必须汇报 Docker build / compose 启动 / health check 或 smoke test 结果 +- 替换或发布 App 时必须更新版本号、发布记录和回退包路径 +- 部署完成后,不允许在 `.project.json` 缺少最新公网链接的状态下结束任务 +- 部署完成后,必须同步更新 `RULES.md` 的部署事实 +- 如果只更新了代码但没回写部署元数据,这个任务不算完成 diff --git a/RULES.md b/RULES.md new file mode 100644 index 0000000..0e23f39 --- /dev/null +++ b/RULES.md @@ -0,0 +1,49 @@ +# FreeMoCap 源码解析 + +## 启动 +- `python3 -m http.server 4720` — 端口 4720 + +## 环境一致性 +- Web / API / 后台服务 / 全栈 App 项目必须以本地 Docker 为准:`docker compose up --build` +- 宿主机 `npm run dev` / `pnpm dev` / `python main.py` 只能作为临时开发辅助,不算交付验证 +- 第一次形成可运行代码时,必须补齐 `Dockerfile`、`docker-compose.yml` 或等价 compose 文件、`.dockerignore`、`.env.example` +- 线上部署必须复用同一套 Docker 构建逻辑;`git push` 本身不等于线上容器更新 +- 如果本项目属于静态研究页、纯文档、macOS / iOS 原生 App、GPU / GUI / 特殊硬件例外,必须在这里写清原因和实际运行环境 + +## 部署事实 +- 平台:待定 +- 发布状态:未部署 +- 主站 / 前端:待定 +- API / 后端:待定 +- 文档 / 解析:待定 +- 管理后台:待定 + +## 快捷登录 +- 登录地址:待补充 +- 用户名:待补充 +- 密码:待补充 +- 说明:这里只写项目专属网页登录;数据库密码、API Key、服务器 root 密码不要写这里 + +## 元数据回写清单 +- 新增或变更公网地址后,必须同步更新 `.project.json.urls` +- 仓库内存在 App 源码或构建入口时,必须能在看板显示 `App` 标记;自动检测不准时,手动写 `.project.json.app_artifacts` +- 如果有网页后台登录: + - 可直接入库:写 `.project.json.quick_login` + - 不应入库:写 `.project.json.credentials` 引用 +- 部署完成后,`RULES.md` 和 `.project.json` 必须同一次任务一起更新 + +## 环境变量 +- `.env.example` 必须列出项目运行所需变量名 +- 本地 `.env` 可作为部署运行时配置来源,但不得提交进 Git +- 部署时默认可以携带本地测试运行数据和密钥;助手只需先提醒风险,除非用户明确说“不带密钥 / 不带数据” +- 密钥只能进入服务器 env / Coolify 加密变量 / 运行时配置,不得写入 `.project.json.quick_login` 或聊天日志 + +## 规则 +- 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md` +- 版本发布规则:`/Users/kangwan/Projects/code/20260317-rules-dashboard/rules/04-版本发布规则.md` +- 不允许编造不存在的部署域名、账号、密码 +- 没有公网地址时,`.project.json.urls` 保持空数组 +- 任何部署或域名变化,都要先改元数据,再视为任务完成 + +## 注意事项 +- 待补充 diff --git a/index.html b/index.html new file mode 100644 index 0000000..bed73eb --- /dev/null +++ b/index.html @@ -0,0 +1,46 @@ + + + + + + FreeMoCap 源码解析 + + + +
+

FreeMoCap 源码解析

+

开源动捕系统源码深度解析:多摄像头三角化 + MediaPipe pose + Blender 导出全链路

+ +
+

概述

+

待补充研究内容...

+
+ +
+

核心发现

+

待补充...

+
+
+ + diff --git a/source b/source new file mode 160000 index 0000000..a1cd374 --- /dev/null +++ b/source @@ -0,0 +1 @@ +Subproject commit a1cd374ac7c186d78d0552b8f69bf59be2f4bdcc