mcpField
A
Axiom Meridian

Axiom Meridian

本地服务
github.com记忆与知识01 天前更新

关于 Axiom Meridian

Axiom Meridian 面向使用 AI 编码 Agent 的团队,按项目提供相关编码规则与经验教训。它以 Markdown 为知识源,并要求人工批准变更。

主要功能

  1. 01按范围查询规则与经验
  2. 02原子化且可追溯的 Markdown 条目
  3. 03人工审批知识提案
  4. 04PR 与功能规则审查
  5. 05从会议记录提取提案
  6. 06SQL 与可选语义检索

适用场景

  1. 01检索项目适用的规则
  2. 02合并 PR 前检查规则
  3. 03依据团队规则审查功能
  4. 04将会议记录转为提案

MCP 相关

它通过类型化 MCP 工具提供规则与经验的查询、审计、提取和管理功能。支持 stdio,也可选择绑定到 127.0.0.1 的 HTTP/SSE。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"abeljumanuel-axiom-meridian": {
"command": "uvx",
"args": [
"axiom-meridian"
],
"env": {
"KNOWLEDGE_BASE_PATH": "<KNOWLEDGE_BASE_PATH>",
"MERIDIAN_ACCESS_LEVEL": "<MERIDIAN_ACCESS_LEVEL>"
}
}
}
}
启动命令uvx axiom-meridian
需要配置的环境变量
KNOWLEDGE_BASE_PATHKnowledge base root (Markdown files + SQLite index). Defaults to an OS-specific per-user data directory.
MERIDIAN_ACCESS_LEVELWhich tools may run: read, analyze, or write (write is needed to approve proposals).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiaxiom-meridian0.1.0

工具

28

收录的工具列表 · 更新于 2 周前

参数类型必填说明
modestring否'atomic':解析规范的 ## RN-XXX-NNN 区块({TECH} 部分可选,也接受普通的 ## RN-NNN),并将其直接写入 rules/rule_history。'legacy':仅将旧式 ### 区块解析到 pending_proposals,绝不直接写入 rules。
filepathstring是包含规则区块的源 .md 文件路径。
default_scope_idstring是分配给未声明自身 **Scope:** 字段的区块的范围(例如 'global-java'、'project-<id>')。

详细介绍

索引

  1. 项目基本信息
  2. 产品概述
  3. 系统架构
  4. 数据模型
  5. API 规范
  6. 用户故事
  7. 工作事项
  8. 拉取请求

0. 项目基本信息

0.1. 您的全名:

Juan Manuel Rojas González ([email protected])

0.2. 项目名称:

Axiom Meridian — “代码会偏移,子午线不会。”

0.3. 项目简介:

一个 MCP(Model Context Protocol)服务,用于集中管理团队的机构技术知识——编码规则和经验教训,并只提供与当前任务相关的部分,而不是每次会话都要求 AI Agent 阅读完整的知识库文件。

0.4. 项目网址:

不适用(MCP)——Axiom Meridian 是一个供本地使用的 MCP 服务(stdio),也可选择通过绑定到 127.0.0.1 的 HTTP/SSE 提供服务;它没有可公开访问的部署网址。

0.5. 仓库网址或压缩文件

https://github.com/abeljumanuel/axiom-meridian-project


1. 产品概述

1.1. 目标:

使用 AI 编码 Agent 的团队会将机构知识积累为较长的 Markdown 文件:按语言/框架划分的编码规范、架构决策,以及生产事故的“经验教训”。文件较小时,这种方式行之有效;但随着文件不断增大,会带来三个问题:即使当前任务只适用两三条规则,每次 Agent 会话仍会重新读取整个文件(增加上下文和延迟成本);相关性非此即彼(无法区分“此项目使用 Quarkus,另一项目使用 Spring Boot”);并且缺乏治理机制(任何人都可以直接编辑文件,无需审核,也无法追溯)。

