diff --git a/README.md b/README.md
index ba3edbc..7e9c041 100644
--- a/README.md
+++ b/README.md
@@ -1,78 +1,106 @@
+
+
# MeetFlow
-> 轻量级多人共享会议档案、结构化行动项追踪与团队知识沉淀系统。
+**Collaborative meeting workspace with live agenda timing, structured outcome extraction, and headless AI note ingestion.**
-[](https://github.com/mcocdaa)
+[](https://github.com/mcocdaa)
[](https://github.com/mcocdaa/MeetFlow/actions/workflows/ci.yml)
-[](https://github.com/mcocdaa/MeetFlow/releases)
-[](https://github.com/mcocdaa/MeetFlow/pkgs/container/meetflow)
-[](LICENSE)
-[](https://www.python.org/)
-[](compose.yaml)
+[](https://github.com/mcocdaa/MeetFlow/releases)
+[](https://github.com/mcocdaa/MeetFlow/pkgs/container/meetflow)
+[](https://www.python.org/)
+[](compose.yaml)
+[](LICENSE)
-
-
-
+[**English**](README.md) · [**简体中文**](README_CN.md)
-MeetFlow 是一个轻量级多人共享会议档案工具。一次会议可以保存 Markdown 原始记录、关键结论、结构化行动项、后续补充、图片与小文件。所有成员使用同一个共享工作区;管理员负责账号审批和插件配置。
+

-## 快速启动
+
-MeetFlow 的公开镜像是 `ghcr.io/mcocdaa/meetflow`,支持 `linux/amd64` 和 `linux/arm64`,服务器拉取不需要 `docker login ghcr.io`。
+---
-在服务器的空部署目录中复制配置模板并编辑:
+## ✨ Highlights
-```bash
-cp .env.example .env
-python -c "import secrets; print(secrets.token_urlsafe(48))" # 生成 APP_SECRET_KEY
-vim .env
-```
+- **Live Agenda Workbench & Focus Mode**: Run structured meetings (`Planned → In Progress → Completed`) with per-agenda countdown timers, actual duration tracking, optimistic concurrency protection (`expected_version`), and read-only completion snapshots.
+- **Inline Structured Outcome Extraction**: Write `@决策:` (Decision), `@行动:` (Action Item), and `@开放问题:` (Open Question) directly inside agenda Markdown notes to automatically reconcile cross-meeting trackers while preserving manual items.
+- **Headless AI Note Ingestion API**: Push meeting transcripts or LLM summaries in a single atomic call via `POST /api/v1/meetings/{id}/ingest` authenticated with Personal Access Tokens (`X-API-Key: mf_...`) or `Authorization: Bearer mf_...`.
+- **Recurring Series & Calendar Subscriptions**: Schedule daily, weekly, monthly, or yearly recurring meeting series with IANA timezone support, ad-hoc session support, and subscribable `.ics` calendar feeds.
+- **Role-Based Project Governance & Webhooks**: Fine-grained project roles (`lead`, `member`, `stakeholder`), meeting-level guest invitations, and outbound webhook notifications for Feishu, WeCom, DingTalk, and generic HTTP endpoints.
+- **Hardened Single-Container Deployment**: Ships as a multi-arch (`linux/amd64`, `linux/arm64`) read-only container (`ghcr.io/mcocdaa/meetflow`) backed by FastAPI, Vue 3 + Naive UI, SQLite WAL, and built-in background workers.
+
+---
-至少替换 `.env` 中的三项:`ADMIN_PASSWORD`(至少 12 位的强密码)、`APP_SECRET_KEY`(上一步生成并长期保存的随机值)和 `TRUSTED_ORIGINS`(你的 HTTPS 域名)。`.env` 包含密钥,不要提交到 Git。
+## 🚀 Quick Start
-然后从这个部署目录启动:
+### Option 1: Pre-built Container Image (Recommended)
+
+Copy `.env.example`, set a strong `ADMIN_PASSWORD` (12+ chars), `APP_SECRET_KEY`, and `TRUSTED_ORIGINS`, then launch on `127.0.0.1:8000`:
```bash
+cp .env.example .env && chmod 600 .env
+# Edit .env: set ADMIN_PASSWORD, APP_SECRET_KEY (python3 -c "import secrets; print(secrets.token_urlsafe(48))"), TRUSTED_ORIGINS
docker run -d --name meetflow --init --read-only --tmpfs /tmp:size=64m \
--security-opt no-new-privileges:true --restart unless-stopped \
- -p 127.0.0.1:8000:8000 \
- -v "$PWD/data:/app/data" \
- --env-file .env \
+ -p 127.0.0.1:8000:8000 -v "$PWD/data:/app/data" --env-file .env \
ghcr.io/mcocdaa/meetflow:latest
```
-`$PWD/data` 是当前部署目录中的 `./data/`,保存数据库、附件和备份;容器内固定映射为 `/app/data`,第一次运行时 Docker 会创建该目录。`APP_SECRET_KEY` 必须与 `./data/` 一起长期保存:更换它会使现有登录会话失效,也会导致已经加密保存的插件密钥无法解密。
+ Or start from source with Docker Compose:
-生产容器默认只监听宿主机 `127.0.0.1:8000`。对外提供服务前,请按[运维指南](docs/operations.md)配置 HTTPS 反向代理;`APP_ENV=production` 会拒绝不安全的 Cookie 或 HTTP 可信来源配置。更新回滚、备份恢复和生产插件挂载也见运维指南。
+```bash
+MEETFLOW_IMAGE=ghcr.io/mcocdaa/meetflow:latest docker compose up -d
+curl http://127.0.0.1:8000/api/health
+```
-## 首次登录与账号
+### Option 2: Local Development
-首次启动会使用 `ADMIN_USERNAME` 和 `ADMIN_PASSWORD` 创建管理员。后续启动不会用新的环境变量密码覆盖已有账号。
+Requires **Python 3.12+** and **Node.js 22+**:
-- `ALLOW_REGISTRATION=true`:用户可以申请账号,管理员批准后才能登录。
-- `ALLOW_REGISTRATION=false`:关闭自助申请,由管理员创建固定体验账号。
+```bash
+python -m venv .venv
+.venv/bin/python -m pip install -e '.[test]'
+npm --prefix frontend ci
+./scripts/start.sh local
+```
-管理员可以批准、拒绝或禁用账号,也可以重置成员密码。登录后,所有成员都在同一个共享工作区中维护会议、结论、行动项和附件。
+- **Backend API & OpenAPI**: `http://127.0.0.1:8000` (`/api/health`)
+- **Frontend Dev Server**: `http://localhost:5173`
-## 会议系列与纪要
+---
-项目可以创建独立的会议系列,并设置每天、每周、每月或每年的本地开始时间、时区和默认时长。每个系列也可以临时添加会议;临时会议仍归属于该系列,但不会替代下一次固定周期会议。固定周期实例到期时会创建为“待开始”;开始新周期实例时,同一系列上一个尚未结束的固定实例会自动结束。
+## 🤖 AI Note Ingestion API
-会议操作只有“待开始 → 会议进行中 → 已结束”三个状态。结束会议时,未完成议题会统一记为已跳过;每个议题记录预计时长(新增默认为 5 分钟)及实际耗时。
+Generate a Personal Access Token (`mf_...`) in **Personal Center → API Keys** (or via `POST /api/v1/auth/tokens`) and ingest structured Markdown notes plus outcome tags in one atomic request:
-会议纪要和议题记录均需要显式保存。议题记录中可使用 `@决策:`、`@行动:`、`@开放问题:` 生成随记录同步的产出;在下方手动添加的产出不受记录修改影响。会议结束后,完成档案会只读展示已保存纪要、会议总实际时长、每条议题记录及其耗时、状态和产出。
+```bash
+curl -X POST "http://127.0.0.1:8000/api/v1/meetings/