关于 Axiom Meridian
Axiom Meridian 面向使用 AI 编码 Agent 的团队,按项目提供相关编码规则与经验教训。它以 Markdown 为知识源,并要求人工批准变更。
主要功能
- 01按范围查询规则与经验
- 02原子化且可追溯的 Markdown 条目
- 03人工审批知识提案
- 04PR 与功能规则审查
- 05从会议记录提取提案
- 06SQL 与可选语义检索
适用场景
- 01检索项目适用的规则
- 02合并 PR 前检查规则
- 03依据团队规则审查功能
- 04将会议记录转为提案
MCP 相关
它通过类型化 MCP 工具提供规则与经验的查询、审计、提取和管理功能。支持 stdio,也可选择绑定到 127.0.0.1 的 HTTP/SSE。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx axiom-meridianKNOWLEDGE_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
28收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | string | 否 | 'atomic':解析规范的 ## RN-XXX-NNN 区块({TECH} 部分可选,也接受普通的 ## RN-NNN),并将其直接写入 rules/rule_history。'legacy':仅将旧式 ### 区块解析到 pending_proposals,绝不直接写入 rules。 |
| filepath | string | 是 | 包含规则区块的源 .md 文件路径。 |
| default_scope_id | string | 是 | 分配给未声明自身 **Scope:** 字段的区块的范围(例如 'global-java'、'project-<id>')。 |
详细介绍
索引
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. 核心特性与功能:
- 限定范围的知识查询 —
query_rules/query_lessons会解析项目的有效范围链,应用类别/严重性/标签筛选,并仅返回有效且匹配的条目。 - 原子化、可追溯的格式 — 每条规则或经验教训都是独立的 Markdown 块(
## RN-JAVA-011、## LL-PSP-003),包含结构化字段,可确定性地解析和索引。 - 受治理的生命周期 — 提取和旧文件迁移绝不会直接写入活动知识;所有内容都会先进入
pending_proposals,而approve_proposal会在单个事务中将变更写入 Markdown 文件和 SQLite 索引。 - PR 和功能审计 —
audit_pr会在合并前呈现相关规则/经验教训;check_feature_against_rules则会在规划阶段执行相同操作。 - 会议记录提取 —
extract_rules_from_transcript/extract_lessons_from_transcript会将会议记录转换为候选提案。 - 混合检索(SQL + RAG) — 存在嵌入向量时,查询会按语义相似度排序(通过 ChromaDB 使用
BAAI/bge-small-en-v1.5);不存在嵌入向量时,则会透明地回退到 SQL 筛选,且不改变工具的签名。 - 访问控制和审计日志 — 每个工具都受访问级别(
read/analyze/write)控制;每次调用都会被记录,但不包含敏感参数。 - 生态系统技能生成 —
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.py | FastMCP | 注册每个 @mcp.tool()。每个工具都会委托给 _security_pattern(tool_name, params, project_id, impl):分配顺序日志 ID → check_access() → 运行实现 → 写入一条 access_log 记录。 |
tools/ | Python | knowledge_management(索引、提案生命周期、晋级、嵌入),knowledge_consumption(查询、上下文、时间线、审计日志),audit_flows(PR 审计、反馈分析、功能检查),extraction(转录内容 → 提案),knowledge_templates(规范区块构建器)。 |
parsers/ | Python | atomic_parser 读取规范的 ## RN-XXX-NNN / ## LL-XXX-NNN 区块。legacy_parser 读取旧版自由格式文件;其内容只会成为 pending_proposal,绝不会直接写入记录。 |
rag/(可选) | sentence-transformers、ChromaDB | embedder 延迟加载 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/ | Python | security.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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。