Skip to content

【Skill仓库】A 任务 Repository、Search、Graph 与持久化适配底座#4

Open
dydpop wants to merge 8 commits into
mainfrom
repo-dev
Open

【Skill仓库】A 任务 Repository、Search、Graph 与持久化适配底座#4
dydpop wants to merge 8 commits into
mainfrom
repo-dev

Conversation

@dydpop

@dydpop dydpop commented May 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

本 PR 提交 A 任务 Skill Repository Layer 的阶段性成果,分支为 repo-dev -> main

这次重点不是新增前端页面,而是稳定 SkillOS 的底层 Skill 仓库能力:Wiki/Repository、Search、Graph,以及后续 PostgreSQL / Neo4j 持久化适配边界。

已完成内容

  • 稳定内存 demo 模式下的 Skill Wiki / Repository CRUD、版本历史、执行记录和统计。
  • 增强 SearchQuery / SearchResult 的规则型搜索质量,支持 text、tags、skill_type、domain、state、min_success_rate、include_deprecated。
  • Skill 创建、更新、删除时自动同步 Graph 节点。
  • 根据 implementation.sub_skill_ids 自动生成 composes_with 边。
  • 根据 provenance.parent_skill_ids 自动生成 evolved_from 边。
  • 自动边使用稳定 edge_id 和 metadata,避免重复堆积,并避免误删手动边。
  • 为 PostgreSQL / Neo4j 适配补齐字段保存和 metadata 读取测试。
  • 更新 docs/modules/01-skill-repository.md

接口边界

  • 未修改 docs/interfaces.md
  • 未修改 docs/architecture.md
  • 未新增 REST endpoint。
  • 未新增依赖。
  • 未接入真实 PostgreSQL / Neo4j 服务。
  • 当前仍保持内存 demo 模式可运行,持久化部分是适配准备。

验证

cd C:\Users\m1516\Desktop\SKILLOS\skillos\skillos
python -m compileall -q skillos\api skillos\layers\skill_repository skillos\storage
python -m pytest tests\test_skill_repository_phase1.py -q
python -m pytest tests\test_skill_repository_search_phase2.py -q
python -m pytest tests\test_skill_repository_persistence_phase4.py -q
python -m pytest tests\test_models.py tests\test_config.py -q
python -m pytest skillos\tests\test_layers.py -q

cd C:\Users\m1516\Desktop\SKILLOS\skillos
git diff --check

本地结果均通过。当前 warning 主要是项目既有的 datetime.utcnow()pythonjsonlogger 弃用提示,不影响本次功能。

后续依赖

  • 真实 PostgreSQL / Neo4j 部署和迁移脚本需要后续团队统一处理。
  • C 组 Retriever 后续需要真实消费 A 的搜索结果。
  • D 组 Librarian / Evolution 后续需要真实写入 Skill 关系。
  • E 前端 Wiki / Graph 后续需要继续用真实数据联调。
  • B 版本治理与 A live Skill 仓库之间的同步边界需要后续统一说明。

请求 review 重点

  • A 层是否保持了飞书接口边界。
  • Search 的过滤和排序规则是否符合 C/D/E 的调用预期。
  • Graph 自动关系边的方向和 metadata 是否合理。
  • 持久化适配准备是否足够支撑后续 PostgreSQL / Neo4j 接入。

@dydpop dydpop marked this pull request as ready for review May 4, 2026 01:28
@dvnyusgfb

Copy link
Copy Markdown
Collaborator

补充验证:

我继续检查了 A 模块中 Graph auto-construction 的实现情况。当前 MemoryGraphManager.sync_auto_edges() 已支持根据 implementation.sub_skill_ids 自动生成 parent Skill -> child Skill 的 composes_with 边,并使用稳定 edge_id,同时包含 auto_generatedsource=skill_repository 的 metadata。

本地已运行相关测试:

  • tests/test_skill_repository_phase1.py:8 passed
  • tests/test_skill_repository_persistence_phase4.py:5 passed
  • tests/test_models.py:62 passed

目前测试均通过,warning 主要是 datetime.utcnow() 的弃用提示,不影响当前功能。本轮没有新增代码修改。

@dvnyusgfb

Copy link
Copy Markdown
Collaborator

补充更新:

本次为 A 模块增加 Repository 层轻量版本历史 diff 能力。GET /api/v1/skills/{id}/versions 现在可以返回相邻版本的 previous_versiondiff_to_previous 信息。

本地已验证:

  • tests/test_skill_repository_phase1.py:通过
  • tests/test_models.py:通过
  • tests/test_skill_repository_persistence_phase4.py:通过

该功能仅为 Repository 层轻量字段 diff,不涉及 Governance 层 breaking change 检测。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants