@ccoalm/ccl-skills 0.15.1 → 0.15.3

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 (52) hide show
  1. package/README.md +3 -1
  2. package/dist/assets/marketplace/plugins/ccl-skills/agent-context/session-start.md +1 -1
  3. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +2 -2
  4. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +6 -5
  5. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/development-completion.md +26 -0
  6. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +37 -13
  7. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md +5 -2
  8. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +77 -5
  9. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py +98 -4
  10. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py +48 -1
  11. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +230 -16
  12. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh +165 -11
  13. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py +143 -0
  14. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +572 -0
  15. package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md +3 -1
  16. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +1 -1
  17. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +2 -0
  18. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +1 -1
  19. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md +1 -1
  20. package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/SKILL.md +2 -0
  21. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +3 -1
  22. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +3 -1
  23. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md +2 -0
  24. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +7 -7
  25. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md +1 -1
  26. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md +20 -11
  27. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md +7 -1
  28. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +1 -1
  29. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +2 -2
  30. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +17 -17
  31. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +4 -4
  32. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md +3 -3
  33. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +12 -0
  34. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh +83 -48
  35. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_body_compliance_grading.sh +80 -2
  36. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh +3 -2
  37. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_extraction_review_state.sh +190 -2
  38. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate_extraction_review_state.py +106 -4
  39. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +1 -1
  40. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +3 -1
  41. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +6 -6
  42. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/writing-judgments.md +63 -0
  43. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +1 -1
  44. package/dist/assets/release.json +60 -50
  45. package/dist/codex-host.d.ts +1 -1
  46. package/dist/codex-host.js +39 -15
  47. package/dist/host-probe.d.ts +16 -0
  48. package/dist/host-probe.js +29 -5
  49. package/dist/operations.js +34 -8
  50. package/dist/unified.d.ts +1 -1
  51. package/dist/unified.js +11 -4
  52. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "npmPackage": "@ccoalm/ccl-skills",
4
- "version": "0.15.1",
5
- "sourceCommit": "32570b61c4ffb37f6e931ba7f2d16b6617136507",
4
+ "version": "0.15.3",
5
+ "sourceCommit": "8940c5f48eb94073c0ea5d6e5b1df75576c214f4",
6
6
  "sourceState": "clean",
7
7
  "files": [
8
8
  {
@@ -42,7 +42,7 @@
42
42
  },
43
43
  {
44
44
  "path": "marketplace/plugins/ccl-skills/agent-context/session-start.md",
45
- "sha256": "0090ac4edff7e5d609190b419ae95e3af922d6b62db73516818a1468172b9cd2",
45
+ "sha256": "aa33454a670eec68a01f9b510c40473e8b5f46280352f8a24f1b940f254727a8",
46
46
  "mode": 420
47
47
  },
48
48
  {
@@ -262,7 +262,7 @@
262
262
  },
263
263
  {
264
264
  "path": "marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md",
265
- "sha256": "072a5d9562e4ece15524414c29730f26c3d310590684a3554e974aa36975dae8",
265
+ "sha256": "3f34d61f2b15ac4f457ca6e0d5e80c73b010c94a9fb3d9280669e42230c8bbd4",
266
266
  "mode": 420
267
267
  },
268
268
  {
@@ -275,6 +275,11 @@
275
275
  "sha256": "702a372d54b70d9230ed25f0d8096e6762acc179eb1e7febfde9e5ebd343c0d3",
276
276
  "mode": 420
277
277
  },
278
+ {
279
+ "path": "marketplace/plugins/ccl-skills/skills/code-review/references/development-completion.md",
280
+ "sha256": "ff9d6d77062b60563450ef40efebc0fbb365318dbb7bebcc7dbb037802491a11",
281
+ "mode": 420
282
+ },
278
283
  {
279
284
  "path": "marketplace/plugins/ccl-skills/skills/code-review/references/manual-invocation-and-prompts.md",
280
285
  "sha256": "a235a3dfb81dd757ce6e42e82cbc7ec428268ccc290807f5f4bbe07798b33e53",
@@ -282,7 +287,7 @@
282
287
  },
283
288
  {
284
289
  "path": "marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md",
285
- "sha256": "fc661c17955886936f49b4b99a760e896cdfcbad925c2671affae50108f6ade7",
290
+ "sha256": "dfa8a7956c7a03ab1c3ff12159b122277f35eb5f6310ef6f5ba0604aae380140",
286
291
  "mode": 420
287
292
  },
288
293
  {
@@ -292,7 +297,7 @@
292
297
  },
293
298
  {
294
299
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md",
295
- "sha256": "8c0f7ed10323f19a40bec905672bc1425c8ede15b98b44a5132fd45ab07e03e2",
300
+ "sha256": "1b7831a9bf483285682d7d751cdbb4bbc0eb43868fb3ea94904388f50fe50f31",
296
301
  "mode": 420
297
302
  },
298
303
  {
@@ -312,7 +317,7 @@
312
317
  },
313
318
  {
314
319
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh",
315
- "sha256": "e0465ba2ec017beef395491c39f6a1ad4ddd7e648ae48f050bbe34607835601c",
320
+ "sha256": "25ddfdbc658a1dba22fca49e317ee37a8305341fc5e5474ffb95451b6a94a058",
316
321
  "mode": 493
317
322
  },
318
323
  {
@@ -332,7 +337,7 @@
332
337
  },
333
338
  {
334
339
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py",
335
- "sha256": "aed1cbfd65f71b39408cabf81560cd9a98aa691ba77f1b8447a09f8ed58c694c",
340
+ "sha256": "99a12a0fa71a7b31c6fd4e877dd9eba9b1fe4ca57644db573bf7f4febfd21e71",
336
341
  "mode": 420
337
342
  },
338
343
  {
@@ -352,7 +357,7 @@
352
357
  },
353
358
  {
354
359
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py",
355
- "sha256": "b0ff264305685736946358cf1d4d321d5f1ea4f4dddc11cda9d857d112bf853c",
360
+ "sha256": "2134c4dd5fc5a2086b2ff95f6289d4e8c0c064671a5a0e7272e79a187b17f259",
356
361
  "mode": 493
357
362
  },
358
363
  {
@@ -372,7 +377,7 @@
372
377
  },
373
378
  {
374
379
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py",
375
- "sha256": "31841b7feda1fc2ddf36654cfdc94df0bbee84d590b23cde867aae821e2b1218",
380
+ "sha256": "b87410280137ace6340c8ee147c89999069e6d72d8913c8d4dc78e6f150e7152",
376
381
  "mode": 493
377
382
  },
378
383
  {
@@ -407,7 +412,7 @@
407
412
  },
408
413
  {
409
414
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh",
410
- "sha256": "849e3d56afd9b442c1b1fac33fba4751295f94a774b31adf44ea11a894c913e8",
415
+ "sha256": "3939d9751665987312d7c36489913205adaaaebece05e38248ebc24526e9e2b8",
411
416
  "mode": 493
412
417
  },
413
418
  {
@@ -432,7 +437,7 @@
432
437
  },
433
438
  {
434
439
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py",
435
- "sha256": "24e065c1167dba62977f1d2849f1f0661ad7ccb0827328f078d3ff37c74f3890",
440
+ "sha256": "060587ed35fafc23403b360a11cf34cf30cdfa5338b63bbae35337e8a54b302f",
436
441
  "mode": 420
437
442
  },
438
443
  {
@@ -462,7 +467,7 @@
462
467
  },
463
468
  {
464
469
  "path": "marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py",
465
- "sha256": "56a139f88e1f56ea7b7d7b8431caf3abf3dc290b50f924a30cc4c67ad7adb0fc",
470
+ "sha256": "fc54b0564a0e46eafced3894f9e70b98ac6ce6e983eb225410b3625246fb20f4",
466
471
  "mode": 420
467
472
  },
468
473
  {
@@ -497,7 +502,7 @@
497
502
  },
498
503
  {
499
504
  "path": "marketplace/plugins/ccl-skills/skills/code-review/SKILL.md",
500
- "sha256": "e4ae36e1d4cf46559cbcd4fcacae00dce3ca538fb05dc92df8fd78b4a6ae694c",
505
+ "sha256": "b057a175a34dbff8b4352429548c38cbcaf16c0b3f2be59b0c6216471ce28d9a",
501
506
  "mode": 420
502
507
  },
503
508
  {
@@ -517,7 +522,7 @@
517
522
  },
518
523
  {
519
524
  "path": "marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md",
520
- "sha256": "73a01985225c4c790f8da6ab611defc03d2c3dcca09854a8cff9bbd78a2b31d8",
525
+ "sha256": "a0a070d7b28278fc22765b001955bb7ee7bcddb233856c6a4414c161d401843a",
521
526
  "mode": 420
522
527
  },
523
528
  {
@@ -822,7 +827,7 @@
822
827
  },
823
828
  {
824
829
  "path": "marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md",
825
- "sha256": "e769f91d708b635b1987bfa43343ed0c31734ae66997f2643e00194cb7bea81c",
830
+ "sha256": "acb5e8ad070b99c4b5afc4761335598876e5ae6a79999e9703f0cc84cbb96dab",
826
831
  "mode": 420
827
832
  },
828
833
  {
@@ -947,7 +952,7 @@
947
952
  },
948
953
  {
949
954
  "path": "marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md",
950
- "sha256": "6877a538dc3292e6ce6b279a43b3e4080d4d9e05b5e971d425547899a1fe515b",
955
+ "sha256": "f79872e12ba613d1943832acd3fbf762e5ed249e88215d6a6dad3598a5d4a642",
951
956
  "mode": 420
952
957
  },
953
958
  {
@@ -997,7 +1002,7 @@
997
1002
  },
998
1003
  {
999
1004
  "path": "marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md",
1000
- "sha256": "d47b687c9b38f0bbec134cc6793ba041d08606f9798ce0573c630d1a95887818",
1005
+ "sha256": "c8d4797cd301528ee64b5ece109e305cc1adbf6a410b016d775c56d9f60c55a7",
1001
1006
  "mode": 420
1002
1007
  },
1003
1008
  {
@@ -1012,7 +1017,7 @@
1012
1017
  },
1013
1018
  {
1014
1019
  "path": "marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md",
1015
- "sha256": "26bcb8fd221709a3d2bb8d25121493beda4db8c1f738cbd0cdb37b8fc3e4c6e2",
1020
+ "sha256": "f9bcfe2f8e3b15b69d7a33bf2b1a55af4ec84c67137b5915e2f4002880e7f637",
1016
1021
  "mode": 420
1017
1022
  },
1018
1023
  {
@@ -1077,7 +1082,7 @@
1077
1082
  },
1078
1083
  {
1079
1084
  "path": "marketplace/plugins/ccl-skills/skills/nodejs-service-dev/SKILL.md",
1080
- "sha256": "96206c6babadafb509e37339e95ad8d4bf96e70acf837ab8ac9cbd02a7e2a62f",
1085
+ "sha256": "2114994ffe8d5ee3d152f17c9c3eca34d72b12d7b1fee6af6ea5131386bd95e2",
1081
1086
  "mode": 420
1082
1087
  },
1083
1088
  {
@@ -1132,7 +1137,7 @@
1132
1137
  },
1133
1138
  {
1134
1139
  "path": "marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md",
1135
- "sha256": "3da20332d76fba3b982f5b920794074f7599826f063352fe5c394aaf5e66ad58",
1140
+ "sha256": "133383e47751d715a6ae90084ef1375ba73f63b9f57349a0fa261fa597b04b43",
1136
1141
  "mode": 420
1137
1142
  },
1138
1143
  {
@@ -1207,7 +1212,7 @@
1207
1212
  },
1208
1213
  {
1209
1214
  "path": "marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md",
1210
- "sha256": "04c107c45a2acabb4aea65ce996a472064af68355de4929a6b8f731f9f53cd8e",
1215
+ "sha256": "207202ecaa0038d29b23ec23b75cf9a80650d1631f746e089120c0d5fbf869e4",
1211
1216
  "mode": 420
1212
1217
  },
1213
1218
  {
@@ -1277,7 +1282,7 @@
1277
1282
  },
1278
1283
  {
1279
1284
  "path": "marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md",
1280
- "sha256": "558b1d6864527d981d5811fb709acb08405218aced5a1515ae9394ab2fb1a81a",
1285
+ "sha256": "2d161e91932695d0db762c0c7a19dca458952ad748bf6ea1f98ea6d44c872be9",
1281
1286
  "mode": 420
1282
1287
  },
1283
1288
  {
@@ -1337,7 +1342,7 @@
1337
1342
  },
1338
1343
  {
1339
1344
  "path": "marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md",
1340
- "sha256": "1e769a05f18491db1ec6dad66769f187f5319b45323f7a215d5de8208f7f3f3f",
1345
+ "sha256": "7852dd2f0a6a32b6f6fddd4f4884e8701c54be4b738f6520370b9c4826424c7c",
1341
1346
  "mode": 420
1342
1347
  },
1343
1348
  {
@@ -1397,7 +1402,7 @@
1397
1402
  },
1398
1403
  {
1399
1404
  "path": "marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md",
1400
- "sha256": "e1987eed7a5788c1a3fcb94d7fdc68176bbce783fdca1fd468750296f67ab35c",
1405
+ "sha256": "891e887b6d07689f2a168fed93d82ed601e1147faa2959a9ba046e7eedc04d78",
1401
1406
  "mode": 420
1402
1407
  },
1403
1408
  {
@@ -1422,7 +1427,7 @@
1422
1427
  },
1423
1428
  {
1424
1429
  "path": "marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md",
1425
- "sha256": "4f455b536fcd386997917d850500bbbec6d706019703ba1ad78e95c25cd2d737",
1430
+ "sha256": "f6749284dce4a8e9bcf57a7200e16442a36ddb9ce7cb720df98b0e7f44fbf60b",
1426
1431
  "mode": 420
1427
1432
  },
1428
1433
  {
@@ -1472,7 +1477,7 @@
1472
1477
  },
1473
1478
  {
1474
1479
  "path": "marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md",
1475
- "sha256": "3e0f6d5434294acb66896b936f007d9bef67e608b34728b99a7d2ef07122e690",
1480
+ "sha256": "bf87f0f199ca93916ab3e22d5ef4fab624c336aab7374fec350a3f5242c03878",
1476
1481
  "mode": 420
1477
1482
  },
1478
1483
  {
@@ -1847,7 +1852,7 @@
1847
1852
  },
1848
1853
  {
1849
1854
  "path": "marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md",
1850
- "sha256": "13549ba3bf78a7014af32be7abac40860d905e06d389b92281938b97dbc481cd",
1855
+ "sha256": "3807070752702df5a15ad330edaf50e0de9f6fbbd99b6324fc65a30d8f07888d",
1851
1856
  "mode": 420
1852
1857
  },
1853
1858
  {
@@ -2022,7 +2027,7 @@
2022
2027
  },
2023
2028
  {
2024
2029
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md",
2025
- "sha256": "9deda45197efe202db5b3ed1d603aa1e97090476558a254b4612c7c6ab7c95ee",
2030
+ "sha256": "2cd2312cc155ca1c1f3acc1f1d24b0cc1e34e37404fe21212f0d87c09eff6e0b",
2026
2031
  "mode": 420
2027
2032
  },
2028
2033
  {
@@ -2062,7 +2067,7 @@
2062
2067
  },
2063
2068
  {
2064
2069
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md",
2065
- "sha256": "2149bf40adc0eabdd7d0ad4ebc7938288e6c74050ca979d9227f5d9221bec8cb",
2070
+ "sha256": "fe189fde59c7550bef2eac0db8f1cbe43d9e36b4ed539cbb7b7441461f090af2",
2066
2071
  "mode": 420
2067
2072
  },
2068
2073
  {
@@ -2097,7 +2102,7 @@
2097
2102
  },
2098
2103
  {
2099
2104
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md",
2100
- "sha256": "c08412da42b854f6d4e50581988e34cb0cab5914e4ea1e776a946993f185048f",
2105
+ "sha256": "3b43de0e81d0a43fb5ba40e97de755bd032f1b5417bbbdd9ca2a4cd2c5c1c65d",
2101
2106
  "mode": 420
2102
2107
  },
2103
2108
  {
@@ -2127,7 +2132,7 @@
2127
2132
  },
2128
2133
  {
2129
2134
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md",
2130
- "sha256": "006325a862d0bac253bfdd61c940c29fa20b1ddcf1ddebae4726a7a866a45f5a",
2135
+ "sha256": "019973bf6f665c75205ad19180ec653073ea1a17c0fcd9c31577d5168c0bb42e",
2131
2136
  "mode": 420
2132
2137
  },
2133
2138
  {
@@ -2292,7 +2297,7 @@
2292
2297
  },
2293
2298
  {
2294
2299
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh",
2295
- "sha256": "16b0b0c04a803d0c9b05ac47a076c5b879f98560da8de4133721019a42387d93",
2300
+ "sha256": "972785d9cb4ef21829c6b7a10ec12af103c448dbcc7f9d619bae552f54282cb4",
2296
2301
  "mode": 493
2297
2302
  },
2298
2303
  {
@@ -2302,7 +2307,7 @@
2302
2307
  },
2303
2308
  {
2304
2309
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_body_compliance_grading.sh",
2305
- "sha256": "8789cf94e8a7b386e6ae27d0d281d1d5761f0ee08f39dc58269acab7b46232a9",
2310
+ "sha256": "d3a37c4ae39492325f71940099fe965862b6766a9b8ec3a3b5db3d8e59f7057a",
2306
2311
  "mode": 493
2307
2312
  },
2308
2313
  {
@@ -2372,7 +2377,7 @@
2372
2377
  },
2373
2378
  {
2374
2379
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh",
2375
- "sha256": "24cc8934495fd7a5e9badff06a84b82cd49a0ec2900e791b7ea8fdefa8386b99",
2380
+ "sha256": "ccbac8859cdd2eb44384b871ca61905790332167137bc9cb414177d1c1923ae9",
2376
2381
  "mode": 493
2377
2382
  },
2378
2383
  {
@@ -2547,7 +2552,7 @@
2547
2552
  },
2548
2553
  {
2549
2554
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_extraction_review_state.sh",
2550
- "sha256": "8bce4771a225860356aa3301aee09dc064a0491a20da6273a3c3aa9719d48297",
2555
+ "sha256": "ea086686d130f3fb4b3969973f306744237caa64b8f9bfa8508b17afc1a7de38",
2551
2556
  "mode": 493
2552
2557
  },
2553
2558
  {
@@ -2567,7 +2572,7 @@
2567
2572
  },
2568
2573
  {
2569
2574
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate_extraction_review_state.py",
2570
- "sha256": "234a501a93f2b820081d8aea7bf3a3750bd865455b1217d641e5960931412ae7",
2575
+ "sha256": "2c1c9c23ae4df7221b37e06f43e5cc255a2df8a5abcd8b8eb0baf0cb2aad9ed4",
2571
2576
  "mode": 493
2572
2577
  },
2573
2578
  {
@@ -2577,7 +2582,7 @@
2577
2582
  },
2578
2583
  {
2579
2584
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md",
2580
- "sha256": "5d46b33dcc0c84ec4cac51bdea93aba643427f88dcd7ee3930b3ecd2132bc4f0",
2585
+ "sha256": "0897aac3ad4dcad4cab7671f914bb3bd960e4625176d006b632ab0d7cbdbde6a",
2581
2586
  "mode": 420
2582
2587
  },
2583
2588
  {
@@ -2602,7 +2607,7 @@
2602
2607
  },
2603
2608
  {
2604
2609
  "path": "marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md",
2605
- "sha256": "f7397b3c9ee4e30ba6e15953be91d8aaaa9e66ae8003e760b9293f69093b22bb",
2610
+ "sha256": "6698d955720d88232b5423306076aed1398d7076d607dc4d56665f20b2879581",
2606
2611
  "mode": 420
2607
2612
  },
2608
2613
  {
@@ -2862,7 +2867,7 @@
2862
2867
  },
2863
2868
  {
2864
2869
  "path": "marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md",
2865
- "sha256": "3527e55b44e74ec4c6a0f402068f0d954b1760715ff4b449f53034086118288a",
2870
+ "sha256": "eabb731f2a3d7f4782a3613ff067ae4a08ed379e620264b6a5cb35e3e2f3ec56",
2866
2871
  "mode": 420
2867
2872
  },
2868
2873
  {
@@ -2915,6 +2920,11 @@
2915
2920
  "sha256": "851a5c469a2832131c485f958b7e3ad7f8f2fba445133ae9359d63996b24cbd5",
2916
2921
  "mode": 420
2917
2922
  },
2923
+ {
2924
+ "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/references/writing-judgments.md",
2925
+ "sha256": "261ee326d2e830f7e02e12d6e1fe12f601f36d9b9d586829fe56f2c9908603a8",
2926
+ "mode": 420
2927
+ },
2918
2928
  {
2919
2929
  "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/AGENTS.md",
2920
2930
  "sha256": "f8e211e223305ad9535531fd3abede8884d859a0fda01e103e6ef1700909c478",
@@ -3177,7 +3187,7 @@
3177
3187
  },
3178
3188
  {
3179
3189
  "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md",
3180
- "sha256": "75b0c8fb65803056d9b7535b300a37a3a26fb0125b20adbbcd7cb14ba7461991",
3190
+ "sha256": "8e0515c398c573c270650bdef1aeaed01ebfa1939b30aca397c29305c59773f8",
3181
3191
  "mode": 420
3182
3192
  },
3183
3193
  {
@@ -3217,7 +3227,7 @@
3217
3227
  },
3218
3228
  {
3219
3229
  "path": "marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md",
3220
- "sha256": "3d60fa18aa37299dc0b9672126243146ee62c9c41d8707bf09e455e810506cb9",
3230
+ "sha256": "9cb574cbc6a716813533802c2379f698ec4186ef2502be07196110441cd3e7dd",
3221
3231
  "mode": 420
3222
3232
  },
3223
3233
  {
@@ -3294,12 +3304,12 @@
3294
3304
  },
3295
3305
  {
3296
3306
  "path": "codex-host.d.ts",
3297
- "sha256": "1f1987b0820ff80c915e2a66f5324fa3790465d23b9d1fca55be178ed1c0dbdd",
3307
+ "sha256": "0e7c4e32f4627983d04d670efbd63ffe72384fb39b5ebe3bcf22a281421c7985",
3298
3308
  "mode": 420
3299
3309
  },
3300
3310
  {
3301
3311
  "path": "codex-host.js",
3302
- "sha256": "09649bcb081b97b947a1b83441d0ac8fd2868461e5f295f241d731932d3ba04a",
3312
+ "sha256": "ad899e1fcbe06d53ee195fb10161c2352e4dd865e5632e35c346110cf594c479",
3303
3313
  "mode": 420
3304
3314
  },
3305
3315
  {
@@ -3314,12 +3324,12 @@
3314
3324
  },
3315
3325
  {
3316
3326
  "path": "host-probe.d.ts",
3317
- "sha256": "49974a5794f49a27b1bbacdb476f4d6049aad756e17a0f9856172053ed746173",
3327
+ "sha256": "7575d4c6b32fe92e359330e272fc4b245aa418e0254dd28320527f1df526f9e9",
3318
3328
  "mode": 420
3319
3329
  },
3320
3330
  {
3321
3331
  "path": "host-probe.js",
3322
- "sha256": "db73d028fa5fc9f70887c09539bcce10ff21b0cef76101445c8820028153e2d5",
3332
+ "sha256": "4ef90d7773116ac96e1a3b235a04071a2732f036630c0d5202bd67e3a82919f9",
3323
3333
  "mode": 420
3324
3334
  },
3325
3335
  {
@@ -3359,7 +3369,7 @@
3359
3369
  },
3360
3370
  {
3361
3371
  "path": "operations.js",
3362
- "sha256": "2fb19b70ed8f1495fc675da251b08619df9d129a1745a90a45485e5b8234bf96",
3372
+ "sha256": "254bf44226fa305e98ea2dac36ddd6ca4f1a2e42e88ee669a5bb83736ba01077",
3363
3373
  "mode": 420
3364
3374
  },
3365
3375
  {
@@ -3384,12 +3394,12 @@
3384
3394
  },
3385
3395
  {
3386
3396
  "path": "unified.d.ts",
3387
- "sha256": "e95b741d7e356d5aff99de8c3e1992ce18a4c263988f5adee897d2b079b34632",
3397
+ "sha256": "947036104532ba21515a27f11a6bbef4843b5ad28f033ddde02e9bf1d2c6aa60",
3388
3398
  "mode": 420
3389
3399
  },
3390
3400
  {
3391
3401
  "path": "unified.js",
3392
- "sha256": "e5f2870f5ba9689b3cc903c9403b8ade85b7df5364e2037fe7a3eed04aeedc4a",
3402
+ "sha256": "58b51ed8718885006dce2eab9f327833f450459737b6bf72a060f84718550677",
3393
3403
  "mode": 420
3394
3404
  },
3395
3405
  {
@@ -3423,5 +3433,5 @@
3423
3433
  "mode": 420
3424
3434
  }
3425
3435
  ],
3426
- "snapshotHash": "8fd7e270f237790aff425a4e1ece90ddd91919b4a94191b3bfb17e2e75780e04"
3436
+ "snapshotHash": "67f504b1e9ac879276dc0a32bb06517b1c7581dbbfa73c79d0d85cab25e690c8"
3427
3437
  }
@@ -12,9 +12,9 @@ export declare function checkHost(codexHome?: string): {
12
12
  kind: string;
13
13
  message: string;
14
14
  output?: undefined;
15
+ stdout?: undefined;
15
16
  } | {
16
17
  ok: true;
17
- version: string;
18
18
  };
19
19
  export declare function parsePluginList(text: string, marketplaceSource: string | null): {
20
20
  ok: boolean;
@@ -1,10 +1,10 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { existsSync } from "node:fs";
2
+ import { existsSync, mkdtempSync, rmSync, statSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
3
4
  import { isAbsolute, join, resolve } from "node:path";
4
5
  import { LEGACY_REF, MARKET, REF } from "./paths.js";
5
- import { canonicalAlias } from "./fs-safe.js";
6
- import { compare, parseVersion } from "./version.js";
7
- import { probeHostVersion } from "./host-probe.js";
6
+ import { assertSafeRoot, canonicalAlias } from "./fs-safe.js";
7
+ import { probeHostCommand } from "./host-probe.js";
8
8
  function call(args, codexHome) {
9
9
  const env = {
10
10
  ...process.env,
@@ -17,17 +17,41 @@ function call(args, codexHome) {
17
17
  });
18
18
  }
19
19
  export function checkHost(codexHome) {
20
- const p = probeHostVersion("codex", { ...process.env, ...(codexHome ? { CODEX_HOME: codexHome } : {}) });
21
- if (!p.ok)
22
- return p;
23
- const version = parseVersion(p.output);
24
- if (!version || compare(version, "0.133.0") < 0)
25
- return {
26
- ok: false,
27
- kind: "old",
28
- message: "Codex >=0.133.0 is required",
29
- };
30
- return { ok: true, version };
20
+ const targetHome = codexHome || process.env.CODEX_HOME || join(process.env.HOME || "", ".codex");
21
+ try {
22
+ assertSafeRoot(targetHome, join(targetHome, "ccl-skills-npm"));
23
+ try {
24
+ if (!statSync(targetHome).isDirectory())
25
+ throw new Error(`Codex home is not a directory: ${targetHome}`);
26
+ }
27
+ catch (error) {
28
+ if (error.code !== "ENOENT")
29
+ throw error;
30
+ }
31
+ }
32
+ catch (error) {
33
+ return { ok: false, kind: "safety-refusal", message: String(error) };
34
+ }
35
+ // Codex refuses a nonexistent CODEX_HOME. Probe the binary against a private
36
+ // empty home without creating the user's target just to discover capability.
37
+ const temporaryHome = existsSync(targetHome) ? null : mkdtempSync(join(tmpdir(), "ccl-codex-probe-"));
38
+ try {
39
+ const env = { ...process.env, CODEX_HOME: temporaryHome || targetHome };
40
+ const marketplace = probeHostCommand("codex", ["plugin", "marketplace", "list"], env);
41
+ if (!marketplace.ok)
42
+ return marketplace;
43
+ const plugins = probeHostCommand("codex", ["plugin", "list"], env);
44
+ if (!plugins.ok)
45
+ return plugins;
46
+ const parsed = parseMarketplace(marketplace.stdout);
47
+ if (!parsed.ok || !parsePluginList(plugins.stdout, parsed.source).ok)
48
+ return { ok: false, kind: "state-unknown", message: "Codex public state could not be verified" };
49
+ return { ok: true };
50
+ }
51
+ finally {
52
+ if (temporaryHome)
53
+ rmSync(temporaryHome, { recursive: true, force: true });
54
+ }
31
55
  }
32
56
  export function parsePluginList(text, marketplaceSource) {
33
57
  const lines = text.split(/\r?\n/).filter((line) => line.trim());
@@ -1,11 +1,27 @@
1
+ export declare function isHostCommandMissing(command: string, env?: NodeJS.ProcessEnv): boolean;
1
2
  export declare function probeHostVersion(command: string, env?: NodeJS.ProcessEnv): {
2
3
  ok: false;
3
4
  kind: string;
4
5
  message: string;
5
6
  output?: undefined;
7
+ stdout?: undefined;
6
8
  } | {
7
9
  ok: true;
8
10
  output: string;
11
+ stdout: string;
12
+ kind?: undefined;
13
+ message?: undefined;
14
+ };
15
+ export declare function probeHostCommand(command: string, args: string[], env?: NodeJS.ProcessEnv): {
16
+ ok: false;
17
+ kind: string;
18
+ message: string;
19
+ output?: undefined;
20
+ stdout?: undefined;
21
+ } | {
22
+ ok: true;
23
+ output: string;
24
+ stdout: string;
9
25
  kind?: undefined;
10
26
  message?: undefined;
11
27
  };
@@ -1,8 +1,32 @@
1
1
  import { spawnSync } from "node:child_process";
2
- // Version discovery must not hold up other hosts or wait for interactive input.
2
+ import { accessSync } from "node:fs";
3
+ import { delimiter, resolve } from "node:path";
4
+ // Host discovery must not hold up other hosts or wait for interactive input.
3
5
  const HOST_PROBE_TIMEOUT_MS = 10000;
6
+ // Presence only: do not execute a candidate or inspect its configuration.
7
+ export function isHostCommandMissing(command, env = process.env) {
8
+ const candidates = command.includes("/")
9
+ ? [command]
10
+ : (env.PATH ?? "/usr/bin:/bin").split(delimiter).map((dir) => resolve(dir, command));
11
+ let uncertain = false;
12
+ for (const candidate of candidates) {
13
+ try {
14
+ accessSync(candidate);
15
+ return false;
16
+ }
17
+ catch (error) {
18
+ const code = error.code;
19
+ if (code !== "ENOENT" && code !== "ENOTDIR")
20
+ uncertain = true;
21
+ }
22
+ }
23
+ return !uncertain;
24
+ }
4
25
  export function probeHostVersion(command, env = process.env) {
5
- const result = spawnSync(command, ["--version"], {
26
+ return probeHostCommand(command, ["--version"], env);
27
+ }
28
+ export function probeHostCommand(command, args, env = process.env) {
29
+ const result = spawnSync(command, args, {
6
30
  encoding: "utf8",
7
31
  env,
8
32
  stdio: ["ignore", "pipe", "pipe"],
@@ -17,11 +41,11 @@ export function probeHostVersion(command, env = process.env) {
17
41
  ok: false,
18
42
  kind,
19
43
  message: kind === "timeout"
20
- ? `${command} --version timed out after ${HOST_PROBE_TIMEOUT_MS}ms`
44
+ ? `${command} ${args.join(" ")} timed out after ${HOST_PROBE_TIMEOUT_MS}ms`
21
45
  : kind === "missing"
22
46
  ? `${command} CLI is unavailable (ENOENT)`
23
- : `${command} --version failed (${errorCode || (result.signal ? `signal ${result.signal}` : result.error ? "spawn error" : `exit ${result.status}`)})`,
47
+ : `${command} ${args.join(" ")} failed (${errorCode || (result.signal ? `signal ${result.signal}` : result.error ? "spawn error" : `exit ${result.status}`)})`,
24
48
  };
25
49
  }
26
- return { ok: true, output: `${result.stdout}\n${result.stderr}` };
50
+ return { ok: true, output: `${result.stdout}\n${result.stderr}`, stdout: result.stdout };
27
51
  }