skill-family-engineering-kit 0.25.0 → 0.27.0
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 +40 -0
- package/CHANGELOG.zh-CN.md +40 -0
- package/README.md +55 -21
- package/README.zh-CN.md +94 -21
- package/data/capability-catalog/capability-catalog.en.json +51 -0
- package/data/capability-catalog/capability-catalog.json +26 -0
- package/data/capability-catalog/capability-catalog.zh-CN.json +51 -0
- package/data/hosts/codebuddy/host-descriptor.json +9 -1
- package/data/hosts/deepseek-harness/host-descriptor.json +9 -1
- package/data/hosts/kimi-code/host-descriptor.json +7 -0
- package/data/hosts/qoder/host-descriptor.json +9 -1
- package/data/hosts/workbuddy/host-descriptor.json +7 -0
- package/docs/agents/capability-catalog.en.json +51 -0
- package/docs/agents/capability-catalog.json +26 -0
- package/docs/agents/capability-catalog.zh-CN.json +51 -0
- package/docs/public/status/index.html +4 -4
- package/docs/search/search_index.json +1 -1
- package/package.json +3 -3
- package/release-notes/0.26.0.yaml +29 -0
- package/release-notes/0.27.0.yaml +21 -0
- package/src/adopt-plan.mjs +1 -1
- package/src/check.mjs +21 -35
- package/src/cli.mjs +62 -7
- package/src/errors.mjs +2 -0
- package/src/host-loading-check.mjs +179 -53
- package/src/host-loading-native.mjs +1937 -0
- package/src/index.mjs +9 -1
- package/src/register-existing.mjs +466 -0
- package/src/skeleton.mjs +2 -0
|
@@ -11,7 +11,15 @@
|
|
|
11
11
|
"authStrategy": "existing-user-state",
|
|
12
12
|
"credentialMutation": "host-managed"
|
|
13
13
|
},
|
|
14
|
-
"pathCategories": [
|
|
14
|
+
"pathCategories": [
|
|
15
|
+
{
|
|
16
|
+
"id": "qoder-project-skills",
|
|
17
|
+
"role": "skill-root",
|
|
18
|
+
"scope": "project",
|
|
19
|
+
"anchor": "project-root",
|
|
20
|
+
"relPath": ".qoder/skills"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
15
23
|
"probeCapabilities": [
|
|
16
24
|
"cli",
|
|
17
25
|
"version",
|
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
"scope": "project",
|
|
19
19
|
"anchor": "project-root",
|
|
20
20
|
"relPath": "skills"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "workbuddy-project-skills",
|
|
24
|
+
"role": "skill-root",
|
|
25
|
+
"scope": "project",
|
|
26
|
+
"anchor": "project-root",
|
|
27
|
+
"relPath": ".workbuddy/skills"
|
|
21
28
|
}
|
|
22
29
|
],
|
|
23
30
|
"probeCapabilities": [
|
|
@@ -1507,6 +1507,57 @@
|
|
|
1507
1507
|
"Foundation entry contract: check entries"
|
|
1508
1508
|
]
|
|
1509
1509
|
},
|
|
1510
|
+
{
|
|
1511
|
+
"id": "foundation.kit.register-existing",
|
|
1512
|
+
"intent": "Seed the three official closed-world documents for a nonempty project that already has a valid profile.json and does not yet have a legal registry",
|
|
1513
|
+
"useWhen": [
|
|
1514
|
+
"Need the only legal first write of .foundation/file-registry.json, skill-family.project-manifest.json, and skill-family.managed-file-lock.json into a nonempty root",
|
|
1515
|
+
"Need an official first-nonempty registration that is exclusive-create, idempotent on identical bytes, and refuse-with-zero-overwrite otherwise"
|
|
1516
|
+
],
|
|
1517
|
+
"doNotUseWhen": [
|
|
1518
|
+
"The target is empty (use scaffold)",
|
|
1519
|
+
"The three official documents already exist and a later handwritten file must be admitted (use check relock)",
|
|
1520
|
+
"Need a read-only inventory of an existing project (use adopt-plan)",
|
|
1521
|
+
"Need to overwrite drifted closed-world bytes"
|
|
1522
|
+
],
|
|
1523
|
+
"prerequisites": [
|
|
1524
|
+
"Caller supplies an absolute project working directory",
|
|
1525
|
+
"profile.json exists at the target root and is contract-valid, including profile.adoption.foundation_profile.id",
|
|
1526
|
+
"handwritten classification list is non-empty"
|
|
1527
|
+
],
|
|
1528
|
+
"inputs": [
|
|
1529
|
+
"Absolute project working directory root",
|
|
1530
|
+
"Non-empty handwritten globs or relative paths",
|
|
1531
|
+
"Optional engineering JSON, trackedToolLocks paths, and gitignore-style artifacts patterns"
|
|
1532
|
+
],
|
|
1533
|
+
"outputs": [
|
|
1534
|
+
"register-existing report (kind skill-family.register-existing-report)",
|
|
1535
|
+
"On first create: exclusive publication of the three closed-world documents; on identical bytes: idempotent success with zero write; otherwise refuse with zero overwrite"
|
|
1536
|
+
],
|
|
1537
|
+
"sideEffects": [
|
|
1538
|
+
"Writes at most the three closed-world documents; never overwrites mismatched existing bytes; does not scaffold, apply adopt-plan, or seed via relock"
|
|
1539
|
+
],
|
|
1540
|
+
"failureSemantics": [
|
|
1541
|
+
"Missing or invalid profile.json refuses",
|
|
1542
|
+
"Empty handwritten list refuses",
|
|
1543
|
+
"Class overlap among handwritten, artifacts, and trackedToolLocks refuses",
|
|
1544
|
+
"Any incomplete or drifted combination of the three documents refuses with zero overwrite"
|
|
1545
|
+
],
|
|
1546
|
+
"invariants": [
|
|
1547
|
+
"Adds no fifth top-level command; it runs as the check register-existing sub-action",
|
|
1548
|
+
"Relock never seeds; this sub-action is the only legal first write of the three documents into a nonempty root",
|
|
1549
|
+
"Scaffold still refuses nonempty directories; adopt-plan remains read-only"
|
|
1550
|
+
],
|
|
1551
|
+
"ownedByCaller": [
|
|
1552
|
+
"Choosing handwritten, artifacts, and trackedToolLocks classifications",
|
|
1553
|
+
"Remediation after a refuse-with-zero-overwrite result"
|
|
1554
|
+
],
|
|
1555
|
+
"routeElsewhere": [
|
|
1556
|
+
"Empty target: scaffold",
|
|
1557
|
+
"Existing legal registry plus new handwritten files: check relock",
|
|
1558
|
+
"Read-only nonempty inventory: adopt-plan"
|
|
1559
|
+
]
|
|
1560
|
+
},
|
|
1510
1561
|
{
|
|
1511
1562
|
"id": "foundation.kit.relock",
|
|
1512
1563
|
"intent": "Run the controlled relock transaction: register new handwritten files by default, or persistent tool-lock paths with explicit trackedToolLocks selection; update the registry and managed-file lock in the existing transaction without hashing tool-lock contents.",
|
|
@@ -996,6 +996,32 @@
|
|
|
996
996
|
"packages/skill-family-engineering-kit/test/cli.test.mjs"
|
|
997
997
|
]
|
|
998
998
|
},
|
|
999
|
+
{
|
|
1000
|
+
"id": "foundation.kit.register-existing",
|
|
1001
|
+
"package": "skill-family-engineering-kit",
|
|
1002
|
+
"layer": "engineering-kit",
|
|
1003
|
+
"since": "0.27.0",
|
|
1004
|
+
"stability": "candidate",
|
|
1005
|
+
"migration": "none",
|
|
1006
|
+
"promotionPolicy": "consumer-transparent",
|
|
1007
|
+
"adoptionScopes": ["engineering-kit"],
|
|
1008
|
+
"entrypoints": [
|
|
1009
|
+
"runRegisterExisting (packages/skill-family-engineering-kit/src/register-existing.mjs)",
|
|
1010
|
+
"registerExistingAction (packages/skill-family-engineering-kit/src/register-existing.mjs)",
|
|
1011
|
+
"REGISTER_EXISTING_REPORT_KIND (packages/skill-family-engineering-kit/src/register-existing.mjs)"
|
|
1012
|
+
],
|
|
1013
|
+
"sourceRefs": [
|
|
1014
|
+
"packages/skill-family-engineering-kit/src/register-existing.mjs",
|
|
1015
|
+
"packages/skill-family-engineering-kit/src/cli.mjs",
|
|
1016
|
+
"packages/skill-family-engineering-kit/src/index.mjs"
|
|
1017
|
+
],
|
|
1018
|
+
"positiveTestRefs": [
|
|
1019
|
+
"packages/skill-family-engineering-kit/test/register-existing.test.mjs"
|
|
1020
|
+
],
|
|
1021
|
+
"negativeTestRefs": [
|
|
1022
|
+
"packages/skill-family-engineering-kit/test/register-existing.test.mjs"
|
|
1023
|
+
]
|
|
1024
|
+
},
|
|
999
1025
|
{
|
|
1000
1026
|
"id": "foundation.kit.relock",
|
|
1001
1027
|
"package": "skill-family-engineering-kit",
|
|
@@ -1506,6 +1506,57 @@
|
|
|
1506
1506
|
"Foundation 入口契约:check entries"
|
|
1507
1507
|
]
|
|
1508
1508
|
},
|
|
1509
|
+
{
|
|
1510
|
+
"id": "foundation.kit.register-existing",
|
|
1511
|
+
"intent": "为已有有效 profile.json、尚未具备合法登记的非空工程,播种三份官方闭域文件",
|
|
1512
|
+
"useWhen": [
|
|
1513
|
+
"需要把 .foundation/file-registry.json、skill-family.project-manifest.json、skill-family.managed-file-lock.json 合法地首次写入非空根",
|
|
1514
|
+
"需要官方首次非空登记:三份皆无则排他创建,字节一致则幂等零写入,其余情况拒绝且零覆盖"
|
|
1515
|
+
],
|
|
1516
|
+
"doNotUseWhen": [
|
|
1517
|
+
"目标为空(走 scaffold)",
|
|
1518
|
+
"三份官方文件已存在、只需纳入后来的手写文件(走 check relock)",
|
|
1519
|
+
"只需只读盘点既有工程(走 adopt-plan)",
|
|
1520
|
+
"需要覆盖已漂移的闭域字节"
|
|
1521
|
+
],
|
|
1522
|
+
"prerequisites": [
|
|
1523
|
+
"调用方给出绝对项目工作目录",
|
|
1524
|
+
"目标根已有合同有效的 profile.json,且含 profile.adoption.foundation_profile.id",
|
|
1525
|
+
"手写分类清单非空"
|
|
1526
|
+
],
|
|
1527
|
+
"inputs": [
|
|
1528
|
+
"绝对项目工作目录 root",
|
|
1529
|
+
"非空手写 glob 或相对路径",
|
|
1530
|
+
"可选 engineering JSON、trackedToolLocks 路径,以及 gitignore 风格的 artifacts 模式"
|
|
1531
|
+
],
|
|
1532
|
+
"outputs": [
|
|
1533
|
+
"register-existing 报告(kind skill-family.register-existing-report)",
|
|
1534
|
+
"首次创建时排他写入三份闭域文件;字节一致时幂等成功且零写入;否则拒绝且零覆盖"
|
|
1535
|
+
],
|
|
1536
|
+
"sideEffects": [
|
|
1537
|
+
"最多写入三份闭域文件;从不覆盖不匹配的既有字节;不 scaffold、不 apply adopt-plan、不经 relock 播种"
|
|
1538
|
+
],
|
|
1539
|
+
"failureSemantics": [
|
|
1540
|
+
"缺少或无效的 profile.json 拒绝",
|
|
1541
|
+
"空手写清单拒绝",
|
|
1542
|
+
"handwritten、artifacts、trackedToolLocks 分类重叠拒绝",
|
|
1543
|
+
"三份文件任一不完整或字节漂移时拒绝且零覆盖"
|
|
1544
|
+
],
|
|
1545
|
+
"invariants": [
|
|
1546
|
+
"不新增第五个顶层命令,落在 check register-existing 子动作",
|
|
1547
|
+
"relock 不为缺锁工程播种;本子动作是非空根首次写入三份文件的唯一合法入口",
|
|
1548
|
+
"scaffold 仍拒绝非空目录;adopt-plan 仍只读"
|
|
1549
|
+
],
|
|
1550
|
+
"ownedByCaller": [
|
|
1551
|
+
"选择 handwritten、artifacts、trackedToolLocks 分类",
|
|
1552
|
+
"拒绝且零覆盖之后的整改"
|
|
1553
|
+
],
|
|
1554
|
+
"routeElsewhere": [
|
|
1555
|
+
"空目标:scaffold",
|
|
1556
|
+
"已有合法登记且需纳入新手写文件:check relock",
|
|
1557
|
+
"非空只读盘点:adopt-plan"
|
|
1558
|
+
]
|
|
1559
|
+
},
|
|
1509
1560
|
{
|
|
1510
1561
|
"id": "foundation.kit.relock",
|
|
1511
1562
|
"intent": "运行受控 relock 事务:默认登记新增手写文件;显式选择 trackedToolLocks 时登记持久工具锁路径,并在原事务中同步 registry 与受管文件锁。工具锁内容不纳入受管摘要。",
|
|
@@ -1814,24 +1814,24 @@
|
|
|
1814
1814
|
<tbody>
|
|
1815
1815
|
<tr>
|
|
1816
1816
|
<td><code>skill-family-contracts</code></td>
|
|
1817
|
-
<td>0.
|
|
1817
|
+
<td>0.27.0</td>
|
|
1818
1818
|
<td><a href="https://github.com/ifoohoo/skill-family-contracts">ifoohoo/skill-family-contracts</a></td>
|
|
1819
1819
|
</tr>
|
|
1820
1820
|
<tr>
|
|
1821
1821
|
<td><code>skill-family-harness-node</code></td>
|
|
1822
|
-
<td>0.
|
|
1822
|
+
<td>0.27.0</td>
|
|
1823
1823
|
<td><a href="https://github.com/ifoohoo/skill-family-harness-node">ifoohoo/skill-family-harness-node</a></td>
|
|
1824
1824
|
</tr>
|
|
1825
1825
|
<tr>
|
|
1826
1826
|
<td><code>skill-family-engineering-kit</code></td>
|
|
1827
|
-
<td>0.
|
|
1827
|
+
<td>0.27.0</td>
|
|
1828
1828
|
<td><a href="https://github.com/ifoohoo/skill-family-engineering-kit">ifoohoo/skill-family-engineering-kit</a></td>
|
|
1829
1829
|
</tr>
|
|
1830
1830
|
</tbody>
|
|
1831
1831
|
</table>
|
|
1832
1832
|
<h2 id="独立-Plugin">独立 Plugin<a class="headerlink" href="#独立-Plugin" title="Permanent link">¶</a></h2>
|
|
1833
1833
|
<ul>
|
|
1834
|
-
<li><code>foundation-adoption-review</code>:0.
|
|
1834
|
+
<li><code>foundation-adoption-review</code>:0.27.0,公开镜像 <a href="https://github.com/ifoohoo/foundation-adoption-review">ifoohoo/foundation-adoption-review</a></li>
|
|
1835
1835
|
<li><code>foundation-adoption-review</code>:只读采用诊断</li>
|
|
1836
1836
|
<li><code>foundation-engineering-check</code>:只读静态工程审阅与证明读取</li>
|
|
1837
1837
|
<li><code>foundation-initialize</code>:在明确授权下初始化目标工程,保留业务和人工判断</li>
|