Skills skill-project-knowledge
apiVersion: skill.ooder.net/v1
git clone https://github.com/oodercn/skills
skills/scenes/skill-project-knowledge/skill.yamlapiVersion: skill.ooder.net/v1 kind: Skill
metadata: id: skill-project-knowledge name: 项目知识库场景 version: "3.0.1" description: 项目知识自动沉淀场景能力,将项目文档自动分类整理,形成可复用知识资产 author: Ooder Team license: Apache-2.0 homepage: https://gitee.com/ooderCN repository: https://gitee.com/ooderCN/ooder-skills keywords: - project - knowledge - extraction - classification - archive
spec: skillForm: SCENE
capability: category: biz
scene: type: TRIGGER visibility: public participantMode: multi-role name: 项目知识沉淀 description: 项目知识自动沉淀和整理
roles: - id: PROJECT_MANAGER name: 项目经理 description: 项目负责人,管理项目知识库 required: true minCount: 1 maxCount: 1 permissions: - project:manage - docs:import - docs:delete - graph:view - id: TEAM_MEMBER name: 团队成员 description: 项目团队成员 required: false minCount: 0 maxCount: 50 permissions: - docs:view - docs:upload - docs:edit - id: STAKEHOLDER name: 干系人 description: 项目干系人,只读访问 required: false minCount: 0 maxCount: 100 permissions: - docs:view - graph:view
activationSteps: PROJECT_MANAGER: - stepId: link-project step: 1 action: link-project title: 关联项目 description: 选择要沉淀知识的项目 type: CONFIG_SKILL required: true skippable: false autoExecute: false - stepId: configure-classification step: 2 action: configure-classification title: 配置分类规则 description: 设置文档分类规则 type: CONFIG_CONDITIONS required: false skippable: true autoExecute: false - stepId: invite-team step: 3 action: invite-team title: 邀请团队成员 description: 添加项目团队成员 type: CONFIRM_PARTICIPANTS required: false skippable: true autoExecute: false - stepId: confirm-activation step: 4 action: confirm-activation title: 确认激活 description: 确认场景激活 type: CONFIRM_ACTIVATION required: true skippable: false autoExecute: false TEAM_MEMBER: - stepId: accept-invitation step: 1 action: accept-invitation title: 接受邀请 description: 加入项目知识库 type: CONFIRM_JOIN required: true skippable: false autoExecute: false STAKEHOLDER: - stepId: accept-invitation step: 1 action: accept-invitation title: 接受邀请 description: 获取项目知识库访问权限 type: CONFIRM_JOIN required: true skippable: false autoExecute: false
menus: PROJECT_MANAGER: - id: overview name: 项目概览 icon: ri-dashboard-line path: /project-knowledge/overview order: 1 visible: true - id: import name: 导入文档 icon: ri-upload-line path: /project-knowledge/import order: 2 visible: true - id: documents name: 文档管理 icon: ri-folder-line path: /project-knowledge/documents order: 3 visible: true - id: knowledge-graph name: 知识图谱 icon: ri-mind-map path: /project-knowledge/graph order: 4 visible: true - id: similar-projects name: 相似项目 icon: ri-links-line path: /project-knowledge/similar order: 5 visible: true TEAM_MEMBER: - id: my-documents name: 我的文档 icon: ri-folder-line path: /project-knowledge/my-documents order: 1 visible: true - id: upload name: 上传文档 icon: ri-upload-line path: /project-knowledge/upload order: 2 visible: true - id: knowledge-graph name: 知识图谱 icon: ri-mind-map path: /project-knowledge/graph order: 3 visible: true STAKEHOLDER: - id: documents name: 项目文档 icon: ri-folder-line path: /project-knowledge/documents order: 1 visible: true - id: knowledge-graph name: 知识图谱 icon: ri-mind-map path: /project-knowledge/graph order: 2 visible: true
classification: category: tbs categoryName: 触发业务场景 mainFirst: false businessSemanticsScore: 8 detectedAt: "2026-03-06T00:00:00Z" detectionVersion: "2.3.0" autoDetect: true
dependencies: - id: skill-knowledge-base version: ">=1.0.0" required: true autoInstall: true description: "知识库核心服务" capabilities: - knowledge-base
- id: skill-document-processor version: ">=1.0.0" required: true autoInstall: true description: "文档处理服务" capabilities: - document-parse - document-chunk - id: skill-llm-conversation version: ">=1.0.0" required: false autoInstall: false description: "LLM对话服务(用于分类)" capabilities: - text-classification
sceneCapabilities: - id: scene-project-knowledge name: 项目知识沉淀场景能力 type: SCENE mainFirst: false
capabilities: - import-project-docs - classify-document - discover-similar - generate-graph participants: - role: PROJECT_MANAGER permissions: [READ, WRITE, DELETE] - role: TEAM_MEMBER permissions: [READ, WRITE] - role: STAKEHOLDER permissions: [READ] visibility: TEAM
capabilities: - id: import-project-docs name: 导入项目文档 description: 批量导入项目文档并自动处理 category: service type: ATOMIC inputSchema: type: object properties: projectId: type: string archiveFile: type: file autoClassify: type: boolean default: true outputSchema: type: object properties: taskId: type: string totalFiles: type: integer processedFiles: type: integer status: type: string
- id: classify-document name: 文档分类 description: 自动识别文档类型并打标签 category: service type: ATOMIC inputSchema: type: object properties: docId: type: string content: type: string outputSchema: type: object properties: docType: type: string enum: [requirement, design, test, summary, other] tags: type: array confidence: type: number - id: discover-similar name: 发现相似项目 description: 基于项目特征推荐相似项目 category: service type: ATOMIC inputSchema: type: object properties: projectId: type: string topK: type: integer default: 5 outputSchema: type: array items: type: object properties: projectId: type: string projectName: type: string similarityScore: type: number - id: generate-graph name: 生成知识图谱 description: 提取实体和关系生成知识图谱 category: service type: ATOMIC inputSchema: type: object properties: projectId: type: string outputSchema: type: object properties: nodes: type: array edges: type: array
capabilityBindings: - sceneCapabilityType: project-knowledge autoBind: true capabilities: - import-project-docs - classify-document - discover-similar - generate-graph
endpoints: - path: /api/v1/project-knowledge/import method: POST description: 导入项目文档 capability: import-project-docs
- path: /api/v1/project-knowledge/classify method: POST description: 文档分类 capability: classify-document - path: /api/v1/project-knowledge/similar/{projectId} method: GET description: 发现相似项目 capability: discover-similar - path: /api/v1/project-knowledge/graph/{projectId} method: GET description: 生成知识图谱 capability: generate-graph - path: /api/v1/project-knowledge/task/{taskId} method: GET description: 查询导入任务状态 capability: import-project-docs
runtime: language: java javaVersion: "8" framework: spring-boot mainClass: net.ooder.skill.project.knowledge.ProjectKnowledgeApplication
llmConfig: required: false defaultProvider: "deepseek" defaultModel: "deepseek-chat" capabilities: - chat - streaming - function-calling modelSelection: allowUserOverride: true availableProviders: - deepseek - openai - qianwen - volcengine - ollama functionCalling: enabled: true tools: - name: query_skill_capability description: "查询当前技能的能力和使用方法" parameters: type: object properties: capability: type: string description: "能力名称" detail: type: string enum: [brief, detailed, examples] default: "brief" - name: execute_mvel_action description: "通过MVEL表达式执行后台操作" parameters: type: object properties: expression: type: string description: "MVEL表达式" context: type: object - name: generate_ui_form description: "生成UI表单供用户填写" parameters: type: object properties: formType: type: string fields: type: array items: type: object - name: execute_batch_operation description: "执行批量操作" parameters: type: object properties: operation: type: string items: type: array items: type: object - name: convert_to_javascript description: "转换为JavaScript代码供用户使用" parameters: type: object properties: action: type: string parameters: type: object toolChoice: auto rateLimits: requestsPerMinute: 60 tokensPerMinute: 100000
config: optional: - name: CLASSIFICATION_CONFIDENCE_THRESHOLD type: number default: 0.8 description: 分类置信度阈值 - name: MAX_IMPORT_FILES type: integer default: 100 description: 单次最大导入文件数 - name: SIMILARITY_THRESHOLD type: number default: 0.7 description: 相似度阈值
resources: cpu: "200m" memory: "512Mi" storage: "1Gi"
offline: enabled: true cacheStrategy: local syncOnReconnect: true
knowledge: documents: - id: overview name: 功能概述 path: README.md type: guide language: zh priority: high ragConfig: enabled: true indexName: "skill-project-knowledge-knowledge" embeddingModel: text-embedding-3-small chunkSize: 1000 chunkOverlap: 200 searchStrategy: hybrid topK: 5 threshold: 0.7