Skip to content
cccskills
FreePublished on GitHub

ok-cosmic

金蝶云苍穹开发主 Skill,优先复用 kd-cd-cosmic-commons 封装。适用于插件开发、单据/列表/表单逻辑、操作服务、BOTP 转换、后台视图打开、附件处理、DynamicObject 与元数据处理、弹性域解析及 OpenAPI 集成。

默认优先使用仓库封装;在涉及原生插件事件、SDK API、方法签名或封装未覆盖场景时,使用内置脚本进行查询。

The English summary is being prepared. Showing the original description.

See how to install

Files included (110)

  • SKILL.md18.1 KB
  • .gitignore58 B
  • agents/openai.yaml871 B
  • assets/BatchImportPluginTemplate.java3.4 KB
  • assets/BillPlugInTemplate.java5.1 KB
  • assets/ConvertPlugInTemplate.java9.9 KB
  • assets/FormPluginTemplate.java20.6 KB
  • assets/IWorkflowPluginTemplate.java3.7 KB
  • assets/ListPluginTemplate.java6.6 KB
  • assets/OpenApiControllerTemplate.java3.6 KB
  • assets/OpPluginTemplate.java7.6 KB
  • assets/PrintPluginTemplate.java3.4 KB
  • assets/ReportFormPluginTemplate.java9.2 KB
  • assets/ReportListDataPluginTemplate.java2.6 KB
  • assets/snippets/attachment/AttachmentUploadBindSample.java3.2 KB
  • assets/snippets/botp/BotpTracePushSample.java6.0 KB
  • assets/snippets/data/DynamicObjectOpsSample.java3.0 KB
  • assets/snippets/form/BeforeOperationConfirmSample.java5.6 KB
  • assets/snippets/form/ConfirmDialogSample.java4.5 KB
  • assets/snippets/form/EntryRowCalculateSample.java2.3 KB
  • assets/snippets/form/F7FilterSample.java3.3 KB
  • assets/snippets/form/GetAndSetValueSample.java3.8 KB
  • assets/snippets/form/OpenBillModalSample.java7.3 KB
  • assets/snippets/form/ReturnParentDataSample.java3.0 KB
  • assets/snippets/form/TreeControlSample.java4.6 KB
  • assets/snippets/list/ListPluginBasicSample.java4.5 KB
  • assets/snippets/list/ListPreOpenFilterSample.java2.4 KB
  • assets/snippets/message/MessageNotifySample.java3.3 KB
  • assets/snippets/operation/OpAddValidatorsSample.java4.2 KB
  • assets/snippets/package-info.java1002 B
  • assets/snippets/query/BaseDataQuerySample.java7.7 KB
  • assets/snippets/query/DataSetQueryStatSample.java4.9 KB
  • assets/snippets/task/ScheduleTaskSample.java2.9 KB
  • assets/StandardTreeListPluginTemplate.java4.5 KB
  • assets/TaskTemplate.java2.8 KB
  • assets/TreeListPluginTemplate.java5.0 KB
  • assets/WriteBackPlugInTemplate.java8.7 KB
  • CHANGELOG.md5.5 KB
  • LICENSE11.1 KB
  • manifest.json2.2 KB
  • mcp/mac注册示例(可选).png470.2 KB
  • mcp/mcp_bill_metadata_server.py3.9 KB
  • mcp/requirements.txt130 B
  • README.md11.2 KB
  • references/adv/attachment-api.md5.3 KB
  • references/adv/botp-convert.md4.8 KB
  • references/adv/dynamic-object.md5.7 KB
  • references/adv/entity-metadata.md5.9 KB
  • references/adv/flex-prop.md4.6 KB
  • references/adv/form-utils.md5.2 KB
  • references/adv/operate-chain.md6.9 KB
  • references/adv/plugin-base.md8.8 KB
  • references/adv/query-dataset.md7.3 KB
  • references/adv/request-context.md3.6 KB
  • references/adv/view-handler.md5.8 KB
  • references/base/plugin/plugin-bill.md2.7 KB
  • references/base/plugin/plugin-botp.md3.2 KB
  • references/base/plugin/plugin-form.md5.7 KB
  • references/base/plugin/plugin-import.md2.3 KB
  • references/base/plugin/plugin-list.md7.2 KB
  • references/base/plugin/plugin-openapi.md3.9 KB
  • references/base/plugin/plugin-operation.md5.3 KB
  • references/base/plugin/plugin-print.md2.0 KB
  • references/base/plugin/plugin-report-data.md2.0 KB
  • references/base/plugin/plugin-report-form.md3.3 KB
  • references/base/plugin/plugin-task.md2.0 KB
  • references/base/plugin/plugin-tree-list.md2.9 KB
  • references/base/plugin/plugin-workflow.md2.7 KB
  • references/base/plugin/plugin-writeback.md2.9 KB
  • references/base/sdk/sdk-algo.md3.1 KB
  • references/base/sdk/sdk-cache.md2.5 KB
  • references/base/sdk/sdk-dynamic-model-svc.md4.2 KB
  • references/base/sdk/sdk-dynamic-object.md2.9 KB
  • references/base/sdk/sdk-entity-model.md2.8 KB
  • references/base/sdk/sdk-exception.md3.0 KB
  • references/base/sdk/sdk-file.md2.7 KB
  • references/base/sdk/sdk-id.md2.0 KB
  • references/base/sdk/sdk-lock.md2.5 KB
  • references/base/sdk/sdk-log.md2.3 KB
  • references/base/sdk/sdk-network-control.md2.9 KB
  • references/base/sdk/sdk-orm-access.md2.8 KB
  • references/base/sdk/sdk-request-context.md2.5 KB
  • references/base/sdk/sdk-threadpool.md2.7 KB
  • references/base/sdk/sdk-tx.md2.6 KB
  • references/base/sdk/sdk-utils.md2.9 KB
  • rules/anti-patterns.md3.0 KB
  • rules/cheat-sheet.md4.7 KB
  • rules/coding-preferences.md3.3 KB
  • rules/constraints.md1.3 KB
  • rules/plugin-dev-flow.md3.4 KB
  • rules/post-lint.md1.9 KB
  • rules/workflow.md962 B
  • scripts/config_loader.py2.8 KB
  • scripts/cosmic-api-knowledge.py34.9 KB
  • scripts/cosmic-form-metadata.py21.3 KB
  • scripts/cosmic-post-lint.py8.6 KB
  • scripts/lint/base.py3.1 KB
  • scripts/lint/hal_check.py4.5 KB
  • scripts/lint/resource_check.py1.8 KB
  • scripts/lint/scene_check.py4.3 KB
  • scripts/lint/style_check.py3.0 KB
  • scripts/lint/verify_check.py1.3 KB
  • setup/cuslib/kd-cd-cosmic-commons.jar249.2 KB
  • setup/cuslib/kd-cd-cosmic-features.jar127.1 KB
  • setup/ok-cosmic-docs.db9.1 MB
  • setup/ok-cosmic.json214 B
  • setup/setup-mac.sh452 B
  • setup/setup-windows.bat1.2 KB
  • setup/setup.jar3.1 MB
  • WORKFLOW.html6.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

