dsh-standards 0.0.2 → 1.0.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.
Files changed (598) hide show
  1. package/40-checker/.github/workflows/plugin-verify.yml +70 -0
  2. package/40-checker/README.md +251 -0
  3. package/40-checker/bin/dsh-levels.mjs +15 -0
  4. package/40-checker/bin/dsh-plugin-verify.mjs +8 -0
  5. package/40-checker/fixtures/bad/index.mjs +12 -0
  6. package/40-checker/fixtures/bad/package.json +15 -0
  7. package/40-checker/fixtures/bad-manifest/index.js +1 -0
  8. package/40-checker/fixtures/bad-manifest/package.json +5 -0
  9. package/40-checker/fixtures/bundle/cordis.patch.yml +3 -0
  10. package/40-checker/fixtures/bundle/package.json +15 -0
  11. package/40-checker/fixtures/bundle/server.mjs +7 -0
  12. package/40-checker/fixtures/bundle-v0/cordis.patch.yml +3 -0
  13. package/40-checker/fixtures/bundle-v0/package.json +21 -0
  14. package/40-checker/fixtures/bundle-v0/server.mjs +7 -0
  15. package/40-checker/fixtures/client-missing/client.js +1 -0
  16. package/40-checker/fixtures/client-missing/index.js +1 -0
  17. package/40-checker/fixtures/client-missing/package.json +6 -0
  18. package/40-checker/fixtures/flow-config/index.js +9 -0
  19. package/40-checker/fixtures/flow-config/package.json +10 -0
  20. package/40-checker/fixtures/fs-write/index.mjs +7 -0
  21. package/40-checker/fixtures/fs-write/package.json +10 -0
  22. package/40-checker/fixtures/good/index.mjs +10 -0
  23. package/40-checker/fixtures/good/package.json +19 -0
  24. package/40-checker/fixtures/hang/index.mjs +5 -0
  25. package/40-checker/fixtures/hang/package.json +10 -0
  26. package/40-checker/fixtures/known-answer/expected.json +18 -0
  27. package/40-checker/fixtures/market-index-real.json +18 -0
  28. package/40-checker/fixtures/market-index.json +18 -0
  29. package/40-checker/fixtures/negative/bad-entry/package.json +1 -0
  30. package/40-checker/fixtures/negative/no-entry/package.json +1 -0
  31. package/40-checker/fixtures/negative/no-patch/package.json +1 -0
  32. package/40-checker/fixtures/negative/root-missing/cordis.patch.yml +2 -0
  33. package/40-checker/fixtures/negative/root-missing/package.json +1 -0
  34. package/40-checker/fixtures/negative/workspace/package.json +1 -0
  35. package/40-checker/package.json +22 -0
  36. package/40-checker/results/boost/REPORT.md +304 -0
  37. package/40-checker/results/boost/lev12458.json +1747 -0
  38. package/40-checker/results/client/README.md +16 -0
  39. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.json +381 -0
  40. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.runtime.json +34 -0
  41. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.json +361 -0
  42. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.runtime.json +34 -0
  43. package/40-checker/results/entry/18/README.md +24 -0
  44. package/40-checker/results/entry/18/RUNTIME.md +18 -0
  45. package/40-checker/results/entry/18/SeaOf0__dsh-redteam-model.json +391 -0
  46. package/40-checker/results/entry/18/YuJunZhiXue__dsh-purge.json +432 -0
  47. package/40-checker/results/entry/18/ci-diet.json +365 -0
  48. package/40-checker/results/entry/18/ci-diet.runtime-attempt.json +38 -0
  49. package/40-checker/results/entry/18/daily-log.json +357 -0
  50. package/40-checker/results/entry/18/daily-log.runtime.json +519 -0
  51. package/40-checker/results/entry/18/fullbase/ATTRIBUTION.md +29 -0
  52. package/40-checker/results/entry/18/fullbase/DDDMUC__dsh-free-search.json +99 -0
  53. package/40-checker/results/entry/18/fullbase/Ebony-Vinyl__dsh-our-free-model.json +95 -0
  54. package/40-checker/results/entry/18/fullbase/REPORT.md +261 -0
  55. package/40-checker/results/entry/18/fullbase/SeaOf0__dsh-redteam-model.json +144 -0
  56. package/40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json +106 -0
  57. package/40-checker/results/entry/18/fullbase/ci-diet.json +99 -0
  58. package/40-checker/results/entry/18/fullbase/daily-log.json +94 -0
  59. package/40-checker/results/entry/18/fullbase/howmp__dsh-pentest.json +104 -0
  60. package/40-checker/results/entry/18/fullbase/kingcharleslzy-ai__dsh-purge.json +143 -0
  61. package/40-checker/results/entry/18/fullbase/liguobao__ds-harness-remote.json +134 -0
  62. package/40-checker/results/entry/18/fullbase/mmparko__dsh-purge.json +138 -0
  63. package/40-checker/results/entry/18/fullbase/project-memory.json +108 -0
  64. package/40-checker/results/entry/18/fullbase/qiushi.json +94 -0
  65. package/40-checker/results/entry/18/fullbase/shaobeichen__dsh-pocket.json +94 -0
  66. package/40-checker/results/entry/18/fullbase/status-rotator.json +94 -0
  67. package/40-checker/results/entry/18/fullbase/summary.json +297 -0
  68. package/40-checker/results/entry/18/fullbase/telemetry.json +94 -0
  69. package/40-checker/results/entry/18/fullbase/ui-auth.json +94 -0
  70. package/40-checker/results/entry/18/fullbase/verification.json +94 -0
  71. package/40-checker/results/entry/18/fullbase/ysr666__dsh-vision-router.json +106 -0
  72. package/40-checker/results/entry/18/howmp__dsh-pentest.json +361 -0
  73. package/40-checker/results/entry/18/kingcharleslzy-ai__dsh-purge.json +411 -0
  74. package/40-checker/results/entry/18/liguobao__ds-harness-remote.json +379 -0
  75. package/40-checker/results/entry/18/mmparko__dsh-purge.json +441 -0
  76. package/40-checker/results/entry/18/project-memory.json +361 -0
  77. package/40-checker/results/entry/18/project-memory.runtime.json +519 -0
  78. package/40-checker/results/entry/18/qiushi.json +353 -0
  79. package/40-checker/results/entry/18/qiushi.runtime.json +519 -0
  80. package/40-checker/results/entry/18/realweb/REPORT.md +73 -0
  81. package/40-checker/results/entry/18/realweb/SeaOf0__dsh-redteam-model.json +104 -0
  82. package/40-checker/results/entry/18/realweb/YuJunZhiXue__dsh-purge.json +64 -0
  83. package/40-checker/results/entry/18/realweb/howmp__dsh-pentest.json +65 -0
  84. package/40-checker/results/entry/18/realweb/kingcharleslzy-ai__dsh-purge.json +75 -0
  85. package/40-checker/results/entry/18/realweb/mmparko__dsh-purge.json +70 -0
  86. package/40-checker/results/entry/18/realweb/shaobeichen__dsh-pocket.json +56 -0
  87. package/40-checker/results/entry/18/realweb/summary.json +196 -0
  88. package/40-checker/results/entry/18/realweb/ui-auth.json +56 -0
  89. package/40-checker/results/entry/18/realweb/ysr666__dsh-vision-router.json +61 -0
  90. package/40-checker/results/entry/18/richbase/REPORT.md +70 -0
  91. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.json +61 -0
  92. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.log +38 -0
  93. package/40-checker/results/entry/18/shaobeichen__dsh-pocket.json +363 -0
  94. package/40-checker/results/entry/18/status-rotator.json +362 -0
  95. package/40-checker/results/entry/18/status-rotator.runtime.json +519 -0
  96. package/40-checker/results/entry/18/summary.json +266 -0
  97. package/40-checker/results/entry/18/targetonly/DDDMUC__dsh-free-search.json +34 -0
  98. package/40-checker/results/entry/18/targetonly/Ebony-Vinyl__dsh-our-free-model.json +34 -0
  99. package/40-checker/results/entry/18/targetonly/SeaOf0__dsh-redteam-model.json +84 -0
  100. package/40-checker/results/entry/18/targetonly/YuJunZhiXue__dsh-purge.json +52 -0
  101. package/40-checker/results/entry/18/targetonly/ci-diet.json +34 -0
  102. package/40-checker/results/entry/18/targetonly/daily-log.json +34 -0
  103. package/40-checker/results/entry/18/targetonly/howmp__dsh-pentest.json +46 -0
  104. package/40-checker/results/entry/18/targetonly/kingcharleslzy-ai__dsh-purge.json +61 -0
  105. package/40-checker/results/entry/18/targetonly/liguobao__ds-harness-remote.json +39 -0
  106. package/40-checker/results/entry/18/targetonly/mmparko__dsh-purge.json +57 -0
  107. package/40-checker/results/entry/18/targetonly/project-memory.json +34 -0
  108. package/40-checker/results/entry/18/targetonly/qiushi.json +34 -0
  109. package/40-checker/results/entry/18/targetonly/shaobeichen__dsh-pocket.json +34 -0
  110. package/40-checker/results/entry/18/targetonly/status-rotator.json +34 -0
  111. package/40-checker/results/entry/18/targetonly/summary.json +133 -0
  112. package/40-checker/results/entry/18/targetonly/telemetry.json +34 -0
  113. package/40-checker/results/entry/18/targetonly/ui-auth.json +34 -0
  114. package/40-checker/results/entry/18/targetonly/verification.json +34 -0
  115. package/40-checker/results/entry/18/targetonly/ysr666__dsh-vision-router.json +43 -0
  116. package/40-checker/results/entry/18/telemetry.json +349 -0
  117. package/40-checker/results/entry/18/ui-auth.json +369 -0
  118. package/40-checker/results/entry/18/verification.json +358 -0
  119. package/40-checker/results/entry/18/ysr666__dsh-vision-router.json +409 -0
  120. package/40-checker/results/fixtures/bad.json +347 -0
  121. package/40-checker/results/fixtures/bundle.json +378 -0
  122. package/40-checker/results/fixtures/good-listing.json +382 -0
  123. package/40-checker/results/fixtures/good-static.json +322 -0
  124. package/40-checker/results/fixtures/good.json +375 -0
  125. package/40-checker/results/fixtures/good.sarif +274 -0
  126. package/40-checker/results/flow/README.md +19 -0
  127. package/40-checker/results/flow/j3-j7-fixture.json +51 -0
  128. package/40-checker/results/flow/j5-j8-client-missing.json +45 -0
  129. package/40-checker/results/flow/j5-j8-good.json +45 -0
  130. package/40-checker/results/flow/journey-fixture-bundle.json +90 -0
  131. package/40-checker/results/flow/journey-fixture-j1-j2-j4-j6.json +107 -0
  132. package/40-checker/results/flow/real/DDDMUC__dsh-free-search.json +297 -0
  133. package/40-checker/results/flow/real/REPORT.md +335 -0
  134. package/40-checker/results/flow/real/YuJunZhiXue__dsh-purge.json +317 -0
  135. package/40-checker/results/flow/real/ci-diet.json +351 -0
  136. package/40-checker/results/flow/real/daily-log.json +286 -0
  137. package/40-checker/results/flow/real/index.json +325 -0
  138. package/40-checker/results/flow/real/project-memory.json +290 -0
  139. package/40-checker/results/flow/real/qiushi.json +277 -0
  140. package/40-checker/results/flow/real/status-rotator.json +275 -0
  141. package/40-checker/results/flow/real/telemetry.json +178 -0
  142. package/40-checker/results/flow/real/ui-auth.json +288 -0
  143. package/40-checker/results/flow/real/verification.json +265 -0
  144. package/40-checker/results/governance/co-maintainer-packet.md +85 -0
  145. package/40-checker/results/l1/ci-diet.json +406 -0
  146. package/40-checker/results/l1/npm-dsh-telemetry-redactor-0.1.0.json +390 -0
  147. package/40-checker/results/l1/npm-dsh-verification-receipt-0.1.0.json +406 -0
  148. package/40-checker/results/l1/npm-qiushi-dsh-evidence-audit-0.1.0.json +394 -0
  149. package/40-checker/results/l1/npm-zzerx-dsh-plugin-daily-log-0.4.3.json +405 -0
  150. package/40-checker/results/l1/project-memory.json +402 -0
  151. package/40-checker/results/l1/source-DDDMUC__dsh-free-search.json +422 -0
  152. package/40-checker/results/l1/source-Ebony-Vinyl__dsh-our-free-model.json +421 -0
  153. package/40-checker/results/l1/source-SeaOf0__dsh-redteam-model.json +432 -0
  154. package/40-checker/results/l1/source-YuJunZhiXue__dsh-purge.json +473 -0
  155. package/40-checker/results/l1/source-howmp__dsh-pentest.json +402 -0
  156. package/40-checker/results/l1/source-kingcharleslzy-ai__dsh-purge.json +452 -0
  157. package/40-checker/results/l1/source-liguobao__ds-harness-remote.json +420 -0
  158. package/40-checker/results/l1/source-mmparko__dsh-purge.json +482 -0
  159. package/40-checker/results/l1/source-shaobeichen__dsh-pocket.json +404 -0
  160. package/40-checker/results/l1/source-ysr666__dsh-vision-router.json +384 -0
  161. package/40-checker/results/l1/status-rotator.json +403 -0
  162. package/40-checker/results/l1/ui-auth.json +429 -0
  163. package/40-checker/results/l1/ysr666__dsh-vision-router.published.json +384 -0
  164. package/40-checker/results/lev3/REPORT.md +342 -0
  165. package/40-checker/results/lev3/lev3.json +4835 -0
  166. package/40-checker/results/lev6/REPORT.md +460 -0
  167. package/40-checker/results/lev6/capture-sample.json +241 -0
  168. package/40-checker/results/lev6/capture.jsonl +4 -0
  169. package/40-checker/results/lev6/lev6.json +245 -0
  170. package/40-checker/results/lev6/replication-r1.json +245 -0
  171. package/40-checker/results/levels/README.md +16 -0
  172. package/40-checker/results/levels/dsh-plugin-doctor.json +141 -0
  173. package/40-checker/results/levels/dsh-plugin-guide.json +136 -0
  174. package/40-checker/results/m1/dsh-ci-diet-0.5.2.json +352 -0
  175. package/40-checker/results/m1/dsh-status-rotator-0.38.0.json +349 -0
  176. package/40-checker/results/m1/dsh-telemetry-redactor-0.1.0.json +336 -0
  177. package/40-checker/results/m1/dsh-ui-auth-0.7.1.json +356 -0
  178. package/40-checker/results/m1/dsh-verification-receipt-0.1.0.json +344 -0
  179. package/40-checker/results/m1/index-level.json +13 -0
  180. package/40-checker/results/m1/levels.json +72100 -0
  181. package/40-checker/results/m1/qiushi-dsh-evidence-audit-0.1.0.json +339 -0
  182. package/40-checker/results/m1/yolk_vat-y-dsh-project-memory-0.6.7.json +348 -0
  183. package/40-checker/results/m1/zzerx-dsh-plugin-daily-log-0.4.3.json +344 -0
  184. package/40-checker/results/m2/dsh-ci-diet.json +421 -0
  185. package/40-checker/results/m2/dsh-ci-diet.unshare-landlock.json +424 -0
  186. package/40-checker/results/m2/dsh-ci-diet.unshare.json +423 -0
  187. package/40-checker/results/m2/fixture-bundle.image.json +404 -0
  188. package/40-checker/results/m2/fixture-bundle.json +392 -0
  189. package/40-checker/results/m2/fixture-bundle.landlock.json +396 -0
  190. package/40-checker/results/m2/fixture-bundle.unshare.json +395 -0
  191. package/40-checker/results/m2/fs-write.json +338 -0
  192. package/40-checker/results/m2/hang.json +31 -0
  193. package/40-checker/results/m2/hang.unshare-landlock.json +34 -0
  194. package/40-checker/results/m2/hang.unshare.json +33 -0
  195. package/40-checker/results/m2/project-memory.json +417 -0
  196. package/40-checker/results/m2/status-rotator.json +418 -0
  197. package/40-checker/results/m2/ui-auth.json +444 -0
  198. package/40-checker/results/negative/bad-entry.json +345 -0
  199. package/40-checker/results/negative/no-entry.json +345 -0
  200. package/40-checker/results/negative/no-patch.json +344 -0
  201. package/40-checker/results/negative/root-missing.json +344 -0
  202. package/40-checker/results/negative/root-missing.runtime.json +30 -0
  203. package/40-checker/results/negative/summary.json +51 -0
  204. package/40-checker/results/negative/workspace.json +344 -0
  205. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.json +334 -0
  206. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.overlay.json +335 -0
  207. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.json +315 -0
  208. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.overlay.json +316 -0
  209. package/40-checker/results/patched/mmparko__dsh-purge.json +357 -0
  210. package/40-checker/results/patched/mmparko__dsh-purge.overlay.json +358 -0
  211. package/40-checker/results/patched/shaobeichen__dsh-pocket.json +315 -0
  212. package/40-checker/results/patched/shaobeichen__dsh-pocket.overlay.json +316 -0
  213. package/40-checker/results/real/DDDMUC__dsh-free-search.json +344 -0
  214. package/40-checker/results/real/Ebony-Vinyl__dsh-our-free-model.json +343 -0
  215. package/40-checker/results/real/SeaOf0__dsh-redteam-model.json +354 -0
  216. package/40-checker/results/real/YuJunZhiXue__dsh-purge.json +395 -0
  217. package/40-checker/results/real/howmp__dsh-pentest.json +324 -0
  218. package/40-checker/results/real/kingcharleslzy-ai__dsh-purge.json +374 -0
  219. package/40-checker/results/real/liguobao__ds-harness-remote.json +342 -0
  220. package/40-checker/results/real/mmparko__dsh-purge.json +404 -0
  221. package/40-checker/results/real/shaobeichen__dsh-pocket.json +326 -0
  222. package/40-checker/results/real/ysr666__dsh-vision-router.json +372 -0
  223. package/40-checker/results/real/ysr666__dsh-vision-router.listing.json +378 -0
  224. package/40-checker/results/round-robin/compare.json +52 -0
  225. package/40-checker/results/round-robin/runner-a.json +9 -0
  226. package/40-checker/results/round-robin/runner-b.json +9 -0
  227. package/40-checker/results/sample20/123dbl__dsh-side-session.json +344 -0
  228. package/40-checker/results/sample20/173787247__dsh-wsl-dns.json +360 -0
  229. package/40-checker/results/sample20/863683348__dsh-insight.json +375 -0
  230. package/40-checker/results/sample20/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
  231. package/40-checker/results/sample20/Jamailar__beav-deepseek-harness.json +341 -0
  232. package/40-checker/results/sample20/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
  233. package/40-checker/results/sample20/NEAZ71eve__dsh-tool-github.json +384 -0
  234. package/40-checker/results/sample20/README.md +3 -0
  235. package/40-checker/results/sample20/RINGOLINK__dsh-desktop-shell.json +352 -0
  236. package/40-checker/results/sample20/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
  237. package/40-checker/results/sample20/agent-mobile__dsh-mobile-gateway.json +353 -0
  238. package/40-checker/results/sample20/fangqiing__dsh-knowledge-lite.json +359 -0
  239. package/40-checker/results/sample20/fzy0517__deepseek-harness-session-cleaner.json +344 -0
  240. package/40-checker/results/sample20/gjy1992__dsh-diagram.json +350 -0
  241. package/40-checker/results/sample20/mrme000m__dsh-prime-orchestrator.json +414 -0
  242. package/40-checker/results/sample20/redstonedust__dsh-solidworks-copilot.json +362 -0
  243. package/40-checker/results/sample20/summary.json +234 -0
  244. package/40-checker/results/sample20/w2112515__dsh-remote-host.json +344 -0
  245. package/40-checker/results/sample20/wkfedor__deepseek-harness-voice-input.json +350 -0
  246. package/40-checker/results/sample20/xfgil__dsh-hot-reloader.json +344 -0
  247. package/40-checker/results/sample20/yizhiyizhi0128__dsh-peak-scheduler.json +360 -0
  248. package/40-checker/results/sample20-ci/123dbl__dsh-side-session.json +344 -0
  249. package/40-checker/results/sample20-ci/173787247__dsh-wsl-dns.json +360 -0
  250. package/40-checker/results/sample20-ci/863683348__dsh-insight.json +375 -0
  251. package/40-checker/results/sample20-ci/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
  252. package/40-checker/results/sample20-ci/Jamailar__beav-deepseek-harness.json +367 -0
  253. package/40-checker/results/sample20-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
  254. package/40-checker/results/sample20-ci/NEAZ71eve__dsh-tool-github.json +392 -0
  255. package/40-checker/results/sample20-ci/README.md +5 -0
  256. package/40-checker/results/sample20-ci/RINGOLINK__dsh-desktop-shell.json +361 -0
  257. package/40-checker/results/sample20-ci/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
  258. package/40-checker/results/sample20-ci/agent-mobile__dsh-mobile-gateway.json +384 -0
  259. package/40-checker/results/sample20-ci/fangqiing__dsh-knowledge-lite.json +360 -0
  260. package/40-checker/results/sample20-ci/fzy0517__deepseek-harness-session-cleaner.json +354 -0
  261. package/40-checker/results/sample20-ci/gjy1992__dsh-diagram.json +381 -0
  262. package/40-checker/results/sample20-ci/mrme000m__dsh-prime-orchestrator.json +452 -0
  263. package/40-checker/results/sample20-ci/redstonedust__dsh-solidworks-copilot.json +371 -0
  264. package/40-checker/results/sample20-ci/summary.json +195 -0
  265. package/40-checker/results/sample20-ci/w2112515__dsh-remote-host.json +399 -0
  266. package/40-checker/results/sample20-ci/wkfedor__deepseek-harness-voice-input.json +358 -0
  267. package/40-checker/results/sample20-ci/xfgil__dsh-hot-reloader.json +344 -0
  268. package/40-checker/results/sample20-ci/yizhiyizhi0128__dsh-peak-scheduler.json +370 -0
  269. package/40-checker/results/sample20-ci/zed1902209846-dotcom__DPwhale-plugin.json +231 -0
  270. package/40-checker/results/sample60/123dbl__dsh-side-session.json +344 -0
  271. package/40-checker/results/sample60/173787247__dsh-wsl-dns.json +360 -0
  272. package/40-checker/results/sample60/863683348__dsh-insight.json +375 -0
  273. package/40-checker/results/sample60/Anionex__dsh-turn-rewind.json +349 -0
  274. package/40-checker/results/sample60/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
  275. package/40-checker/results/sample60/Ebony-Vinyl__EAC-Pack.json +352 -0
  276. package/40-checker/results/sample60/EricWang1358__dsh-web-studyhub.json +376 -0
  277. package/40-checker/results/sample60/GanyuanRan__Aegis.json +349 -0
  278. package/40-checker/results/sample60/HiSeax__dsh-codely.json +358 -0
  279. package/40-checker/results/sample60/Jamailar__beav-deepseek-harness.json +341 -0
  280. package/40-checker/results/sample60/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
  281. package/40-checker/results/sample60/MichengAI__dsh-archive-manager.json +357 -0
  282. package/40-checker/results/sample60/MichengAI__dsh-im-connect.json +347 -0
  283. package/40-checker/results/sample60/MindLab-Research__dsh-generative-ui.json +350 -0
  284. package/40-checker/results/sample60/NEAZ71eve__dsh-tool-github.json +384 -0
  285. package/40-checker/results/sample60/README.md +7 -0
  286. package/40-checker/results/sample60/RINGOLINK__dsh-desktop-shell.json +352 -0
  287. package/40-checker/results/sample60/SeanTolstoyevski__dsh-code-review.json +352 -0
  288. package/40-checker/results/sample60/Tasihi89__dsh-talk-map.json +344 -0
  289. package/40-checker/results/sample60/Tyan66666__billion-context-dsh.json +469 -0
  290. package/40-checker/results/sample60/V1ki__dsh-plugin-subscriptions.json +350 -0
  291. package/40-checker/results/sample60/Yu-tao-Li__dsh-computer-use-win.json +341 -0
  292. package/40-checker/results/sample60/ZSeven-W__dsh-ios.json +344 -0
  293. package/40-checker/results/sample60/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
  294. package/40-checker/results/sample60/agent-mobile__dsh-mobile-gateway.json +353 -0
  295. package/40-checker/results/sample60/c3cvld7aag__fujiang-dsh.json +361 -0
  296. package/40-checker/results/sample60/cxzrdxy__dsh-file-explorer.json +389 -0
  297. package/40-checker/results/sample60/dhicoc__dsh-reverse-skill.json +341 -0
  298. package/40-checker/results/sample60/fangqiing__dsh-knowledge-lite.json +359 -0
  299. package/40-checker/results/sample60/fwerkor__local-shell-mcp.json +369 -0
  300. package/40-checker/results/sample60/fzy0517__deepseek-harness-session-cleaner.json +344 -0
  301. package/40-checker/results/sample60/gjy1992__dsh-diagram.json +350 -0
  302. package/40-checker/results/sample60/howmp__dsh-pentest.json +341 -0
  303. package/40-checker/results/sample60/linhay__harmony-next.skills.json +344 -0
  304. package/40-checker/results/sample60/liustack__modsearch.json +371 -0
  305. package/40-checker/results/sample60/mmparko__dsh-purge.json +372 -0
  306. package/40-checker/results/sample60/mrme000m__dsh-prime-orchestrator.json +414 -0
  307. package/40-checker/results/sample60/omdsh-dev__dsh_workflow.json +439 -0
  308. package/40-checker/results/sample60/redstonedust__dsh-solidworks-copilot.json +362 -0
  309. package/40-checker/results/sample60/seriousz158__dsh-memory.json +350 -0
  310. package/40-checker/results/sample60/shanliuling__dsh-image-gen.json +353 -0
  311. package/40-checker/results/sample60/shanliuling__skills-link.json +344 -0
  312. package/40-checker/results/sample60/shengsheng90__DSH-taskboard.json +341 -0
  313. package/40-checker/results/sample60/sjh9714__dsh-win32.json +374 -0
  314. package/40-checker/results/sample60/skymecode__deepseek-harness-for-vscode.json +351 -0
  315. package/40-checker/results/sample60/sopaco__terrain.json +352 -0
  316. package/40-checker/results/sample60/summary.json +658 -0
  317. package/40-checker/results/sample60/tinqiao-oss__engramory.json +352 -0
  318. package/40-checker/results/sample60/tong-io__tongflow.json +359 -0
  319. package/40-checker/results/sample60/vibeinging__dsh-desktop.json +382 -0
  320. package/40-checker/results/sample60/w2112515__dsh-remote-host.json +344 -0
  321. package/40-checker/results/sample60/wkfedor__deepseek-harness-voice-input.json +350 -0
  322. package/40-checker/results/sample60/wz20__dsh-dafeiyu-dot.json +349 -0
  323. package/40-checker/results/sample60/xfgil__dsh-hot-reloader.json +344 -0
  324. package/40-checker/results/sample60/yi-yezhiqiu__dsh-prompt-market.json +360 -0
  325. package/40-checker/results/sample60/yizhiyizhi0128__dsh-peak-scheduler.json +360 -0
  326. package/40-checker/results/sample60/yjh051108__dsh-routing-suite.json +366 -0
  327. package/40-checker/results/sample60-ci/123dbl__dsh-side-session.json +344 -0
  328. package/40-checker/results/sample60-ci/173787247__dsh-wsl-dns.json +360 -0
  329. package/40-checker/results/sample60-ci/863683348__dsh-insight.json +375 -0
  330. package/40-checker/results/sample60-ci/Anionex__dsh-turn-rewind.json +379 -0
  331. package/40-checker/results/sample60-ci/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
  332. package/40-checker/results/sample60-ci/Ebony-Vinyl__EAC-Pack.json +362 -0
  333. package/40-checker/results/sample60-ci/EricWang1358__dsh-web-studyhub.json +378 -0
  334. package/40-checker/results/sample60-ci/GanyuanRan__Aegis.json +349 -0
  335. package/40-checker/results/sample60-ci/HiSeax__dsh-codely.json +368 -0
  336. package/40-checker/results/sample60-ci/Jamailar__beav-deepseek-harness.json +367 -0
  337. package/40-checker/results/sample60-ci/LiarMTTT__TavernWeave.json +231 -0
  338. package/40-checker/results/sample60-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
  339. package/40-checker/results/sample60-ci/MichengAI__dsh-archive-manager.json +395 -0
  340. package/40-checker/results/sample60-ci/MichengAI__dsh-im-connect.json +404 -0
  341. package/40-checker/results/sample60-ci/MindLab-Research__dsh-generative-ui.json +410 -0
  342. package/40-checker/results/sample60-ci/NEAZ71eve__dsh-tool-github.json +392 -0
  343. package/40-checker/results/sample60-ci/README.md +7 -0
  344. package/40-checker/results/sample60-ci/RINGOLINK__dsh-desktop-shell.json +361 -0
  345. package/40-checker/results/sample60-ci/Ruler4396__dsh-launcher.json +231 -0
  346. package/40-checker/results/sample60-ci/SeanTolstoyevski__dsh-code-review.json +363 -0
  347. package/40-checker/results/sample60-ci/Tasihi89__dsh-talk-map.json +372 -0
  348. package/40-checker/results/sample60-ci/Tyan66666__billion-context-dsh.json +469 -0
  349. package/40-checker/results/sample60-ci/V1ki__dsh-plugin-subscriptions.json +368 -0
  350. package/40-checker/results/sample60-ci/Yu-tao-Li__dsh-computer-use-win.json +349 -0
  351. package/40-checker/results/sample60-ci/ZSeven-W__dsh-ios.json +344 -0
  352. package/40-checker/results/sample60-ci/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
  353. package/40-checker/results/sample60-ci/agent-mobile__dsh-mobile-gateway.json +384 -0
  354. package/40-checker/results/sample60-ci/c3cvld7aag__fujiang-dsh.json +361 -0
  355. package/40-checker/results/sample60-ci/cxzrdxy__dsh-file-explorer.json +399 -0
  356. package/40-checker/results/sample60-ci/dhicoc__dsh-reverse-skill.json +352 -0
  357. package/40-checker/results/sample60-ci/fangqiing__dsh-knowledge-lite.json +360 -0
  358. package/40-checker/results/sample60-ci/fwerkor__local-shell-mcp.json +387 -0
  359. package/40-checker/results/sample60-ci/fzy0517__deepseek-harness-session-cleaner.json +354 -0
  360. package/40-checker/results/sample60-ci/gjy1992__dsh-diagram.json +381 -0
  361. package/40-checker/results/sample60-ci/howmp__dsh-pentest.json +361 -0
  362. package/40-checker/results/sample60-ci/linhay__harmony-next.skills.json +344 -0
  363. package/40-checker/results/sample60-ci/liustack__modsearch.json +382 -0
  364. package/40-checker/results/sample60-ci/mmparko__dsh-purge.json +441 -0
  365. package/40-checker/results/sample60-ci/mrme000m__dsh-prime-orchestrator.json +452 -0
  366. package/40-checker/results/sample60-ci/omdsh-dev__dsh_workflow.json +439 -0
  367. package/40-checker/results/sample60-ci/plastic-labs__honcho.json +231 -0
  368. package/40-checker/results/sample60-ci/redstonedust__dsh-solidworks-copilot.json +371 -0
  369. package/40-checker/results/sample60-ci/seriousz158__dsh-memory.json +351 -0
  370. package/40-checker/results/sample60-ci/shanliuling__dsh-image-gen.json +382 -0
  371. package/40-checker/results/sample60-ci/shanliuling__skills-link.json +344 -0
  372. package/40-checker/results/sample60-ci/shengsheng90__DSH-taskboard.json +370 -0
  373. package/40-checker/results/sample60-ci/sjh9714__dsh-win32.json +410 -0
  374. package/40-checker/results/sample60-ci/skymecode__deepseek-harness-for-vscode.json +391 -0
  375. package/40-checker/results/sample60-ci/sopaco__deepwiki-rs.json +231 -0
  376. package/40-checker/results/sample60-ci/sopaco__terrain.json +352 -0
  377. package/40-checker/results/sample60-ci/summary.json +555 -0
  378. package/40-checker/results/sample60-ci/tinqiao-oss__engramory.json +362 -0
  379. package/40-checker/results/sample60-ci/tong-io__tongflow.json +393 -0
  380. package/40-checker/results/sample60-ci/vibeinging__dsh-desktop.json +555 -0
  381. package/40-checker/results/sample60-ci/w2112515__dsh-remote-host.json +399 -0
  382. package/40-checker/results/sample60-ci/wkfedor__deepseek-harness-voice-input.json +358 -0
  383. package/40-checker/results/sample60-ci/wz20__dsh-dafeiyu-dot.json +390 -0
  384. package/40-checker/results/sample60-ci/xfgil__dsh-hot-reloader.json +344 -0
  385. package/40-checker/results/sample60-ci/yi-yezhiqiu__dsh-prompt-market.json +373 -0
  386. package/40-checker/results/sample60-ci/yizhiyizhi0128__dsh-peak-scheduler.json +370 -0
  387. package/40-checker/results/sample60-ci/yjh051108__dsh-routing-suite.json +437 -0
  388. package/40-checker/results/sample60-ci/zed1902209846-dotcom__DPwhale-plugin.json +231 -0
  389. package/40-checker/results/triage/REPORT.md +317 -0
  390. package/40-checker/results/triage/evidence/g2-rejections.txt +63 -0
  391. package/40-checker/results/triage/evidence/purge-baseline-0.2.1-rc.5.json +51 -0
  392. package/40-checker/results/triage/evidence/purge-baseline-0.2.2-alpha.2.json +51 -0
  393. package/40-checker/results/triage/evidence/purge-postinstall.txt +62 -0
  394. package/40-checker/results/triage/evidence/purge-with-profile-0.2.1-rc.5.json +71 -0
  395. package/40-checker/results/triage/evidence/purge-with-profile-0.2.2-alpha.2.json +71 -0
  396. package/40-checker/results/triage/evidence/semver-matrix.json +32 -0
  397. package/40-checker/results/triage/triage.json +295 -0
  398. package/40-checker/results/webapp/README.md +10 -0
  399. package/40-checker/results/webapp/summary.json +46 -0
  400. package/40-checker/results/webapp/web-auth.json +19 -0
  401. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/client-export.json +7 -0
  402. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/installed-package.json +123 -0
  403. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/probe.json +129 -0
  404. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/shot.png +0 -0
  405. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/summary.md +16 -0
  406. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/client-export.json +7 -0
  407. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/installed-package.json +76 -0
  408. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/probe.json +129 -0
  409. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/shot.png +0 -0
  410. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/summary.md +16 -0
  411. package/40-checker/results/webruntime/REPORT.md +253 -0
  412. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/client-export.json +7 -0
  413. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/installed-package.json +97 -0
  414. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/probe.json +129 -0
  415. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/shot.png +0 -0
  416. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/summary.md +16 -0
  417. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/client-export.json +7 -0
  418. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/installed-package.json +98 -0
  419. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/probe.json +136 -0
  420. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/shot.png +0 -0
  421. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/summary.md +16 -0
  422. package/40-checker/results/webruntime/ci-diet/client-export.json +10 -0
  423. package/40-checker/results/webruntime/ci-diet/installed-package.json +100 -0
  424. package/40-checker/results/webruntime/ci-diet/probe.json +129 -0
  425. package/40-checker/results/webruntime/ci-diet/shot.png +0 -0
  426. package/40-checker/results/webruntime/ci-diet/summary.md +16 -0
  427. package/40-checker/results/webruntime/daily-log/client-export.json +10 -0
  428. package/40-checker/results/webruntime/daily-log/installed-package.json +113 -0
  429. package/40-checker/results/webruntime/daily-log/probe.json +129 -0
  430. package/40-checker/results/webruntime/daily-log/shot.png +0 -0
  431. package/40-checker/results/webruntime/daily-log/summary.md +16 -0
  432. package/40-checker/results/webruntime/howmp__dsh-pentest/client-export.json +7 -0
  433. package/40-checker/results/webruntime/howmp__dsh-pentest/installed-package.json +90 -0
  434. package/40-checker/results/webruntime/howmp__dsh-pentest/probe.json +129 -0
  435. package/40-checker/results/webruntime/howmp__dsh-pentest/shot.png +0 -0
  436. package/40-checker/results/webruntime/howmp__dsh-pentest/summary.md +16 -0
  437. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/client-export.json +7 -0
  438. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/installed-package.json +164 -0
  439. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/probe.json +129 -0
  440. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/shot.png +0 -0
  441. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/summary.md +16 -0
  442. package/40-checker/results/webruntime/liguobao__ds-harness-remote/client-export.json +7 -0
  443. package/40-checker/results/webruntime/liguobao__ds-harness-remote/installed-package.json +166 -0
  444. package/40-checker/results/webruntime/liguobao__ds-harness-remote/probe.json +129 -0
  445. package/40-checker/results/webruntime/liguobao__ds-harness-remote/shot.png +0 -0
  446. package/40-checker/results/webruntime/liguobao__ds-harness-remote/summary.md +16 -0
  447. package/40-checker/results/webruntime/local-pre-ci/README.md +67 -0
  448. package/40-checker/results/webruntime/local-pre-ci/client-exports.json +158 -0
  449. package/40-checker/results/webruntime/local-pre-ci/dsh-free-search.probe.json +119 -0
  450. package/40-checker/results/webruntime/local-pre-ci/dsh-pocket.probe.json +119 -0
  451. package/40-checker/results/webruntime/local-pre-ci/dsh-redteam-model.probe.json +119 -0
  452. package/40-checker/results/webruntime/local-pre-ci/qiushi-shell-only.probe.json +104 -0
  453. package/40-checker/results/webruntime/local-pre-ci/ui-auth-no-login.fail.json +52 -0
  454. package/40-checker/results/webruntime/local-pre-ci/ui-auth.probe.json +123 -0
  455. package/40-checker/results/webruntime/mmparko__dsh-purge/client-export.json +7 -0
  456. package/40-checker/results/webruntime/mmparko__dsh-purge/installed-package.json +95 -0
  457. package/40-checker/results/webruntime/mmparko__dsh-purge/probe.json +136 -0
  458. package/40-checker/results/webruntime/mmparko__dsh-purge/shot.png +0 -0
  459. package/40-checker/results/webruntime/mmparko__dsh-purge/summary.md +16 -0
  460. package/40-checker/results/webruntime/project-memory/client-export.json +7 -0
  461. package/40-checker/results/webruntime/project-memory/installed-package.json +118 -0
  462. package/40-checker/results/webruntime/project-memory/probe.json +129 -0
  463. package/40-checker/results/webruntime/project-memory/shot.png +0 -0
  464. package/40-checker/results/webruntime/project-memory/summary.md +16 -0
  465. package/40-checker/results/webruntime/qiushi/client-export.json +7 -0
  466. package/40-checker/results/webruntime/qiushi/installed-package.json +84 -0
  467. package/40-checker/results/webruntime/qiushi/probe.json +114 -0
  468. package/40-checker/results/webruntime/qiushi/shot.png +0 -0
  469. package/40-checker/results/webruntime/qiushi/summary.md +16 -0
  470. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/client-export.json +7 -0
  471. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/installed-package.json +85 -0
  472. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/probe.json +129 -0
  473. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/shot.png +0 -0
  474. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/summary.md +16 -0
  475. package/40-checker/results/webruntime/status-rotator/client-export.json +7 -0
  476. package/40-checker/results/webruntime/status-rotator/installed-package.json +107 -0
  477. package/40-checker/results/webruntime/status-rotator/probe.json +129 -0
  478. package/40-checker/results/webruntime/status-rotator/shot.png +0 -0
  479. package/40-checker/results/webruntime/status-rotator/summary.md +16 -0
  480. package/40-checker/results/webruntime/summary.json +323 -0
  481. package/40-checker/results/webruntime/telemetry/probe.json +20 -0
  482. package/40-checker/results/webruntime/telemetry/summary.md +4 -0
  483. package/40-checker/results/webruntime/ui-auth/client-export.json +7 -0
  484. package/40-checker/results/webruntime/ui-auth/installed-package.json +94 -0
  485. package/40-checker/results/webruntime/ui-auth/probe.json +129 -0
  486. package/40-checker/results/webruntime/ui-auth/shot.png +0 -0
  487. package/40-checker/results/webruntime/ui-auth/summary.md +16 -0
  488. package/40-checker/results/webruntime/verification/probe.json +20 -0
  489. package/40-checker/results/webruntime/verification/summary.md +4 -0
  490. package/40-checker/results/webruntime/ysr666__dsh-vision-router/client-export.json +7 -0
  491. package/40-checker/results/webruntime/ysr666__dsh-vision-router/installed-package.json +142 -0
  492. package/40-checker/results/webruntime/ysr666__dsh-vision-router/probe.json +129 -0
  493. package/40-checker/results/webruntime/ysr666__dsh-vision-router/shot.png +0 -0
  494. package/40-checker/results/webruntime/ysr666__dsh-vision-router/summary.md +16 -0
  495. package/40-checker/samples/README.md +8 -0
  496. package/40-checker/samples/entry18.json +139 -0
  497. package/40-checker/samples/frame.json +485 -0
  498. package/40-checker/scripts/apply-overlay.mjs +59 -0
  499. package/40-checker/scripts/attestation-check.mjs +151 -0
  500. package/40-checker/scripts/bundle-smoke.mjs +126 -0
  501. package/40-checker/scripts/claim-check.mjs +145 -0
  502. package/40-checker/scripts/clause-map.mjs +94 -0
  503. package/40-checker/scripts/collect-fixtures.mjs +44 -0
  504. package/40-checker/scripts/dashboard.mjs +85 -0
  505. package/40-checker/scripts/dco-check.mjs +147 -0
  506. package/40-checker/scripts/dependabot-check.mjs +40 -0
  507. package/40-checker/scripts/doc-commands-check.mjs +92 -0
  508. package/40-checker/scripts/entry-scan.mjs +190 -0
  509. package/40-checker/scripts/entry-validate.mjs +291 -0
  510. package/40-checker/scripts/entry18-attribution.mjs +66 -0
  511. package/40-checker/scripts/entry18-ci.mjs +685 -0
  512. package/40-checker/scripts/entry18-realweb-summary.mjs +71 -0
  513. package/40-checker/scripts/entry18-web.mjs +307 -0
  514. package/40-checker/scripts/evidence-chain.mjs +100 -0
  515. package/40-checker/scripts/flow-index.mjs +82 -0
  516. package/40-checker/scripts/flow-sample-ci.mjs +529 -0
  517. package/40-checker/scripts/governance-check.mjs +210 -0
  518. package/40-checker/scripts/host-farm.mjs +165 -0
  519. package/40-checker/scripts/journey-config-observe.mjs +109 -0
  520. package/40-checker/scripts/journey-disclosure-shape.mjs +83 -0
  521. package/40-checker/scripts/journey-runtime.mjs +178 -0
  522. package/40-checker/scripts/journey.mjs +76 -0
  523. package/40-checker/scripts/label-drift.mjs +74 -0
  524. package/40-checker/scripts/label-sync.mjs +87 -0
  525. package/40-checker/scripts/label-verify.mjs +90 -0
  526. package/40-checker/scripts/landlock-exec.c +101 -0
  527. package/40-checker/scripts/level-audit.mjs +336 -0
  528. package/40-checker/scripts/m1-sidecar.mjs +126 -0
  529. package/40-checker/scripts/m2-runner.mjs +213 -0
  530. package/40-checker/scripts/round-robin.mjs +88 -0
  531. package/40-checker/scripts/sample-frame.mjs +72 -0
  532. package/40-checker/scripts/sample20-ci.mjs +25 -0
  533. package/40-checker/scripts/sample60-ci.mjs +25 -0
  534. package/40-checker/scripts/stale-check.mjs +59 -0
  535. package/40-checker/scripts/surveillance.mjs +88 -0
  536. package/40-checker/scripts/web-probe.mjs +504 -0
  537. package/40-checker/src/cli.mjs +300 -0
  538. package/40-checker/src/client-shape.mjs +37 -0
  539. package/40-checker/src/declarations.mjs +242 -0
  540. package/40-checker/src/index.mjs +8 -0
  541. package/40-checker/src/install-spec.mjs +67 -0
  542. package/40-checker/src/label.mjs +130 -0
  543. package/40-checker/src/manifest.mjs +364 -0
  544. package/40-checker/src/permissions.mjs +60 -0
  545. package/40-checker/src/report.mjs +204 -0
  546. package/40-checker/src/result.mjs +60 -0
  547. package/40-checker/src/runtime.mjs +299 -0
  548. package/40-checker/src/semver.mjs +128 -0
  549. package/40-checker/src/util.mjs +148 -0
  550. package/40-checker/test/attestation.test.mjs +59 -0
  551. package/40-checker/test/checks.test.mjs +172 -0
  552. package/40-checker/test/claim.test.mjs +28 -0
  553. package/40-checker/test/client-shape.test.mjs +35 -0
  554. package/40-checker/test/dco.test.mjs +51 -0
  555. package/40-checker/test/entry-validate.test.mjs +172 -0
  556. package/40-checker/test/governance.test.mjs +76 -0
  557. package/40-checker/test/label.test.mjs +97 -0
  558. package/40-checker/test/level-audit.test.mjs +99 -0
  559. package/40-checker/test/levels.test.mjs +31 -0
  560. package/40-checker/test/ops.test.mjs +117 -0
  561. package/40-checker/test/permissions.test.mjs +40 -0
  562. package/40-checker/test/semver.test.mjs +32 -0
  563. package/40-checker/test/verify.test.mjs +57 -0
  564. package/LICENSE +28 -0
  565. package/LICENSE-APACHE +190 -0
  566. package/LICENSE-CC-BY +23 -0
  567. package/NOTICE.md +11 -0
  568. package/README.md +146 -3
  569. package/bin/dsh-levels.mjs +4 -0
  570. package/bin/dsh-standards.mjs +17 -4
  571. package/docs/BOOST-FIXTURES-2026-11-02.md +38 -0
  572. package/docs/DEVELOPER-JOURNEY.md +40 -0
  573. package/docs/HOST-J3-BUG-REPORT-DRAFT.md +27 -0
  574. package/docs/HOST-J3-CONFIG-REPRO-2026-11-02.md +36 -0
  575. package/docs/NAMING-FALLBACK.md +11 -0
  576. package/docs/fork-policy.md +12 -0
  577. package/docs/full-test-plan-2026-11-02.md +207 -0
  578. package/docs/incident.md +37 -0
  579. package/docs/onboarding.md +27 -0
  580. package/docs/privacy.md +12 -0
  581. package/docs/release.md +16 -0
  582. package/docs/scope-security.md +62 -0
  583. package/docs/status-taxonomy.md +54 -0
  584. package/docs/sunset.md +44 -0
  585. package/docs/translating.md +12 -0
  586. package/package.json +49 -18
  587. package/spec/README.md +27 -0
  588. package/spec/boost/README.md +8 -0
  589. package/spec/clauses.json +253 -0
  590. package/spec/entry/README.md +9 -0
  591. package/spec/flow/README.md +8 -0
  592. package/spec/levels.json +371 -0
  593. package/spec/levels.schema.json +45 -0
  594. package/spec/reference-suite.json +35 -0
  595. package/spec/schemas/attestation.schema.json +284 -0
  596. package/spec/schemas/evidence.schema.json +331 -0
  597. package/spec/schemas/report.schema.json +64 -0
  598. package/index.mjs +0 -3
@@ -0,0 +1,11 @@
1
+ # Naming fallback if the official team objects
2
+
3
+ If the official team says not to use the DSH name/logo:
4
+
5
+ 1. Remove `DSH`/`DeepSeek` from the public title and logo within 48 hours.
6
+ 2. Use a neutral fallback: **Cordis Plugin Entry Checklist** / **DSH Community Evidence Profile** without official marks; keep the internal file names unchanged.
7
+ 3. Update the README, labels, and outreach pages; do not argue or quote private chats.
8
+ 4. Keep the disclaimer: 非官方 · 非认证 · 非安全审计 · 非背书.
9
+ 5. If they ask to stop the project, stop the public promotion; keep local research.
10
+
11
+ Do not register a trademark, use the official logo, or imply approval.
@@ -0,0 +1,12 @@
1
+ # Fork and rename policy
2
+
3
+ > Forking is allowed. Misrepresentation is not.
4
+
5
+ - You may fork the text, checker, and evidence.
6
+ - A fork must **rename** the project (e.g. `DSH-ENTRY-fork`), and must not claim
7
+ to be the original or the official version.
8
+ - Do not use the original badges/wordmarks in a way that implies continuity.
9
+ - Do not remove the non-official disclaimer from a copied record.
10
+ - The original project will not use technical or legal means to prevent a fork;
11
+ it also cannot grant rights it does not have (e.g. DeepSeek marks).
12
+ - If you find a bug in the original, a PR is better than a silent fork.
@@ -0,0 +1,207 @@
1
+ # DSH 三标准全量测试与研究计划 — 2026-11-02
2
+
3
+ > 执行位置:`session-fa812851-0a68-4147-ad5a-f9fcb14c623b` 的全新环境。当前会话不直接访问那个运行时;本文是可执行协议、数据口径和沟通稿。
4
+ > 定位:**测量研究 + 小范围修复实验**,不是“修完所有下载项目”,也不是“给市场打分”。
5
+
6
+ ## 0. 先修正三个预期
7
+
8
+ 1. **2–4 周只能做 pilot,不是“全量”。** 10–15 个深测项目约 30–60h;30 个项目约 60–200h;一个人 10h/周,pilot 2–4 周、完整 30 项目 8–12 周。**先做 10–15 个 pilot,再决定是否扩到 30。**
9
+ 2. **不能拿我们的 C1–C8 判市场对错。** 各市场口径不同,只做差异表;市场规则是它自己领域的权威。
10
+ 3. **工具 pass ≠ 标准 pass ≠ 市场接受。** `guide`/`doctor`/`entry-validate` 都是静态;C3 没有真实宿主安装就只能是 `not-run`。
11
+
12
+ ## 1. 研究设计
13
+
14
+ ### 1.1 先冻结,再测试
15
+
16
+ - 冻结当前 C1–C8、FLOW J1–J8、BOOST B1–B8 版本;测试期间**不因单个项目失败而改规则**。
17
+ - 预注册假设(见 §1.3);留 **30% hold-out**,hold-out 不参与调参。
18
+ - 工具 pin 版本;记录 commit/版本。
19
+
20
+ ### 1.2 样本
21
+
22
+ - 30 个项目以内:10 个高星/已收录、10 个中低星/长尾、10 个 archived/monorepo/no-bundle/旧版。
23
+ - 至少 10 个“低星/archived/monorepo”;至少 3 个非 owner 插件。
24
+ - 来源:下载目录 + awesome/hub/radar/市场清单;记录来源,避免只选“已经能装”的。
25
+ - 许可证/隐私:只改本地一次性副本;不 push/PR/公开 diff,除非作者书面邀请;AGPL/NC-SA 不混;不跑 install script、不读凭据。
26
+
27
+ ### 1.3 预注册假设
28
+
29
+ - H0:市场对比显示 **C1/C2 是共性硬要求;C3 可能是自造门槛;C4/C5 是市场/宿主特定;C6 的 license 不是所有市场共性;C8 只约束我们的 label**。这些是待证伪假设,不先改代码。
30
+ - H1:C2(bundle/patch)是安装成功的最强预测;C3(host install)可能属于 FLOW,而不是 ENTRY 的硬门槛。
31
+ - H2:C3 在静态通过的项目上仍能发现安装失败;C3 必须真跑。
32
+ - H3:C4 缺失(无 `engines.dsh`/peer)不预测失败;保持 warning。
33
+ - H4:C5/C6 的构建产物未提交不预测失败;声明存在即可,构建由 pack/build 验证。
34
+ - H5:C6 缺 `license` 预测市场拒绝(awesome/hub/skillhub)。
35
+ - H6:BOOST B1–B6 与更少运行时错误/残留相关;B8 性能噪声大,只做 environment-scoped。
36
+ - H7:市场特有规则(TUI approved contributors、skillhub CLA/SKILL.md、dsh-web docs、dsh-market build-script/engines)应进 profile,不进 ENTRY。
37
+ - H9:如果 C3/C4/C5/C6 的某些要求只在一部分市场存在,它们应变成 warning、`not-applicable` 或对应 profile,而不是 ENTRY fail。
38
+ - H8:任何 ENTRY 条款若拒绝市场已接受的插件,且市场规则不要求它,就是 false positive,必须先修。
39
+
40
+ ### 1.4 基线
41
+
42
+ 对每个项目记录:
43
+
44
+ - 静态:`entry-validate --meta`、`entry-scan`、`dsh-primer`/`dsh-clinic`(scoped 精确版本)、hyzyn check-package-contents/check-dsh-peers、相关市场检查;doctor 的 skip/degraded 不记 pass。
45
+ - 宿主:临时 `DSH_HOME` + 临时 profile;安装 → 启动 → 命令 → 禁用 → 卸载;记录文件/进程/端口/storage 残留。
46
+ - FLOW:J1–J8 中适用的 journey;不适用记 `not-applicable`。
47
+ - BOOST:B1–B6 fixture;B8 只对子集、固定环境、20 次 p50/p95。
48
+ - 市场:awesome/dsh-market/hub/radar/TUI/skillhub 的实际规则;形成差异表,不评分。
49
+
50
+ ### 1.4b Pilot 结果(2026-11-02)
51
+
52
+ - 30 个第三方样本:C3 15 跑,14 pass / 0 fail / 1 blocked;C3 无区分度。
53
+ - C3 已降为 FLOW-only;entry re-run:2 pass / 19 pass-with-warnings / 1 incomplete / 8 fail。
54
+ - 8 fail 仍是 C1/C2/C6 静态问题;不是 C3。
55
+
56
+ ## 1.5 修复实验
57
+
58
+ - 只做最小、可逆、不改行为的修改:补 `dsh.bundle.patch`、`engines.dsh`、`./client` export、license/description、dispose。
59
+ - 每次修改只动一个变量;before/after 用同一环境、同一命令。
60
+ - 本地副本;不改第三方仓库;不把“本地修好”说成“已修复/已合并”。
61
+ - 失败就记 `failed`/`blocked`,不为了 pass 改标准。
62
+
63
+ ### 1.6 评估
64
+
65
+ - 混淆矩阵:标准 pass/fail × 宿主 install pass/fail;分别报 FP/FN 分母。
66
+ - 每条条款的贡献:去掉它,FP/FN 如何变;不只看总通过率。
67
+ - 市场差异表:每家查什么/不查什么/证据等级/谁负责;不排名、不打分。
68
+ - 性能:只报 raw p50/p95/min/max + 环境;波动 >20% 标 `not-run`。
69
+
70
+ ### 1.7 交付物
71
+
72
+ `inventory.json`、`hypotheses.md`、`baseline.jsonl`、`host-install.jsonl`、`market-matrix.md`、`repair-report.md`、`performance.jsonl`、`aggregate-report.md`、`comms-kit.md`。
73
+
74
+ ## 2. 参考项目怎么用
75
+
76
+ ### 2.1 `omdsh-dev/plugin-template`
77
+
78
+ - `docs/dsh-plugin-contracts.md`:manifest/engines/bundle patch(**一个路径或有序列表**)、client export、locale/icon、lifecycle、compose、evidence、build。
79
+ - `tests/harness.ts` + `tests/plugin.test.ts`:真实 Cordis `Context` + `Loader` mount、export shape、schema default、dispose。
80
+ - `.agents/skills/`:plan/scaffold/align/implement/client/i18n/compose/test/release;可作为我们的 author kit。
81
+ - 直接修正:C2 必须接受 patch **array**;C4 优先 `engines.dsh`(有它时 peer 被忽略);C5 要求 `./client` export;C6 检查 entry 声明与 metadata,不要求构建产物已提交。
82
+
83
+ ### 2.2 `morlay/dsh-plugin` devpackages
84
+
85
+ - `tsdown-plugin-cordis`:client/host 打包、package exports 推导、CSS、dts、patch 渲染。
86
+ - `devkit`:tsdown 预设、bundle patch、dts、client 规则。
87
+ - `dshdev`:`web`/`desktop`/`desktop bundle`/`check-deps`,可做 host smoke。
88
+ - 用途:C5/C6 的构建面、B8 的 bundle/启动测量、C3 的宿主 smoke;不要直接复制其私有工具链。
89
+
90
+ ### 2.3 工具命名与版本(重要)
91
+
92
+ - `dsh-plugin-guide` 已迁 `dsh-primer`,`dsh-plugin-doctor` 已迁 `dsh-clinic`;用 scoped 精确版本,**不要 npx 裸名**(裸名是另一个项目)。记录工具版本/SPEC/DSH 版本。
93
+ - `dsh-clinic`(doctor):SPEC v1 是 R0–R8 + K1–K14 + D0–D3/D9 + CC1–CC5/3;工具分组另含 X(X1–X5 宿主契约),**X 不是 SPEC v1 检查项**。五态 + `skip`,`exit 6` = degraded;**skip/degraded 不是 pass**;R2/R4 依赖 built;D 依赖 network/pnpm,只证明 sandbox,不等于真宿主安装;doctor PASS 不等于 C1–C8 全过/认证/安全。
94
+ - 建议命令:`--repo <dir> --no-smoke --only R,K --json`;需要宿主兼容时 `--only R,K,X --dsh-install <dsh>`(X 用宿主 `evaluatePluginCompatibility`);D 只在临时目录/网络允许时跑,不把 D PASS 当 C3。
95
+
96
+ ### 2.4 其他
97
+
98
+ `bugmaker2/dsh-plugin-template`(旧 Node/DSH、`dsh.plugin.json` 不是宿主 manifest)、`hyzyn/dsh-plugin-kit`(live-host-smoke、check-package-contents、check-dsh-peers)、`kun2-5code/dsh-plugin-template`(六形态/14 UI/volatile)、`DEVbyQIN/dsh-plugin-kit`(scaffolder/validator);`dsh-tauri`、`dsh-web`、`dsh-TUI`、`DSH-better-sidebar`、`dsh-market` 的 tests/scripts 可做 C3/C5/C6/FLOW;`dshbase`/`dsh-plugin.market`/`dshfind` 作为标签/评分对照。
99
+
100
+ **借 8:** omdsh contracts;omdsh harness.ts;morlay `cordis-client.ts`;morlay `package-exports` 的 engines 推导;hyzyn `live-host-smoke.mjs`;hyzyn `check-package-contents.mjs`;hyzyn `check-dsh-peers.mjs`;doctor SPEC + R/K。
101
+ **不借 3:** bugmaker2 的旧 `dsh.plugin.json`/Node22/DSH0.1;morlay 整套 `@local` dts/typert/devkit(太重,只借 client/export);doctor 的 D/PASS 当标准通过(网络/pnpm、非确定、skip≠pass、degraded exit 6、非认证)。
102
+
103
+ ## 3. 三标准要验证什么
104
+
105
+ | 条款 | 当前 | 测试后可能调整 |
106
+ | --- | --- | --- |
107
+ | C1 public/topic | 通过 | 保留硬门槛 |
108
+ | C2 bundle/patch | 字符串/数组 | 保留硬门槛;必须检查所有 patch 文件 |
109
+ | C3 compose/install | **已降为 FLOW-only** | 2026-11-02 pilot:15 个 host install,14 pass / 0 fail / 1 blocked;C3 无区分度;J1 成为 FLOW 必跑 |
110
+ | C4 engines/peer | 缺失 warning | **待验证是否降为 host profile**:dsh-market/TUI/web 要,awesome/0xsline/handbook 不要求 |
111
+ | C5 client export | 构建产物缺失 warning | **待验证是否只做 host profile**:只有 web/TUI/sidebar 有意义 |
112
+ | C6 metadata/entry | **license → A7 advisory** | 2026-11-02:license 是 legal/market profile;description/entry 仍是硬门槛;re-run 7 fail(之前 8) |
113
+ | C7 version/commit | 通过 | 保持 version;commit/freshness 只 warning |
114
+ | C8 no grade/rank | 通过 | **只约束我们的 label**;不能要求市场去掉自己的 score/Verified/等级 |
115
+ | FLOW J1–J8 | 未全跑 | 先在 10 个项目上跑适用 journey;市场特有要求进 profile |
116
+ | BOOST B1–B6 | fixture 级 | 用真实 Cordis harness + dispose;B8 只子集、环境限定 |
117
+
118
+ ## 4. 市场差异表(模板)
119
+
120
+ | 条款 | awesome | dsh-market | hub | dsh-web | TUI | sidebar | radar | skillhub |
121
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- |
122
+ | bundle/patch | 要 | 要 | passport | patch | dsh-std | host | 四态 | SKILL.md |
123
+ | engines/peer | 无 | 要 | passport | 无 | dsh-std | host | 无 | 无 |
124
+ | client export | 视插件 | 视插件 | 无 | 要 | 无 | 无 | 无 | 无 |
125
+ | license/metadata | 要 | 要 | 要 | 要 | 要 | 要 | 部分 | 要 |
126
+ | host install | 不查 | 部分 | scanner | 部分 | tests | tests | 四态 | review |
127
+ | 结论 | 收录权威 | UX 权威 | 证据锚 | 宿主 | 宿主 | 宿主 | 运行验证 | 企业治理 |
128
+
129
+ **市场对比结果(公开文档,2026-11-02):** C1/C2 是 AW/MK/HUB/WEB/TUI/SID 的共性硬要求;C3 是自造门槛(市场要 install/verified,不要求作者交 compose);C4/C5 是市场/宿主特定;C6 的 license 不是所有市场共性;C7 commit/freshness 是市场侧信号;C8 是我们的 label policy,不能要求市场去掉自己的 score/Verified/等级。结论只做“差异/重叠/谁负责”,不做“谁更合理”;市场规则是各自领域的权威。
130
+
131
+ ## 5. 沟通稿(测试结果出来后)
132
+
133
+ ### 5.1 市场维护者(微信,<=150 字)
134
+
135
+ > X 你好,我们跑了 10 个公开插件的 entry 检查,发现你们的规则和我们的 C1–C8 有 3 处差异;我做了一页映射,可能帮作者少踩坑、减少你们 review。你们的规则是权威;你们不要求的 C3–C8 项会标 warning/not-applicable/profile,不新增门槛。15 分钟听你挑错?不要求改规则、不 ranking。
136
+
137
+ 邮件主题:关于 entry 检查的 3 处差异,想请你挑错。正文同义,附一页映射;不公开点名、不排名。
138
+
139
+ ### 5.2 官方(<=200 字)
140
+
141
+ > 你好,我们是一群社区维护者,做了一份 DSH 插件 entry 检查的社区测试报告(非官方、不排名、不认证、不使用官方 logo)。想同步一页摘要,并请教命名/品牌展示有没有约束;不要求审批、不要求背书。官方不回复我们也继续,只按社区项目做;如措辞/品牌不妥,请指出,我们改。
142
+
143
+ ### 5.3 分对象 ask
144
+
145
+ - awesome / dsh-market:只读 sidecar + 10 条 third-party entry,2 周 pilot;不改 schema、不上卡片、不 ranking。
146
+ - dsh-desktop:Fabric RFC 0004 docs-only crosswalk;不碰 runtime/contract。
147
+ - dsh-web:docs 一页 evidence 说明;不改代码。
148
+ - dsh-TUI / dsh-go:3–5 条 host 兼容数据;同一人只联系一次;不发实现 PR、不替代 dsh-std。
149
+ - DSH-better-sidebar:扩展兼容 data/样例;不改 API、不叫 reference implementation。
150
+ - radar:四态→evidence crosswalk;不改 verdict、不要求开源引擎。
151
+ - 0xsline / handbook:L1 Related 一行 / 10–15 行原创小节;不做逐条字段。
152
+ - skillhub:只对 skillhub-dsh 做私有 pilot,declared-only;不公开、不 official。
153
+
154
+ ## 6. 数据纪律与禁区
155
+
156
+ - 只公开聚合/匿名;n<5 不拆;不公开失败插件名、host 日志路径、私聊。
157
+ - 所有数字标日期/样本/方法;无独立 reviewer 前不写 `verified`。
158
+ - 不排名、不认证、不 official、不点名差评、不用“XX 已接受”压人;不要求改 schema/UX。
159
+ - 第三方代码只本地副本;PR/公开 diff 需作者书面邀请;拒绝就移除样本和名字。
160
+ - 官方/群先知情后发帖;任何人说停/移除,立即照做。
161
+
162
+ ## 7. 2–4 周 pilot,8–12 周全量
163
+
164
+ **Pilot(2–4 周):** 10–15 个深测项目,先跑 C1/C2/C6 + C3 host install + 1 个市场差异表;不做全量修复、不做性能排名。
165
+
166
+ **Full(8–12 周):** 30 个项目、hold-out、性能子集、2–3 个伙伴 review。
167
+
168
+ | 周 | 动作 | Gate |
169
+ | --- | --- | --- |
170
+ | 0–1 | 冻结 checklist;预注册 10 项目;golden set + 负向 control;host harness(hyzyn live-host-smoke 或 dsh-clinic D + 真 host) | 工具在 golden set 上 FP/FN ≤10%;C3 可跑;skip/degraded 不当 pass |
171
+ | 2–3 | 30 项目静态 baseline;10–15 个 host install;市场差异表 | 至少 10 个 C3 有结果;至少 2 家市场规则映射 |
172
+ | 4–5 | 10–15 个本地修复实验;before/after;performance 子集 | 0 第三方公开改动;每个修改只动一个变量 |
173
+ | 6–7 | BOOST B1–B6;hold-out 验证;写 aggregate | hold-out 不调参;性能波动 >20% 标 not-run |
174
+ | 8–10 | 2–3 个伙伴私下预览;根据反馈修标准;公开匿名 aggregate | 2 家愿意 review;0 点名/排名;官方知情 |
175
+ | 11–12 | 决定下一轮:council/更多市场/BOOST B8 | 2 家公开采用前不叫 consensus/standard |
176
+
177
+ ## 8. 风险与 go/no-go
178
+
179
+ - 样本偏差/过拟合 → 预注册、分层、30% hold-out、冻结规则。
180
+ - 工具偏差 → golden set、负向 control、FP/FN 分开报;工具 bug 修工具,不修第三方。
181
+ - 第三方/许可 → 本地副本、匿名、书面许可;AGPL/NC-SA 不混。
182
+ - 性能噪声 → 固定环境、n≥20、raw data、波动 >20% not-run。
183
+ - 市场对比 → 差异表,不打分;市场规则权威。
184
+ - 沟通 → 先私聊预览、opt-in、不公开失败名单;官方/群先知情。
185
+ - 单人时间 → 8–12 周 pilot;不做“全量修所有项目”。
186
+
187
+ **Go/No-go:**
188
+ 1. golden set FP/FN ≤10%,否则先修工具;
189
+ 2. 至少 10 个 host install 有结果,否则不叫“全量”;
190
+ 2b. C3/C4/C5/C6 是否降为 FLOW/profile 必须有数据;不要先改代码再找证据;
191
+ 3. 第三方具名/PR 有书面许可,否则只本地匿名;
192
+ 4. 性能固定环境 n≥20,否则 B8 not-run;
193
+ 5. 2 家市场愿意私下 review,否则只发匿名方法/聚合。
194
+
195
+ ## 9. 现在先做 3 件
196
+
197
+ 1. **冻结 + 预注册**:10 个项目、假设、hold-out;不先改规则。
198
+ 2. **C3 host harness**:临时 `DSH_HOME`/profile,安装→启动→禁用→卸载;先在 10 个项目上跑;同时记录 C3 是否只是 FLOW。
199
+ 3. **一张市场差异表 + 一个伙伴预览**:优先 awesome 或 dsh-market;只私下给,不公开;用“你们的规则是权威”开场。
200
+
201
+ ## 10. 来源
202
+
203
+ - `omdsh-dev/plugin-template`(README、docs/dsh-plugin-contracts.md、tests/harness.ts、tests/plugin.test.ts)
204
+ - `morlay/dsh-plugin`(devpackages/tsdown-plugin-cordis、devkit、dshdev、dts-prepare)
205
+ - `hyzyn/dsh-plugin-kit`(live-host-smoke、check-package-contents、check-dsh-peers)、`dsh-tauri`/`dsh-web`/`dsh-TUI`/`DSH-better-sidebar` 的 tests/scripts
206
+ - `PerryLink/dsh-primer`(guide)与 `dsh-clinic`(doctor)SPEC;各市场 README/CONTRIBUTING/CI;dshfind/dshbase/dsh-plugin.market 的标签/数据
207
+ - 本仓库:`adoption/entry/real-scan-2026-11-02.json`、`reviews/2026-11-02-p0-self-review.md`
@@ -0,0 +1,37 @@
1
+ # Incident runbook
2
+
3
+ > Scope: evidence errors, unauthorized merges, leaked secrets, and a false label.
4
+ > This is not a security incident response service for third-party plugins.
5
+
6
+ ## 1. Detect
7
+
8
+ - CI failure, appeal, user report, surveillance mismatch, or a maintainer notice.
9
+
10
+ ## 2. Contain
11
+
12
+ - If a label is disputed: set `under-review`, hide the old PASS, keep history.
13
+ - If a secret leaked: revoke the token first, then rotate; do not paste it.
14
+ - If an AI merged outside its allowlist: revert, disable the token, record.
15
+
16
+ ## 3. Assess
17
+
18
+ - Which record/subject/version? Which clause? Is it factual, procedural, or COI?
19
+ - Does it affect a third party? If yes, notify via the public record.
20
+
21
+ ## 4. Correct
22
+
23
+ - Issue a **new** record; do not edit the old PASS into a FAIL.
24
+ - Append a decision-log entry and (if needed) a dispute JSON.
25
+ - If the error was ours, say so; do not blame the plugin.
26
+
27
+ ## 5. Learn
28
+
29
+ - Add a regression test/fixture.
30
+ - Update the checklist or the taxonomy.
31
+ - Record the time to detect and time to correct.
32
+
33
+ ## Red lines
34
+
35
+ - Never delete a dispute or audit record.
36
+ - Never restore a stale/withdrawn label to “valid”.
37
+ - Never claim “no impact” without checking.
@@ -0,0 +1,27 @@
1
+ # Onboarding / offboarding checklist
2
+
3
+ > Access is granted per role, per scope, for a fixed term. No shared passwords.
4
+
5
+ ## Onboarding
6
+
7
+ - [ ] Read `GOVERNANCE.md`, `44`, `governance/contribution-terms.md`.
8
+ - [ ] Sign DCO + DCT; `ai-clerk` adds `contributors.json`.
9
+ - [ ] Disclose employer/funding/own plugins in `coi.json`.
10
+ - [ ] Enable 2FA; use your own token (never a shared one).
11
+ - [ ] Role recorded in `roles.json`/`reviewers.json` with `expiresAt`.
12
+ - [ ] For maintainers: one supervised release before write access.
13
+ - [ ] For reviewers: 10 known answers + 2 shadow reviews.
14
+
15
+ ## Offboarding
16
+
17
+ - [ ] Remove write access; keep the historical review/decision records.
18
+ - [ ] Set role `dormant`/`emeritus`; do not delete contributions.
19
+ - [ ] Rotate any token the person could read.
20
+ - [ ] Record the change in `decision-log.md`.
21
+ - [ ] If the organizer leaves: follow `CONTINUITY.md`; no AI inherits ownership.
22
+
23
+ ## Access inventory
24
+
25
+ Keep this in a private file, never in git: GitHub, npm, PyPI, CI secrets, domain,
26
+ and recovery codes. The public repo only records **who has which role**, not the
27
+ secrets.
@@ -0,0 +1,12 @@
1
+ # Privacy and data handling
2
+
3
+ - Do not commit tokens, session data, private plugin code, or personal data.
4
+ - DCO `Signed-off-by` includes a name/email in public git history; use a
5
+ dedicated email if needed.
6
+ - `contributors.json` records handle, level, and COI summary only. No address,
7
+ phone, ID number, or private employment details.
8
+ - Evidence may include public repo URLs; do not add private dashboards.
9
+ - A takedown request for personal data: remove it from the current tree and
10
+ record the action; git history may still contain it (say so honestly).
11
+ - This project is not a data controller for third-party plugins; it only stores
12
+ what contributors publish.
@@ -0,0 +1,16 @@
1
+ # Release checklist
2
+
3
+ 1. `node --test 40-checker/test` — 0 fail.
4
+ 2. `governance-check`, `attestation-check`, `claim-check`, `clause-map`,
5
+ `evidence-chain verify`, `stale-check` — 0 error.
6
+ 3. Regenerate `dashboard.json` and the attestation index; do not hand-edit a PASS.
7
+ 4. Update `CHANGELOG.md` and the version in `spec/levels.json`/`scheme.json`.
8
+ 5. Tag `vX.Y.Z`; push; wait for `governance` CI.
9
+ 6. Publish npm/PyPI only after the tag; verify with a registry read.
10
+ 7. Record the result in `governance/decision-log.md`.
11
+
12
+ ## Rollback
13
+
14
+ - Revert the tag/commit; keep the evidence.
15
+ - Mark affected attestations `stale` or `withdrawn`; never delete them.
16
+ - If a publish is bad, deprecate the version; do not reuse the version number.
@@ -0,0 +1,62 @@
1
+ # Scope and security boundary (per level)
2
+
3
+ > **Not a security audit.** This page exists so a reader cannot mistake a level
4
+ > record for a safety, privacy, or production claim.
5
+
6
+ ## ENTRY
7
+
8
+ **What it covers:** manifest/patch parse (G0), compose/row resolution (G1), host
9
+ compatibility input (G2), real boot to ACTIVE/disabled (G3), client static shape
10
+ (G4), freshness anchor (G5).
11
+
12
+ **What it does not cover:**
13
+
14
+ - vulnerability scanning, dependency CVE status, runtime isolation;
15
+ - UI rendering or interaction;
16
+ - data handling/privacy;
17
+ - production load, cost, or provider behavior;
18
+ - “safe to install”.
19
+
20
+ **Security is not an ENTRY gate.** Security/brand findings are WARN-only in the
21
+ gate; they are escalated to FLOW/governance, not used to fail ENTRY.
22
+
23
+ ## FLOW
24
+
25
+ **What it covers:** install/remove (J1), enable/disable (J2), configuration (J3),
26
+ first success (J4), permissions/disclosure (J5), upgrade/rollback/uninstall (J6),
27
+ observability (J7), client/server shapes (J8).
28
+
29
+ **What it does not cover:**
30
+
31
+ - whether a disclosed permission is ethically acceptable;
32
+ - secrets management beyond “no credential in the repo”;
33
+ - multi-user isolation;
34
+ - accessibility, i18n, visual design;
35
+ - every platform combination.
36
+
37
+ J5 is a **disclosure** check, not a security review.
38
+
39
+ ## BOOST
40
+
41
+ **What it covers:** effect cleanup, inject/wait, volatile config, event modes,
42
+ seam/isolate/group, prefix stability, bounded parallelism/jobs, composition.
43
+
44
+ **What it does not cover:**
45
+
46
+ - production latency/cost (unless a real provider baseline is recorded);
47
+ - correctness of the feature;
48
+ - security of the optimization;
49
+ - “faster” as a general claim.
50
+
51
+ ## All levels
52
+
53
+ - no official endorsement, no accreditation, no certification body;
54
+ - no legal warranty, no insurance, no damages;
55
+ - evidence expires; `stale` is not valid;
56
+ - a `PASS` without a command/artifact is a bug.
57
+
58
+ ## How to report a security issue
59
+
60
+ Do **not** open a public issue with exploit details. Use the repository’s
61
+ private security channel (`SECURITY.md`). This project is not a CVE authority
62
+ and cannot coordinate disclosure for third-party plugins.
@@ -0,0 +1,54 @@
1
+ # Status and failure taxonomy
2
+
3
+ > The most common way a record lies is not a wrong number; it is a wrong status.
4
+ > This page fixes the vocabulary.
5
+
6
+ ## Record status (per level)
7
+
8
+ | Status | Meaning | Is it a pass? |
9
+ |---|---|---|
10
+ | `recognized` | static recognition only | no runtime claim |
11
+ | `static` | static checks ran | no runtime claim |
12
+ | `runtime` | a real boot/journey ran | yes for that scope |
13
+ | `manual` | a human ran the journey and recorded it | yes for FLOW only |
14
+ | `measured` | a benchmark was run and recorded | yes for BOOST only |
15
+ | `blocked` | environment/host/service missing | **no** |
16
+ | `failed` | the subject failed a check | **no** |
17
+ | `not-run` | the check did not run | **no** |
18
+ | `not-measured` | no BOOST evidence | **no** |
19
+ | `not-applicable` | the check does not apply (data/docs repo) | **no** |
20
+ | `stale` | evidence expired or host anchor changed | **no** |
21
+ | `withdrawn` | author/project withdrew it | **no** |
22
+
23
+ ## Rules
24
+
25
+ 1. `blocked` ≠ `failed`: infrastructure/host is not the plugin’s fault.
26
+ 2. `not-run` ≠ `not-applicable`: “did not run” and “does not apply” are different.
27
+ 3. `static` ≠ `runtime`; `client-module-loaded` ≠ UI rendered.
28
+ 4. `measured` only for BOOST; `manual` only for FLOW.
29
+ 5. `stale` is computed by the reader from `expiresAt`, not trusted from the writer.
30
+ 6. A `PASS` needs a command/artifact; a skip must never be upgraded.
31
+
32
+ ## Failure classes
33
+
34
+ | Class | Example | Who fixes |
35
+ |---|---|---|
36
+ | `subject-fail` | G1 row unresolved, G4 export missing | plugin author |
37
+ | `host-blocked` | host gate rejects, profile service missing | host/adapter |
38
+ | `fixture-fail` | fixture cannot boot; sample is wrong | standards maintainer |
39
+ | `tool-error` | checker crash, JSON parse error | checker maintainer |
40
+ | `stale` | expiry passed | author re-runs |
41
+ | `withdrawn` | evidence invalid/misused | organizer |
42
+
43
+ The checker must not map `host-blocked` or `tool-error` to `subject-fail`.
44
+
45
+ ## Reporting template
46
+
47
+ ```text
48
+ status: <one of the above>
49
+ class: subject-fail | host-blocked | fixture-fail | tool-error | stale | withdrawn
50
+ evidence: <command + artifact>
51
+ scope: dsh=<v> cordis=<v> platform=<v>
52
+ expiresAt: <date>
53
+ limitation: <one sentence>
54
+ ```
package/docs/sunset.md ADDED
@@ -0,0 +1,44 @@
1
+ # Level sunset and retirement
2
+
3
+ > A level is a **draft practice**, not a permanent standard. It can be frozen,
4
+ > superseded, or retired. Retirement is a normal outcome, not a failure.
5
+
6
+ ## States
7
+
8
+ | State | Meaning | Display |
9
+ |---|---|---|
10
+ | `draft` | current, provisional | label allowed with `draft` |
11
+ | `frozen` | no new clauses; existing evidence stays valid until expiry | label + `frozen` |
12
+ | `deprecated` | superseded; new claims discouraged | label + `deprecated`; no new attestation |
13
+ | `retired` | no longer maintained | historical only; `stale` |
14
+
15
+ ## Triggers
16
+
17
+ - host minor changes make a gate unjudgeable;
18
+ - a clause is proven wrong by a counterexample;
19
+ - no adopter for 12 months and no maintainer;
20
+ - a replacement level is adopted;
21
+ - the project loses its maintainer (bus factor event).
22
+
23
+ ## Procedure
24
+
25
+ 1. `ai-clerk` opens a sunset proposal with the clause IDs and evidence.
26
+ 2. 7-day public comment (Class B); record objections.
27
+ 3. Organizer decides: `frozen` / `deprecated` / `retired`.
28
+ 4. Existing attestations are not deleted; they are marked `stale` or
29
+ `superseded` at their expiry.
30
+ 5. New claims stop on the decision date; a later claim must use the replacement.
31
+
32
+ ## What must not happen
33
+
34
+ - silently deleting a level or its evidence;
35
+ - keeping a `retired` label in the “valid” filter;
36
+ - converting old grades/levels to a new scheme without a new record;
37
+ - claiming “consensus” for a solo decision.
38
+
39
+ ## Machine support
40
+
41
+ - `spec/levels.json` carries `review` and `expiryDays`;
42
+ - `scripts/stale-check.mjs` recomputes expiry;
43
+ - `governance/decision-log.md` records the sunset decision;
44
+ - `publish/attestations/index.json` keeps the historical record.
@@ -0,0 +1,12 @@
1
+ # Translation rules
2
+
3
+ > Translations are derived text; the Chinese source is normative until the
4
+ > organizer says otherwise.
5
+
6
+ 1. Keep clause IDs, gate IDs, and status words unchanged.
7
+ 2. Do not translate `not-run`, `blocked`, `measured`, `manual`, `stale` into
8
+ words that imply pass/fail.
9
+ 3. Add `Translation-Of: <commit>` to the commit trailer.
10
+ 4. One PR per language; do not bundle a wording change with a translation.
11
+ 5. A translation that changes meaning is a bug; link the source line.
12
+ 6. Machine translation is allowed with human review; disclose it.
package/package.json CHANGED
@@ -1,26 +1,57 @@
1
1
  {
2
- "version": "0.0.2",
3
- "description": "Name reservation + pointer for the DSH plugin standards draft (non-official).",
4
- "license": "MIT",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/PerryLink/dsh-standards.git"
2
+ "name": "dsh-standards",
3
+ "version": "1.0.0",
4
+ "description": "DSH plugin standards and conformance checks: ENTRY/FLOW checks plus BOOST guidance. Non-official; no certification or ranking.",
5
+ "type": "module",
6
+ "main": "40-checker/src/index.mjs",
7
+ "exports": {
8
+ ".": "./40-checker/src/index.mjs",
9
+ "./package.json": "./package.json"
8
10
  },
9
- "homepage": "https://github.com/PerryLink/dsh-standards",
10
- "keywords": [
11
- "dsh",
12
- "deepseek-harness",
13
- "plugin",
14
- "standards"
15
- ],
16
- "main": "index.mjs",
17
11
  "bin": {
18
- "dsh-standards": "bin/dsh-standards.mjs"
12
+ "dsh-standards": "./bin/dsh-standards.mjs",
13
+ "dsh-levels": "./bin/dsh-levels.mjs"
19
14
  },
20
15
  "files": [
21
- "index.mjs",
16
+ "40-checker",
17
+ "spec",
18
+ "docs",
22
19
  "bin",
23
- "README.md"
20
+ "README.md",
21
+ "LICENSE",
22
+ "LICENSE-APACHE",
23
+ "LICENSE-CC-BY",
24
+ "NOTICE.md"
25
+ ],
26
+ "scripts": {
27
+ "test": "node --test 40-checker/test/*.test.mjs",
28
+ "test:fixtures": "node bin/dsh-standards.mjs 40-checker/fixtures/good --scope entry --entry-claim static --format text"
29
+ },
30
+ "engines": {
31
+ "node": ">=20"
32
+ },
33
+ "keywords": [
34
+ "dsh",
35
+ "dsh-plugin",
36
+ "deepseek-harness",
37
+ "cordis",
38
+ "standards",
39
+ "checker",
40
+ "conformance",
41
+ "entry",
42
+ "flow",
43
+ "boost"
24
44
  ],
25
- "name": "dsh-standards"
45
+ "license": "Apache-2.0",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/PerryLink/dsh-standards.git"
49
+ },
50
+ "homepage": "https://github.com/PerryLink/dsh-standards#readme",
51
+ "bugs": {
52
+ "url": "https://github.com/PerryLink/dsh-standards/issues"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public"
56
+ }
26
57
  }
package/spec/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # dsh-standards specification tree
2
+
3
+ One project, three adoption levels. Each level has its own maturity; they share
4
+ the glossary, evidence anchor, and checker.
5
+
6
+ | Level | Document | Maturity | Evidence |
7
+ |---|---|---|---|
8
+ | ENTRY | [../31-DSH-ENTRY入门规范.md](../31-DSH-ENTRY入门规范.md) | public-preview | 18/18 recognized; 10/18 base G3, 8 clean after gate; client 15/15 loaded |
9
+ | FLOW | [../32-DSH-FLOW顺畅规范.md](../32-DSH-FLOW顺畅规范.md) | draft | J1/J2/J4/J6 runtime on fixture; 5 real packages; J3/J5/J7/J8 not-run |
10
+ | BOOST | [../33-DSH-BOOST加速实践.md](../33-DSH-BOOST加速实践.md) | draft | LEV-1–8 8/8 measured at synthetic/loader/provider-capture level |
11
+
12
+ Machine-readable:
13
+
14
+ - [levels.json](levels.json) — levels, gates, evidence states, crosswalk.
15
+ - [clauses.json](clauses.json) — stable clause IDs mapped to gates (`clause-map.mjs`).
16
+ - [reference-suite.json](reference-suite.json) — versioned samples, anchors, change rules.
17
+ - [schemas/evidence.schema.json](schemas/evidence.schema.json) — `dsh-levels/1` record.
18
+ - [schemas/attestation.schema.json](schemas/attestation.schema.json) — `dsh-attestation/1` quality record.
19
+ - [schemas/report.schema.json](schemas/report.schema.json) — `dsh-report/1` inspection report (no grade).
20
+ - [../40-checker/scripts/level-audit.mjs](../40-checker/scripts/level-audit.mjs) — one-command audit.
21
+ - [../publish/level-labels.example.json](../publish/level-labels.example.json) — market labels.
22
+
23
+ Rules:
24
+
25
+ - Levels depend on `common` only; do not import each other.
26
+ - A level is not a certification, badge, grade, or score.
27
+ - `dsh-standard` is an alias; `dsh-standards` is canonical.
@@ -0,0 +1,8 @@
1
+ # BOOST
2
+
3
+ Leverage surface: Cordis-native practices with evidence, not a grade.
4
+
5
+ - Practice text: [../../33-DSH-BOOST加速实践.md](../../33-DSH-BOOST加速实践.md)
6
+ - Deep research: [../../91-增效实践内核研究.md](../../91-增效实践内核研究.md)
7
+ - Reference: `examples/boost/lev7-bounded-batch.mjs`; benchmark: `examples/boost/results/lev7.json`
8
+ - Current: LEV-3 loader-level 0/20 vs 20/20 remount; LEV-6 provider-capture 100% vs 0% prompt reuse; LEV-7 8.24× synthetic. None is a production baseline.