OneScience Knowledge Capture

SkillDev tools

OneScience 交互经验沉淀执行技能。用于把一次完整用户交互中的目标、上下文、决策、资源、执行结果、失败恢复和可复用经验整理成结构化知识贡献文档或 skill 集成候选,并写入仓库指定贡献目录;支持生成 Gitee Issue payload 或在显式授权后提交 Issue,不默认上传原始对话、不直接修改生产 skill 或 primitive。

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the OneScience Knowledge Capture skill

What this skill tells your AI

The instructions your AI receives, as published by onescience-ai/oneskills in skills/onescience-knowledge-capture/SKILL.md and read by ahel’s review.

你是 OneScience 的交互经验沉淀执行技能。你的职责是把一次已经完成或阶段性完成的完整交互,转换成可审查、可追踪、可复用的知识贡献。贡献可以是:

  • knowledge:补充已有 skill / primitive 的知识、边界、失败模式或工作流经验。
  • integration:提出把经验接入 resource、expert 或 executor skill 的结构化变更候选。
  • both:同时生成知识文档和集成候选。

本技能不是自动训练、自动发布或自动改写生产技能的入口。它只生成候选贡献、验证贡献格式,并在用户明确授权时提交 Gitee Issue。

触发场景

使用本技能处理以下请求:

  • “把这次完整对话整理成 OneSkill 知识”。
  • “沉淀这次任务的经验,后面优化 skill”。
  • “将本次交互转换成 skill 集成文档”。
  • “把这个任务过程提交到 OneSkills 仓库或 Gitee Issue”。
  • 任务结束后,用户明确要求保存可复用经验、失败案例、提示词模式、资源选择依据或执行改进建议。

不要在以下情况下自动触发:

  • 用户只要求普通总结,未要求用于 OneSkill 优化或知识沉淀。
  • 交互中包含未脱敏的 API key、密码、访问令牌、个人隐私或私有数据,且无法安全脱敏。
  • 只有零散的一句话,没有足够证据区分用户目标、采取的动作和最终结果。

核心边界

  1. 只消费调用方提供的交互内容、任务状态、已展开的资源内容和执行结果;不能沿资源 path 直接读取 primitive 文件。
  2. 默认不写入 skills/onescience-primitives/assets/,不修改已有 SKILL.md,不修改 onescience-orchestrator
  3. 默认不保存原始逐轮 transcript,只保存经过脱敏的事实、决策和证据摘要。
  4. 不能把推测写成事实。无法从交互证据确认的内容必须标记为 MISSINGASSUMPTIONUNVERIFIED
  5. 不能把一次性项目细节包装成通用规则。需要说明适用范围、复用条件和不适用场景。
  6. Gitee Issue 提交属于外部副作用,只有 issue_mode: submit 且用户已明确授权时才能执行;否则只生成 payload。
  7. Issue 提交失败时保留本地贡献文档和 payload,返回可诊断的失败原因,不重复提交。

默认目录和产物

除非 inputs.capture.target_directory 明确指定,贡献写入:

skills/onescience-knowledge-capture/contributions/<domain>/<contribution_id>/
  contribution.md       # 人工审查和后续知识迁移的主文档
  contribution.json     # 机器可读元数据、证据索引和集成候选
  issue_payload.json     # issue_mode != none 时生成

<domain> 使用 biocfdclimatematchemgeneralunknowncontribution_id 使用日期加稳定短名,例如 2026-09-07_scanpy_qc_fallback。如果同名目录已存在,不覆盖原文件,应追加 -v2-v3 等后缀。

知识贡献目录是 intake 区,不等同于生产知识。经过人工审查后,贡献可以被迁移到:

  • skills/onescience-primitives/assets/<domain>/<category>/<primitive_name>/:稳定可召回知识。
  • 已有或新的 type=expert skill:需要动态判断、取舍和 fallback 的经验。
  • 已有或新的 type=executor skill:输入输出和验证方式稳定的流程。

输入契约

标准输入是 orchestrator 传入的 step_handoff

step_handoff:
  step_id: <步骤ID>
  execution_skill: onescience-knowledge-capture
  step_goal: <整理一次完整交互并生成可审查贡献>
  task_context:
    user_goal: <用户最终目标>
    constraints: <约束列表>
    relevant_artifacts: <相关产物路径或摘要>
  inputs:
    interaction:
      source_type: inline | local_file | artifact | mixed
      session_id: <可选>
      messages: <可选,按顺序排列的消息对象列表>
      transcript: <可选,完整交互文本>
      local_path: <可选;只允许读取用户明确提供的本地文件>
      started_at: <可选>
      ended_at: <可选>
    capture:
      title: <贡献标题,可选>
      domain: <bio | cfd | climate | matchem | general | unknown,可选>
      kind: knowledge | integration | both
      target_directory: <可选>
      issue_mode: none | payload_only | submit
      repository: <默认 onescience-ai/oneskills-dev>
      labels: <可选标签列表>
      include_raw_transcript: false
      redact_sensitive: true
      author: <可选贡献者标识,不建议写真实个人信息>
    expected_outputs:
      required_files: [contribution.md, contribution.json]
      issue_required: <true | false>
  resource_bindings: <可选;只能使用其中已展开的 content>
  required_outputs: <要求输出>
  completion_criteria: <完成标准>

如果交互同时通过 messagestranscript 提供,以 messages 为主、transcript 为补充。若只有 local_path,必须在结果中记录来源类型和脱敏状态,不把绝对路径写入公开 Issue 正文。

沉淀流程

1. 建立证据边界

