clearai-dsh 0.1.7 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/README.md +89 -74
- package/README.zh-CN.md +86 -71
- package/lib/client.js +944 -69
- package/lib/domain-language.js +758 -0
- package/lib/fold.js +894 -12
- package/lib/host.js +112 -2
- package/package.json +14 -3
- package/presets/clearai/agent.cordis.yml +10 -3
- package/presets/clearai/plugins/clearai-kernel.js +550 -12
- package/presets/clearai/plugins/prompts.js +47 -0
- package/presets/clearai/preset.yml +3 -3
- package/presets/clearai/skills/clearai-loop/SKILL.md +16 -13
|
@@ -246,6 +246,53 @@ SOP 里的「确认 / 经确认才进入下一 workflow」要求的是一次**
|
|
|
246
246
|
- 普通工具错误:同回合返回 ok=false 与原因,可继续,自己纠。
|
|
247
247
|
- 效果不确定时**先观察**:越过派发边界后结局未知的操作,语义只有一条——先看当前事实,再谈重试。重试的安全前提是「知道上次到底做没做」,而这个前提在结局未知时恰恰不成立。
|
|
248
248
|
- 供应商失败被归一化成类型化事实并退避;终不可用时暂停,一句「继续」原地续跑。不可信输入不许升格为整个运行的死亡。`,
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: 'clearai/domain-language',
|
|
252
|
+
class: 'hard',
|
|
253
|
+
order: 425,
|
|
254
|
+
text: `# 领域语言(词汇 / 断言 / 图)
|
|
255
|
+
|
|
256
|
+
这一节讲**知识用什么语言写**。认识论循环管「凭什么信」,领域本体管「用什么语言说」——两层分开,不许互相代替。
|
|
257
|
+
|
|
258
|
+
## 进入知识模式后的自主操作顺序(不等用户提醒)
|
|
259
|
+
知识模式的卡里会带一行**相关已知**:当前主张文本命中的概念 / 谓词 / 可复用事实。按这个顺序走:
|
|
260
|
+
1. **先复用**:命中的词条直接用 id 引用,不要重复登记同义词;
|
|
261
|
+
2. **缺什么补什么**:要写断言但谓词不存在时,自主调用 \`RegisterTerm\` / \`RegisterPredicate\` 立最小的一组(每个都带依据);
|
|
262
|
+
3. **命题带形态**:核心假设在 \`SetGoal\` 里连 \`assertions\` 一起写;
|
|
263
|
+
4. **不够精确时才查**:\`QueryKnowledge\` 按概念 / 谓词 / 主体精确取——预检的摘要不够用时用它,不要拿一次空查询断言世上没有。
|
|
264
|
+
|
|
265
|
+
不要为只出现一次且不需要比较的表述造词——写进 claim 就够了。
|
|
266
|
+
|
|
267
|
+
## 什么时候值得先立词
|
|
268
|
+
- 同一件事你会反复写(某个炉次、某个速率、某个指标),而且**两条结论要能互相比对**时:先 \`RegisterTerm\` 立概念,再 \`RegisterPredicate\` 立关系(写清主词域、值域、是否单值)。
|
|
269
|
+
- 词条是**约定**,不是主张:它不需要证据等级,但**依据必填**——哪份材料、哪条事实、谁说的。
|
|
270
|
+
- 反过来:只在这一条结论里出现一次的说法,不必造词——写进 claim 就够了。
|
|
271
|
+
|
|
272
|
+
## 断言:登记时可省,升格时不可省
|
|
273
|
+
- \`SetGoal\` 的假设可以带 \`assertions\`(主词–谓词–宾语)。**提供即严校**:引用不存在的谓词或概念、宾语形态不合值域、同一事实里自相矛盾,一律在**落账之前**被拒。
|
|
274
|
+
- **登记时**不写断言放行(断言在那一刻还只是「你打算怎么验」)。但**要升格成事实的那几条必须有形态**:
|
|
275
|
+
结案时系统会把「已经验到门槛、却还没有断言」的命题逐条列出来挡下,在派独立评估者之前就挡——
|
|
276
|
+
这一档拦下来的话,补形态的正当路径是**先用 \`RegisterTerm\` / \`RegisterPredicate\` 立词,
|
|
277
|
+
再用 \`SetGoal\` 修订目标把这些命题连断言重列一遍**(主张原文一字不动就会用回原 id,验到哪一级接着算),
|
|
278
|
+
然后重新结案。别为了让门放行而编一个词:词汇是约定,它将长期约束这个项目怎么写结论。
|
|
279
|
+
确实不值得留下形态的结论,就如实 \`CloseGoal(outcome="abandoned")\`——缺口不许被伪装成 support。
|
|
280
|
+
- 值形态五种:\`statement\` / \`quantity\`(数值 + 单位) / \`formula\` / \`code\`(指向**工作区里真有的文件**,相对路径) / \`reference\`;关系谓词的宾语是另一个概念的 \`instance\`。
|
|
281
|
+
- 断言在**升格那一刻**随事实落地(\`fact/promoted\`),之后不回溯改写旧事实;**事实带着产出它的那条命题 id**(措辞改了也认得出)。
|
|
282
|
+
- 旧账本里那些没有断言的事实照旧可读,标「未结构化」——它们补不上断言,也不算你欠账。
|
|
283
|
+
|
|
284
|
+
## 冲突只暴露,不裁决
|
|
285
|
+
两条**未撤回**的已确认事实落在同一单值谓词、同一主体、而客体不同时,系统给出一对冲突读数。它**不撤回任何一侧、也不判断哪条为真**——处置走人门(\`retract_fact\` / \`keep_fact\`)。别把冲突读成「系统说这条错了」。
|
|
286
|
+
|
|
287
|
+
## 复用已知用 QueryKnowledge
|
|
288
|
+
按概念 / 谓词 / 主体取「已知」:它返回带断言的已升格事实(连同边界与等级)与还在流转的命题。**查不到 ≠ 不存在**——如实说查了什么条件,不要用一次空查询断言世上没有。
|
|
289
|
+
|
|
290
|
+
## 改词有两条路,别走错
|
|
291
|
+
- 展示信息(名字 / 释义 / 别名)→ \`ReviseTerm\` / \`RevisePredicate\`:版本 +1,旧值留着。
|
|
292
|
+
- 语义(含义 / 父概念 / 主词域 / 值域 / 单值性)→ **废止 + 注册新 id**:稳定 id 的含义不许在历史上悄悄改变。
|
|
293
|
+
- 废止是黏性终态,没有复活:记录留着,新断言不许再引用它,存量事实照旧可读。
|
|
294
|
+
|
|
295
|
+
货架在 \`clear/ontology/domain.md\`(概念 / 谓词 / 图 / 引用统计)——**它是读面,不是权威**;\`clear/ontology/\` 由系统所有,你不能直接写。`,
|
|
249
296
|
},
|
|
250
297
|
{
|
|
251
298
|
name: 'clearai/coding-standards',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
name: ClearAI
|
|
2
2
|
# 预设名册只有这两行元数据,而且**宿主不会替我们本地化**:它只给四个内置 id 做 i18n,
|
|
3
3
|
# 插件给的 name/description **一律原样显示**(见 @deepseek-ai/dsh-client-ui-agent-preset 的
|
|
4
|
-
# presetDisplayText())
|
|
5
|
-
# **一句中文 +
|
|
4
|
+
# presetDisplayText())。所以这里只能自己写死、两种语言并排 ——
|
|
5
|
+
# **一句中文 + 一句英文**,各只说一件事;长度压在卡片的 clamp 之内(约 2 行)。
|
|
6
6
|
#
|
|
7
7
|
# ⚠️ description **必须**是块标量(下面那个 `|-`)或者引号,不能写成普通标量:
|
|
8
8
|
# 里面有「冒号 + 空格」时普通标量会被 YAML 读成嵌套映射 —— 而名册对读失败的处理是
|
|
@@ -10,4 +10,4 @@ name: ClearAI
|
|
|
10
10
|
# 显示成目录名 + 「暂无描述」,宿主与我们两边都不报错。0.1.2–0.1.4 都带着这个 bug 发出去过;
|
|
11
11
|
# `verify-package` 里那条「preset.yml 必须真能解析出 name 与 description」就是为此立的门。
|
|
12
12
|
description: |-
|
|
13
|
-
|
|
13
|
+
利用认识论循环构建可信本体。Build a trustworthy ontology through the epistemic loop.
|
|
@@ -9,7 +9,22 @@ description: Use when working inside the ClearAI preset and you need the loop's
|
|
|
9
9
|
|
|
10
10
|
## 术语与状态
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
九个对象是:目标 → 计划 → 命题 → 验证 → 观测 → 评估 → 证据 → 事实 → 世界线(等级 L0–L4 只决定**谁可以写裁决**与是否需要人放行)。状态不存,全部由台账现算;本技能描述的规则就是当前契约的全部。
|
|
13
|
+
|
|
14
|
+
## 知识模式的启动协议(不等用户提醒)
|
|
15
|
+
|
|
16
|
+
目标一立、命题一登记,系统就把**知识预检**送进运行态卡:当前主张文本命中的概念 / 谓词 / 可复用事实。按这个顺序走:
|
|
17
|
+
|
|
18
|
+
| 情况 | 动作 |
|
|
19
|
+
|---|---|
|
|
20
|
+
| 命中的词条能表达 | 直接用 id 引用,不重复登记 |
|
|
21
|
+
| 要写断言但谓词不存在 | `RegisterTerm` / `RegisterPredicate` 立最小一组(每个带依据) |
|
|
22
|
+
| 核心假设准备登记 | `SetGoal` 里连 `assertions` 一起写 |
|
|
23
|
+
| 预检摘要不够精确 | `QueryKnowledge` 按概念 / 谓词 / 主体精确取 |
|
|
24
|
+
| 只出现一次且不需要比较 | 保留 claim,不造词 |
|
|
25
|
+
| 单步、一次性、无复用 | 不建本体(普通任务连知识模式都不进) |
|
|
26
|
+
|
|
27
|
+
**别为了让门放行而编词**:词汇是约定,它将长期约束这个项目怎么写结论。确实不值得留下形态的结论,如实 `CloseGoal(outcome="abandoned")`。
|
|
13
28
|
|
|
14
29
|
## 一句话
|
|
15
30
|
|
|
@@ -75,15 +90,3 @@ description: Use when working inside the ClearAI preset and you need the loop's
|
|
|
75
90
|
- `inconclusive` 是诚实的答案。一次如实推翻假设的步骤照样可以通过验收——不要为了让步骤通过而写 support。
|
|
76
91
|
- 重评产生**新证据**,旧证据不改、不删。
|
|
77
92
|
- 结算单记四列:意图(判据)/ 事实(坐标)/ 评估者 / 差额(依据或缺口)。
|
|
78
|
-
|
|
79
|
-
## 失败与不确定
|
|
80
|
-
|
|
81
|
-
- 普通工具错误:同回合返回 `ok=false` 与原因,可继续,自己纠。
|
|
82
|
-
- **效果不确定时先观察**:越过派发边界后结局未知的操作,语义只有一条——先看当前事实,再谈重试。重试的安全前提是「知道上次到底做没做」,这个前提在结局未知时恰恰不成立。
|
|
83
|
-
- 供应商失败被归一化成类型化事实并退避,不会把一次外部抖动升格成整个运行的死亡。
|
|
84
|
-
|
|
85
|
-
## 上下文纪律(为什么提示词里没有时间)
|
|
86
|
-
|
|
87
|
-
- 系统提示词**刻意不含当前时间**:它排在稳定区,任何逐调用变化的字节都会让其后的大部分提示词与整段历史失去前缀缓存。时间由每回合的**运行态卡**承载,精确到分钟;真需要精确时间就 `bash date`。
|
|
88
|
-
- 运行态卡只在状态变化时注入,内容是系统算出来的事实,不是你的自述。
|
|
89
|
-
- 读文件带 `limit/offset`;命中过多就缩小范围。不要把整份大文件灌进上下文。
|