Axiom Meridian 通过将规则(RN-*)和经验教训(LL-*)编入原子化区块格式,解析作用域层级(project → framework → language → global)以确定哪些内容适用于给定项目,并通过类型化 MCP 工具仅提供经过筛选的子集(还可按语义相关性排序),从而解决这些问题。Markdown 文件仍是唯一可信来源,所有变更都必须经过明确的人工批准。

更多详情请参阅项目章程和产品说明。

1.2. 核心特性与功能:
  1. 限定范围的知识查询 — query_rules / query_lessons 会解析项目的有效范围链,应用类别/严重性/标签筛选,并仅返回有效且匹配的条目。
  2. 原子化、可追溯的格式 — 每条规则或经验教训都是独立的 Markdown 块(## RN-JAVA-011、## LL-PSP-003),包含结构化字段,可确定性地解析和索引。
  3. 受治理的生命周期 — 提取和旧文件迁移绝不会直接写入活动知识;所有内容都会先进入 pending_proposals,而 approve_proposal 会在单个事务中将变更写入 Markdown 文件和 SQLite 索引。
  4. PR 和功能审计 — audit_pr 会在合并前呈现相关规则/经验教训;check_feature_against_rules 则会在规划阶段执行相同操作。
  5. 会议记录提取 — extract_rules_from_transcript / extract_lessons_from_transcript 会将会议记录转换为候选提案。
  6. 混合检索(SQL + RAG) — 存在嵌入向量时,查询会按语义相似度排序(通过 ChromaDB 使用 BAAI/bge-small-en-v1.5);不存在嵌入向量时,则会透明地回退到 SQL 筛选,且不改变工具的签名。
  7. 访问控制和审计日志 — 每个工具都受访问级别(read / analyze / write)控制;每次调用都会被记录,但不包含敏感参数。
  8. 生态系统技能生成 — generate_project_skills 会按照 agentskills.io 规范生成 .claude/skills/ 文件。

完整列表见 产品描述 § 核心功能。

1.3. 设计与用户体验:

按照设计,Axiom Meridian 没有自己的图形界面:它是一个 MCP 服务,由 AI Agent(Claude Code、VSCode、OpenCode、Kimi CLI)通过工具调用以编程方式使用,而不是供用户通过浏览屏幕来操作。目前的“用户体验”是 Agent 调用工具并接收经过范围筛选的 JSON 响应。

面向人工用户(知识策展人员或平台管理员)的只读可视化面板,可供其无需编写脚本即可检查服务状态,例如服务健康状况、范围层级、规则/经验教训数量、待处理提案和嵌入向量投影器,正在开发中:这是待办事项中明确规划的组件,并非当前基线的一部分。请参阅 US-H1 — 直观查看 Meridian 的状态和内容(史诗 H)及其关联工单 TICKET-017。

1.4. 安装说明:

Meridian 是一个 Python 3.11+ 软件包(axiom-meridian),使用 uv 安装;uv 会自行获取兼容的 Python 版本。作为标准 MCP 服务,它可供任何兼容该协议的 IDE 或命令行使用(Claude Code、VSCode、Cursor、OpenCode、Kimi CLI),但它主要针对 Claude Code 进行了优化和测试。

macOS / Linux — 一行安装命令:

curl -fsSL https://raw.githubusercontent.com/abeljumanuel/axiom-meridian-project/main/scripts/install.sh | bash

任何操作系统,包括 Windows(使用 PowerShell 或已安装 uv 的终端):

uv tool install axiom-meridian
meridian setup     # detects and configures your MCP clients, creates the knowledge base
meridian doctor    # read-only check of the installation

在 Windows 上,请先使用 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" 安装 uv;此处不需要安装脚本,因为 meridian setup 是纯 Python 程序。

install.sh 是对上述相同命令的轻量封装:如果尚未安装 uv,会先询问再安装,然后运行 uv tool install,并交由 meridian setup 继续操作。该命令会在配置每个检测到的客户端(Claude Code、VSCode、Cursor、OpenCode、Kimi CLI)之前征求许可;不会覆盖现有的知识库文件,也不会覆盖指向其他安装位置的注册项;最后会运行 meridian doctor。从克隆的仓库运行(bash scripts/install.sh)时,它会以可编辑模式安装该检出版本。

Claude Code 插件(将服务和使用技能整合为一个单元):/plugin install meridian --marketplace abeljumanuel/axiom-meridian-project。

**语义搜索为可选功能:**安装 axiom-meridian[rag](约 900 MB 的机器学习库),即可按含义为自由文本查询排序;未安装时,查询会退回 SQL 筛选,且 generate_embeddings 会返回 RAG_NOT_INSTALLED 错误。

KNOWLEDGE_BASE_PATH 为可选项——如果未设置,Meridian 会自动创建知识库目录(Linux 上为 ~/.local/share/meridian,macOS 上为 ~/Library/Application Support/meridian,Windows 上为 %APPDATA%/meridian)。客户端配置、升级、从源代码安装和故障排除,请参阅:docs/installation.md。


2. 系统架构

2.1. 架构图:

Meridian 采用分层架构:MCP 工具注册 → 领域工具层 → 解析器/RAG/持久化,并设有单一写入关口(write_block),用于确保 SQLite 索引与 Markdown 文件保持同步。之所以选择这种模式,是因为该项目不可妥协的要求是:Markdown 始终是事实来源,而 SQLite 仅用作索引和状态层。“数据库作为事实来源”的架构虽然实现起来更简单,却会破坏项目存在的根本理由——让人能够轻松审阅内容(差异清晰、可由 Git 进行版本管理)。作为取舍,项目增加了一层新鲜度验证(indexed_files、mtime + sha256),以避免提供不同步的内容。

graph TB
    subgraph Clients["MCP Clients"]
        CC[Claude Code]
        VS[VSCode]
        OC[OpenCode]
        KC[Kimi CLI]
    end

    subgraph Meridian["Axiom Meridian (Python / FastMCP)"]
        SRV["server.py<br/>tool registration + security pattern"]
        subgraph Tools["tools/"]
            KM[knowledge_management]
            KCO[knowledge_consumption]
            AF[audit_flows]
            EX[extraction]
            KT[knowledge_templates]
        end
        subgraph Parsers["parsers/"]
            AP[atomic_parser]
            LP[legacy_parser]
        end
        subgraph RAGL["rag/ (optional)"]
            EMB[embedder]
            VEC[vector_store]
        end
        DBC["db/ (schema, migrations, connection)"]
        SEC["utils/security.py<br/>access levels"]
        SR["utils/scope_resolver.py"]
        RI["utils/read_index.py<br/>write_block + freshness"]
    end

    subgraph Storage["Storage (KNOWLEDGE_BASE_PATH)"]
        MD["Markdown files<br/>knowledge-base/*.md, lessons/*.md<br/>(source of truth)"]
        SQLITE[("SQLite<br/>meridian.db<br/>(index + state)")]
        CHROMA[("ChromaDB<br/>(optional vector store)")]
    end

    CC & VS & OC & KC -->|MCP stdio / HTTP-SSE| SRV
    SRV --> SEC
    SRV --> Tools
    KM --> AP
    KM --> LP
    KM --> RI
    KCO --> SR
    KCO --> RAGL
    RAGL --> CHROMA
    RI --> MD
    RI --> SQLITE
    Tools --> DBC
    DBC --> SQLITE

(该图直接根据参考实现的源代码 src/meridian/ 推断,并已在 docs/03-system-architecture.md 中记录。)

2.2. 主要组件说明:
组件技术职责
server.pyFastMCP注册每个 @mcp.tool()。每个工具都会委托给 _security_pattern(tool_name, params, project_id, impl):分配顺序日志 ID → check_access() → 运行实现 → 写入一条 access_log 记录。
tools/Pythonknowledge_management(索引、提案生命周期、晋级、嵌入),knowledge_consumption(查询、上下文、时间线、审计日志),audit_flows(PR 审计、反馈分析、功能检查),extraction(转录内容 → 提案),knowledge_templates(规范区块构建器)。
parsers/Pythonatomic_parser 读取规范的 ## RN-XXX-NNN / ## LL-XXX-NNN 区块。legacy_parser 读取旧版自由格式文件;其内容只会成为 pending_proposal,绝不会直接写入记录。
rag/(可选)sentence-transformers、ChromaDBembedder 延迟加载 BAAI/bge-small-en-v1.5(384 维,自动选择 CUDA/MPS/CPU);vector_store 封装 meridian_rules / meridian_lessons 集合。
db/SQLite(WAL)schema.sql(架构 + 种子作用域),migrations.py(基于 PRAGMA user_version 运行带版本号的 NNN_*.sql,并自动备份),connection.py(WAL 模式连接)。
utils/Pythonsecurity.py(访问级别),scope_resolver.py(层级解析 + 属性筛选),read_index.py(唯一写入入口 + 按文件维护新鲜度),id_generator.py(原子顺序 ID),privacy.py,serializers.py(JSON/TOON),skill_generator.py(生成 agentskills.io 输出)。
2.3. 项目概述和文件结构

注意: 此仓库(axiom-meridian-project)是该毕业设计项目的文档交付物,包含 docs/、openspec/ 和 prompts/。下方展示的源代码结构对应服务的参考实现(工作检出目录 axiom-meridian/);该实现与本文档并行演进,也是已交付工单(第 6 节)的基础。

axiom-meridian/
├── src/meridian/
│   ├── server.py              # MCP tool registration + security pattern
│   ├── config.py              # Configuration loading (env vars, paths)
│   ├── db/
│   │   ├── schema.sql          # Full schema + seed scopes
│   │   ├── migrations.py       # Versioned migration runner
│   │   ├── migrations/         # NNN_*.sql files
│   │   └── connection.py       # SQLite WAL-mode connections
│   ├── parsers/
│   │   ├── atomic_parser.py    # Canonical RN-*/LL-* format parser
│   │   └── legacy_parser.py    # Free-form file parser (migration)
│   ├── rag/
│   │   ├── embedder.py         # Lazy loading of BAAI/bge-small-en-v1.5
│   │   └── vector_store.py     # ChromaDB collection wrapper
│   ├── tools/
│   │   ├── knowledge_management.py    # Indexing, proposals, promotion
│   │   ├── knowledge_consumption.py   # Queries, context, timeline
│   │   ├── audit_flows.py             # audit_pr, check_feature_against_rules
│   │   ├── extraction.py              # Transcript extraction
│   │   └── knowledge_templates.py     # Canonical block templates
│   └── utils/
│       ├── security.py         # Access levels (read/analyze/write)
│       ├── scope_resolver.py   # Scope hierarchy resolution
│       ├── read_index.py       # write_block + freshness validation
│       ├── id_generator.py     # Atomic IDs via id_counters
│       ├── privacy.py          # Redaction of <private> tags
│       ├── serializers.py      # JSON/TOON serialization
│       └── skill_generator.py  # .claude/skills/ generation
├── tests/
│   ├── unit/                  # Parsers, resolver, migrations, security...
│   ├── integration/           # Full flows (index+query, proposals...)
│   ├── contract/              # MCP tool signatures
│   └── benchmarks/            # Performance regression guards
├── scripts/
│   ├── install.sh             # Linux/macOS installer
│   └── uninstall.sh
└── pyproject.toml

在此仓库(axiom-meridian-project)中,结构体现了其文档优先的性质:

axiom-meridian-project/
├── docs/                      # Baseline documentation (charter, architecture, data model...)
├── openspec/
│   ├── specs/                 # Baseline of already-delivered capabilities
│   └── changes/                # Active change proposals (backlog)
├── prompts/                   # Project working prompts
└── README.md
2.4. 基础设施和部署

Meridian 无需云基础设施:它是由 MCP 客户端通过标准输入输出(stdio)调用的本地进程,也可以选择运行绑定到 127.0.0.1 的 HTTP/SSE 服务(meridian serve <port>),绝不绑定到 0.0.0.0。在 HTTP 模式下,启动时会生成一个随机会话令牌,每个请求都必须在 Authorization: Bearer <token> 中携带该令牌;令牌不会持久化,并会在每次重启时轮换。

此仓库目前尚无相关部署/CI 流水线文档——当前的“部署”方式是通过 scripts/install.sh 在本地安装,详见第 1.4 节。加固联网部署(多客户端、TLS、速率限制)已列为未来工作,见 TICKET-015。

2.5. 安全性
访问级别授予权限典型调用方
read仅查询——不会持久化任何内容。仅使用知识的 Agent。
analyze(默认)read + 持久化审计/提案(audit_pr、extract_*、create_pending_proposal)。常规开发会话。
write完全访问权限——索引、审批、嵌入、技能生成。管理和迁移。
  • 较高级别包含所有较低级别的权限。
  • 权限级别不足时,会返回结构化的 ACCESS_DENIED 错误,并指出所需级别。
  • 每次调用——无论授权与否——都会记录在 access_log 中,但不包括敏感参数(pr_diff、feedback_text、text、proposed_text、new_text)。
  • 每条写入路径都会在持久化前从所有传入文本中剥除 <private> 标签。
  • HTTP/SSE 传输按设计绑定到 127.0.0.1,并要求提供 bearer 令牌(见 2.4 节)。
2.6. 测试

参考实现的测试套件采用四层金字塔结构,使用 pytest / pytest-asyncio 运行:

  • 单元测试(tests/unit/) — 包括解析器(atomic_parser、legacy_parser)、scope_resolver、id_generator、migrations、security、serializers、connection 等。单独验证每个模块。
  • 集成测试(tests/integration/) — 完整的端到端流程:索引 + 查询、提案生命周期、访问控制、RAG 查询、技能生成、外部文件编辑。
  • 契约测试(tests/contract/) — 验证已公开的 MCP 工具签名不会发生向后不兼容的变化。
  • 基准测试(tests/benchmarks/) — 防止性能回归;默认运行时会排除这些测试(pyproject.toml 中的 addopts = "-m 'not benchmark'"),需通过 -m benchmark 显式运行。

每项相关缺陷修复(参见系统架构中的 ADR-003 至 ADR-006)在关闭前都会新增对应的回归测试;已交付的工单(第 6 节)会引用覆盖其验收标准的具体测试文件。


3. 数据模型

3.1. 数据模型图:
erDiagram
    SCOPES ||--o{ SCOPES : "parent_id"
    SCOPES ||--o{ SCOPE_ATTRIBUTES : has
    SCOPES ||--o{ RULES : scopes
    SCOPES ||--o{ LESSONS : scopes
    SCOPES ||--o{ PENDING_PROPOSALS : "suggested for"

    RULES ||--o{ RULE_ATTRIBUTES : has
    RULES ||--o{ RULE_HISTORY : has
    RULES ||--o{ RULE_TAGS : has
    RULES ||--o{ RULE_LESSON_LINKS : links
    LESSONS ||--o{ LESSON_HISTORY : has
    LESSONS ||--o{ LESSON_TAGS : has
    LESSONS ||--o{ RULE_LESSON_LINKS : links
    RULES }o--|| LESSONS : originated_from

    SCOPES {
        text id PK
        text type
        text name
        text parent_id FK
    }
    SCOPE_ATTRIBUTES {
        text scope_id FK
        text key
        text value
    }
    RULES {
        text id PK
        text scope_id FK
        text code UK
        text text
        text category
        text severity
        text applies_to
        text status
        text file_path
        integer file_offset
        integer byte_length
        text originated_lesson_id FK
        text embedding_id
    }
    RULE_ATTRIBUTES {
        text rule_id FK
        text key
        text value
    }
    RULE_HISTORY {
        text id PK
        text rule_id FK
        text change_type
        text previous_text
        text new_text
        text reason
        text triggered_by
        text changed_at
    }
    RULE_TAGS {
        text rule_id FK
        text tag
    }
    LESSONS {
        text id PK
        text scope_id FK
        text code UK
        text project
        text date_occurred
        text severity
        text area_affected
        text what_happened
        text impact
        text root_cause
        text resolution
        text originated_rule_id FK
        text status
        text file_path
    }
    LESSON_HISTORY {
        text id PK
        text lesson_id FK
        text change_type
        text previous_text
        text new_text
        text reason
        text changed_at
    }
    LESSON_TAGS {
        text lesson_id FK
        text tag
    }
    RULE_LESSON_LINKS {
        text rule_id FK
        text lesson_id FK
        text link_type
    }
    PENDING_PROPOSALS {
        text id PK
        text type
        text scope_id FK
        text target_id
        text proposed_text
        text metadata
        text status
        text legacy_original
        text created_at
    }
    PROJECT_SCOPE_RESOLUTION {
        text project_id PK
        text resolved_scopes
        text updated_at
    }
    PR_AUDITS {
        text id PK
        text project_id
        text pr_ref
        text diff_hash
        integer rules_evaluated
        text violations_found
        text audited_at
    }
    PLANNING_CHECKS {
        text id PK
        text project_id
        text feature_description
        text conflicts_found
        text checked_at
    }
    ACCESS_LOG {
        text id PK
        text timestamp
        text tool_name
        text access_level
        text project_id
        text parameters
        text result
        text transport
    }
    ID_COUNTERS {
        text name PK
        integer next
    }
    INDEXED_FILES {
        text file_path PK
        real mtime
        text content_hash
        text updated_at
    }

(已根据参考实现中 src/meridian/db/schema.sql 的实际架构验证 ERD——共 17 张表,完全匹配。)

3.2. 主要实体说明:
表用途
scopes层级节点(global、global-<framework>、project-<id>),构成用于解析适用于某个项目的规则的链。主键为 id,parent_id 为自引用外键。
scope_attributes作用域上的动态键值属性(framework=quarkus、component_role=gateway),用于 AND 匹配筛选。
rules生效/已弃用的技术规则(RN-<TECH>-NNN),绑定到某个作用域,并包含类别、严重性和适用性元数据。读取时,detail="full" 返回的正文由 text 缓存。外键为 scope_id、originated_lesson_id。唯一键为 code。
rule_attributes单条规则的动态属性,叠加在其作用域的属性之上。
rule_history记录规则每次变更的追加式审计跟踪(CREATED、UPDATED、DEPRECATED、PROMOTED)。
rule_tags每个标签占一行的规范化表,用于精确匹配筛选(而非子字符串 LIKE)。
lessons事件/经验教训(LL-<TECH>-NNN),包含结构化字段(what_happened、impact、root_cause、resolution)。外键为 scope_id、originated_rule_id。唯一键为 code。
lesson_history记录经验教训变更的追加式审计跟踪。
lesson_tags经验教训的规范化标签,与 rule_tags 对应。
rule_lesson_links规则与由其产生或引用的经验教训之间的双向链接。约束:(rule_id, lesson_id, link_type) 元组必须唯一。
project_scope_resolution项目已解析作用域链的缓存。主键为 project_id。
pr_audits记录每次 audit_pr() 调用:评估的规则、发现的违规项、差异哈希。
planning_checks记录每次 check_feature_against_rules() 调用。
pending_proposals所有规则/经验教训候选项的暂存区(提取、旧版迁移、手动创建),等待人工审核。target_id 用于 type="update" 提案。
access_log安全审计跟踪——每次工具调用、所需访问级别及其结果(success / denied / error)。绝不记录敏感参数。
id_counters用于通过 UPDATE ... RETURNING 生成顺序递增、便于人类阅读的 ID 的原子计数器(绝不使用 MAX(id))。
indexed_files按文件记录新鲜度指纹(mtime、content_hash),用于验证缓存文本是否仍与磁盘上的 Markdown 文件一致。

更多详情,包括原子块格式和 ID 生成策略,请参阅 docs/04-data-model.md。


4. API 规范

Meridian 不提供传统的 REST API:它提供一组类型化的 MCP 工具(参考实现中有 25 个以上,例如 query_rules、audit_pr、create_pending_proposal 等),通过 MCP 协议(stdio 或 HTTP/SSE)调用,而不是通过带有 HTTP 动词的路由调用。强行将 OpenAPI 3 规范套用到此接口上会产生误导:OpenAPI 对资源和 HTTP 动词进行建模,而 MCP 工具是一个具有输入/输出架构(JSON Schema)的函数,其语义是“模型可以调用的操作”——它更接近函数签名,而非端点。

作为一种正式替代方案,本项目将采用通过声明式架构定义语义工具,或面向模型的文档:为每个工具编写一份文档,以 JSON Schema 说明其输入参数、所需访问级别(read/analyze/write)、响应结构和调用示例。这与参考实现中 tests/contract/test_mcp_tool_signatures.py 已验证的契约相同,只是将其作为产品文档公开,而不再仅限于测试。此约定已经确定,但尚未在项目文档中实现;后续交付将对此进行说明,至少涵盖使用最频繁的三个工具(query_rules、audit_pr、create_pending_proposal/approve_proposal)。


5. 用户故事

docs/05-user-stories.md 中包含完整目录(8 个史诗,采用 As a / I want / so that 格式,使用 MoSCoW 优先级)。下面列出 3 个代表性用户故事:

用户故事 1 — US-A1 — 查询与我的项目相关的规则(史诗 A,优先级 Must,工具 query_rules)。

用户故事 2 — US-B3 — 审核并批准提案(史诗 B,优先级 Must,工具 list_pending_proposals/approve_proposal/reject_proposal)。

用户故事 3 — US-C1 — 根据已知规则审计拉取请求(史诗 C,优先级 Must,工具 audit_pr)。


6. 工作任务

docs/06-work-tickets.md 中包含完整目录(已交付任务及待办任务,均可追溯至 OpenSpec)。下面列出一个后端、一个数据库和一个前端任务:

任务 1(后端) — TICKET-001 — MCP 服务脚手架和核心工具接口。搭建 FastMCP 服务、server.py 安全模式、SQLite 架构和初始工具集。状态:已完成。

任务 2(数据库) — TICKET-008 — 按文件新鲜度校验的索引读取路径(ADR-005)。新增 indexed_files、rule_tags、lesson_tags;引入 write_block 作为唯一写入关口;将 detail="full" 读取切换到 SQLite,并通过逐文件新鲜度校验。状态:已完成。

任务 3(前端) — TICKET-017 — 只读可观测性仪表板,对应 US-H1。这是一个只读 Web 仪表板(服务健康状况、范围层级、待处理提案、嵌入投影器),作为独立的本地进程运行,并将 knowledge_consumption 作为库复用。状态:待办——这是项目中唯一规划的前端组件;其正式规范位于 openspec/changes/add-observability-dashboard/。

7. 拉取请求

此处仅列出能够交付完整且可验证成果的拉取请求。首个有效成果是基线技术文档(项目简介表、描述、架构、数据模型、用户故事、工作任务)——即本 README 和 docs/。

拉取请求 1 — #1 — 删除重复内容(已合并)。在本次交付前清理基线文档中的重复内容。

拉取请求 2 — 待处理。 待某个 PR 包含首个完整交付后,将在此处列出:“技术文档:项目简介表、描述、架构、数据模型、用户故事、工作任务。”

拉取请求 3 — 待处理。


许可证

Axiom Meridian 采用 Apache License, Version 2.0 授权。署名信息请参阅 NOTICE。

“Axiom Meridian”和“Axiom JUMA”名称及其标识不受 Apache License(第 6 条,商标)授权。使用这些名称和标识须获得所有者许可。

许可证变更: 在变更为 Apache 2.0 之前发布的版本采用 MIT License 授权,依据这些条款获取的副本仍适用这些条款。

第三方内容: .claude/skills/openspec-* 技能由 OpenSpec 生成,并保留其各自的 MIT 许可证。

欢迎在 Apache License 2.0 下贡献代码,并附上 DCO 签署;请参阅 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。