Skip to main content
Glama

Front Office

面向与 AI 对话构建的项目的设计运维权威记录系统:决策日志、未决问题和文档作为生成视图——因此每次会话(人类或 AI、今天或数月后、并行或串行)都基于同一套大脑工作,而非聊天记录回溯。

源于一个真实问题:在漫长的 AI 会话中设计一款游戏产生了 46 条已记录的决策,而"那件事到底批准过没有?"总是需要审计。Front Office 让审计轨迹成为主要工件。

核心思想

  • 决策日志即事件日志。 每条决策都带有 何时 / 何人 / 为何、一个来源标签——[A] 明确的人类裁定 · [A→C] 人类指示,AI 规格 · [C→A] AI 提议,人类批准 · [C] AI 假定,有效但可否决——以及一个状态(✅ 已决定 · 🕐 待文档化 · 💬 已提议)。更正以引用旧条目的新条目形式出现,绝不编辑。

  • 未决问题是记录,不是滚动回溯。 未答复的条目保存在受跟踪的文件中,直到解决——并附有日志条目。

  • 文档是构建产物。 上下文包和状态视图由记录生成;markdown 既是存储格式 也是 交换格式,因此没有锁定——这些文件在没有任何工具的情况下也完全可用。

  • 附加条款守卫。 附属于已批准决策的提议永远不会继承该批准。由 AI 撰写的草稿 始终 是 💬。

Related MCP server: kb

使用

npm ci
npm run fo -- status                 # counts, unratified [C] list, pending rulings
npm run fo -- decisions --provenance C --status decided
npm run fo -- open --section A
npm run fo -- show 12
npm run fo -- pack                   # writes projects/<p>/context-pack.md
npm run fo -- validate               # CI-able: exit 1 on invariant violations

项目数据位于 projects/<name>/ 中,包含 *decision-log.md 和 *open-items.md(格式见 test/fixtures/)。projects/ 已被 gitignore——租户数据归你所有并保持私密。 使用 --project <dir> 或 FO_PROJECT_DIR 指向其他位置。

Web UI

npm run fo -- pack   # optional: regenerate views first
npm run web          # http://localhost:4747 (FO_PORT / FO_PROJECT_DIR to override)

基于同一组文件的实时仪表板:带来源/状态标签和过滤器的决策流、关注条(待裁定、未批准的 [C])、按部分划分的未决项目、统计——以及草稿表单(草稿始终是 💬)。100% UI/逻辑分离: 客户端包含零业务逻辑;每个派生值都从 /api/state 预计算到达,浏览器仅负责渲染和发送命令。

MCP 服务器(大脑接入)

将记录暴露给任何 Claude Code 会话:

claude mcp add front-office --scope user -- npx tsx <repo>/src/mcp/server.ts

工具:get_context_pack · list_decisions · list_open_items · draft_decision(始终 💬)· get_stats。在服务器环境中设置 FO_PROJECT_DIR 以选择项目。

架构

按照项目自身的准则(是的,其设计决策记录在 Front Office 日志中):

  • src/core、src/adapters、src/views——纯(严格函数式 ESLint 配置:无 let/循环/类/变更,时钟和随机性必须注入)。

  • src/shell、src/mcp——效果边界(中等配置)。

  • 解析器保持原始单元格逐字不变 → 序列化往返完全一致(parse(serialize(parse(x))) ≡ parse(x),经属性测试验证)。

npm run typecheck && npm run lint && npm test

MIT。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A database-backed MCP server that acts as a project memory bank, enabling AI assistants to store, retrieve, and search structured context like decisions, tasks, and architecture using SQLite and vector embeddings.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that provides a shared context and learning foundation across multiple AI tools (Claude, Copilot, Codex) for multiple projects, enabling persistent knowledge, decisions, and gap reflection through note storage.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that records decisions, rejected alternatives, and justifications, and retrieves them later to avoid re-litigating past choices. It stores data locally in SQLite and Markdown.
    2
    62 PyPI
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for BRIEF.md that captures decisions, constraints, and questions during AI chats, enabling seamless project re-entry across different AI tools.
    8 npm
    MIT