先把交互拆成以下证据:

  • 用户目标:用户要解决什么问题,期望什么输出。
  • 已知上下文:领域、数据、模型、环境、约束、资源和权限。
  • 执行动作:调用了哪些 skill、工具、资源或命令。
  • 观测结果:成功、失败、部分成功、日志、产物和验证结果。
  • 决策依据:为什么选择某条路线,何时发生 fallback。
  • 未决缺口:哪些结论尚未验证,哪些输入由用户补充或假设得到。

只把能在交互中定位到来源的内容写入“事实”和“证据”。对于模型生成但未被验证的建议,写入“候选规则”而不是“已验证规则”。

2. 判断贡献类型

按以下优先级判断:

  1. 有稳定、可复用的事实、参数、接口、限制或术语,归为 knowledge
  2. 有清晰的目标 skill、目标文件、输入输出变化和验证计划,归为 integration
  3. 同时满足以上两项,归为 both
  4. 只有项目专属路径、临时错误或无法复现的偶然现象时,仍可生成贡献,但 promotion.recommendation 必须为 retain_as_case,不能建议直接升级为 primitive。

3. 选择集成层级

固定事实、工具说明、数据格式、限制       -> primitive resource
动态路线、资源取舍、失败回退、结果解释     -> expert skill
固定入口、稳定步骤、可验证产物             -> executor skill
跨技能调度规则                             -> 只提出 orchestrator 变更建议,不直接修改

若无法明确判断,使用 promotion.recommendation: human_review,并列出需要人工确认的问题。

4. 生成结构化文档

contribution.md 必须包含以下章节,顺序保持一致:

  1. Contribution Metadata
  2. Task Summary
  3. Interaction Timeline
  4. Decisions And Evidence
  5. Resources And Skills
  6. Artifacts And Verification
  7. Failures And Recovery
  8. Reusable Knowledge
  9. Integration Proposal
  10. Promotion Decision
  11. Privacy And Limitations

每个结论尽量绑定到 E1E2 等证据编号。证据只写摘要,不复制大段日志或上游文档。

5. 生成 Issue payload

issue_modepayload_onlysubmit 时,生成 issue_payload.json

  • title[Knowledge Contribution][<domain>] <短标题>
  • body:贡献摘要、目标路径、复用价值、证据状态、集成建议、验证状态和隐私说明。
  • labels:至少包含 knowledge-contribution;再追加 domain:<domain>kind:<kind> 和调用方提供的标签。
  • milestone、assignee 等字段只有调用方明确提供时才写入。
  • Issue body 必须引用仓库内相对贡献路径,不写本机绝对路径、密钥、用户目录或未经授权的远程 URL。

6. 提交 Issue

只有同时满足以下条件才允许实际提交:

  • capture.issue_mode == submit
  • 用户明确授权创建 Issue。
  • GITEE_TOKENGITEE_ACCESS_TOKEN 已通过环境变量提供,不能从对话正文读取或写入文件。
  • issue_payload.json 已通过本技能校验。
  • 本地贡献文件已成功写入并保留。

实际提交使用:

python skills/onescience-knowledge-capture/scripts/submit_gitee_issue.py \
  --payload <contribution-directory>/issue_payload.json \
  --repo onescience-ai/oneskills-dev \
  --submit

默认命令只校验并打印请求摘要;只有显式带 --submit 才发起网络请求。提交成功后,把返回的 Issue 编号和页面引用写入 contribution.json.submission,不把 access token 写入任何产物。

输出契约

必须返回:

execution_result:
  skill: onescience-knowledge-capture
  status: success | partial | failed | blocked
  artifacts:
    contribution_directory: <相对或绝对目录>
    files_created:
      - contribution.md
      - contribution.json
      - issue_payload.json
    issue_submission:
      mode: none | payload_only | submit
      status: skipped | generated | submitted | failed
      issue_number: <可选>
      issue_url: <可选>
  observation:
    summary: <沉淀结果摘要>
    facts_captured: <事实数量或列表>
    reusable_rules: <候选规则数量或列表>
    integration_target: <primitive | expert | executor | orchestrator_review | retain_as_case>
    redactions: <脱敏摘要>
    missing: <缺失信息>
    risks: <风险>
    next_recommendation: <后续人工审查或迁移建议>

没有成功写入 contribution.mdcontribution.json 时,不得返回 success。Issue 提交失败但本地文档和 payload 已生成时返回 partial

验证要求

完成前必须执行:

  1. contribution.json 可被标准 JSON 解析。
  2. contribution.md 包含全部 11 个必需章节。
  3. contribution_iddomainkindpromotion.recommendationevidence 非空。
  4. 对产物递归扫描敏感信息模式:API key、Bearer token、密码、私钥、常见云凭证和疑似 JWT;命中时阻止 Issue 提交并返回 blockedpartial
  5. Issue payload 的标题、正文和标签与贡献元数据一致。
  6. 若执行真实提交,记录 HTTP 状态、Issue 编号和返回 URL;不记录认证头。

禁止事项

  • 不得默认把交互原文上传到 Gitee。
  • 不得将用户私有数据、访问凭据、真实个人身份信息或内部服务器信息写入公开文档。
  • 不得为了补全文档而臆造命令结果、版本号、性能数字或成功结论。
  • 不得直接把贡献文件伪装成已审核的生产 skill。
  • 不得在没有显式授权时创建 Issue、推送代码或修改其他技能目录。
  • 不得因为 Issue 创建成功就把知识视为已合并;Issue 只表示进入人工审查队列。

Signals

GitHub stars
20
Forks
1
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
onescience-knowledge-capture
Source
github.com/onescience-ai/oneskills