苍穹开发

默认按"封装优先,原生兜底"工作,避免在仓库已封装的场景里退回到 BOS 原生低层 API。

最短决策路径

  1. 先判断插件类型或能力类别(查下方决策矩阵)。
  2. 先读对应 references/*.md,确认事件边界与适用场景。
  3. 再读对应 assets/*.java 模板,沿用已有方法签名和骨架。小场景可直接用 assets/snippets/*.java。
  4. 字段不确定先查 cosmic-form-metadata.py,SDK 签名不确定先查 cosmic-api-knowledge.py。
  5. 只有"插件类型 + 事件方法 + 字段/签名"都确认后,才开始生成代码。
  6. 代码生成后,必须执行 cosmic-post-lint.py 自动校验;若存在 ERROR 级问题须立即修复并重新校验直到通过。

快速决策矩阵

需求关键词插件类型封装文档 (先读)原生文档 (兜底)模板文件
表单 UI / 字段联动 / 控件交互表单插件plugin-base.mdplugin-form.mdFormPluginTemplate.java
单据 UI / 审核提交按钮单据插件plugin-base.mdplugin-bill.mdBillPlugInTemplate.java
列表 / 多选操作 / 批量列表插件plugin-base.mdplugin-list.mdListPluginTemplate.java
左树右表(单据)单据树列表插件(列表)plugin-base.mdplugin-tree-list.mdTreeListPluginTemplate.java
左树右表(基础资料)基础资料树列表插件(列表)plugin-base.mdplugin-tree-list.mdStandardTreeListPluginTemplate.java
审核 / 保存 / 状态流转 / 校验操作插件operate-chain.mdplugin-operation.mdOpPluginTemplate.java
下推 / 选单 / 转换转换插件botp-convert.mdplugin-botp.mdConvertPlugInTemplate.java
反写 / 关联更新反写插件botp-convert.mdplugin-writeback.mdWriteBackPlugInTemplate.java
报表 / 数据分析报表插件—plugin-report-form.mdReportFormPluginTemplate.java
报表取数报表取数插件—plugin-report-data.mdReportListDataPluginTemplate.java
打印 / 套打打印插件—plugin-print.mdPrintPluginTemplate.java
OpenAPI / 外部集成OpenAPI 控制器—plugin-openapi.mdOpenApiControllerTemplate.java
后台任务 / 定时后台任务—plugin-task.mdTaskTemplate.java
工作流 / 审批流工作流插件—plugin-workflow.mdIWorkflowPluginTemplate.java
导入 / 批量导入导入插件—plugin-import.mdBatchImportPluginTemplate.java

能力封装路由(按需加载,只读相关的 1-2 个文档)

原生 SDK 兜底路由(仅在封装层不够用时)

子文件引用

以下文件提供详细规则,AI 应在需要时按需加载:

场景化代码片段 (snippets)

模板骨架给出完整插件结构,snippets 给出单个场景的最小可运行示例。遇到以下场景时,优先读对应 snippet 再写实现:

场景关键词snippet 文件
字段取值/赋值/getValue/setValueGetAndSetValueSample.java
分录行计算/汇总/金额联动EntryRowCalculateSample.java
确认框/二次确认/ConfirmCallBackConfirmDialogSample.java
操作前拦截确认/beforeDoOperationBeforeOperationConfirmSample.java
F7 过滤/基础资料弹窗过滤F7FilterSample.java
打开单据弹窗/showForm/ModalOpenBillModalSample.java
子页面回传数据/closedCallBackReturnParentDataSample.java
树形控件/TreeView/树节点TreeControlSample.java
列表插件基础/选中行/批量操作ListPluginBasicSample.java
列表预打开过滤/setFilterListPreOpenFilterSample.java
操作校验器/addValidatorsOpAddValidatorsSample.java
下推/选单/来源追踪/BotpUtilsBotpTracePushSample.java
查询/聚合/DataSet/统计DataSetQueryStatSample.java
基础资料查询/loadFromCacheBaseDataQuerySample.java
DynamicObject 操作/安全取值DynamicObjectOpsSample.java
附件上传/绑定/AttachmentUtilsAttachmentUploadBindSample.java
消息通知/邮件/MessageServiceMessageNotifySample.java
后台调度任务/定时任务ScheduleTaskSample.java

API 知识与元数据查询脚本

本 Skill 提供了两个核心 Python 脚本,用于查询苍穹 SDK API 和表单元数据。

A. 知识图谱查询脚本 (cosmic-api-knowledge.py)

用于模糊搜索类名、获取类方法签名、继承树与注释。

  • 用法: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py [options] <command> [args]
  • 常用命令:
    • search <query...>: 模糊搜索类名。支持多关键词,默认任一关键词命中即可返回;加 --all 表示全部关键词都要命中。
    • search-method <query...>: 全局搜索方法名。支持多关键词,默认任一关键词命中即可返回;加 --all 表示全部关键词都要命中。结果会优先把与查询词更接近的方法排在前面,并展示方法说明摘要。
    • detail <classname>: 获取指定全限定类名的详细信息。
      • 可配合 --method <keyword> 只看相关方法。
      • 可配合 --declared-only 只看当前类声明的方法,不展开父类。
      • 可配合 --compact 输出紧凑事实块,减少 token 消耗,适合继续交给 AI 生成代码。
  • 定向过滤能力:
    • --class-prefix <prefix>: 按包前缀或类名前缀过滤,可重复传入多个前缀。
    • --class-regex <regex>: 按类全限定名正则过滤。
    • --kind <helper|servicehelper|plugin|service|utils|runtime|entity|const|enum|controller>: 按常见类别快速过滤。
  • 配置: 通过 --config <path/to/ok-cosmic.json> 指定配置文件(优先匹配当前运行项目的根目录)。

推荐用法(比裸搜更稳)

  • 查某个领域的 helper: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json search Helper --class-prefix kd.bos.servicehelper --kind helper
  • 查某个包下的方法: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json search-method send email --class-prefix kd.bos.servicehelper.message
  • 查插件相关类: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json search plugin operation --kind plugin --all
  • 精确确认某个类有没有目标方法: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json detail "类全限定名" --method "关键词"
  • 精确确认方法是否由当前类自己声明: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json detail "类全限定名" --method "关键词" --declared-only
  • 当需要把方法事实继续喂给 AI 做后续生成时: python3 <SKILL_ROOT>/scripts/cosmic-api-knowledge.py --config ok-cosmic.json detail "类全限定名" --method "关键词" --compact

AI 调用约束

  • 允许直接传多个关键词,不要再把多个词错误地拆成多个"未知参数"。
  • 当第一次裸搜结果过宽时,第二次必须优先补 --class-prefix 或 --kind,不要连续无过滤地重复大范围搜索。
  • 搜 BOS/苍穹核心能力时,优先从这些包前缀收窄:
    • kd.bos.servicehelper
    • kd.bos.entity
    • kd.bos.form
    • kd.bd
    • kd.scm

定向搜索优先级

  1. 先定"领域":
    • BOTP / 下推 / 转换
    • BaseData / 基础资料
    • Message / 邮件 / 消息
    • Form / UI / List / Plugin
  2. 再定"包前缀":
    • BOS 通用服务优先 kd.bos.servicehelper
    • 插件事件优先 kd.bos.entity、kd.bos.form
    • 主数据优先 kd.bd
  3. 最后再用关键词:
    • 类搜索用 search
    • 方法搜索用 search-method
    • 类已知时直接 detail
  4. 需要确认 @Override 是否应写在当前类,而不是父类已有实现时:
    • 优先 detail "类全限定名" --method "关键词" --declared-only
  5. 需要把方法签名、参数说明、返回值作为低噪音事实块继续注入当前会话时:
    • 优先 detail "类全限定名" --method "关键词" --compact

B. 元数据查询脚本 (cosmic-form-metadata.py)

用于根据 formId 或 billName 获取单据元数据字段,支持字段模糊筛选。

  • 用法: python3 <SKILL_ROOT>/scripts/cosmic-form-metadata.py [options] get [args]
  • 参数:
    • --form-id: 表单英文标识。
    • --bill-name: 表单中文名称。
    • --fuzzy: 字段标识或名称的模糊匹配列表。[强制] 多个关键词必须用空格分隔(例如 --fuzzy qty price amount),支持正则表达式(如 --fuzzy "qty|price|amount"),严禁使用逗号分隔。
    • --show-detail: 详情模式开关。当存在模糊匹配结果时,显示枚举项映射 (extMap) 或基础资料引用类型 (refType)。
  • 配置: 通过 --config <path/to/ok-cosmic.json> 指定配置文件(优先匹配当前运行项目的根目录)。

AI 调用约束 (元数据查询)

  • 常规对齐: 仅确认字段标识时,不带 --show-detail。
  • 深度实现: 当需要编写 if 条件判断(针对枚举值)、手动赋值 或 基础资料关联查询 前,必须带上 --show-detail。
  • 严禁 SQL: 有了此参数后,严禁直接通过 SQL 查询 form_metadata_cache 表,必须通过脚本获取详情,以保证逻辑的一致性和可维护性。

常见实体/能力地图

下面这张"先找哪里"的地图,优先用于缩小搜索范围。

  • 操作插件 / 审核保存提交流程

    • 先看:kd.bos.entity.plugin.AbstractOperationServicePlugIn
    • 常看包:kd.bos.entity.plugin、kd.bos.entity.plugin.args
    • 常见帮助类:OpUtils、OperateChain、OperationServiceHelper
  • 表单 / 单据 / 列表 UI 插件

    • 先看:kd.bos.form.plugin.*
    • 常看包:kd.bos.form、kd.bos.form.control、kd.bos.list
    • 关键入口:this.getView()、this.getModel()
  • BOTP 下推 / 选单 / 转换

    • 先看:kd.cd.common.util.BotpUtils
    • 关键运行时参数:kd.bos.entity.botp.runtime.PushArgs、DrawArgs、ConvertOperationResult
    • 插件扩展:kd.bos.entity.botp.plugin.AbstractConvertPlugIn
    • 常见帮助类:kd.bos.servicehelper.botp.ConvertServiceHelper
  • 基础资料 / 管控策略 / 分配 / 个性化

    • 先看:kd.bos.servicehelper.basedata.BaseDataServiceHelper
    • 主数据扩展包优先:kd.bd.master.*
    • 若涉及分配/个性化:再看 AssignIndividuationHelper、相关 helper / mservice
  • 数据加载 / 保存 / 查询

    • 先看:kd.bos.servicehelper.BusinessDataServiceHelper
    • 查询类:kd.bos.servicehelper.QueryServiceHelper
    • 过滤条件:kd.bos.orm.query.QFilter
  • 消息 / 邮件 / 短信 / 企业微信

    • 先看:kd.bos.servicehelper.message.MessageServiceHelper
    • 邮件对象:kd.bos.message.api.EmailInfo
    • 其他消息对象通常也在 kd.bos.message.api
  • DynamicObject / 元数据 / 实体结构

    • 先看:kd.bos.dataentity.entity.DynamicObject
    • 元数据常见入口:EntityType、MainEntityType
    • 如果字段路径/主键不确定,优先回到元数据脚本和 entity-metadata.md
  • 附件 / 文件

    • 先看:AttachmentUtils
    • BOS 层常见类:AttachmentServiceHelper
  • 组织 / 权限 / 上下文

    • 先看:RequestContext、Permission 相关 service/helper
    • 碰到组织维度过滤时,优先确认 appId、使用组织、主业务组织分别来自哪里

代码生成后自动校验(Post-Lint)

[强制] 在生成或修改任何苍穹 Java 代码后,必须执行以下校验流程:

  1. 对生成的文件执行校验脚本:
    python3 <SKILL_ROOT>/scripts/cosmic-post-lint.py <生成的文件或目录> --fix-hint
    
  2. 若报告中存在 ERROR 级问题,必须立即修复后重新执行校验,直到 ERROR 为 0。
  3. 若仅存在 WARNING 级问题,应优先修复;若有合理理由可保留,须在代码注释中说明原因。
  4. INFO 级问题为建议项,按团队风格决定是否处理。

AI 调用约束 (Post-Lint)

  • 每次生成或修改 .java 文件后,自动触发 lint 校验,不需要用户手动请求。
  • 修复后必须再次执行脚本确认通过,形成"生成 → 校验 → 修复 → 复检"闭环。
  • 若单次修复后仍有 ERROR,最多重试 3 次;3 次后仍未通过,报告给用户并附带剩余问题清单。
  • 校验脚本不替代编译检查;通过 lint 后仍应确保代码可编译。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill